From 7ea16212077eb53bdc8161af1d132deae8f030ff Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 29 Nov 2004 06:51:30 +0300 Subject: [PATCH 001/157] Fix and testcase for BUG#6699 myisam/mi_rnext_same.c: Fix for BUG#6699: MERGE handler now uses mi_rnext_same() with priority queue, so skip record unpacking if buf==NULL myisammrg/myrg_rnext_same.c: Fix for BUG#6699: make myrg_rnext_same sort always sort records and return them in key order. mysql-test/r/merge.result: Test for BUG#6699 mysql-test/t/merge.test: Test for BUG#6699 --- myisam/mi_rnext_same.c | 4 ++++ myisammrg/myrg_rnext_same.c | 33 ++++++++++++++++++++++----------- mysql-test/r/merge.result | 25 +++++++++++++++++++++++++ mysql-test/t/merge.test | 18 ++++++++++++++++++ 4 files changed, 69 insertions(+), 11 deletions(-) diff --git a/myisam/mi_rnext_same.c b/myisam/mi_rnext_same.c index 1342718d6aa..a50c578e081 100644 --- a/myisam/mi_rnext_same.c +++ b/myisam/mi_rnext_same.c @@ -88,6 +88,10 @@ int mi_rnext_same(MI_INFO *info, byte *buf) if (my_errno == HA_ERR_KEY_NOT_FOUND) my_errno=HA_ERR_END_OF_FILE; } + else if (!buf) + { + DBUG_RETURN(info->lastpos==HA_OFFSET_ERROR ? my_errno : 0); + } else if (!(*info->read_record)(info,info->lastpos,buf)) { info->update|= HA_STATE_AKTIV; /* Record is read */ diff --git a/myisammrg/myrg_rnext_same.c b/myisammrg/myrg_rnext_same.c index b569459b77d..997e4100acd 100644 --- a/myisammrg/myrg_rnext_same.c +++ b/myisammrg/myrg_rnext_same.c @@ -16,25 +16,36 @@ #include "myrg_def.h" + int myrg_rnext_same(MYRG_INFO *info, byte *buf) { - uint err; + int err; MI_INFO *mi; if (!info->current_table) return (HA_ERR_KEY_NOT_FOUND); - err=mi_rnext_same(info->current_table->table,buf); - if (err == HA_ERR_END_OF_FILE) + /* at first, do rnext for the table found before */ + if ((err=mi_rnext_same(info->current_table->table,NULL))) { - queue_remove(&(info->by_key),0); - if (!info->by_key.elements) - return HA_ERR_END_OF_FILE; - - mi=(info->current_table=(MYRG_TABLE *)queue_top(&(info->by_key)))->table; - mi->once_flags|= RRND_PRESERVE_LASTINX; - return mi_rrnd(mi,buf,mi->lastpos); + if (err == HA_ERR_END_OF_FILE) + { + queue_remove(&(info->by_key),0); + if (!info->by_key.elements) + return HA_ERR_END_OF_FILE; + } + else + return err; } - return err; + else + { + /* Found here, adding to queue */ + queue_top(&(info->by_key))=(byte *)(info->current_table); + queue_replaced(&(info->by_key)); + } + + /* now, mymerge's read_next is as simple as one queue_top */ + mi=(info->current_table=(MYRG_TABLE *)queue_top(&(info->by_key)))->table; + return _myrg_mi_read_record(mi,buf); } diff --git a/mysql-test/r/merge.result b/mysql-test/r/merge.result index 5755033190b..f71626221cb 100644 --- a/mysql-test/r/merge.result +++ b/mysql-test/r/merge.result @@ -651,3 +651,28 @@ ERROR HY000: You can't specify target table 't1' for update in FROM clause create table t3 engine=merge union=(t1, t2) select * from t2; ERROR HY000: You can't specify target table 't2' for update in FROM clause drop table t1, t2; +create table t1 (a int,b int,c int, index (a,b,c)); +create table t2 (a int,b int,c int, index (a,b,c)); +create table t3 (a int,b int,c int, index (a,b,c)) +engine=merge union=(t1 ,t2); +insert into t1 (a,b,c) values (1,1,0),(1,2,0); +insert into t2 (a,b,c) values (1,1,1),(1,2,1); +explain select a,b,c from t3 force index (a) where a=1 order by a,b,c; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t3 ref a a 5 const 2 Using where; Using index +select a,b,c from t3 force index (a) where a=1 order by a,b,c; +a b c +1 1 0 +1 1 1 +1 2 0 +1 2 1 +explain select a,b,c from t3 force index (a) where a=1 order by a desc, b desc, c desc; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t3 ref a a 5 const 2 Using where; Using index +select a,b,c from t3 force index (a) where a=1 order by a desc, b desc, c desc; +a b c +1 2 1 +1 2 0 +1 1 1 +1 1 0 +drop table t1, t2, t3; diff --git a/mysql-test/t/merge.test b/mysql-test/t/merge.test index 9580c1ab44c..b628cb07f7b 100644 --- a/mysql-test/t/merge.test +++ b/mysql-test/t/merge.test @@ -285,3 +285,21 @@ create table t3 engine=merge union=(t1, t2) select * from t1; --error 1093 create table t3 engine=merge union=(t1, t2) select * from t2; drop table t1, t2; + +# BUG#6699 : no sorting on 'ref' retrieval +create table t1 (a int,b int,c int, index (a,b,c)); +create table t2 (a int,b int,c int, index (a,b,c)); +create table t3 (a int,b int,c int, index (a,b,c)) + engine=merge union=(t1 ,t2); +insert into t1 (a,b,c) values (1,1,0),(1,2,0); +insert into t2 (a,b,c) values (1,1,1),(1,2,1); + +explain select a,b,c from t3 force index (a) where a=1 order by a,b,c; +select a,b,c from t3 force index (a) where a=1 order by a,b,c; + +# this actually wasn't affected: +explain select a,b,c from t3 force index (a) where a=1 order by a desc, b desc, c desc; +select a,b,c from t3 force index (a) where a=1 order by a desc, b desc, c desc; + +drop table t1, t2, t3; + From 79a0ed6232233f6c85c83fbee4e27e594a7149db Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 14 Dec 2004 19:24:19 +0500 Subject: [PATCH 002/157] BUG#6056 (continue) added event_conn_closed replaced WaitForSingleObject on WaitForMultipleObjects inserted a check in vio_close() added SetEvent() for event_conn_closed include/violite.h: added event_conn_closed sql-common/client.c: added event_conn_closed sql/mysqld.cc: added event_conn_closed vio/vio.c: added event_conn_closed vio/viosocket.c: replaced WaitForSingleObject on WaitForMultipleObjects inserted a check in vio_close() added SetEvent() for event_conn_closed --- include/violite.h | 4 +++- sql-common/client.c | 12 +++++++++++- sql/mysqld.cc | 11 ++++++++++- vio/vio.c | 4 +++- vio/viosocket.c | 31 +++++++++++++++++++++++-------- 5 files changed, 50 insertions(+), 12 deletions(-) diff --git a/include/violite.h b/include/violite.h index ba7de3ee175..64e834d6653 100644 --- a/include/violite.h +++ b/include/violite.h @@ -45,7 +45,8 @@ Vio* vio_new_win32shared_memory(NET *net,HANDLE handle_file_map, HANDLE event_server_wrote, HANDLE event_server_read, HANDLE event_client_wrote, - HANDLE event_client_read); + HANDLE event_client_read, + HANDLE event_conn_closed); int vio_read_pipe(Vio *vio, gptr buf, int size); int vio_write_pipe(Vio *vio, const gptr buf, int size); int vio_close_pipe(Vio * vio); @@ -197,6 +198,7 @@ struct st_vio HANDLE event_server_read; HANDLE event_client_wrote; HANDLE event_client_read; + HANDLE event_conn_closed; long shared_memory_remain; char *shared_memory_pos; NET *net; diff --git a/sql-common/client.c b/sql-common/client.c index b847c467b85..0714ca4291f 100644 --- a/sql-common/client.c +++ b/sql-common/client.c @@ -396,6 +396,7 @@ HANDLE create_shared_memory(MYSQL *mysql,NET *net, uint connect_timeout) HANDLE event_server_read = NULL; HANDLE event_client_wrote = NULL; HANDLE event_client_read = NULL; + HANDLE event_conn_closed = NULL; HANDLE handle_file_map = NULL; ulong connect_number; char connect_number_char[22], *p; @@ -508,6 +509,13 @@ HANDLE create_shared_memory(MYSQL *mysql,NET *net, uint connect_timeout) error_allow = CR_SHARED_MEMORY_EVENT_ERROR; goto err2; } + + strmov(suffix_pos, "CONNECTION_CLOSED"); + if ((event_conn_closed = OpenEvent(EVENT_ALL_ACCESS,FALSE,tmp)) == NULL) + { + error_allow = CR_SHARED_MEMORY_EVENT_ERROR; + goto err2; + } /* Set event that server should send data */ @@ -519,7 +527,7 @@ err2: net->vio= vio_new_win32shared_memory(net,handle_file_map,handle_map, event_server_wrote, event_server_read,event_client_wrote, - event_client_read); + event_client_read,event_conn_closed); } else { @@ -532,6 +540,8 @@ err2: CloseHandle(event_client_read); if (event_client_wrote) CloseHandle(event_client_wrote); + if (event_conn_closed) + CloseHandle(event_conn_closed); if (handle_map) UnmapViewOfFile(handle_map); if (handle_file_map) diff --git a/sql/mysqld.cc b/sql/mysqld.cc index e39c902444e..4a6dc037557 100644 --- a/sql/mysqld.cc +++ b/sql/mysqld.cc @@ -3813,6 +3813,7 @@ pthread_handler_decl(handle_connections_shared_memory,arg) HANDLE event_client_read= 0; // for transfer data server <-> client HANDLE event_server_wrote= 0; HANDLE event_server_read= 0; + HANDLE event_conn_closed= 0; THD *thd= 0; p= int10_to_str(connect_number, connect_number_char, 10); @@ -3866,6 +3867,12 @@ pthread_handler_decl(handle_connections_shared_memory,arg) errmsg= "Could not create server write event"; goto errorconn; } + strmov(suffix_pos, "CONNECTION_CLOSED"); + if ((event_conn_closed= CreateEvent(0,TRUE,FALSE,tmp)) == 0) + { + errmsg= "Could not create closed connection event"; + goto errorconn; + } if (abort_loop) goto errorconn; if (!(thd= new THD)) @@ -3889,7 +3896,8 @@ pthread_handler_decl(handle_connections_shared_memory,arg) event_client_wrote, event_client_read, event_server_wrote, - event_server_read)) || + event_server_read, + event_conn_closed)) || my_net_init(&thd->net, thd->net.vio)) { close_connection(thd, ER_OUT_OF_RESOURCES, 1); @@ -3916,6 +3924,7 @@ errorconn: if (event_server_read) CloseHandle(event_server_read); if (event_client_wrote) CloseHandle(event_client_wrote); if (event_client_read) CloseHandle(event_client_read); + if (event_conn_closed) CloseHandle(event_conn_closed); delete thd; } diff --git a/vio/vio.c b/vio/vio.c index a356d8edeff..92d69dc5148 100644 --- a/vio/vio.c +++ b/vio/vio.c @@ -171,7 +171,8 @@ Vio *vio_new_win32pipe(HANDLE hPipe) #ifdef HAVE_SMEM Vio *vio_new_win32shared_memory(NET *net,HANDLE handle_file_map, HANDLE handle_map, HANDLE event_server_wrote, HANDLE event_server_read, - HANDLE event_client_wrote, HANDLE event_client_read) + HANDLE event_client_wrote, HANDLE event_client_read, + HANDLE event_conn_closed) { Vio *vio; DBUG_ENTER("vio_new_win32shared_memory"); @@ -184,6 +185,7 @@ Vio *vio_new_win32shared_memory(NET *net,HANDLE handle_file_map, HANDLE handle_m vio->event_server_read = event_server_read; vio->event_client_wrote = event_client_wrote; vio->event_client_read = event_client_read; + vio->event_conn_closed = event_conn_closed; vio->shared_memory_remain = 0; vio->shared_memory_pos = handle_map; vio->net = net; diff --git a/vio/viosocket.c b/vio/viosocket.c index 48a9058480a..caf9451df7a 100644 --- a/vio/viosocket.c +++ b/vio/viosocket.c @@ -381,10 +381,21 @@ int vio_read_shared_memory(Vio * vio, gptr buf, int size) { if (vio->shared_memory_remain == 0) { - if (WaitForSingleObject(vio->event_server_wrote,vio->net->read_timeout*1000) != WAIT_OBJECT_0) + HANDLE events[2]; + events[0]= vio->event_server_wrote; + events[1]= vio->event_conn_closed; + /* + WaitForMultipleObjects can return next values: + WAIT_OBJECT_0+0 - event from vio->event_server_wrote + WAIT_OBJECT_0+1 - event from vio->event_conn_closed. We can't read anything + WAIT_ABANDONED_0 and WAIT_TIMEOUT - fail. We can't read anything + */ + if (WaitForMultipleObjects(2,(HANDLE*)&events,FALSE, + vio->net->read_timeout*1000) != WAIT_OBJECT_0) { DBUG_RETURN(-1); }; + vio->shared_memory_pos = vio->handle_map; vio->shared_memory_remain = uint4korr((ulong*)vio->shared_memory_pos); vio->shared_memory_pos+=4; @@ -454,17 +465,21 @@ int vio_close_shared_memory(Vio * vio) { int r; DBUG_ENTER("vio_close_shared_memory"); - r=UnmapViewOfFile(vio->handle_map) || CloseHandle(vio->event_server_wrote) || - CloseHandle(vio->event_server_read) || CloseHandle(vio->event_client_wrote) || - CloseHandle(vio->event_client_read) || CloseHandle(vio->handle_file_map); - if (r) + if (vio->type != VIO_CLOSED) { - DBUG_PRINT("vio_error", ("close() failed, error: %d",r)); - /* FIXME: error handling (not critical for MySQL) */ + SetEvent(vio->event_conn_closed); + r=UnmapViewOfFile(vio->handle_map) || CloseHandle(vio->event_server_wrote) || + CloseHandle(vio->event_server_read) || CloseHandle(vio->event_client_wrote) || + CloseHandle(vio->event_client_read) || CloseHandle(vio->handle_file_map); + if (!r) + { + DBUG_PRINT("vio_error", ("close() failed, error: %d",r)); + /* FIXME: error handling (not critical for MySQL) */ + } } vio->type= VIO_CLOSED; vio->sd= -1; - DBUG_RETURN(r); + DBUG_RETURN(!r); } #endif /* HAVE_SMEM */ #endif /* __WIN__ */ From 2fb340b5209dda8f71f372fed17d65a0c5814821 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 16 Dec 2004 16:31:50 +0300 Subject: [PATCH 003/157] Fix for bug #7297 "Two digit year should be interpreted correctly even with zero month and day" aka "Date decoding trouble" Two digit year should be interpreted correctly as year in 20th or 21st century even with zero month and day. Only exception should be zero date '00-00-00' or '00-00-00 00:00:00'. mysql-test/r/type_datetime.result: Added test for bug #7297 "Two digit year should be interpreted correctly even with zero month and day" mysql-test/t/type_datetime.test: Added test for bug #7297 "Two digit year should be interpreted correctly even with zero month and day" sql/time.cc: str_to_TIME(): Two digit year should be interpreted correctly as year in 20th or 21st century even with zero month and day. Only exception should be zero date '00-00-00' or '00-00-00 00:00:00'. --- mysql-test/r/type_datetime.result | 10 ++++++++++ mysql-test/t/type_datetime.test | 12 ++++++++++++ sql/time.cc | 2 +- 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/mysql-test/r/type_datetime.result b/mysql-test/r/type_datetime.result index 756deab80e0..fcadba016fa 100644 --- a/mysql-test/r/type_datetime.result +++ b/mysql-test/r/type_datetime.result @@ -102,3 +102,13 @@ insert into t1 values (now(), now()); select * from t1 where a is null or b is null; a b drop table t1; +create table t1 (dt datetime); +insert into t1 values ("12-00-00"), ("00-00-00 01:00:00"); +insert into t1 values ("00-00-00"), ("00-00-00 00:00:00"); +select * from t1; +dt +2012-00-00 00:00:00 +2000-00-00 01:00:00 +0000-00-00 00:00:00 +0000-00-00 00:00:00 +drop table t1; diff --git a/mysql-test/t/type_datetime.test b/mysql-test/t/type_datetime.test index 850e5238111..a7f9004d062 100644 --- a/mysql-test/t/type_datetime.test +++ b/mysql-test/t/type_datetime.test @@ -68,3 +68,15 @@ insert into t1 values (now(), now()); insert into t1 values (now(), now()); select * from t1 where a is null or b is null; drop table t1; + +# +# Test for bug #7297 "Two digit year should be interpreted correctly even +# with zero month and day" +# +create table t1 (dt datetime); +# These dates should be treated as dates in 21st century +insert into t1 values ("12-00-00"), ("00-00-00 01:00:00"); +# Zero dates are still special :/ +insert into t1 values ("00-00-00"), ("00-00-00 00:00:00"); +select * from t1; +drop table t1; diff --git a/sql/time.cc b/sql/time.cc index 38670db054f..d8b4b80e351 100644 --- a/sql/time.cc +++ b/sql/time.cc @@ -410,7 +410,7 @@ str_to_TIME(const char *str, uint length, TIME *l_time,bool fuzzy_date) else date[6]=0; - if (year_length == 2 && i >=2 && (date[1] || date[2])) + if (year_length == 2 && not_zero_date) date[0]+= (date[0] < YY_PART_YEAR ? 2000 : 1900); number_of_fields=i; while (i < 6) From f7193b925455ede2b97ccde36c96732446d1db7e Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 17 Dec 2004 12:14:45 +0300 Subject: [PATCH 004/157] Fix for BUG#6825: When calculating Item_func_neg::max_length, add 1 for '-'. For numeric constants we only need to add, since the parser doesn't produce negative numbers. For strings we only add (we actually could substract 1 if given string is a constant and it has '-number' form but we're not doing that because * we set max_length bigger then necessary in other cases as well. * the current solution is simpler and safer (bigger max_length is better then cutting out) mysql-test/r/func_concat.result: Test for BUG#6825 mysql-test/r/metadata.result: Ajusted results according to fix of bug BUG#6825:length(-1) = 2 , not 1 mysql-test/t/func_concat.test: Test for BUG#6825 --- mysql-test/r/func_concat.result | 36 +++++++++++++++++++++++++++++++++ mysql-test/r/metadata.result | 2 +- mysql-test/t/func_concat.test | 16 +++++++++++++++ sql/item_func.cc | 16 +++++++++++++++ 4 files changed, 69 insertions(+), 1 deletion(-) diff --git a/mysql-test/r/func_concat.result b/mysql-test/r/func_concat.result index ec53d6d87b0..419413e4156 100644 --- a/mysql-test/r/func_concat.result +++ b/mysql-test/r/func_concat.result @@ -32,3 +32,39 @@ select * from t1 where concat(A,C,B,D) = 'AAAA2003-03-011051'; a b c d AAAA 105 2003-03-01 1 drop table t1; +select 'a' union select concat('a', -4); +a +a +a-4 +select 'a' union select concat('a', -4.5); +a +a +a-4.5 +select 'a' union select concat('a', -(4 + 1)); +a +a +a-5 +select 'a' union select concat('a', 4 - 5); +a +a +a-1 +select 'a' union select concat('a', -'3'); +a +a +a-3 +select 'a' union select concat('a', -concat('3',4)); +a +a +a-34 +select 'a' union select concat('a', -0); +a +a +a0 +select 'a' union select concat('a', -0.0); +a +a +a-0.0 +select 'a' union select concat('a', -0.0000); +a +a +a-0.0000 diff --git a/mysql-test/r/metadata.result b/mysql-test/r/metadata.result index 2321a8998ac..3c7cf60db7a 100644 --- a/mysql-test/r/metadata.result +++ b/mysql-test/r/metadata.result @@ -3,7 +3,7 @@ select 1, 1.0, -1, "hello", NULL; Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr def 1 8 1 1 N 32769 0 8 def 1.0 5 3 3 N 32769 1 8 -def -1 8 1 2 N 32769 0 8 +def -1 8 2 2 N 32769 0 8 def hello 254 5 5 N 1 31 8 def NULL 6 0 0 Y 32896 0 63 1 1.0 -1 hello NULL diff --git a/mysql-test/t/func_concat.test b/mysql-test/t/func_concat.test index 0cf1502b10e..78818cdda4e 100644 --- a/mysql-test/t/func_concat.test +++ b/mysql-test/t/func_concat.test @@ -34,3 +34,19 @@ create table t1 (a char(4), b double, c date, d tinyint(4)); insert into t1 values ('AAAA', 105, '2003-03-01', 1); select * from t1 where concat(A,C,B,D) = 'AAAA2003-03-011051'; drop table t1; + +# BUG#6825 +select 'a' union select concat('a', -4); +select 'a' union select concat('a', -4.5); + +select 'a' union select concat('a', -(4 + 1)); +select 'a' union select concat('a', 4 - 5); + +select 'a' union select concat('a', -'3'); +select 'a' union select concat('a', -concat('3',4)); + +select 'a' union select concat('a', -0); +select 'a' union select concat('a', -0.0); + +select 'a' union select concat('a', -0.0000); + diff --git a/sql/item_func.cc b/sql/item_func.cc index 2d939f47716..413000f9d1b 100644 --- a/sql/item_func.cc +++ b/sql/item_func.cc @@ -775,9 +775,25 @@ longlong Item_func_neg::val_int() void Item_func_neg::fix_length_and_dec() { + enum Item_result arg_result= args[0]->result_type(); + enum Item::Type arg_type= args[0]->type(); decimals=args[0]->decimals; max_length=args[0]->max_length; hybrid_type= REAL_RESULT; + + /* + We need to account for added '-' in the following cases: + A) argument is a real or integer positive constant - in this case + argument's max_length is set to actual number of bytes occupied, and not + maximum number of bytes real or integer may require. Note that all + constants are non negative so we don't need to account for removed '-'. + B) argument returns a string. + */ + if (arg_result == STRING_RESULT || + (arg_type == REAL_ITEM && ((Item_real*)args[0])->value >= 0) || + (arg_type == INT_ITEM && ((Item_int*)args[0])->value > 0)) + max_length++; + if (args[0]->result_type() == INT_RESULT) { /* From f06f81610071b4f13352230d829f8bf03ac97117 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 20 Dec 2004 13:47:38 +0400 Subject: [PATCH 005/157] A fix (bug #7281: RAND(RAND) crashes server). --- mysql-test/r/func_math.result | 2 ++ mysql-test/t/func_math.test | 7 +++++++ sql/item_func.cc | 3 ++- 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/mysql-test/r/func_math.result b/mysql-test/r/func_math.result index 90aa04515d7..3a28cccfac5 100644 --- a/mysql-test/r/func_math.result +++ b/mysql-test/r/func_math.result @@ -124,3 +124,5 @@ id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No tables used Warnings: Note 1003 select degrees(pi()) AS `degrees(pi())`,radians(360) AS `radians(360)` +select rand(rand); +ERROR 42S22: Unknown column 'rand' in 'field list' diff --git a/mysql-test/t/func_math.test b/mysql-test/t/func_math.test index e58c097b5a6..668aefc2d8d 100644 --- a/mysql-test/t/func_math.test +++ b/mysql-test/t/func_math.test @@ -51,3 +51,10 @@ SELECT ASIN(1.2-0.2); #select floor(log(16)/log(2)); explain extended select degrees(pi()),radians(360); + +# +# Bug #7281: problem with rand() +# + +--error 1054 +select rand(rand); diff --git a/sql/item_func.cc b/sql/item_func.cc index 2d939f47716..3c565d0c466 100644 --- a/sql/item_func.cc +++ b/sql/item_func.cc @@ -1091,7 +1091,8 @@ double Item_func_round::val() bool Item_func_rand::fix_fields(THD *thd, struct st_table_list *tables, Item **ref) { - Item_real_func::fix_fields(thd, tables, ref); + if (Item_real_func::fix_fields(thd, tables, ref)) + return TRUE; used_tables_cache|= RAND_TABLE_BIT; if (arg_count) { // Only use argument once in query From 9cee9f6969e45051ac26e62b1a520ff642c6b22e Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 20 Dec 2004 15:12:13 -0600 Subject: [PATCH 006/157] configure.in: Increment from 4.0.23 to 4.0.24 configure.in: Increment from 4.0.23 to 4.0.24 --- configure.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.in b/configure.in index 06a0c1bd52f..65af867cbc0 100644 --- a/configure.in +++ b/configure.in @@ -4,7 +4,7 @@ dnl Process this file with autoconf to produce a configure script. AC_INIT(sql/mysqld.cc) AC_CANONICAL_SYSTEM # The Docs Makefile.am parses this line! -AM_INIT_AUTOMAKE(mysql, 4.0.23) +AM_INIT_AUTOMAKE(mysql, 4.0.24) AM_CONFIG_HEADER(config.h) PROTOCOL_VERSION=10 From fee2e57b675ba2e07bb9833ffbe18996fbf97ccb Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 21 Dec 2004 10:05:58 +0400 Subject: [PATCH 007/157] Fix to perform correctly with charsets in embedded server BitKeeper/deleted/.del-ctype_recoding.result.es~45c6fe567949af: Delete: mysql-test/r/ctype_recoding.result.es BitKeeper/deleted/.del-func_test.result.es~4de135264090aa14: Delete: mysql-test/r/func_test.result.es BitKeeper/deleted/.del-ps_2myisam.result.es~5132bde9c07c41e8: Delete: mysql-test/r/ps_2myisam.result.es BitKeeper/deleted/.del-ps_3innodb.result.es~a3613f0e86132472: Delete: mysql-test/r/ps_3innodb.result.es BitKeeper/deleted/.del-ps_4heap.result.es~956ae2c46b66b6ed: Delete: mysql-test/r/ps_4heap.result.es BitKeeper/deleted/.del-ps_5merge.result.es~6093a834fec21efe: Delete: mysql-test/r/ps_5merge.result.es BitKeeper/deleted/.del-ps_6bdb.result.es~57b94c3756e3d093: Delete: mysql-test/r/ps_6bdb.result.es libmysqld/lib_sql.cc: Charset conversion implemented mysql-test/r/query_cache.result.es: correct test result provided tests/client_test.c: now it works --- libmysqld/lib_sql.cc | 78 +- mysql-test/r/ctype_recoding.result.es | 242 - mysql-test/r/func_test.result.es | 185 - mysql-test/r/ps_2myisam.result.es | 3130 ------------- mysql-test/r/ps_3innodb.result.es | 3113 ------------- mysql-test/r/ps_4heap.result.es | 3114 ------------- mysql-test/r/ps_5merge.result.es | 6064 ------------------------- mysql-test/r/ps_6bdb.result.es | 3113 ------------- mysql-test/r/query_cache.result.es | 8 +- tests/client_test.c | 2 - 10 files changed, 56 insertions(+), 18993 deletions(-) delete mode 100644 mysql-test/r/ctype_recoding.result.es delete mode 100644 mysql-test/r/func_test.result.es delete mode 100644 mysql-test/r/ps_2myisam.result.es delete mode 100644 mysql-test/r/ps_3innodb.result.es delete mode 100644 mysql-test/r/ps_4heap.result.es delete mode 100644 mysql-test/r/ps_5merge.result.es delete mode 100644 mysql-test/r/ps_6bdb.result.es diff --git a/libmysqld/lib_sql.cc b/libmysqld/lib_sql.cc index 8092d87b97c..a9503c644a8 100644 --- a/libmysqld/lib_sql.cc +++ b/libmysqld/lib_sql.cc @@ -591,6 +591,32 @@ err: C_MODE_END +static char *dup_str_aux(MEM_ROOT *root, const char *from, uint length, + CHARSET_INFO *fromcs, CHARSET_INFO *tocs) +{ + uint32 dummy32; + uint dummy_err; + char *result; + + /* 'tocs' is set 0 when client issues SET character_set_results=NULL */ + if (tocs && String::needs_conversion(0, fromcs, tocs, &dummy32)) + { + uint new_len= (tocs->mbmaxlen * length) / fromcs->mbminlen + 1; + result= (char *)alloc_root(root, new_len); + length= copy_and_convert(result, new_len, + tocs, from, length, fromcs, &dummy_err); + } + else + { + result= (char *)alloc_root(root, length + 1); + memcpy(result, from, length); + } + + result[length]= 0; + return result; +} + + bool Protocol::send_fields(List *list, uint flag) { List_iterator_fast it(*list); @@ -598,6 +624,8 @@ bool Protocol::send_fields(List *list, uint flag) MYSQL_FIELD *client_field; MYSQL *mysql= thd->mysql; MEM_ROOT *field_alloc; + CHARSET_INFO *thd_cs= thd->variables.character_set_results; + CHARSET_INFO *cs= system_charset_info; DBUG_ENTER("send_fields"); @@ -616,12 +644,29 @@ bool Protocol::send_fields(List *list, uint flag) Send_field server_field; item->make_field(&server_field); - client_field->db= strdup_root(field_alloc, server_field.db_name); - client_field->table= strdup_root(field_alloc, server_field.table_name); - client_field->name= strdup_root(field_alloc, server_field.col_name); - client_field->org_table= strdup_root(field_alloc, server_field.org_table_name); - client_field->org_name= strdup_root(field_alloc, server_field.org_col_name); - client_field->length= server_field.length; + client_field->db= dup_str_aux(field_alloc, server_field.db_name, + strlen(server_field.db_name), cs, thd_cs); + client_field->table= dup_str_aux(field_alloc, server_field.table_name, + strlen(server_field.table_name), cs, thd_cs); + client_field->name= dup_str_aux(field_alloc, server_field.col_name, + strlen(server_field.col_name), cs, thd_cs); + client_field->org_table= dup_str_aux(field_alloc, server_field.org_table_name, + strlen(server_field.org_table_name), cs, thd_cs); + client_field->org_name= dup_str_aux(field_alloc, server_field.org_col_name, + strlen(server_field.org_col_name), cs, thd_cs); + if (item->collation.collation == &my_charset_bin || thd_cs == NULL) + { + /* No conversion */ + client_field->charsetnr= server_field.charsetnr; + client_field->length= server_field.length; + } + else + { + /* With conversion */ + client_field->charsetnr= thd_cs->number; + uint char_len= server_field.length / item->collation.collation->mbmaxlen; + client_field->length= char_len * thd_cs->mbmaxlen; + } client_field->type= server_field.type; client_field->flags= server_field.flags; client_field->decimals= server_field.decimals; @@ -630,9 +675,8 @@ bool Protocol::send_fields(List *list, uint flag) client_field->name_length= strlen(client_field->name); client_field->org_name_length= strlen(client_field->org_name); client_field->org_table_length= strlen(client_field->org_table); - client_field->charsetnr= server_field.charsetnr; - client_field->catalog= strdup_root(field_alloc, "def"); + client_field->catalog= dup_str_aux(field_alloc, "def", 3, cs, thd_cs); client_field->catalog_length= 3; if (INTERNAL_NUM_FIELD(client_field)) @@ -804,21 +848,3 @@ bool Protocol::net_store_data(const char *from, uint length) return false; } -#if 0 -/* The same as Protocol::net_store_data but does the converstion -*/ -bool Protocol::convert_str(const char *from, uint length) -{ - if (!(*next_field=alloc_root(alloc, length + 1))) - return true; - convert->store_dest(*next_field, from, length); - (*next_field)[length]= 0; - if (next_mysql_field->max_length < length) - next_mysql_field->max_length=length; - ++next_field; - ++next_mysql_field; - - return false; -} -#endif - diff --git a/mysql-test/r/ctype_recoding.result.es b/mysql-test/r/ctype_recoding.result.es deleted file mode 100644 index 27425a69872..00000000000 --- a/mysql-test/r/ctype_recoding.result.es +++ /dev/null @@ -1,242 +0,0 @@ -SET CHARACTER SET koi8r; -DROP TABLE IF EXISTS , t1, t2; -SET CHARACTER SET koi8r; -CREATE TABLE t1 (a CHAR(10) CHARACTER SET cp1251) SELECT _koi8r'' AS a; -CREATE TABLE t2 (a CHAR(10) CHARACTER SET utf8); -SHOW CREATE TABLE t1; -Table Create Table -t1 CREATE TABLE `t1` ( - `a` char(10) character set cp1251 default NULL -) ENGINE=MyISAM DEFAULT CHARSET=latin1 -SELECT a FROM t1; -a - -SELECT HEX(a) FROM t1; -HEX(a) -EFF0EEE1E0 -INSERT t2 SELECT * FROM t1; -SELECT HEX(a) FROM t2; -HEX(a) -D0BFD180D0BED0B1D0B0 -DROP TABLE t1, t2; -CREATE TABLE t1 (description text character set cp1250 NOT NULL); -INSERT INTO t1 (description) VALUES (_latin2'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasssssssssssaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddde'); -SELECT description FROM t1; -description -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasssssssssssaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddde -DROP TABLE t1; -CREATE TABLE t1 (a TEXT CHARACTER SET cp1251) SELECT _koi8r'' AS a; -CREATE TABLE t2 (a TEXT CHARACTER SET utf8); -SHOW CREATE TABLE t1; -Table Create Table -t1 CREATE TABLE `t1` ( - `a` text character set cp1251 -) ENGINE=MyISAM DEFAULT CHARSET=latin1 -SELECT HEX(a) FROM t1; -HEX(a) -EFF0EEE1E0 -INSERT t2 SELECT * FROM t1; -SELECT HEX(a) FROM t2; -HEX(a) -D0BFD180D0BED0B1D0B0 -DROP TABLE t1, t2; -CREATE TABLE `` -( - CHAR(32) CHARACTER SET koi8r NOT NULL COMMENT " " -) COMMENT " "; -SHOW TABLES; -Tables_in_test - -SHOW CREATE TABLE ; -Table Create Table - CREATE TABLE `` ( - `` char(32) character set koi8r NOT NULL default '' COMMENT ' ' -) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT=' ' -SHOW FIELDS FROM ; -Field Type Null Key Default Extra - char(32) -SET CHARACTER SET cp1251; -SHOW TABLES; -Tables_in_test - -SHOW CREATE TABLE ; -Table Create Table - CREATE TABLE `` ( - `` char(32) character set koi8r NOT NULL default '' COMMENT ' ' -) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT=' ' -SHOW FIELDS FROM ; -Field Type Null Key Default Extra - char(32) -SET CHARACTER SET utf8; -SHOW TABLES; -Tables_in_test -таблица -SHOW CREATE TABLE таблица; -Table Create Table -таблица CREATE TABLE `таблица` ( - `поле` char(32) character set koi8r NOT NULL default '' COMMENT 'комментарий поля' -) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='комментарий таблицы' -SHOW FIELDS FROM таблица; -Field Type Null Key Default Extra -поле char(32) -SET CHARACTER SET koi8r; -DROP TABLE ; -SET CHARACTER SET default; -SET NAMES UTF8; -CREATE TABLE t1 (t text) DEFAULT CHARSET UTF8; -INSERT INTO t1 (t) VALUES ('x'); -SELECT 1 FROM t1 WHERE CONCAT(_latin1'x') = t; -1 -1 -DROP TABLE t1; -SET CHARACTER SET koi8r; -CREATE DATABASE ; -USE ; -SHOW TABLES; -Tables_in_тест -SHOW TABLES IN ; -Tables_in_тест -SET CHARACTER SET cp1251; -SHOW TABLES; -Tables_in_тест -SHOW TABLES IN ; -Tables_in_тест -SET CHARACTER SET koi8r; -DROP DATABASE ; -SET NAMES koi8r; -SELECT hex(''); -hex('тест') -D4C5D3D4 -SET character_set_connection=cp1251; -SELECT hex(''); -hex('тест') -F2E5F1F2 -USE test; -SET NAMES binary; -CREATE TABLE `тест` (`тест` int); -SHOW CREATE TABLE `тест`; -Table Create Table -тест CREATE TABLE `тест` ( - `тест` int(11) default NULL -) ENGINE=MyISAM DEFAULT CHARSET=latin1 -SET NAMES utf8; -SHOW CREATE TABLE `тест`; -Table Create Table -тест CREATE TABLE `тест` ( - `тест` int(11) default NULL -) ENGINE=MyISAM DEFAULT CHARSET=latin1 -DROP TABLE `тест`; -SET NAMES binary; -SET character_set_connection=utf8; -SELECT 'тест' as s; -s -тест -SET NAMES utf8; -SET character_set_connection=binary; -SELECT 'тест' as s; -s -тест -SET NAMES latin1; -CREATE TABLE t1 (`` CHAR(128) DEFAULT '', `1` ENUM('1','2') DEFAULT '2'); -SHOW CREATE TABLE t1; -Table Create Table -t1 CREATE TABLE `t1` ( - `` char(128) default '', - `1` enum('1','2') default '2' -) ENGINE=MyISAM DEFAULT CHARSET=latin1 -SHOW COLUMNS FROM t1; -Field Type Null Key Default Extra - char(128) YES -1 enum('1','2') YES 2 -SET NAMES binary; -SHOW CREATE TABLE t1; -Table Create Table -t1 CREATE TABLE `t1` ( - `ä` char(128) default 'ä', - `ä1` enum('ä1','ä2') default 'ä2' -) ENGINE=MyISAM DEFAULT CHARSET=latin1 -SHOW COLUMNS FROM t1; -Field Type Null Key Default Extra -ä char(128) YES ä -ä1 enum('ä1','ä2') YES ä2 -DROP TABLE t1; -SET NAMES binary; -CREATE TABLE `good` (a int); -ERROR HY000: Invalid utf8 character string: '' -SET NAMES utf8; -CREATE TABLE `good` (a int); -ERROR HY000: Invalid utf8 character string: '` (a int)' -set names latin1; -create table t1 (a char(10) character set koi8r, b text character set koi8r); -insert into t1 values ('test','test'); -insert into t1 values ('',''); -Warnings: -Warning 1265 Data truncated for column 'a' at row 1 -Warning 1265 Data truncated for column 'b' at row 1 -drop table t1; -set names koi8r; -create table t1 (a char(10) character set cp1251); -insert into t1 values (_koi8r''); -select * from t1 where a=_koi8r''; -a - -select * from t1 where a=concat(_koi8r''); -ERROR HY000: Illegal mix of collations (cp1251_general_ci,IMPLICIT) and (koi8r_general_ci,COERCIBLE) for operation '=' -select * from t1 where a=_latin1''; -ERROR HY000: Illegal mix of collations (cp1251_general_ci,IMPLICIT) and (latin1_swedish_ci,COERCIBLE) for operation '=' -drop table t1; -set names latin1; -set names koi8r; -create table t1 (c1 char(10) character set cp1251); -insert into t1 values (''); -select c1 from t1 where c1 between '' and ''; -c1 - -select ifnull(c1,''), ifnull(null,c1) from t1; -ifnull(c1,'ъ') ifnull(null,c1) - -select if(1,c1,''), if(0,c1,'') from t1; -if(1,c1,'Ж') if(0,c1,'Ж') - -select coalesce('',c1), coalesce(null,c1) from t1; -coalesce('Ж',c1) coalesce(null,c1) - -select least(c1,''), greatest(c1,'') from t1; -least(c1,'Ж') greatest(c1,'Ж') - -select locate(c1,''), locate('',c1) from t1; -locate(c1,'ъ') locate('ъ',c1) -1 1 -select field(c1,''),field('',c1) from t1; -field(c1,'ъ') field('ъ',c1) -1 1 -select concat(c1,''), concat('',c1) from t1; -concat(c1,'Ж') concat('Ж',c1) - -select concat_ws(c1,'',''), concat_ws('',c1,'') from t1; -concat_ws(c1,'Ж','ъ') concat_ws('Ж',c1,'ъ') - -select replace(c1,'',''), replace('',c1,'') from t1; -replace(c1,'ъ','Ж') replace('ъ',c1,'Ж') - -select substring_index(c1,'',2) from t1; -substring_index(c1,'ЖЖъъ',2) - -select elt(1,c1,''),elt(1,'',c1) from t1; -elt(1,c1,'Ж') elt(1,'Ж',c1) - -select make_set(3,c1,''), make_set(3,'',c1) from t1; -make_set(3,c1,'Ж') make_set(3,'Ж',c1) -, , -select insert(c1,1,2,''),insert('',1,2,c1) from t1; -insert(c1,1,2,'Ж') insert('Ж',1,2,c1) - -select trim(c1 from ''),trim('' from c1) from t1; -trim(c1 from 'ъ') trim('ъ' from c1) - -select lpad(c1,3,''), lpad('',3,c1) from t1; -lpad(c1,3,'Ж') lpad('Ж',3,c1) - -select rpad(c1,3,''), rpad('',3,c1) from t1; -rpad(c1,3,'Ж') rpad('Ж',3,c1) - diff --git a/mysql-test/r/func_test.result.es b/mysql-test/r/func_test.result.es deleted file mode 100644 index 380f96835d0..00000000000 --- a/mysql-test/r/func_test.result.es +++ /dev/null @@ -1,185 +0,0 @@ -drop table if exists t1,t2; -select 0=0,1>0,1>=1,1<0,1<=0,1!=0,strcmp("abc","abcd"),strcmp("b","a"),strcmp("a","a") ; -0=0 1>0 1>=1 1<0 1<=0 1!=0 strcmp("abc","abcd") strcmp("b","a") strcmp("a","a") -1 1 1 0 0 1 -1 1 0 -select "a"<"b","a"<="b","b">="a","b">"a","a"="A","a"<>"b"; -"a"<"b" "a"<="b" "b">="a" "b">"a" "a"="A" "a"<>"b" -1 1 1 1 1 1 -select "a "="A", "A "="a", "a " <= "A b"; -"a "="A" "A "="a" "a " <= "A b" -1 1 1 -select "abc" like "a%", "abc" not like "%d%", "a%" like "a\%","abc%" like "a%\%","abcd" like "a%b_%d", "a" like "%%a","abcde" like "a%_e","abc" like "abc%"; -"abc" like "a%" "abc" not like "%d%" "a%" like "a\%" "abc%" like "a%\%" "abcd" like "a%b_%d" "a" like "%%a" "abcde" like "a%_e" "abc" like "abc%" -1 1 1 1 1 1 1 1 -select "a" like "%%b","a" like "%%ab","ab" like "a\%", "ab" like "_", "ab" like "ab_", "abc" like "%_d", "abc" like "abc%d"; -"a" like "%%b" "a" like "%%ab" "ab" like "a\%" "ab" like "_" "ab" like "ab_" "abc" like "%_d" "abc" like "abc%d" -0 0 0 0 0 0 0 -select '?' like '|%', '?' like '|%' ESCAPE '|', '%' like '|%', '%' like '|%' ESCAPE '|', '%' like '%'; -'?' like '|%' '?' like '|%' ESCAPE '|' '%' like '|%' '%' like '|%' ESCAPE '|' '%' like '%' -0 0 0 1 1 -select 'abc' like '%c','abcabc' like '%c', "ab" like "", "ab" like "a", "ab" like "ab"; -'abc' like '%c' 'abcabc' like '%c' "ab" like "" "ab" like "a" "ab" like "ab" -1 1 0 0 1 -select "Det hr r svenska" regexp "h[[:alpha:]]+r", "aba" regexp "^(a|b)*$"; -"Det här är svenska" regexp "h[[:alpha:]]+r" "aba" regexp "^(a|b)*$" -1 1 -select "aba" regexp concat("^","a"); -"aba" regexp concat("^","a") -1 -select !0,NOT 0=1,!(0=0),1 AND 1,1 && 0,0 OR 1,1 || NULL, 1=1 or 1=1 and 1=0; -!0 NOT 0=1 !(0=0) 1 AND 1 1 && 0 0 OR 1 1 || NULL 1=1 or 1=1 and 1=0 -1 1 0 1 0 1 1 1 -select 2 between 1 and 3, "monty" between "max" and "my",2=2 and "monty" between "max" and "my" and 3=3; -2 between 1 and 3 "monty" between "max" and "my" 2=2 and "monty" between "max" and "my" and 3=3 -1 1 1 -select 'b' between 'a' and 'c', 'B' between 'a' and 'c'; -'b' between 'a' and 'c' 'B' between 'a' and 'c' -1 1 -select 2 in (3,2,5,9,5,1),"monty" in ("david","monty","allan"), 1.2 in (1.4,1.2,1.0); -2 in (3,2,5,9,5,1) "monty" in ("david","monty","allan") 1.2 in (1.4,1.2,1.0) -1 1 1 -select -1.49 or -1.49,0.6 or 0.6; --1.49 or -1.49 0.6 or 0.6 -1 1 -select 3 ^ 11, 1 ^ 1, 1 ^ 0, 1 ^ NULL, NULL ^ 1; -3 ^ 11 1 ^ 1 1 ^ 0 1 ^ NULL NULL ^ 1 -8 0 1 NULL NULL -explain extended select 3 ^ 11, 1 ^ 1, 1 ^ 0, 1 ^ NULL, NULL ^ 1; -id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No tables used -Warnings: -Note 1003 select (3 ^ 11) AS `3 ^ 11`,(1 ^ 1) AS `1 ^ 1`,(1 ^ 0) AS `1 ^ 0`,(1 ^ NULL) AS `1 ^ NULL`,(NULL ^ 1) AS `NULL ^ 1` -select 1 XOR 1, 1 XOR 0, 0 XOR 1, 0 XOR 0, NULL XOR 1, 1 XOR NULL, 0 XOR NULL; -1 XOR 1 1 XOR 0 0 XOR 1 0 XOR 0 NULL XOR 1 1 XOR NULL 0 XOR NULL -0 1 1 0 NULL NULL NULL -select 1 like 2 xor 2 like 1; -1 like 2 xor 2 like 1 -0 -select 10 % 7, 10 mod 7, 10 div 3; -10 % 7 10 mod 7 10 div 3 -3 3 3 -explain extended select 10 % 7, 10 mod 7, 10 div 3; -id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No tables used -Warnings: -Note 1003 select (10 % 7) AS `10 % 7`,(10 % 7) AS `10 mod 7`,(10 DIV 3) AS `10 div 3` -select (1 << 64)-1, ((1 << 64)-1) DIV 1, ((1 << 64)-1) DIV 2; -(1 << 64)-1 ((1 << 64)-1) DIV 1 ((1 << 64)-1) DIV 2 -18446744073709551615 18446744073709551615 9223372036854775807 -explain extended select (1 << 64)-1, ((1 << 64)-1) DIV 1, ((1 << 64)-1) DIV 2; -id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No tables used -Warnings: -Note 1003 select ((1 << 64) - 1) AS `(1 << 64)-1`,(((1 << 64) - 1) DIV 1) AS `((1 << 64)-1) DIV 1`,(((1 << 64) - 1) DIV 2) AS `((1 << 64)-1) DIV 2` -create table t1 (a int); -insert t1 values (1); -select * from t1 where 1 xor 1; -a -explain extended select * from t1 where 1 xor 1; -id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables -Warnings: -Note 1003 select test.t1.a AS `a` from test.t1 where (1 xor 1) -select - a from t1; -- a --1 -explain extended select - a from t1; -id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 system NULL NULL NULL NULL 1 -Warnings: -Note 1003 select -(test.t1.a) AS `- a` from test.t1 -drop table t1; -select 5 between 0 and 10 between 0 and 1,(5 between 0 and 10) between 0 and 1; -5 between 0 and 10 between 0 and 1 (5 between 0 and 10) between 0 and 1 -0 1 -select 1 and 2 between 2 and 10, 2 between 2 and 10 and 1; -1 and 2 between 2 and 10 2 between 2 and 10 and 1 -1 1 -select 1 and 0 or 2, 2 or 1 and 0; -1 and 0 or 2 2 or 1 and 0 -1 1 -select _koi8r'a' = _koi8r'A'; -_koi8r'a' = _koi8r'A' -1 -select _koi8r'a' = _koi8r'A' COLLATE koi8r_general_ci; -_koi8r'a' = _koi8r'A' COLLATE koi8r_general_ci -1 -explain extended select _koi8r'a' = _koi8r'A' COLLATE koi8r_general_ci; -id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No tables used -Warnings: -Note 1003 select (_koi8r'a' = (_koi8r'A' collate _latin1'koi8r_general_ci')) AS `_koi8r'a' = _koi8r'A' COLLATE koi8r_general_ci` -select _koi8r'a' = _koi8r'A' COLLATE koi8r_bin; -_koi8r'a' = _koi8r'A' COLLATE koi8r_bin -0 -select _koi8r'a' COLLATE koi8r_general_ci = _koi8r'A'; -_koi8r'a' COLLATE koi8r_general_ci = _koi8r'A' -1 -select _koi8r'a' COLLATE koi8r_bin = _koi8r'A'; -_koi8r'a' COLLATE koi8r_bin = _koi8r'A' -0 -select _koi8r'a' COLLATE koi8r_bin = _koi8r'A' COLLATE koi8r_general_ci; -ERROR HY000: Illegal mix of collations (koi8r_bin,EXPLICIT) and (koi8r_general_ci,EXPLICIT) for operation '=' -select _koi8r'a' = _latin1'A'; -ERROR HY000: Illegal mix of collations (koi8r_general_ci,COERCIBLE) and (latin1_swedish_ci,COERCIBLE) for operation '=' -select strcmp(_koi8r'a', _koi8r'A'); -strcmp(_koi8r'a', _koi8r'A') -0 -select strcmp(_koi8r'a', _koi8r'A' COLLATE koi8r_general_ci); -strcmp(_koi8r'a', _koi8r'A' COLLATE koi8r_general_ci) -0 -select strcmp(_koi8r'a', _koi8r'A' COLLATE koi8r_bin); -strcmp(_koi8r'a', _koi8r'A' COLLATE koi8r_bin) -1 -select strcmp(_koi8r'a' COLLATE koi8r_general_ci, _koi8r'A'); -strcmp(_koi8r'a' COLLATE koi8r_general_ci, _koi8r'A') -0 -select strcmp(_koi8r'a' COLLATE koi8r_bin, _koi8r'A'); -strcmp(_koi8r'a' COLLATE koi8r_bin, _koi8r'A') -1 -select strcmp(_koi8r'a' COLLATE koi8r_general_ci, _koi8r'A' COLLATE koi8r_bin); -ERROR HY000: Illegal mix of collations (koi8r_general_ci,EXPLICIT) and (koi8r_bin,EXPLICIT) for operation 'strcmp' -select strcmp(_koi8r'a', _latin1'A'); -ERROR HY000: Illegal mix of collations (koi8r_general_ci,COERCIBLE) and (latin1_swedish_ci,COERCIBLE) for operation 'strcmp' -select _koi8r'a' LIKE _koi8r'A'; -_koi8r'a' LIKE _koi8r'A' -1 -select _koi8r'a' LIKE _koi8r'A' COLLATE koi8r_general_ci; -_koi8r'a' LIKE _koi8r'A' COLLATE koi8r_general_ci -1 -select _koi8r'a' LIKE _koi8r'A' COLLATE koi8r_bin; -_koi8r'a' LIKE _koi8r'A' COLLATE koi8r_bin -0 -select _koi8r'a' COLLATE koi8r_general_ci LIKE _koi8r'A'; -_koi8r'a' COLLATE koi8r_general_ci LIKE _koi8r'A' -1 -select _koi8r'a' COLLATE koi8r_bin LIKE _koi8r'A'; -_koi8r'a' COLLATE koi8r_bin LIKE _koi8r'A' -0 -select _koi8r'a' COLLATE koi8r_general_ci LIKE _koi8r'A' COLLATE koi8r_bin; -ERROR HY000: Illegal mix of collations (koi8r_general_ci,EXPLICIT) and (koi8r_bin,EXPLICIT) for operation 'like' -select _koi8r'a' LIKE _latin1'A'; -ERROR HY000: Illegal mix of collations (koi8r_general_ci,COERCIBLE) and (latin1_swedish_ci,COERCIBLE) for operation 'like' -CREATE TABLE t1 ( faq_group_id int(11) NOT NULL default '0', faq_id int(11) NOT NULL default '0', title varchar(240) default NULL, keywords text, description longblob, solution longblob, status tinyint(4) NOT NULL default '0', access_id smallint(6) default NULL, lang_id smallint(6) NOT NULL default '0', created datetime NOT NULL default '0000-00-00 00:00:00', updated datetime default NULL, last_access datetime default NULL, last_notify datetime default NULL, solved_count int(11) NOT NULL default '0', static_solved int(11) default NULL, solved_1 int(11) default NULL, solved_2 int(11) default NULL, solved_3 int(11) default NULL, solved_4 int(11) default NULL, solved_5 int(11) default NULL, expires datetime default NULL, notes text, assigned_to smallint(6) default NULL, assigned_group smallint(6) default NULL, last_edited_by smallint(6) default NULL, orig_ref_no varchar(15) binary default NULL, c$fundstate smallint(6) default NULL, c$contributor smallint(6) default NULL, UNIQUE KEY t1$faq_id (faq_id), KEY t1$group_id$faq_id (faq_group_id,faq_id), KEY t1$c$fundstate (c$fundstate) ) ENGINE=MyISAM; -INSERT INTO t1 VALUES (82,82,'How to use the DynaVox Usage Counts Feature','usages count, number, corner, white, box, button','\r\n\r\n \r\n \r\n \r\n \r\n
\r\n

How \r\n To: \r\n Display or Hide the Usage Counts to find out how many times each button is being selected.

\r\n
','\r\n \r\n \r\n \r\n \r\n\r\n \r\n
\r\n \r\n

1. Select \r\n the On/Setup button to access the DynaVox Setup Menu.
\r\n 2. Select Button Features.
\r\n 3. Below the OK button is the Usage Counts button.
\r\n a. If it says \"Hidden\" then the Usage Counts will not be displayed.
\r\n b. If it says \"Displayed\" then the Usage Counts will be shown.
\r\n c. Select the Usage Counts Option Ring once and it will toggle \r\n to the alternative option.
\r\n 4. Once the correct setting has been chosen, select OK to leave the Button \r\n Features menu.
\r\n 5. Select OK out of the Setup menu and return to the communication \r\n page.

\r\n

For \r\n further information on Usage Counts, see the Button Features \r\n Menu Entry in the DynaVox/DynaMyte Reference Manual.

\r\n
',4,1,1,'2001-11-16 16:43:34','2002-11-25 12:09:43','2003-07-24 01:04:48',NULL,11,NULL,0,0,0,0,0,NULL,NULL,NULL,NULL,11,NULL,NULL,NULL); -CREATE TABLE t2 ( access_id smallint(6) NOT NULL default '0', name varchar(20) binary default NULL, rank smallint(6) NOT NULL default '0', KEY t2$access_id (access_id) ) ENGINE=MyISAM; -INSERT INTO t2 VALUES (1,'Everyone',2),(2,'Help',3),(3,'Customer Support',1); -SELECT f_acc.rank, a1.rank, a2.rank FROM t1 LEFT JOIN t1 f1 ON (f1.access_id=1 AND f1.faq_group_id = t1.faq_group_id) LEFT JOIN t2 a1 ON (a1.access_id = f1.access_id) LEFT JOIN t1 f2 ON (f2.access_id=3 AND f2.faq_group_id = t1.faq_group_id) LEFT JOIN t2 a2 ON (a2.access_id = f2.access_id), t2 f_acc WHERE LEAST(a1.rank,a2.rank) = f_acc.rank; -rank rank rank -2 2 NULL -DROP TABLE t1,t2; -CREATE TABLE t1 (d varchar(6), k int); -INSERT INTO t1 VALUES (NULL, 2); -SELECT GREATEST(d,d) FROM t1 WHERE k=2; -GREATEST(d,d) -NULL -DROP TABLE t1; -select 1197.90 mod 50; -1197.90 mod 50 -47.90 -select 5.1 mod 3, 5.1 mod -3, -5.1 mod 3, -5.1 mod -3; -5.1 mod 3 5.1 mod -3 -5.1 mod 3 -5.1 mod -3 -2.1 2.1 -2.1 -2.1 -select 5 mod 3, 5 mod -3, -5 mod 3, -5 mod -3; -5 mod 3 5 mod -3 -5 mod 3 -5 mod -3 -2 2 -2 -2 diff --git a/mysql-test/r/ps_2myisam.result.es b/mysql-test/r/ps_2myisam.result.es deleted file mode 100644 index 3f17b4cdcd0..00000000000 --- a/mysql-test/r/ps_2myisam.result.es +++ /dev/null @@ -1,3130 +0,0 @@ -use test; -drop table if exists t1, t9 ; -create table t1 -( -a int, b varchar(30), -primary key(a) -) engine = 'MYISAM' ; -create table t9 -( -c1 tinyint, c2 smallint, c3 mediumint, c4 int, -c5 integer, c6 bigint, c7 float, c8 double, -c9 double precision, c10 real, c11 decimal(7, 4), c12 numeric(8, 4), -c13 date, c14 datetime, c15 timestamp(14), c16 time, -c17 year, c18 bit, c19 bool, c20 char, -c21 char(10), c22 varchar(30), c23 tinyblob, c24 tinytext, -c25 blob, c26 text, c27 mediumblob, c28 mediumtext, -c29 longblob, c30 longtext, c31 enum('one', 'two', 'three'), -c32 set('monday', 'tuesday', 'wednesday'), -primary key(c1) -) engine = 'MYISAM' ; -delete from t1 ; -insert into t1 values (1,'one'); -insert into t1 values (2,'two'); -insert into t1 values (3,'three'); -insert into t1 values (4,'four'); -commit ; -delete from t9 ; -insert into t9 -set c1= 1, c2= 1, c3= 1, c4= 1, c5= 1, c6= 1, c7= 1, c8= 1, c9= 1, -c10= 1, c11= 1, c12 = 1, -c13= '2004-02-29', c14= '2004-02-29 11:11:11', c15= '2004-02-29 11:11:11', -c16= '11:11:11', c17= '2004', -c18= 1, c19=true, c20= 'a', c21= '123456789a', -c22= '123456789a123456789b123456789c', c23= 'tinyblob', c24= 'tinytext', -c25= 'blob', c26= 'text', c27= 'mediumblob', c28= 'mediumtext', -c29= 'longblob', c30= 'longtext', c31='one', c32= 'monday'; -insert into t9 -set c1= 9, c2= 9, c3= 9, c4= 9, c5= 9, c6= 9, c7= 9, c8= 9, c9= 9, -c10= 9, c11= 9, c12 = 9, -c13= '2004-02-29', c14= '2004-02-29 11:11:11', c15= '2004-02-29 11:11:11', -c16= '11:11:11', c17= '2004', -c18= 1, c19=false, c20= 'a', c21= '123456789a', -c22= '123456789a123456789b123456789c', c23= 'tinyblob', c24= 'tinytext', -c25= 'blob', c26= 'text', c27= 'mediumblob', c28= 'mediumtext', -c29= 'longblob', c30= 'longtext', c31='two', c32= 'tuesday'; -commit ; -test_sequence ------- simple select tests ------ -prepare stmt1 from ' select * from t9 order by c1 ' ; -execute stmt1; -Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr -def test t9 t9 c1 c1 1 4 1 N 49155 0 63 -def test t9 t9 c2 c2 2 6 1 Y 32768 0 63 -def test t9 t9 c3 c3 9 9 1 Y 32768 0 63 -def test t9 t9 c4 c4 3 11 1 Y 32768 0 63 -def test t9 t9 c5 c5 3 11 1 Y 32768 0 63 -def test t9 t9 c6 c6 8 20 1 Y 32768 0 63 -def test t9 t9 c7 c7 4 12 1 Y 32768 31 63 -def test t9 t9 c8 c8 5 22 1 Y 32768 31 63 -def test t9 t9 c9 c9 5 22 1 Y 32768 31 63 -def test t9 t9 c10 c10 5 22 1 Y 32768 31 63 -def test t9 t9 c11 c11 0 9 6 Y 32768 4 63 -def test t9 t9 c12 c12 0 10 6 Y 32768 4 63 -def test t9 t9 c13 c13 10 10 10 Y 128 0 63 -def test t9 t9 c14 c14 12 19 19 Y 128 0 63 -def test t9 t9 c15 c15 7 19 19 N 1249 0 63 -def test t9 t9 c16 c16 11 8 8 Y 128 0 63 -def test t9 t9 c17 c17 13 4 4 Y 32864 0 63 -def test t9 t9 c18 c18 1 1 1 Y 32768 0 63 -def test t9 t9 c19 c19 1 1 1 Y 32768 0 63 -def test t9 t9 c20 c20 254 1 1 Y 0 0 8 -def test t9 t9 c21 c21 253 10 10 Y 0 0 8 -def test t9 t9 c22 c22 253 30 30 Y 0 0 8 -def test t9 t9 c23 c23 252 255 8 Y 144 0 63 -def test t9 t9 c24 c24 252 255 8 Y 16 0 8 -def test t9 t9 c25 c25 252 65535 4 Y 144 0 63 -def test t9 t9 c26 c26 252 65535 4 Y 16 0 8 -def test t9 t9 c27 c27 252 16777215 10 Y 144 0 63 -def test t9 t9 c28 c28 252 16777215 10 Y 16 0 8 -def test t9 t9 c29 c29 252 16777215 8 Y 144 0 63 -def test t9 t9 c30 c30 252 16777215 8 Y 16 0 8 -def test t9 t9 c31 c31 254 5 3 Y 256 0 8 -def test t9 t9 c32 c32 254 24 7 Y 2048 0 8 -c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 c13 c14 c15 c16 c17 c18 c19 c20 c21 c22 c23 c24 c25 c26 c27 c28 c29 c30 c31 c32 -1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday -9 9 9 9 9 9 9 9 9 9 9.0000 9.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 0 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext two tuesday -set @arg00='SELECT' ; -prepare stmt1 from ' ? a from t1 where a=1 '; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '? a from t1 where a=1' at line 1 -set @arg00=1 ; -select @arg00, b from t1 where a=1 ; -@arg00 b -1 one -prepare stmt1 from ' select ?, b from t1 where a=1 ' ; -execute stmt1 using @arg00 ; -? b -1 one -set @arg00='lion' ; -select @arg00, b from t1 where a=1 ; -@arg00 b -lion one -prepare stmt1 from ' select ?, b from t1 where a=1 ' ; -execute stmt1 using @arg00 ; -? b -lion one -set @arg00=NULL ; -select @arg00, b from t1 where a=1 ; -@arg00 b -NULL one -prepare stmt1 from ' select ?, b from t1 where a=1 ' ; -execute stmt1 using @arg00 ; -? b -NULL one -set @arg00=1 ; -select b, a - @arg00 from t1 where a=1 ; -b a - @arg00 -one 0 -prepare stmt1 from ' select b, a - ? from t1 where a=1 ' ; -execute stmt1 using @arg00 ; -b a - ? -one 0 -set @arg00=null ; -select @arg00 as my_col ; -my_col -NULL -prepare stmt1 from ' select ? as my_col'; -execute stmt1 using @arg00 ; -my_col -NULL -select @arg00 + 1 as my_col ; -my_col -NULL -prepare stmt1 from ' select ? + 1 as my_col'; -execute stmt1 using @arg00 ; -my_col -NULL -select 1 + @arg00 as my_col ; -my_col -NULL -prepare stmt1 from ' select 1 + ? as my_col'; -execute stmt1 using @arg00 ; -my_col -NULL -set @arg00='MySQL' ; -select substr(@arg00,1,2) from t1 where a=1 ; -substr(@arg00,1,2) -My -prepare stmt1 from ' select substr(?,1,2) from t1 where a=1 ' ; -execute stmt1 using @arg00 ; -substr(?,1,2) -My -set @arg00=3 ; -select substr('MySQL',@arg00,5) from t1 where a=1 ; -substr('MySQL',@arg00,5) -SQL -prepare stmt1 from ' select substr(''MySQL'',?,5) from t1 where a=1 ' ; -execute stmt1 using @arg00 ; -substr('MySQL',?,5) -SQL -select substr('MySQL',1,@arg00) from t1 where a=1 ; -substr('MySQL',1,@arg00) -MyS -prepare stmt1 from ' select substr(''MySQL'',1,?) from t1 where a=1 ' ; -execute stmt1 using @arg00 ; -substr('MySQL',1,?) -MyS -set @arg00='MySQL' ; -select a , concat(@arg00,b) from t1 order by a; -a concat(@arg00,b) -1 MySQLone -2 MySQLtwo -3 MySQLthree -4 MySQLfour -prepare stmt1 from ' select a , concat(?,b) from t1 order by a ' ; -execute stmt1 using @arg00; -a concat(?,b) -1 MySQLone -2 MySQLtwo -3 MySQLthree -4 MySQLfour -select a , concat(b,@arg00) from t1 order by a ; -a concat(b,@arg00) -1 oneMySQL -2 twoMySQL -3 threeMySQL -4 fourMySQL -prepare stmt1 from ' select a , concat(b,?) from t1 order by a ' ; -execute stmt1 using @arg00; -a concat(b,?) -1 oneMySQL -2 twoMySQL -3 threeMySQL -4 fourMySQL -set @arg00='MySQL' ; -select group_concat(@arg00,b order by a) from t1 -group by 'a' ; -group_concat(@arg00,b order by a) -MySQLone,MySQLtwo,MySQLthree,MySQLfour -prepare stmt1 from ' select group_concat(?,b order by a) from t1 -group by ''a'' ' ; -execute stmt1 using @arg00; -group_concat(?,b order by a) -MySQLone,MySQLtwo,MySQLthree,MySQLfour -select group_concat(b,@arg00 order by a) from t1 -group by 'a' ; -group_concat(b,@arg00 order by a) -oneMySQL,twoMySQL,threeMySQL,fourMySQL -prepare stmt1 from ' select group_concat(b,? order by a) from t1 -group by ''a'' ' ; -execute stmt1 using @arg00; -group_concat(b,? order by a) -oneMySQL,twoMySQL,threeMySQL,fourMySQL -set @arg00='first' ; -set @arg01='second' ; -set @arg02=NULL; -select @arg00, @arg01 from t1 where a=1 ; -@arg00 @arg01 -first second -prepare stmt1 from ' select ?, ? from t1 where a=1 ' ; -execute stmt1 using @arg00, @arg01 ; -? ? -first second -execute stmt1 using @arg02, @arg01 ; -? ? -NULL second -execute stmt1 using @arg00, @arg02 ; -? ? -first NULL -execute stmt1 using @arg02, @arg02 ; -? ? -NULL NULL -drop table if exists t5 ; -create table t5 (id1 int(11) not null default '0', -value2 varchar(100), value1 varchar(100)) ; -insert into t5 values (1,'hh','hh'),(2,'hh','hh'), -(1,'ii','ii'),(2,'ii','ii') ; -prepare stmt1 from ' select id1,value1 from t5 where id1=? or value1=? order by id1,value1 ' ; -set @arg00=1 ; -set @arg01='hh' ; -execute stmt1 using @arg00, @arg01 ; -id1 value1 -1 hh -1 ii -2 hh -drop table t5 ; -drop table if exists t5 ; -create table t5(session_id char(9) not null) ; -insert into t5 values ('abc') ; -prepare stmt1 from ' select * from t5 -where ?=''1111'' and session_id = ''abc'' ' ; -set @arg00='abc' ; -execute stmt1 using @arg00 ; -session_id -set @arg00='1111' ; -execute stmt1 using @arg00 ; -session_id -abc -set @arg00='abc' ; -execute stmt1 using @arg00 ; -session_id -drop table t5 ; -set @arg00='FROM' ; -select a @arg00 t1 where a=1 ; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@arg00 t1 where a=1' at line 1 -prepare stmt1 from ' select a ? t1 where a=1 ' ; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '? t1 where a=1' at line 1 -set @arg00='t1' ; -select a from @arg00 where a=1 ; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@arg00 where a=1' at line 1 -prepare stmt1 from ' select a from ? where a=1 ' ; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '? where a=1' at line 1 -set @arg00='WHERE' ; -select a from t1 @arg00 a=1 ; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@arg00 a=1' at line 1 -prepare stmt1 from ' select a from t1 ? a=1 ' ; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '? a=1' at line 1 -set @arg00=1 ; -select a FROM t1 where a=@arg00 ; -a -1 -prepare stmt1 from ' select a FROM t1 where a=? ' ; -execute stmt1 using @arg00 ; -a -1 -set @arg00=1000 ; -execute stmt1 using @arg00 ; -a -set @arg00=NULL ; -select a FROM t1 where a=@arg00 ; -a -prepare stmt1 from ' select a FROM t1 where a=? ' ; -execute stmt1 using @arg00 ; -a -set @arg00=4 ; -select a FROM t1 where a=sqrt(@arg00) ; -a -2 -prepare stmt1 from ' select a FROM t1 where a=sqrt(?) ' ; -execute stmt1 using @arg00 ; -a -2 -set @arg00=NULL ; -select a FROM t1 where a=sqrt(@arg00) ; -a -prepare stmt1 from ' select a FROM t1 where a=sqrt(?) ' ; -execute stmt1 using @arg00 ; -a -set @arg00=2 ; -set @arg01=3 ; -select a FROM t1 where a in (@arg00,@arg01) order by a; -a -2 -3 -prepare stmt1 from ' select a FROM t1 where a in (?,?) order by a '; -execute stmt1 using @arg00, @arg01; -a -2 -3 -set @arg00= 'one' ; -set @arg01= 'two' ; -set @arg02= 'five' ; -prepare stmt1 from ' select b FROM t1 where b in (?,?,?) order by b ' ; -execute stmt1 using @arg00, @arg01, @arg02 ; -b -one -two -prepare stmt1 from ' select b FROM t1 where b like ? '; -set @arg00='two' ; -execute stmt1 using @arg00 ; -b -two -set @arg00='tw%' ; -execute stmt1 using @arg00 ; -b -two -set @arg00='%wo' ; -execute stmt1 using @arg00 ; -b -two -set @arg00=null ; -insert into t9 set c1= 0, c5 = NULL ; -select c5 from t9 where c5 > NULL ; -c5 -prepare stmt1 from ' select c5 from t9 where c5 > ? '; -execute stmt1 using @arg00 ; -c5 -select c5 from t9 where c5 < NULL ; -c5 -prepare stmt1 from ' select c5 from t9 where c5 < ? '; -execute stmt1 using @arg00 ; -c5 -select c5 from t9 where c5 = NULL ; -c5 -prepare stmt1 from ' select c5 from t9 where c5 = ? '; -execute stmt1 using @arg00 ; -c5 -select c5 from t9 where c5 <=> NULL ; -c5 -NULL -prepare stmt1 from ' select c5 from t9 where c5 <=> ? '; -execute stmt1 using @arg00 ; -c5 -NULL -delete from t9 where c1= 0 ; -set @arg00='>' ; -select a FROM t1 where a @arg00 1 ; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@arg00 1' at line 1 -prepare stmt1 from ' select a FROM t1 where a ? 1 ' ; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '? 1' at line 1 -set @arg00=1 ; -select a,b FROM t1 where a is not NULL -AND b is not NULL group by a - @arg00 ; -a b -1 one -2 two -3 three -4 four -prepare stmt1 from ' select a,b FROM t1 where a is not NULL -AND b is not NULL group by a - ? ' ; -execute stmt1 using @arg00 ; -a b -1 one -2 two -3 three -4 four -set @arg00='two' ; -select a,b FROM t1 where a is not NULL -AND b is not NULL having b <> @arg00 order by a ; -a b -1 one -3 three -4 four -prepare stmt1 from ' select a,b FROM t1 where a is not NULL -AND b is not NULL having b <> ? order by a ' ; -execute stmt1 using @arg00 ; -a b -1 one -3 three -4 four -set @arg00=1 ; -select a,b FROM t1 where a is not NULL -AND b is not NULL order by a - @arg00 ; -a b -1 one -2 two -3 three -4 four -prepare stmt1 from ' select a,b FROM t1 where a is not NULL -AND b is not NULL order by a - ? ' ; -execute stmt1 using @arg00 ; -a b -1 one -2 two -3 three -4 four -set @arg00=2 ; -select a,b from t1 order by 2 ; -a b -4 four -1 one -3 three -2 two -prepare stmt1 from ' select a,b from t1 -order by ? '; -execute stmt1 using @arg00; -a b -4 four -1 one -3 three -2 two -set @arg00=1 ; -execute stmt1 using @arg00; -a b -1 one -2 two -3 three -4 four -set @arg00=0 ; -execute stmt1 using @arg00; -ERROR 42S22: Unknown column '?' in 'order clause' -set @arg00=1; -prepare stmt1 from ' select a,b from t1 order by a -limit 1 '; -execute stmt1 ; -a b -1 one -prepare stmt1 from ' select a,b from t1 -limit ? '; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '?' at line 2 -set @arg00='b' ; -set @arg01=0 ; -set @arg02=2 ; -set @arg03=2 ; -select sum(a), @arg00 from t1 where a > @arg01 -and b is not null group by substr(b,@arg02) -having sum(a) <> @arg03 ; -sum(a) @arg00 -3 b -1 b -4 b -prepare stmt1 from ' select sum(a), ? from t1 where a > ? -and b is not null group by substr(b,?) -having sum(a) <> ? '; -execute stmt1 using @arg00, @arg01, @arg02, @arg03; -sum(a) ? -3 b -1 b -4 b -test_sequence ------- join tests ------ -select first.a as a1, second.a as a2 -from t1 first, t1 second -where first.a = second.a order by a1 ; -a1 a2 -1 1 -2 2 -3 3 -4 4 -prepare stmt1 from ' select first.a as a1, second.a as a2 - from t1 first, t1 second - where first.a = second.a order by a1 '; -execute stmt1 ; -a1 a2 -1 1 -2 2 -3 3 -4 4 -set @arg00='ABC'; -set @arg01='two'; -set @arg02='one'; -select first.a, @arg00, second.a FROM t1 first, t1 second -where @arg01 = first.b or first.a = second.a or second.b = @arg02 -order by second.a, first.a; -a @arg00 a -1 ABC 1 -2 ABC 1 -3 ABC 1 -4 ABC 1 -2 ABC 2 -2 ABC 3 -3 ABC 3 -2 ABC 4 -4 ABC 4 -prepare stmt1 from ' select first.a, ?, second.a FROM t1 first, t1 second - where ? = first.b or first.a = second.a or second.b = ? - order by second.a, first.a'; -execute stmt1 using @arg00, @arg01, @arg02; -a ? a -1 ABC 1 -2 ABC 1 -3 ABC 1 -4 ABC 1 -2 ABC 2 -2 ABC 3 -3 ABC 3 -2 ABC 4 -4 ABC 4 -drop table if exists t2 ; -create table t2 as select * from t1 ; -set @query1= 'SELECT * FROM t2 join t1 on (t1.a=t2.a) order by t2.a ' ; -set @query2= 'SELECT * FROM t2 natural join t1 order by t2.a ' ; -set @query3= 'SELECT * FROM t2 join t1 using(a) order by t2.a ' ; -set @query4= 'SELECT * FROM t2 left join t1 on(t1.a=t2.a) order by t2.a ' ; -set @query5= 'SELECT * FROM t2 natural left join t1 order by t2.a ' ; -set @query6= 'SELECT * FROM t2 left join t1 using(a) order by t2.a ' ; -set @query7= 'SELECT * FROM t2 right join t1 on(t1.a=t2.a) order by t2.a ' ; -set @query8= 'SELECT * FROM t2 natural right join t1 order by t2.a ' ; -set @query9= 'SELECT * FROM t2 right join t1 using(a) order by t2.a ' ; -the join statement is: -SELECT * FROM t2 right join t1 using(a) order by t2.a -prepare stmt1 from @query9 ; -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -the join statement is: -SELECT * FROM t2 natural right join t1 order by t2.a -prepare stmt1 from @query8 ; -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -the join statement is: -SELECT * FROM t2 right join t1 on(t1.a=t2.a) order by t2.a -prepare stmt1 from @query7 ; -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -the join statement is: -SELECT * FROM t2 left join t1 using(a) order by t2.a -prepare stmt1 from @query6 ; -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -the join statement is: -SELECT * FROM t2 natural left join t1 order by t2.a -prepare stmt1 from @query5 ; -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -the join statement is: -SELECT * FROM t2 left join t1 on(t1.a=t2.a) order by t2.a -prepare stmt1 from @query4 ; -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -the join statement is: -SELECT * FROM t2 join t1 using(a) order by t2.a -prepare stmt1 from @query3 ; -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -the join statement is: -SELECT * FROM t2 natural join t1 order by t2.a -prepare stmt1 from @query2 ; -execute stmt1 ; -a b -1 one -2 two -3 three -4 four -execute stmt1 ; -a b -1 one -2 two -3 three -4 four -execute stmt1 ; -a b -1 one -2 two -3 three -4 four -the join statement is: -SELECT * FROM t2 join t1 on (t1.a=t2.a) order by t2.a -prepare stmt1 from @query1 ; -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -drop table t2 ; -test_sequence ------- subquery tests ------ -prepare stmt1 from ' select a, b FROM t1 outer_table where - a = (select a from t1 where b = ''two'') '; -execute stmt1 ; -a b -2 two -set @arg00='two' ; -select a, b FROM t1 outer_table where -a = (select a from t1 where b = 'two' ) and b=@arg00 ; -a b -2 two -prepare stmt1 from ' select a, b FROM t1 outer_table where - a = (select a from t1 where b = ''two'') and b=? '; -execute stmt1 using @arg00; -a b -2 two -set @arg00='two' ; -select a, b FROM t1 outer_table where -a = (select a from t1 where b = @arg00 ) and b='two' ; -a b -2 two -prepare stmt1 from ' select a, b FROM t1 outer_table where - a = (select a from t1 where b = ? ) and b=''two'' ' ; -execute stmt1 using @arg00; -a b -2 two -set @arg00=3 ; -set @arg01='three' ; -select a,b FROM t1 where (a,b) in (select 3, 'three'); -a b -3 three -select a FROM t1 where (a,b) in (select @arg00,@arg01); -a -3 -prepare stmt1 from ' select a FROM t1 where (a,b) in (select ?, ?) '; -execute stmt1 using @arg00, @arg01; -a -3 -set @arg00=1 ; -set @arg01='two' ; -set @arg02=2 ; -set @arg03='two' ; -select a, @arg00, b FROM t1 outer_table where -b=@arg01 and a = (select @arg02 from t1 where b = @arg03 ) ; -a @arg00 b -2 1 two -prepare stmt1 from ' select a, ?, b FROM t1 outer_table where - b=? and a = (select ? from t1 where b = ? ) ' ; -execute stmt1 using @arg00, @arg01, @arg02, @arg03 ; -a ? b -2 1 two -prepare stmt1 from ' select a, b FROM t1 outer_table where - a = (select a from t1 where b = outer_table.b ) order by a '; -execute stmt1 ; -a b -1 one -2 two -3 three -4 four -prepare stmt1 from ' SELECT a as ccc from t1 where a+1= - (SELECT 1+ccc from t1 where ccc+1=a+1 and a=1) '; -execute stmt1 ; -ccc -1 -deallocate prepare stmt1 ; -prepare stmt1 from ' SELECT a as ccc from t1 where a+1= - (SELECT 1+ccc from t1 where ccc+1=a+1 and a=1) '; -execute stmt1 ; -ccc -1 -deallocate prepare stmt1 ; -prepare stmt1 from ' SELECT a as ccc from t1 where a+1= - (SELECT 1+ccc from t1 where ccc+1=a+1 and a=1) '; -execute stmt1 ; -ccc -1 -deallocate prepare stmt1 ; -set @arg00='two' ; -select a, b FROM t1 outer_table where -a = (select a from t1 where b = outer_table.b ) and b=@arg00 ; -a b -2 two -prepare stmt1 from ' select a, b FROM t1 outer_table where - a = (select a from t1 where b = outer_table.b) and b=? '; -execute stmt1 using @arg00; -a b -2 two -set @arg00=2 ; -select a, b FROM t1 outer_table where -a = (select a from t1 where a = @arg00 and b = outer_table.b) and b='two' ; -a b -2 two -prepare stmt1 from ' select a, b FROM t1 outer_table where - a = (select a from t1 where a = ? and b = outer_table.b) and b=''two'' ' ; -execute stmt1 using @arg00; -a b -2 two -set @arg00=2 ; -select a, b FROM t1 outer_table where -a = (select a from t1 where outer_table.a = @arg00 and a=2) and b='two' ; -a b -2 two -prepare stmt1 from ' select a, b FROM t1 outer_table where - a = (select a from t1 where outer_table.a = ? and a=2) and b=''two'' ' ; -execute stmt1 using @arg00; -a b -2 two -set @arg00=1 ; -set @arg01='two' ; -set @arg02=2 ; -set @arg03='two' ; -select a, @arg00, b FROM t1 outer_table where -b=@arg01 and a = (select @arg02 from t1 where outer_table.b = @arg03 -and outer_table.a=a ) ; -a @arg00 b -2 1 two -prepare stmt1 from ' select a, ?, b FROM t1 outer_table where - b=? and a = (select ? from t1 where outer_table.b = ? - and outer_table.a=a ) ' ; -execute stmt1 using @arg00, @arg01, @arg02, @arg03 ; -a ? b -2 1 two -set @arg00=1 ; -set @arg01=0 ; -select a, @arg00 -from ( select a - @arg00 as a from t1 where a=@arg00 ) as t2 -where a=@arg01; -a @arg00 -0 1 -prepare stmt1 from ' select a, ? - from ( select a - ? as a from t1 where a=? ) as t2 - where a=? '; -execute stmt1 using @arg00, @arg00, @arg00, @arg01 ; -a ? -0 1 -drop table if exists t2 ; -create table t2 as select * from t1; -prepare stmt1 from ' select a in (select a from t2) from t1 ' ; -execute stmt1 ; -a in (select a from t2) -1 -1 -1 -1 -drop table if exists t5, t6, t7 ; -create table t5 (a int , b int) ; -create table t6 like t5 ; -create table t7 like t5 ; -insert into t5 values (0, 100), (1, 2), (1, 3), (2, 2), (2, 7), -(2, -1), (3, 10) ; -insert into t6 values (0, 0), (1, 1), (2, 1), (3, 1), (4, 1) ; -insert into t7 values (3, 3), (2, 2), (1, 1) ; -prepare stmt1 from ' select a, (select count(distinct t5.b) as sum from t5, t6 - where t5.a=t6.a and t6.b > 0 and t5.a <= t7.b - group by t5.a order by sum limit 1) from t7 ' ; -execute stmt1 ; -a (select count(distinct t5.b) as sum from t5, t6 - where t5.a=t6.a and t6.b > 0 and t5.a <= t7.b - group by t5.a order by sum limit 1) -3 1 -2 2 -1 2 -execute stmt1 ; -a (select count(distinct t5.b) as sum from t5, t6 - where t5.a=t6.a and t6.b > 0 and t5.a <= t7.b - group by t5.a order by sum limit 1) -3 1 -2 2 -1 2 -execute stmt1 ; -a (select count(distinct t5.b) as sum from t5, t6 - where t5.a=t6.a and t6.b > 0 and t5.a <= t7.b - group by t5.a order by sum limit 1) -3 1 -2 2 -1 2 -drop table t5, t6, t7 ; -drop table if exists t2 ; -create table t2 as select * from t9; -set @stmt= ' SELECT - (SELECT SUM(c1 + c12 + 0.0) FROM t2 - where (t9.c2 - 0e-3) = t2.c2 - GROUP BY t9.c15 LIMIT 1) as scalar_s, - exists (select 1.0e+0 from t2 - where t2.c3 * 9.0000000000 = t9.c4) as exists_s, - c5 * 4 in (select c6 + 0.3e+1 from t2) as in_s, - (c7 - 4, c8 - 4) in (select c9 + 4.0, c10 + 40e-1 from t2) as in_row_s -FROM t9, -(select c25 x, c32 y from t2) tt WHERE x = c25 ' ; -prepare stmt1 from @stmt ; -execute stmt1 ; -execute stmt1 ; -set @stmt= concat('explain ',@stmt); -prepare stmt1 from @stmt ; -execute stmt1 ; -execute stmt1 ; -set @stmt= ' SELECT - (SELECT SUM(c1+c12+?) FROM t2 where (t9.c2-?)=t2.c2 - GROUP BY t9.c15 LIMIT 1) as scalar_s, - exists (select ? from t2 - where t2.c3*?=t9.c4) as exists_s, - c5*? in (select c6+? from t2) as in_s, - (c7-?, c8-?) in (select c9+?, c10+? from t2) as in_row_s -FROM t9, -(select c25 x, c32 y from t2) tt WHERE x =c25 ' ; -set @arg00= 0.0 ; -set @arg01= 0e-3 ; -set @arg02= 1.0e+0 ; -set @arg03= 9.0000000000 ; -set @arg04= 4 ; -set @arg05= 0.3e+1 ; -set @arg06= 4 ; -set @arg07= 4 ; -set @arg08= 4.0 ; -set @arg09= 40e-1 ; -prepare stmt1 from @stmt ; -execute stmt1 using @arg00, @arg01, @arg02, @arg03, @arg04, @arg05, @arg06, -@arg07, @arg08, @arg09 ; -execute stmt1 using @arg00, @arg01, @arg02, @arg03, @arg04, @arg05, @arg06, -@arg07, @arg08, @arg09 ; -set @stmt= concat('explain ',@stmt); -prepare stmt1 from @stmt ; -execute stmt1 using @arg00, @arg01, @arg02, @arg03, @arg04, @arg05, @arg06, -@arg07, @arg08, @arg09 ; -execute stmt1 using @arg00, @arg01, @arg02, @arg03, @arg04, @arg05, @arg06, -@arg07, @arg08, @arg09 ; -drop table t2 ; -select 1 < (select a from t1) ; -ERROR 21000: Subquery returns more than 1 row -prepare stmt1 from ' select 1 < (select a from t1) ' ; -execute stmt1 ; -ERROR 21000: Subquery returns more than 1 row -select 1 as my_col ; -my_col -1 -test_sequence ------- union tests ------ -prepare stmt1 from ' select a FROM t1 where a=1 - union distinct - select a FROM t1 where a=1 '; -execute stmt1 ; -a -1 -execute stmt1 ; -a -1 -prepare stmt1 from ' select a FROM t1 where a=1 - union all - select a FROM t1 where a=1 '; -execute stmt1 ; -a -1 -1 -prepare stmt1 from ' SELECT 1, 2 union SELECT 1 ' ; -ERROR 21000: The used SELECT statements have a different number of columns -prepare stmt1 from ' SELECT 1 union SELECT 1, 2 ' ; -ERROR 21000: The used SELECT statements have a different number of columns -prepare stmt1 from ' SELECT * from t1 union SELECT 1 ' ; -ERROR 21000: The used SELECT statements have a different number of columns -prepare stmt1 from ' SELECT 1 union SELECT * from t1 ' ; -ERROR 21000: The used SELECT statements have a different number of columns -set @arg00=1 ; -select @arg00 FROM t1 where a=1 -union distinct -select 1 FROM t1 where a=1; -@arg00 -1 -prepare stmt1 from ' select ? FROM t1 where a=1 - union distinct - select 1 FROM t1 where a=1 ' ; -execute stmt1 using @arg00; -? -1 -set @arg00=1 ; -select 1 FROM t1 where a=1 -union distinct -select @arg00 FROM t1 where a=1; -1 -1 -prepare stmt1 from ' select 1 FROM t1 where a=1 - union distinct - select ? FROM t1 where a=1 ' ; -execute stmt1 using @arg00; -1 -1 -set @arg00='a' ; -select @arg00 FROM t1 where a=1 -union distinct -select @arg00 FROM t1 where a=1; -@arg00 -a -prepare stmt1 from ' select ? FROM t1 where a=1 - union distinct - select ? FROM t1 where a=1 '; -execute stmt1 using @arg00, @arg00; -? -a -prepare stmt1 from ' select ? - union distinct - select ? '; -execute stmt1 using @arg00, @arg00; -? -a -set @arg00='a' ; -set @arg01=1 ; -set @arg02='a' ; -set @arg03=2 ; -select @arg00 FROM t1 where a=@arg01 -union distinct -select @arg02 FROM t1 where a=@arg03; -@arg00 -a -prepare stmt1 from ' select ? FROM t1 where a=? - union distinct - select ? FROM t1 where a=? ' ; -execute stmt1 using @arg00, @arg01, @arg02, @arg03; -? -a -set @arg00=1 ; -prepare stmt1 from ' select sum(a) + 200, ? from t1 -union distinct -select sum(a) + 200, 1 from t1 -group by b ' ; -execute stmt1 using @arg00; -sum(a) + 200 ? -210 1 -204 1 -201 1 -203 1 -202 1 -set @Oporto='Oporto' ; -set @Lisboa='Lisboa' ; -set @0=0 ; -set @1=1 ; -set @2=2 ; -set @3=3 ; -set @4=4 ; -select @Oporto,@Lisboa,@0,@1,@2,@3,@4 ; -@Oporto @Lisboa @0 @1 @2 @3 @4 -Oporto Lisboa 0 1 2 3 4 -select sum(a) + 200 as the_sum, @Oporto as the_town from t1 -group by b -union distinct -select sum(a) + 200, @Lisboa from t1 -group by b ; -the_sum the_town -204 Oporto -201 Oporto -203 Oporto -202 Oporto -204 Lisboa -201 Lisboa -203 Lisboa -202 Lisboa -prepare stmt1 from ' select sum(a) + 200 as the_sum, ? as the_town from t1 - group by b - union distinct - select sum(a) + 200, ? from t1 - group by b ' ; -execute stmt1 using @Oporto, @Lisboa; -the_sum the_town -204 Oporto -201 Oporto -203 Oporto -202 Oporto -204 Lisboa -201 Lisboa -203 Lisboa -202 Lisboa -select sum(a) + 200 as the_sum, @Oporto as the_town from t1 -where a > @1 -group by b -union distinct -select sum(a) + 200, @Lisboa from t1 -where a > @2 -group by b ; -the_sum the_town -204 Oporto -203 Oporto -202 Oporto -204 Lisboa -203 Lisboa -prepare stmt1 from ' select sum(a) + 200 as the_sum, ? as the_town from t1 - where a > ? - group by b - union distinct - select sum(a) + 200, ? from t1 - where a > ? - group by b ' ; -execute stmt1 using @Oporto, @1, @Lisboa, @2; -the_sum the_town -204 Oporto -203 Oporto -202 Oporto -204 Lisboa -203 Lisboa -select sum(a) + 200 as the_sum, @Oporto as the_town from t1 -where a > @1 -group by b -having avg(a) > @2 -union distinct -select sum(a) + 200, @Lisboa from t1 -where a > @2 -group by b -having avg(a) > @3; -the_sum the_town -204 Oporto -203 Oporto -204 Lisboa -prepare stmt1 from ' select sum(a) + 200 as the_sum, ? as the_town from t1 - where a > ? - group by b - having avg(a) > ? - union distinct - select sum(a) + 200, ? from t1 - where a > ? - group by b - having avg(a) > ? '; -execute stmt1 using @Oporto, @1, @2, @Lisboa, @2, @3; -the_sum the_town -204 Oporto -203 Oporto -204 Lisboa -test_sequence ------- explain select tests ------ -prepare stmt1 from ' explain select * from t9 ' ; -execute stmt1; -Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr -def id 8 3 1 N 32801 0 8 -def select_type 253 19 6 N 1 31 33 -def table 253 64 2 N 1 31 33 -def type 253 10 3 N 1 31 33 -def possible_keys 253 4096 0 Y 0 31 33 -def key 253 64 0 Y 0 31 33 -def key_len 8 3 0 Y 32800 0 8 -def ref 253 1024 0 Y 0 31 33 -def rows 8 10 1 N 32801 0 8 -def Extra 253 255 0 N 1 31 33 -id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t9 ALL NULL NULL NULL NULL 2 -drop table if exists t2 ; -create table t2 (s varchar(25), fulltext(s)) -ENGINE = 'MYISAM' ; -insert into t2 values ('Gravedigger'), ('Greed'),('Hollow Dogs') ; -commit ; -prepare stmt1 from ' select s from t2 where match (s) against (?) ' ; -set @arg00='Dogs' ; -execute stmt1 using @arg00 ; -s -Hollow Dogs -prepare stmt1 from ' SELECT s FROM t2 -where match (s) against (concat(?,''digger'')) '; -set @arg00='Grave' ; -execute stmt1 using @arg00 ; -s -Gravedigger -drop table t2 ; -test_sequence ------- delete tests ------ -delete from t1 ; -insert into t1 values (1,'one'); -insert into t1 values (2,'two'); -insert into t1 values (3,'three'); -insert into t1 values (4,'four'); -commit ; -delete from t9 ; -insert into t9 -set c1= 1, c2= 1, c3= 1, c4= 1, c5= 1, c6= 1, c7= 1, c8= 1, c9= 1, -c10= 1, c11= 1, c12 = 1, -c13= '2004-02-29', c14= '2004-02-29 11:11:11', c15= '2004-02-29 11:11:11', -c16= '11:11:11', c17= '2004', -c18= 1, c19=true, c20= 'a', c21= '123456789a', -c22= '123456789a123456789b123456789c', c23= 'tinyblob', c24= 'tinytext', -c25= 'blob', c26= 'text', c27= 'mediumblob', c28= 'mediumtext', -c29= 'longblob', c30= 'longtext', c31='one', c32= 'monday'; -insert into t9 -set c1= 9, c2= 9, c3= 9, c4= 9, c5= 9, c6= 9, c7= 9, c8= 9, c9= 9, -c10= 9, c11= 9, c12 = 9, -c13= '2004-02-29', c14= '2004-02-29 11:11:11', c15= '2004-02-29 11:11:11', -c16= '11:11:11', c17= '2004', -c18= 1, c19=false, c20= 'a', c21= '123456789a', -c22= '123456789a123456789b123456789c', c23= 'tinyblob', c24= 'tinytext', -c25= 'blob', c26= 'text', c27= 'mediumblob', c28= 'mediumtext', -c29= 'longblob', c30= 'longtext', c31='two', c32= 'tuesday'; -commit ; -prepare stmt1 from 'delete from t1 where a=2' ; -execute stmt1; -select a,b from t1 where a=2; -a b -execute stmt1; -insert into t1 values(0,NULL); -set @arg00=NULL; -prepare stmt1 from 'delete from t1 where b=?' ; -execute stmt1 using @arg00; -select a,b from t1 where b is NULL ; -a b -0 NULL -set @arg00='one'; -execute stmt1 using @arg00; -select a,b from t1 where b=@arg00; -a b -prepare stmt1 from 'truncate table t1' ; -ERROR HY000: This command is not supported in the prepared statement protocol yet -test_sequence ------- update tests ------ -delete from t1 ; -insert into t1 values (1,'one'); -insert into t1 values (2,'two'); -insert into t1 values (3,'three'); -insert into t1 values (4,'four'); -commit ; -delete from t9 ; -insert into t9 -set c1= 1, c2= 1, c3= 1, c4= 1, c5= 1, c6= 1, c7= 1, c8= 1, c9= 1, -c10= 1, c11= 1, c12 = 1, -c13= '2004-02-29', c14= '2004-02-29 11:11:11', c15= '2004-02-29 11:11:11', -c16= '11:11:11', c17= '2004', -c18= 1, c19=true, c20= 'a', c21= '123456789a', -c22= '123456789a123456789b123456789c', c23= 'tinyblob', c24= 'tinytext', -c25= 'blob', c26= 'text', c27= 'mediumblob', c28= 'mediumtext', -c29= 'longblob', c30= 'longtext', c31='one', c32= 'monday'; -insert into t9 -set c1= 9, c2= 9, c3= 9, c4= 9, c5= 9, c6= 9, c7= 9, c8= 9, c9= 9, -c10= 9, c11= 9, c12 = 9, -c13= '2004-02-29', c14= '2004-02-29 11:11:11', c15= '2004-02-29 11:11:11', -c16= '11:11:11', c17= '2004', -c18= 1, c19=false, c20= 'a', c21= '123456789a', -c22= '123456789a123456789b123456789c', c23= 'tinyblob', c24= 'tinytext', -c25= 'blob', c26= 'text', c27= 'mediumblob', c28= 'mediumtext', -c29= 'longblob', c30= 'longtext', c31='two', c32= 'tuesday'; -commit ; -prepare stmt1 from 'update t1 set b=''a=two'' where a=2' ; -execute stmt1; -select a,b from t1 where a=2; -a b -2 a=two -execute stmt1; -select a,b from t1 where a=2; -a b -2 a=two -set @arg00=NULL; -prepare stmt1 from 'update t1 set b=? where a=2' ; -execute stmt1 using @arg00; -select a,b from t1 where a=2; -a b -2 NULL -set @arg00='two'; -execute stmt1 using @arg00; -select a,b from t1 where a=2; -a b -2 two -set @arg00=2; -prepare stmt1 from 'update t1 set b=NULL where a=?' ; -execute stmt1 using @arg00; -select a,b from t1 where a=@arg00; -a b -2 NULL -update t1 set b='two' where a=@arg00; -set @arg00=2000; -execute stmt1 using @arg00; -select a,b from t1 where a=@arg00; -a b -set @arg00=2; -set @arg01=22; -prepare stmt1 from 'update t1 set a=? where a=?' ; -execute stmt1 using @arg00, @arg00; -select a,b from t1 where a=@arg00; -a b -2 two -execute stmt1 using @arg01, @arg00; -select a,b from t1 where a=@arg01; -a b -22 two -execute stmt1 using @arg00, @arg01; -select a,b from t1 where a=@arg00; -a b -2 two -set @arg00=NULL; -set @arg01=2; -execute stmt1 using @arg00, @arg01; -Warnings: -Warning 1263 Data truncated; NULL supplied to NOT NULL column 'a' at row 1 -select a,b from t1 order by a; -a b -0 two -1 one -3 three -4 four -set @arg00=0; -execute stmt1 using @arg01, @arg00; -select a,b from t1 order by a; -a b -1 one -2 two -3 three -4 four -set @arg00=23; -set @arg01='two'; -set @arg02=2; -set @arg03='two'; -set @arg04=2; -drop table if exists t2; -create table t2 as select a,b from t1 ; -prepare stmt1 from 'update t1 set a=? where b=? - and a in (select ? from t2 - where b = ? or a = ?)'; -execute stmt1 using @arg00, @arg01, @arg02, @arg03, @arg04 ; -affected rows: 1 -info: Rows matched: 1 Changed: 1 Warnings: 0 -select a,b from t1 where a = @arg00 ; -a b -23 two -prepare stmt1 from 'update t1 set a=? where b=? - and a not in (select ? from t2 - where b = ? or a = ?)'; -execute stmt1 using @arg04, @arg01, @arg02, @arg03, @arg00 ; -affected rows: 1 -info: Rows matched: 1 Changed: 1 Warnings: 0 -select a,b from t1 order by a ; -a b -1 one -2 two -3 three -4 four -drop table t2 ; -create table t2 -( -a int, b varchar(30), -primary key(a) -) engine = 'MYISAM' ; -insert into t2(a,b) select a, b from t1 ; -prepare stmt1 from 'update t1 set a=? where b=? - and a in (select ? from t2 - where b = ? or a = ?)'; -execute stmt1 using @arg00, @arg01, @arg02, @arg03, @arg04 ; -affected rows: 1 -info: Rows matched: 1 Changed: 1 Warnings: 0 -select a,b from t1 where a = @arg00 ; -a b -23 two -prepare stmt1 from 'update t1 set a=? where b=? - and a not in (select ? from t2 - where b = ? or a = ?)'; -execute stmt1 using @arg04, @arg01, @arg02, @arg03, @arg00 ; -affected rows: 1 -info: Rows matched: 1 Changed: 1 Warnings: 0 -select a,b from t1 order by a ; -a b -1 one -2 two -3 three -4 four -drop table t2 ; -set @arg00=1; -prepare stmt1 from 'update t1 set b=''bla'' -where a=2 -limit 1'; -execute stmt1 ; -select a,b from t1 where b = 'bla' ; -a b -2 bla -prepare stmt1 from 'update t1 set b=''bla'' -where a=2 -limit ?'; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '?' at line 3 -test_sequence ------- insert tests ------ -delete from t1 ; -insert into t1 values (1,'one'); -insert into t1 values (2,'two'); -insert into t1 values (3,'three'); -insert into t1 values (4,'four'); -commit ; -delete from t9 ; -insert into t9 -set c1= 1, c2= 1, c3= 1, c4= 1, c5= 1, c6= 1, c7= 1, c8= 1, c9= 1, -c10= 1, c11= 1, c12 = 1, -c13= '2004-02-29', c14= '2004-02-29 11:11:11', c15= '2004-02-29 11:11:11', -c16= '11:11:11', c17= '2004', -c18= 1, c19=true, c20= 'a', c21= '123456789a', -c22= '123456789a123456789b123456789c', c23= 'tinyblob', c24= 'tinytext', -c25= 'blob', c26= 'text', c27= 'mediumblob', c28= 'mediumtext', -c29= 'longblob', c30= 'longtext', c31='one', c32= 'monday'; -insert into t9 -set c1= 9, c2= 9, c3= 9, c4= 9, c5= 9, c6= 9, c7= 9, c8= 9, c9= 9, -c10= 9, c11= 9, c12 = 9, -c13= '2004-02-29', c14= '2004-02-29 11:11:11', c15= '2004-02-29 11:11:11', -c16= '11:11:11', c17= '2004', -c18= 1, c19=false, c20= 'a', c21= '123456789a', -c22= '123456789a123456789b123456789c', c23= 'tinyblob', c24= 'tinytext', -c25= 'blob', c26= 'text', c27= 'mediumblob', c28= 'mediumtext', -c29= 'longblob', c30= 'longtext', c31='two', c32= 'tuesday'; -commit ; -prepare stmt1 from 'insert into t1 values(5, ''five'' )'; -execute stmt1; -select a,b from t1 where a = 5; -a b -5 five -set @arg00='six' ; -prepare stmt1 from 'insert into t1 values(6, ? )'; -execute stmt1 using @arg00; -select a,b from t1 where b = @arg00; -a b -6 six -execute stmt1 using @arg00; -ERROR 23000: Duplicate entry '6' for key 1 -set @arg00=NULL ; -prepare stmt1 from 'insert into t1 values(0, ? )'; -execute stmt1 using @arg00; -select a,b from t1 where b is NULL; -a b -0 NULL -set @arg00=8 ; -set @arg01='eight' ; -prepare stmt1 from 'insert into t1 values(?, ? )'; -execute stmt1 using @arg00, @arg01 ; -select a,b from t1 where b = @arg01; -a b -8 eight -set @NULL= null ; -set @arg00= 'abc' ; -execute stmt1 using @NULL, @NULL ; -ERROR 23000: Column 'a' cannot be null -execute stmt1 using @NULL, @NULL ; -ERROR 23000: Column 'a' cannot be null -execute stmt1 using @NULL, @arg00 ; -ERROR 23000: Column 'a' cannot be null -execute stmt1 using @NULL, @arg00 ; -ERROR 23000: Column 'a' cannot be null -set @arg01= 10000 + 2 ; -execute stmt1 using @arg01, @arg00 ; -set @arg01= 10000 + 1 ; -execute stmt1 using @arg01, @arg00 ; -select * from t1 where a > 10000 order by a ; -a b -10001 abc -10002 abc -delete from t1 where a > 10000 ; -set @arg01= 10000 + 2 ; -execute stmt1 using @arg01, @NULL ; -set @arg01= 10000 + 1 ; -execute stmt1 using @arg01, @NULL ; -select * from t1 where a > 10000 order by a ; -a b -10001 NULL -10002 NULL -delete from t1 where a > 10000 ; -set @arg01= 10000 + 10 ; -execute stmt1 using @arg01, @arg01 ; -set @arg01= 10000 + 9 ; -execute stmt1 using @arg01, @arg01 ; -set @arg01= 10000 + 8 ; -execute stmt1 using @arg01, @arg01 ; -set @arg01= 10000 + 7 ; -execute stmt1 using @arg01, @arg01 ; -set @arg01= 10000 + 6 ; -execute stmt1 using @arg01, @arg01 ; -set @arg01= 10000 + 5 ; -execute stmt1 using @arg01, @arg01 ; -set @arg01= 10000 + 4 ; -execute stmt1 using @arg01, @arg01 ; -set @arg01= 10000 + 3 ; -execute stmt1 using @arg01, @arg01 ; -set @arg01= 10000 + 2 ; -execute stmt1 using @arg01, @arg01 ; -set @arg01= 10000 + 1 ; -execute stmt1 using @arg01, @arg01 ; -select * from t1 where a > 10000 order by a ; -a b -10001 10001 -10002 10002 -10003 10003 -10004 10004 -10005 10005 -10006 10006 -10007 10007 -10008 10008 -10009 10009 -10010 10010 -delete from t1 where a > 10000 ; -set @arg00=81 ; -set @arg01='8-1' ; -set @arg02=82 ; -set @arg03='8-2' ; -prepare stmt1 from 'insert into t1 values(?,?),(?,?)'; -execute stmt1 using @arg00, @arg01, @arg02, @arg03 ; -select a,b from t1 where a in (@arg00,@arg02) ; -a b -81 8-1 -82 8-2 -set @arg00=9 ; -set @arg01='nine' ; -prepare stmt1 from 'insert into t1 set a=?, b=? '; -execute stmt1 using @arg00, @arg01 ; -select a,b from t1 where a = @arg00 ; -a b -9 nine -set @arg00=6 ; -set @arg01=1 ; -prepare stmt1 from 'insert into t1 set a=?, b=''sechs'' - on duplicate key update a=a + ?, b=concat(b,''modified'') '; -execute stmt1 using @arg00, @arg01; -select * from t1 order by a; -a b -0 NULL -1 one -2 two -3 three -4 four -5 five -7 sixmodified -8 eight -9 nine -81 8-1 -82 8-2 -set @arg00=81 ; -set @arg01=1 ; -execute stmt1 using @arg00, @arg01; -ERROR 23000: Duplicate entry '82' for key 1 -drop table if exists t2 ; -create table t2 (id int auto_increment primary key) -ENGINE= 'MYISAM' ; -prepare stmt1 from ' select last_insert_id() ' ; -insert into t2 values (NULL) ; -execute stmt1 ; -last_insert_id() -1 -insert into t2 values (NULL) ; -execute stmt1 ; -last_insert_id() -2 -drop table t2 ; -set @1000=1000 ; -set @x1000_2="x1000_2" ; -set @x1000_3="x1000_3" ; -set @x1000="x1000" ; -set @1100=1100 ; -set @x1100="x1100" ; -set @100=100 ; -set @updated="updated" ; -insert into t1 values(1000,'x1000_1') ; -insert into t1 values(@1000,@x1000_2),(@1000,@x1000_3) -on duplicate key update a = a + @100, b = concat(b,@updated) ; -select a,b from t1 where a >= 1000 order by a ; -a b -1000 x1000_3 -1100 x1000_1updated -delete from t1 where a >= 1000 ; -insert into t1 values(1000,'x1000_1') ; -prepare stmt1 from ' insert into t1 values(?,?),(?,?) - on duplicate key update a = a + ?, b = concat(b,?) '; -execute stmt1 using @1000, @x1000_2, @1000, @x1000_3, @100, @updated ; -select a,b from t1 where a >= 1000 order by a ; -a b -1000 x1000_3 -1100 x1000_1updated -delete from t1 where a >= 1000 ; -insert into t1 values(1000,'x1000_1') ; -execute stmt1 using @1000, @x1000_2, @1100, @x1000_3, @100, @updated ; -select a,b from t1 where a >= 1000 order by a ; -a b -1200 x1000_1updatedupdated -delete from t1 where a >= 1000 ; -prepare stmt1 from ' replace into t1 (a,b) select 100, ''hundred'' '; -execute stmt1; -execute stmt1; -execute stmt1; -test_sequence ------- multi table tests ------ -delete from t1 ; -delete from t9 ; -insert into t1(a,b) values (1, 'one'), (2, 'two'), (3, 'three') ; -insert into t9 (c1,c21) -values (1, 'one'), (2, 'two'), (3, 'three') ; -prepare stmt_delete from " delete t1, t9 - from t1, t9 where t1.a=t9.c1 and t1.b='updated' "; -prepare stmt_update from " update t1, t9 - set t1.b='updated', t9.c21='updated' - where t1.a=t9.c1 and t1.a=? "; -prepare stmt_select1 from " select a, b from t1 order by a" ; -prepare stmt_select2 from " select c1, c21 from t9 order by c1" ; -set @arg00= 1 ; -execute stmt_update using @arg00 ; -execute stmt_delete ; -execute stmt_select1 ; -a b -2 two -3 three -execute stmt_select2 ; -c1 c21 -2 two -3 three -set @arg00= @arg00 + 1 ; -execute stmt_update using @arg00 ; -execute stmt_delete ; -execute stmt_select1 ; -a b -3 three -execute stmt_select2 ; -c1 c21 -3 three -set @arg00= @arg00 + 1 ; -execute stmt_update using @arg00 ; -execute stmt_delete ; -execute stmt_select1 ; -a b -execute stmt_select2 ; -c1 c21 -set @arg00= @arg00 + 1 ; -delete from t1 ; -insert into t1 values (1,'one'); -insert into t1 values (2,'two'); -insert into t1 values (3,'three'); -insert into t1 values (4,'four'); -commit ; -delete from t9 ; -insert into t9 -set c1= 1, c2= 1, c3= 1, c4= 1, c5= 1, c6= 1, c7= 1, c8= 1, c9= 1, -c10= 1, c11= 1, c12 = 1, -c13= '2004-02-29', c14= '2004-02-29 11:11:11', c15= '2004-02-29 11:11:11', -c16= '11:11:11', c17= '2004', -c18= 1, c19=true, c20= 'a', c21= '123456789a', -c22= '123456789a123456789b123456789c', c23= 'tinyblob', c24= 'tinytext', -c25= 'blob', c26= 'text', c27= 'mediumblob', c28= 'mediumtext', -c29= 'longblob', c30= 'longtext', c31='one', c32= 'monday'; -insert into t9 -set c1= 9, c2= 9, c3= 9, c4= 9, c5= 9, c6= 9, c7= 9, c8= 9, c9= 9, -c10= 9, c11= 9, c12 = 9, -c13= '2004-02-29', c14= '2004-02-29 11:11:11', c15= '2004-02-29 11:11:11', -c16= '11:11:11', c17= '2004', -c18= 1, c19=false, c20= 'a', c21= '123456789a', -c22= '123456789a123456789b123456789c', c23= 'tinyblob', c24= 'tinytext', -c25= 'blob', c26= 'text', c27= 'mediumblob', c28= 'mediumtext', -c29= 'longblob', c30= 'longtext', c31='two', c32= 'tuesday'; -commit ; -insert into t1 values(0,NULL) ; -set @duplicate='duplicate ' ; -set @1000=1000 ; -set @5=5 ; -select a,b from t1 where a < 5 order by a ; -a b -0 NULL -1 one -2 two -3 three -4 four -insert into t1 select a + @1000, concat(@duplicate,b) from t1 -where a < @5 ; -affected rows: 5 -info: Records: 5 Duplicates: 0 Warnings: 0 -select a,b from t1 where a >= 1000 order by a ; -a b -1000 NULL -1001 duplicate one -1002 duplicate two -1003 duplicate three -1004 duplicate four -delete from t1 where a >= 1000 ; -prepare stmt1 from ' insert into t1 select a + ?, concat(?,b) from t1 -where a < ? ' ; -execute stmt1 using @1000, @duplicate, @5; -affected rows: 5 -info: Records: 5 Duplicates: 0 Warnings: 0 -select a,b from t1 where a >= 1000 order by a ; -a b -1000 NULL -1001 duplicate one -1002 duplicate two -1003 duplicate three -1004 duplicate four -delete from t1 where a >= 1000 ; -set @float=1.00; -set @five='five' ; -drop table if exists t2; -create table t2 like t1 ; -insert into t2 (b,a) -select @duplicate, sum(first.a) from t1 first, t1 second -where first.a <> @5 and second.b = first.b -and second.b <> @five -group by second.b -having sum(second.a) > @2 -union -select b, a + @100 from t1 -where (a,b) in ( select sqrt(a+@1)+CAST(@float AS signed),b -from t1); -affected rows: 3 -info: Records: 3 Duplicates: 0 Warnings: 0 -select a,b from t2 order by a ; -a b -3 duplicate -4 duplicate -103 three -delete from t2 ; -prepare stmt1 from ' insert into t2 (b,a) -select ?, sum(first.a) - from t1 first, t1 second - where first.a <> ? and second.b = first.b and second.b <> ? - group by second.b - having sum(second.a) > ? -union -select b, a + ? from t1 - where (a,b) in ( select sqrt(a+?)+CAST(? AS signed),b - from t1 ) ' ; -execute stmt1 using @duplicate, @5, @five, @2, @100, @1, @float ; -affected rows: 3 -info: Records: 3 Duplicates: 0 Warnings: 0 -select a,b from t2 order by a ; -a b -3 duplicate -4 duplicate -103 three -drop table t2; -drop table if exists t5 ; -set @arg01= 8; -set @arg02= 8.0; -set @arg03= 80.00000000000e-1; -set @arg04= 'abc' ; -set @arg05= CAST('abc' as binary) ; -set @arg06= '1991-08-05' ; -set @arg07= CAST('1991-08-05' as date); -set @arg08= '1991-08-05 01:01:01' ; -set @arg09= CAST('1991-08-05 01:01:01' as datetime) ; -set @arg10= unix_timestamp('1991-01-01 01:01:01'); -set @arg11= YEAR('1991-01-01 01:01:01'); -set @arg12= 8 ; -set @arg12= NULL ; -set @arg13= 8.0 ; -set @arg13= NULL ; -set @arg14= 'abc'; -set @arg14= NULL ; -set @arg15= CAST('abc' as binary) ; -set @arg15= NULL ; -create table t5 as select -8 as const01, @arg01 as param01, -8.0 as const02, @arg02 as param02, -80.00000000000e-1 as const03, @arg03 as param03, -'abc' as const04, @arg04 as param04, -CAST('abc' as binary) as const05, @arg05 as param05, -'1991-08-05' as const06, @arg06 as param06, -CAST('1991-08-05' as date) as const07, @arg07 as param07, -'1991-08-05 01:01:01' as const08, @arg08 as param08, -CAST('1991-08-05 01:01:01' as datetime) as const09, @arg09 as param09, -unix_timestamp('1991-01-01 01:01:01') as const10, @arg10 as param10, -YEAR('1991-01-01 01:01:01') as const11, @arg11 as param11, -NULL as const12, @arg12 as param12, -@arg13 as param13, -@arg14 as param14, -@arg15 as param15; -show create table t5 ; -Table Create Table -t5 CREATE TABLE `t5` ( - `const01` bigint(1) NOT NULL default '0', - `param01` bigint(20) default NULL, - `const02` double(3,1) NOT NULL default '0.0', - `param02` double default NULL, - `const03` double NOT NULL default '0', - `param03` double default NULL, - `const04` char(3) NOT NULL default '', - `param04` longtext, - `const05` binary(3) NOT NULL default '', - `param05` longblob, - `const06` varchar(10) NOT NULL default '', - `param06` longtext, - `const07` date default NULL, - `param07` longblob, - `const08` varchar(19) NOT NULL default '', - `param08` longtext, - `const09` datetime default NULL, - `param09` longblob, - `const10` int(10) NOT NULL default '0', - `param10` bigint(20) default NULL, - `const11` int(4) default NULL, - `param11` bigint(20) default NULL, - `const12` binary(0) default NULL, - `param12` bigint(20) default NULL, - `param13` double default NULL, - `param14` longtext, - `param15` longblob -) ENGINE=MyISAM DEFAULT CHARSET=latin1 -select * from t5 ; -Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr -def test t5 t5 const01 const01 8 1 1 N 32769 0 63 -def test t5 t5 param01 param01 8 20 1 Y 32768 0 63 -def test t5 t5 const02 const02 5 3 3 N 32769 1 63 -def test t5 t5 param02 param02 5 20 1 Y 32768 31 63 -def test t5 t5 const03 const03 5 23 1 N 32769 31 63 -def test t5 t5 param03 param03 5 20 1 Y 32768 31 63 -def test t5 t5 const04 const04 254 3 3 N 1 0 8 -def test t5 t5 param04 param04 252 16777215 3 Y 16 0 8 -def test t5 t5 const05 const05 254 3 3 N 129 0 63 -def test t5 t5 param05 param05 252 16777215 3 Y 144 0 63 -def test t5 t5 const06 const06 253 10 10 N 1 0 8 -def test t5 t5 param06 param06 252 16777215 10 Y 16 0 8 -def test t5 t5 const07 const07 10 10 10 Y 128 0 63 -def test t5 t5 param07 param07 252 16777215 10 Y 144 0 63 -def test t5 t5 const08 const08 253 19 19 N 1 0 8 -def test t5 t5 param08 param08 252 16777215 19 Y 16 0 8 -def test t5 t5 const09 const09 12 19 19 Y 128 0 63 -def test t5 t5 param09 param09 252 16777215 19 Y 144 0 63 -def test t5 t5 const10 const10 3 10 9 N 32769 0 63 -def test t5 t5 param10 param10 8 20 9 Y 32768 0 63 -def test t5 t5 const11 const11 3 4 4 Y 32768 0 63 -def test t5 t5 param11 param11 8 20 4 Y 32768 0 63 -def test t5 t5 const12 const12 254 0 0 Y 128 0 63 -def test t5 t5 param12 param12 8 20 0 Y 32768 0 63 -def test t5 t5 param13 param13 5 20 0 Y 32768 31 63 -def test t5 t5 param14 param14 252 16777215 0 Y 16 0 8 -def test t5 t5 param15 param15 252 16777215 0 Y 144 0 63 -const01 8 -param01 8 -const02 8.0 -param02 8 -const03 8 -param03 8 -const04 abc -param04 abc -const05 abc -param05 abc -const06 1991-08-05 -param06 1991-08-05 -const07 1991-08-05 -param07 1991-08-05 -const08 1991-08-05 01:01:01 -param08 1991-08-05 01:01:01 -const09 1991-08-05 01:01:01 -param09 1991-08-05 01:01:01 -const10 662680861 -param10 662680861 -const11 1991 -param11 1991 -const12 NULL -param12 NULL -param13 NULL -param14 NULL -param15 NULL -drop table t5 ; -test_sequence ------- data type conversion tests ------ -delete from t1 ; -insert into t1 values (1,'one'); -insert into t1 values (2,'two'); -insert into t1 values (3,'three'); -insert into t1 values (4,'four'); -commit ; -delete from t9 ; -insert into t9 -set c1= 1, c2= 1, c3= 1, c4= 1, c5= 1, c6= 1, c7= 1, c8= 1, c9= 1, -c10= 1, c11= 1, c12 = 1, -c13= '2004-02-29', c14= '2004-02-29 11:11:11', c15= '2004-02-29 11:11:11', -c16= '11:11:11', c17= '2004', -c18= 1, c19=true, c20= 'a', c21= '123456789a', -c22= '123456789a123456789b123456789c', c23= 'tinyblob', c24= 'tinytext', -c25= 'blob', c26= 'text', c27= 'mediumblob', c28= 'mediumtext', -c29= 'longblob', c30= 'longtext', c31='one', c32= 'monday'; -insert into t9 -set c1= 9, c2= 9, c3= 9, c4= 9, c5= 9, c6= 9, c7= 9, c8= 9, c9= 9, -c10= 9, c11= 9, c12 = 9, -c13= '2004-02-29', c14= '2004-02-29 11:11:11', c15= '2004-02-29 11:11:11', -c16= '11:11:11', c17= '2004', -c18= 1, c19=false, c20= 'a', c21= '123456789a', -c22= '123456789a123456789b123456789c', c23= 'tinyblob', c24= 'tinytext', -c25= 'blob', c26= 'text', c27= 'mediumblob', c28= 'mediumtext', -c29= 'longblob', c30= 'longtext', c31='two', c32= 'tuesday'; -commit ; -insert into t9 set c1= 0, c15= '1991-01-01 01:01:01' ; -select * from t9 order by c1 ; -c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 c13 c14 c15 c16 c17 c18 c19 c20 c21 c22 c23 c24 c25 c26 c27 c28 c29 c30 c31 c32 -0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday -9 9 9 9 9 9 9 9 9 9 9.0000 9.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 0 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext two tuesday -test_sequence ------- select @parameter:= column ------ -prepare full_info from "select @arg01, @arg02, @arg03, @arg04, - @arg05, @arg06, @arg07, @arg08, - @arg09, @arg10, @arg11, @arg12, - @arg13, @arg14, @arg15, @arg16, - @arg17, @arg18, @arg19, @arg20, - @arg21, @arg22, @arg23, @arg24, - @arg25, @arg26, @arg27, @arg28, - @arg29, @arg30, @arg31, @arg32" ; -select @arg01:= c1, @arg02:= c2, @arg03:= c3, @arg04:= c4, -@arg05:= c5, @arg06:= c6, @arg07:= c7, @arg08:= c8, -@arg09:= c9, @arg10:= c10, @arg11:= c11, @arg12:= c12, -@arg13:= c13, @arg14:= c14, @arg15:= c15, @arg16:= c16, -@arg17:= c17, @arg18:= c18, @arg19:= c19, @arg20:= c20, -@arg21:= c21, @arg22:= c22, @arg23:= c23, @arg24:= c24, -@arg25:= c25, @arg26:= c26, @arg27:= c27, @arg28:= c28, -@arg29:= c29, @arg30:= c30, @arg31:= c31, @arg32:= c32 -from t9 where c1= 1 ; -@arg01:= c1 @arg02:= c2 @arg03:= c3 @arg04:= c4 @arg05:= c5 @arg06:= c6 @arg07:= c7 @arg08:= c8 @arg09:= c9 @arg10:= c10 @arg11:= c11 @arg12:= c12 @arg13:= c13 @arg14:= c14 @arg15:= c15 @arg16:= c16 @arg17:= c17 @arg18:= c18 @arg19:= c19 @arg20:= c20 @arg21:= c21 @arg22:= c22 @arg23:= c23 @arg24:= c24 @arg25:= c25 @arg26:= c26 @arg27:= c27 @arg28:= c28 @arg29:= c29 @arg30:= c30 @arg31:= c31 @arg32:= c32 -1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday -execute full_info ; -Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr -def @arg01 254 20 1 Y 128 31 63 -def @arg02 254 20 1 Y 128 31 63 -def @arg03 254 20 1 Y 128 31 63 -def @arg04 254 20 1 Y 128 31 63 -def @arg05 254 20 1 Y 128 31 63 -def @arg06 254 20 1 Y 128 31 63 -def @arg07 254 20 1 Y 128 31 63 -def @arg08 254 20 1 Y 128 31 63 -def @arg09 254 20 1 Y 128 31 63 -def @arg10 254 20 1 Y 128 31 63 -def @arg11 254 20 1 Y 128 31 63 -def @arg12 254 20 1 Y 128 31 63 -def @arg13 254 8192 10 Y 128 31 63 -def @arg14 254 8192 19 Y 128 31 63 -def @arg15 254 8192 19 Y 128 31 63 -def @arg16 254 8192 8 Y 128 31 63 -def @arg17 254 20 4 Y 128 31 63 -def @arg18 254 20 1 Y 128 31 63 -def @arg19 254 20 1 Y 128 31 63 -def @arg20 254 8192 1 Y 0 31 8 -def @arg21 254 8192 10 Y 0 31 8 -def @arg22 254 8192 30 Y 0 31 8 -def @arg23 254 8192 8 Y 128 31 63 -def @arg24 254 8192 8 Y 0 31 8 -def @arg25 254 8192 4 Y 128 31 63 -def @arg26 254 8192 4 Y 0 31 8 -def @arg27 254 8192 10 Y 128 31 63 -def @arg28 254 8192 10 Y 0 31 8 -def @arg29 254 8192 8 Y 128 31 63 -def @arg30 254 8192 8 Y 0 31 8 -def @arg31 254 8192 3 Y 0 31 8 -def @arg32 254 8192 6 Y 128 31 63 -@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32 -1 1 1 1 1 1 1 1 1 1 1 1 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday -select @arg01:= c1, @arg02:= c2, @arg03:= c3, @arg04:= c4, -@arg05:= c5, @arg06:= c6, @arg07:= c7, @arg08:= c8, -@arg09:= c9, @arg10:= c10, @arg11:= c11, @arg12:= c12, -@arg13:= c13, @arg14:= c14, @arg15:= c15, @arg16:= c16, -@arg17:= c17, @arg18:= c18, @arg19:= c19, @arg20:= c20, -@arg21:= c21, @arg22:= c22, @arg23:= c23, @arg24:= c24, -@arg25:= c25, @arg26:= c26, @arg27:= c27, @arg28:= c28, -@arg29:= c29, @arg30:= c30, @arg31:= c31, @arg32:= c32 -from t9 where c1= 0 ; -@arg01:= c1 @arg02:= c2 @arg03:= c3 @arg04:= c4 @arg05:= c5 @arg06:= c6 @arg07:= c7 @arg08:= c8 @arg09:= c9 @arg10:= c10 @arg11:= c11 @arg12:= c12 @arg13:= c13 @arg14:= c14 @arg15:= c15 @arg16:= c16 @arg17:= c17 @arg18:= c18 @arg19:= c19 @arg20:= c20 @arg21:= c21 @arg22:= c22 @arg23:= c23 @arg24:= c24 @arg25:= c25 @arg26:= c26 @arg27:= c27 @arg28:= c28 @arg29:= c29 @arg30:= c30 @arg31:= c31 @arg32:= c32 -0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -execute full_info ; -Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr -def @arg01 254 20 1 Y 128 31 63 -def @arg02 254 20 0 Y 128 31 63 -def @arg03 254 20 0 Y 128 31 63 -def @arg04 254 20 0 Y 128 31 63 -def @arg05 254 20 0 Y 128 31 63 -def @arg06 254 20 0 Y 128 31 63 -def @arg07 254 20 0 Y 128 31 63 -def @arg08 254 20 0 Y 128 31 63 -def @arg09 254 20 0 Y 128 31 63 -def @arg10 254 20 0 Y 128 31 63 -def @arg11 254 20 0 Y 128 31 63 -def @arg12 254 20 0 Y 128 31 63 -def @arg13 254 8192 0 Y 128 31 63 -def @arg14 254 8192 0 Y 128 31 63 -def @arg15 254 8192 19 Y 128 31 63 -def @arg16 254 8192 0 Y 128 31 63 -def @arg17 254 20 0 Y 128 31 63 -def @arg18 254 20 0 Y 128 31 63 -def @arg19 254 20 0 Y 128 31 63 -def @arg20 254 8192 0 Y 0 31 8 -def @arg21 254 8192 0 Y 0 31 8 -def @arg22 254 8192 0 Y 0 31 8 -def @arg23 254 8192 0 Y 128 31 63 -def @arg24 254 8192 0 Y 0 31 8 -def @arg25 254 8192 0 Y 128 31 63 -def @arg26 254 8192 0 Y 0 31 8 -def @arg27 254 8192 0 Y 128 31 63 -def @arg28 254 8192 0 Y 0 31 8 -def @arg29 254 8192 0 Y 128 31 63 -def @arg30 254 8192 0 Y 0 31 8 -def @arg31 254 8192 0 Y 0 31 8 -def @arg32 254 8192 0 Y 0 31 8 -@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32 -0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -prepare stmt1 from "select - @arg01:= c1, @arg02:= c2, @arg03:= c3, @arg04:= c4, - @arg05:= c5, @arg06:= c6, @arg07:= c7, @arg08:= c8, - @arg09:= c9, @arg10:= c10, @arg11:= c11, @arg12:= c12, - @arg13:= c13, @arg14:= c14, @arg15:= c15, @arg16:= c16, - @arg17:= c17, @arg18:= c18, @arg19:= c19, @arg20:= c20, - @arg21:= c21, @arg22:= c22, @arg23:= c23, @arg24:= c24, - @arg25:= c25, @arg26:= c26, @arg27:= c27, @arg28:= c28, - @arg29:= c29, @arg30:= c30, @arg31:= c31, @arg32:= c32 -from t9 where c1= ?" ; -set @my_key= 1 ; -execute stmt1 using @my_key ; -@arg01:= c1 @arg02:= c2 @arg03:= c3 @arg04:= c4 @arg05:= c5 @arg06:= c6 @arg07:= c7 @arg08:= c8 @arg09:= c9 @arg10:= c10 @arg11:= c11 @arg12:= c12 @arg13:= c13 @arg14:= c14 @arg15:= c15 @arg16:= c16 @arg17:= c17 @arg18:= c18 @arg19:= c19 @arg20:= c20 @arg21:= c21 @arg22:= c22 @arg23:= c23 @arg24:= c24 @arg25:= c25 @arg26:= c26 @arg27:= c27 @arg28:= c28 @arg29:= c29 @arg30:= c30 @arg31:= c31 @arg32:= c32 -1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday -execute full_info ; -Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr -def @arg01 254 20 1 Y 128 31 63 -def @arg02 254 20 1 Y 128 31 63 -def @arg03 254 20 1 Y 128 31 63 -def @arg04 254 20 1 Y 128 31 63 -def @arg05 254 20 1 Y 128 31 63 -def @arg06 254 20 1 Y 128 31 63 -def @arg07 254 20 1 Y 128 31 63 -def @arg08 254 20 1 Y 128 31 63 -def @arg09 254 20 1 Y 128 31 63 -def @arg10 254 20 1 Y 128 31 63 -def @arg11 254 20 1 Y 128 31 63 -def @arg12 254 20 1 Y 128 31 63 -def @arg13 254 8192 10 Y 128 31 63 -def @arg14 254 8192 19 Y 128 31 63 -def @arg15 254 8192 19 Y 128 31 63 -def @arg16 254 8192 8 Y 128 31 63 -def @arg17 254 20 4 Y 128 31 63 -def @arg18 254 20 1 Y 128 31 63 -def @arg19 254 20 1 Y 128 31 63 -def @arg20 254 8192 1 Y 0 31 8 -def @arg21 254 8192 10 Y 0 31 8 -def @arg22 254 8192 30 Y 0 31 8 -def @arg23 254 8192 8 Y 128 31 63 -def @arg24 254 8192 8 Y 0 31 8 -def @arg25 254 8192 4 Y 128 31 63 -def @arg26 254 8192 4 Y 0 31 8 -def @arg27 254 8192 10 Y 128 31 63 -def @arg28 254 8192 10 Y 0 31 8 -def @arg29 254 8192 8 Y 128 31 63 -def @arg30 254 8192 8 Y 0 31 8 -def @arg31 254 8192 3 Y 0 31 8 -def @arg32 254 8192 6 Y 128 31 63 -@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32 -1 1 1 1 1 1 1 1 1 1 1 1 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday -set @my_key= 0 ; -execute stmt1 using @my_key ; -@arg01:= c1 @arg02:= c2 @arg03:= c3 @arg04:= c4 @arg05:= c5 @arg06:= c6 @arg07:= c7 @arg08:= c8 @arg09:= c9 @arg10:= c10 @arg11:= c11 @arg12:= c12 @arg13:= c13 @arg14:= c14 @arg15:= c15 @arg16:= c16 @arg17:= c17 @arg18:= c18 @arg19:= c19 @arg20:= c20 @arg21:= c21 @arg22:= c22 @arg23:= c23 @arg24:= c24 @arg25:= c25 @arg26:= c26 @arg27:= c27 @arg28:= c28 @arg29:= c29 @arg30:= c30 @arg31:= c31 @arg32:= c32 -0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -execute full_info ; -Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr -def @arg01 254 20 1 Y 128 31 63 -def @arg02 254 20 0 Y 128 31 63 -def @arg03 254 20 0 Y 128 31 63 -def @arg04 254 20 0 Y 128 31 63 -def @arg05 254 20 0 Y 128 31 63 -def @arg06 254 20 0 Y 128 31 63 -def @arg07 254 20 0 Y 128 31 63 -def @arg08 254 20 0 Y 128 31 63 -def @arg09 254 20 0 Y 128 31 63 -def @arg10 254 20 0 Y 128 31 63 -def @arg11 254 20 0 Y 128 31 63 -def @arg12 254 20 0 Y 128 31 63 -def @arg13 254 8192 0 Y 128 31 63 -def @arg14 254 8192 0 Y 128 31 63 -def @arg15 254 8192 19 Y 128 31 63 -def @arg16 254 8192 0 Y 128 31 63 -def @arg17 254 20 0 Y 128 31 63 -def @arg18 254 20 0 Y 128 31 63 -def @arg19 254 20 0 Y 128 31 63 -def @arg20 254 8192 0 Y 0 31 8 -def @arg21 254 8192 0 Y 0 31 8 -def @arg22 254 8192 0 Y 0 31 8 -def @arg23 254 8192 0 Y 128 31 63 -def @arg24 254 8192 0 Y 0 31 8 -def @arg25 254 8192 0 Y 128 31 63 -def @arg26 254 8192 0 Y 0 31 8 -def @arg27 254 8192 0 Y 128 31 63 -def @arg28 254 8192 0 Y 0 31 8 -def @arg29 254 8192 0 Y 128 31 63 -def @arg30 254 8192 0 Y 0 31 8 -def @arg31 254 8192 0 Y 0 31 8 -def @arg32 254 8192 0 Y 0 31 8 -@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32 -0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -prepare stmt1 from "select ? := c1 from t9 where c1= 1" ; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ':= c1 from t9 where c1= 1' at line 1 -test_sequence ------- select column, .. into @parm,.. ------ -select c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12, -c13, c14, c15, c16, c17, c18, c19, c20, c21, c22, c23, c24, -c25, c26, c27, c28, c29, c30, c31, c32 -into @arg01, @arg02, @arg03, @arg04, @arg05, @arg06, @arg07, @arg08, -@arg09, @arg10, @arg11, @arg12, @arg13, @arg14, @arg15, @arg16, -@arg17, @arg18, @arg19, @arg20, @arg21, @arg22, @arg23, @arg24, -@arg25, @arg26, @arg27, @arg28, @arg29, @arg30, @arg31, @arg32 -from t9 where c1= 1 ; -execute full_info ; -Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr -def @arg01 254 20 1 Y 128 31 63 -def @arg02 254 20 1 Y 128 31 63 -def @arg03 254 20 1 Y 128 31 63 -def @arg04 254 20 1 Y 128 31 63 -def @arg05 254 20 1 Y 128 31 63 -def @arg06 254 20 1 Y 128 31 63 -def @arg07 254 20 1 Y 128 31 63 -def @arg08 254 20 1 Y 128 31 63 -def @arg09 254 20 1 Y 128 31 63 -def @arg10 254 20 1 Y 128 31 63 -def @arg11 254 20 1 Y 128 31 63 -def @arg12 254 20 1 Y 128 31 63 -def @arg13 254 8192 10 Y 128 31 63 -def @arg14 254 8192 19 Y 128 31 63 -def @arg15 254 8192 19 Y 128 31 63 -def @arg16 254 8192 8 Y 128 31 63 -def @arg17 254 20 4 Y 128 31 63 -def @arg18 254 20 1 Y 128 31 63 -def @arg19 254 20 1 Y 128 31 63 -def @arg20 254 8192 1 Y 0 31 8 -def @arg21 254 8192 10 Y 0 31 8 -def @arg22 254 8192 30 Y 0 31 8 -def @arg23 254 8192 8 Y 128 31 63 -def @arg24 254 8192 8 Y 0 31 8 -def @arg25 254 8192 4 Y 128 31 63 -def @arg26 254 8192 4 Y 0 31 8 -def @arg27 254 8192 10 Y 128 31 63 -def @arg28 254 8192 10 Y 0 31 8 -def @arg29 254 8192 8 Y 128 31 63 -def @arg30 254 8192 8 Y 0 31 8 -def @arg31 254 8192 3 Y 0 31 8 -def @arg32 254 8192 6 Y 128 31 63 -@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32 -1 1 1 1 1 1 1 1 1 1 1 1 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday -select c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12, -c13, c14, c15, c16, c17, c18, c19, c20, c21, c22, c23, c24, -c25, c26, c27, c28, c29, c30, c31, c32 -into @arg01, @arg02, @arg03, @arg04, @arg05, @arg06, @arg07, @arg08, -@arg09, @arg10, @arg11, @arg12, @arg13, @arg14, @arg15, @arg16, -@arg17, @arg18, @arg19, @arg20, @arg21, @arg22, @arg23, @arg24, -@arg25, @arg26, @arg27, @arg28, @arg29, @arg30, @arg31, @arg32 -from t9 where c1= 0 ; -execute full_info ; -Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr -def @arg01 254 20 1 Y 128 31 63 -def @arg02 254 20 0 Y 128 31 63 -def @arg03 254 20 0 Y 128 31 63 -def @arg04 254 20 0 Y 128 31 63 -def @arg05 254 20 0 Y 128 31 63 -def @arg06 254 20 0 Y 128 31 63 -def @arg07 254 20 0 Y 128 31 63 -def @arg08 254 20 0 Y 128 31 63 -def @arg09 254 20 0 Y 128 31 63 -def @arg10 254 20 0 Y 128 31 63 -def @arg11 254 20 0 Y 128 31 63 -def @arg12 254 20 0 Y 128 31 63 -def @arg13 254 8192 0 Y 128 31 63 -def @arg14 254 8192 0 Y 128 31 63 -def @arg15 254 8192 19 Y 128 31 63 -def @arg16 254 8192 0 Y 128 31 63 -def @arg17 254 20 0 Y 128 31 63 -def @arg18 254 20 0 Y 128 31 63 -def @arg19 254 20 0 Y 128 31 63 -def @arg20 254 8192 0 Y 0 31 8 -def @arg21 254 8192 0 Y 0 31 8 -def @arg22 254 8192 0 Y 0 31 8 -def @arg23 254 8192 0 Y 128 31 63 -def @arg24 254 8192 0 Y 0 31 8 -def @arg25 254 8192 0 Y 128 31 63 -def @arg26 254 8192 0 Y 0 31 8 -def @arg27 254 8192 0 Y 128 31 63 -def @arg28 254 8192 0 Y 0 31 8 -def @arg29 254 8192 0 Y 128 31 63 -def @arg30 254 8192 0 Y 0 31 8 -def @arg31 254 8192 0 Y 0 31 8 -def @arg32 254 8192 0 Y 0 31 8 -@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32 -0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -prepare stmt1 from "select c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12, - c13, c14, c15, c16, c17, c18, c19, c20, c21, c22, c23, c24, - c25, c26, c27, c28, c29, c30, c31, c32 -into @arg01, @arg02, @arg03, @arg04, @arg05, @arg06, @arg07, @arg08, - @arg09, @arg10, @arg11, @arg12, @arg13, @arg14, @arg15, @arg16, - @arg17, @arg18, @arg19, @arg20, @arg21, @arg22, @arg23, @arg24, - @arg25, @arg26, @arg27, @arg28, @arg29, @arg30, @arg31, @arg32 -from t9 where c1= ?" ; -set @my_key= 1 ; -execute stmt1 using @my_key ; -execute full_info ; -Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr -def @arg01 254 20 1 Y 128 31 63 -def @arg02 254 20 1 Y 128 31 63 -def @arg03 254 20 1 Y 128 31 63 -def @arg04 254 20 1 Y 128 31 63 -def @arg05 254 20 1 Y 128 31 63 -def @arg06 254 20 1 Y 128 31 63 -def @arg07 254 20 1 Y 128 31 63 -def @arg08 254 20 1 Y 128 31 63 -def @arg09 254 20 1 Y 128 31 63 -def @arg10 254 20 1 Y 128 31 63 -def @arg11 254 20 1 Y 128 31 63 -def @arg12 254 20 1 Y 128 31 63 -def @arg13 254 8192 10 Y 128 31 63 -def @arg14 254 8192 19 Y 128 31 63 -def @arg15 254 8192 19 Y 128 31 63 -def @arg16 254 8192 8 Y 128 31 63 -def @arg17 254 20 4 Y 128 31 63 -def @arg18 254 20 1 Y 128 31 63 -def @arg19 254 20 1 Y 128 31 63 -def @arg20 254 8192 1 Y 0 31 8 -def @arg21 254 8192 10 Y 0 31 8 -def @arg22 254 8192 30 Y 0 31 8 -def @arg23 254 8192 8 Y 128 31 63 -def @arg24 254 8192 8 Y 0 31 8 -def @arg25 254 8192 4 Y 128 31 63 -def @arg26 254 8192 4 Y 0 31 8 -def @arg27 254 8192 10 Y 128 31 63 -def @arg28 254 8192 10 Y 0 31 8 -def @arg29 254 8192 8 Y 128 31 63 -def @arg30 254 8192 8 Y 0 31 8 -def @arg31 254 8192 3 Y 0 31 8 -def @arg32 254 8192 6 Y 128 31 63 -@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32 -1 1 1 1 1 1 1 1 1 1 1 1 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday -set @my_key= 0 ; -execute stmt1 using @my_key ; -execute full_info ; -Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr -def @arg01 254 20 1 Y 128 31 63 -def @arg02 254 20 0 Y 128 31 63 -def @arg03 254 20 0 Y 128 31 63 -def @arg04 254 20 0 Y 128 31 63 -def @arg05 254 20 0 Y 128 31 63 -def @arg06 254 20 0 Y 128 31 63 -def @arg07 254 20 0 Y 128 31 63 -def @arg08 254 20 0 Y 128 31 63 -def @arg09 254 20 0 Y 128 31 63 -def @arg10 254 20 0 Y 128 31 63 -def @arg11 254 20 0 Y 128 31 63 -def @arg12 254 20 0 Y 128 31 63 -def @arg13 254 8192 0 Y 128 31 63 -def @arg14 254 8192 0 Y 128 31 63 -def @arg15 254 8192 19 Y 128 31 63 -def @arg16 254 8192 0 Y 128 31 63 -def @arg17 254 20 0 Y 128 31 63 -def @arg18 254 20 0 Y 128 31 63 -def @arg19 254 20 0 Y 128 31 63 -def @arg20 254 8192 0 Y 0 31 8 -def @arg21 254 8192 0 Y 0 31 8 -def @arg22 254 8192 0 Y 0 31 8 -def @arg23 254 8192 0 Y 128 31 63 -def @arg24 254 8192 0 Y 0 31 8 -def @arg25 254 8192 0 Y 128 31 63 -def @arg26 254 8192 0 Y 0 31 8 -def @arg27 254 8192 0 Y 128 31 63 -def @arg28 254 8192 0 Y 0 31 8 -def @arg29 254 8192 0 Y 128 31 63 -def @arg30 254 8192 0 Y 0 31 8 -def @arg31 254 8192 0 Y 0 31 8 -def @arg32 254 8192 0 Y 0 31 8 -@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32 -0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -prepare stmt1 from "select c1 into ? from t9 where c1= 1" ; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '? from t9 where c1= 1' at line 1 -test_sequence --- insert into numeric columns -- -insert into t9 -( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values -( 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20 ) ; -set @arg00= 21 ; -insert into t9 -( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values -( @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ) ; -prepare stmt1 from "insert into t9 - ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values - ( 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22 )" ; -execute stmt1 ; -set @arg00= 23; -prepare stmt2 from "insert into t9 - ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values - ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )" ; -execute stmt2 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00 ; -insert into t9 -( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values -( 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, -30.0, 30.0, 30.0 ) ; -set @arg00= 31.0 ; -insert into t9 -( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values -( @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ) ; -prepare stmt1 from "insert into t9 - ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values - ( 32.0, 32.0, 32.0, 32.0, 32.0, 32.0, 32.0, 32.0, - 32.0, 32.0, 32.0 )" ; -execute stmt1 ; -set @arg00= 33.0; -prepare stmt2 from "insert into t9 - ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values - ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )" ; -execute stmt2 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00 ; -insert into t9 -( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values -( '40', '40', '40', '40', '40', '40', '40', '40', -'40', '40', '40' ) ; -set @arg00= '41' ; -insert into t9 -( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values -( @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ) ; -prepare stmt1 from "insert into t9 - ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values - ( '42', '42', '42', '42', '42', '42', '42', '42', - '42', '42', '42' )" ; -execute stmt1 ; -set @arg00= '43'; -prepare stmt2 from "insert into t9 - ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values - ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )" ; -execute stmt2 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00 ; -insert into t9 -( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values -( CAST('50' as binary), CAST('50' as binary), -CAST('50' as binary), CAST('50' as binary), CAST('50' as binary), -CAST('50' as binary), CAST('50' as binary), CAST('50' as binary), -CAST('50' as binary), CAST('50' as binary), CAST('50' as binary) ) ; -set @arg00= CAST('51' as binary) ; -insert into t9 -( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values -( @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ) ; -prepare stmt1 from "insert into t9 - ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values - ( CAST('52' as binary), CAST('52' as binary), - CAST('52' as binary), CAST('52' as binary), CAST('52' as binary), - CAST('52' as binary), CAST('52' as binary), CAST('52' as binary), - CAST('52' as binary), CAST('52' as binary), CAST('52' as binary) )" ; -execute stmt1 ; -set @arg00= CAST('53' as binary) ; -prepare stmt2 from "insert into t9 - ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values - ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )" ; -execute stmt2 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00 ; -set @arg00= 2 ; -set @arg00= NULL ; -insert into t9 -( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values -( 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, -NULL, NULL, NULL ) ; -insert into t9 -( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values -( 61, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ) ; -prepare stmt1 from "insert into t9 - ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values - ( 62, NULL, NULL, NULL, NULL, NULL, NULL, NULL, - NULL, NULL, NULL )" ; -execute stmt1 ; -prepare stmt2 from "insert into t9 - ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values - ( 63, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )" ; -execute stmt2 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00 ; -set @arg00= 8.0 ; -set @arg00= NULL ; -insert into t9 -( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values -( 71, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ) ; -prepare stmt2 from "insert into t9 - ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values - ( 73, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )" ; -execute stmt2 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00 ; -set @arg00= 'abc' ; -set @arg00= NULL ; -insert into t9 -( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values -( 81, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ) ; -prepare stmt2 from "insert into t9 - ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values - ( 83, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )" ; -execute stmt2 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00 ; -select c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 -from t9 where c1 >= 20 -order by c1 ; -c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c12 -20 20 20 20 20 20 20 20 20 20 20.0000 -21 21 21 21 21 21 21 21 21 21 21.0000 -22 22 22 22 22 22 22 22 22 22 22.0000 -23 23 23 23 23 23 23 23 23 23 23.0000 -30 30 30 30 30 30 30 30 30 30 30.0000 -31 31 31 31 31 31 31 31 31 31 31.0000 -32 32 32 32 32 32 32 32 32 32 32.0000 -33 33 33 33 33 33 33 33 33 33 33.0000 -40 40 40 40 40 40 40 40 40 40 40.0000 -41 41 41 41 41 41 41 41 41 41 41.0000 -42 42 42 42 42 42 42 42 42 42 42.0000 -43 43 43 43 43 43 43 43 43 43 43.0000 -50 50 50 50 50 50 50 50 50 50 50.0000 -51 51 51 51 51 51 51 51 51 51 51.0000 -52 52 52 52 52 52 52 52 52 52 52.0000 -53 53 53 53 53 53 53 53 53 53 53.0000 -60 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -61 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -62 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -63 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -71 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -73 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -81 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -83 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -test_sequence --- select .. where numeric column = .. -- -set @arg00= 20; -select 'true' as found from t9 -where c1= 20 and c2= 20 and c3= 20 and c4= 20 and c5= 20 and c6= 20 and c7= 20 -and c8= 20 and c9= 20 and c10= 20 and c12= 20; -found -true -select 'true' as found from t9 -where c1= @arg00 and c2= @arg00 and c3= @arg00 and c4= @arg00 and c5= @arg00 -and c6= @arg00 and c7= @arg00 and c8= @arg00 and c9= @arg00 and c10= @arg00 -and c12= @arg00; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and c2= 20 and c3= 20 and c4= 20 and c5= 20 and c6= 20 and c7= 20 - and c8= 20 and c9= 20 and c10= 20 and c12= 20 "; -execute stmt1 ; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= ? and c2= ? and c3= ? and c4= ? and c5= ? - and c6= ? and c7= ? and c8= ? and c9= ? and c10= ? - and c12= ? "; -execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00 ; -found -true -set @arg00= 20.0; -select 'true' as found from t9 -where c1= 20.0 and c2= 20.0 and c3= 20.0 and c4= 20.0 and c5= 20.0 and c6= 20.0 -and c7= 20.0 and c8= 20.0 and c9= 20.0 and c10= 20.0 and c12= 20.0; -found -true -select 'true' as found from t9 -where c1= @arg00 and c2= @arg00 and c3= @arg00 and c4= @arg00 and c5= @arg00 -and c6= @arg00 and c7= @arg00 and c8= @arg00 and c9= @arg00 and c10= @arg00 -and c12= @arg00; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20.0 and c2= 20.0 and c3= 20.0 and c4= 20.0 and c5= 20.0 and c6= 20.0 - and c7= 20.0 and c8= 20.0 and c9= 20.0 and c10= 20.0 and c12= 20.0 "; -execute stmt1 ; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= ? and c2= ? and c3= ? and c4= ? and c5= ? - and c6= ? and c7= ? and c8= ? and c9= ? and c10= ? - and c12= ? "; -execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00 ; -found -true -select 'true' as found from t9 -where c1= '20' and c2= '20' and c3= '20' and c4= '20' and c5= '20' and c6= '20' - and c7= '20' and c8= '20' and c9= '20' and c10= '20' and c12= '20'; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= '20' and c2= '20' and c3= '20' and c4= '20' and c5= '20' and c6= '20' - and c7= '20' and c8= '20' and c9= '20' and c10= '20' and c12= '20' "; -execute stmt1 ; -found -true -set @arg00= '20'; -select 'true' as found from t9 -where c1= @arg00 and c2= @arg00 and c3= @arg00 and c4= @arg00 and c5= @arg00 -and c6= @arg00 and c7= @arg00 and c8= @arg00 and c9= @arg00 and c10= @arg00 -and c12= @arg00; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= ? and c2= ? and c3= ? and c4= ? and c5= ? - and c6= ? and c7= ? and c8= ? and c9= ? and c10= ? - and c12= ? "; -execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00 ; -found -true -select 'true' as found from t9 -where c1= CAST('20' as binary) and c2= CAST('20' as binary) and -c3= CAST('20' as binary) and c4= CAST('20' as binary) and -c5= CAST('20' as binary) and c6= CAST('20' as binary) and -c7= CAST('20' as binary) and c8= CAST('20' as binary) and -c9= CAST('20' as binary) and c10= CAST('20' as binary) and -c12= CAST('20' as binary); -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= CAST('20' as binary) and c2= CAST('20' as binary) and - c3= CAST('20' as binary) and c4= CAST('20' as binary) and - c5= CAST('20' as binary) and c6= CAST('20' as binary) and - c7= CAST('20' as binary) and c8= CAST('20' as binary) and - c9= CAST('20' as binary) and c10= CAST('20' as binary) and - c12= CAST('20' as binary) "; -execute stmt1 ; -found -true -set @arg00= CAST('20' as binary) ; -select 'true' as found from t9 -where c1= @arg00 and c2= @arg00 and c3= @arg00 and c4= @arg00 and c5= @arg00 -and c6= @arg00 and c7= @arg00 and c8= @arg00 and c9= @arg00 and c10= @arg00 -and c12= @arg00; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= ? and c2= ? and c3= ? and c4= ? and c5= ? - and c6= ? and c7= ? and c8= ? and c9= ? and c10= ? - and c12= ? "; -execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00 ; -found -true -delete from t9 ; -test_sequence --- some numeric overflow experiments -- -prepare my_insert from "insert into t9 - ( c21, c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values - ( 'O', ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )" ; -prepare my_select from "select c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 -from t9 where c21 = 'O' "; -prepare my_delete from "delete from t9 where c21 = 'O' "; -set @arg00= 9223372036854775807 ; -execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ; -Warnings: -Warning 1264 Data truncated; out of range for column 'c1' at row 1 -Warning 1264 Data truncated; out of range for column 'c2' at row 1 -Warning 1264 Data truncated; out of range for column 'c3' at row 1 -Warning 1264 Data truncated; out of range for column 'c4' at row 1 -Warning 1264 Data truncated; out of range for column 'c5' at row 1 -Warning 1264 Data truncated; out of range for column 'c12' at row 1 -execute my_select ; -c1 127 -c2 32767 -c3 8388607 -c4 2147483647 -c5 2147483647 -c6 9223372036854775807 -c7 9.22337e+18 -c8 9.22337203685478e+18 -c9 9.22337203685478e+18 -c10 9.22337203685478e+18 -c12 99999.9999 -execute my_delete ; -set @arg00= '9223372036854775807' ; -execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ; -Warnings: -Warning 1264 Data truncated; out of range for column 'c1' at row 1 -Warning 1264 Data truncated; out of range for column 'c2' at row 1 -Warning 1264 Data truncated; out of range for column 'c3' at row 1 -Warning 1265 Data truncated for column 'c4' at row 1 -Warning 1265 Data truncated for column 'c5' at row 1 -Warning 1264 Data truncated; out of range for column 'c12' at row 1 -execute my_select ; -c1 127 -c2 32767 -c3 8388607 -c4 2147483647 -c5 2147483647 -c6 9223372036854775807 -c7 9.22337e+18 -c8 9.22337203685478e+18 -c9 9.22337203685478e+18 -c10 9.22337203685478e+18 -c12 99999.9999 -execute my_delete ; -set @arg00= -9223372036854775808 ; -execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ; -Warnings: -Warning 1264 Data truncated; out of range for column 'c1' at row 1 -Warning 1264 Data truncated; out of range for column 'c2' at row 1 -Warning 1264 Data truncated; out of range for column 'c3' at row 1 -Warning 1264 Data truncated; out of range for column 'c4' at row 1 -Warning 1264 Data truncated; out of range for column 'c5' at row 1 -Warning 1264 Data truncated; out of range for column 'c12' at row 1 -execute my_select ; -c1 -128 -c2 -32768 -c3 -8388608 -c4 -2147483648 -c5 -2147483648 -c6 -9223372036854775808 -c7 -9.22337e+18 -c8 -9.22337203685478e+18 -c9 -9.22337203685478e+18 -c10 -9.22337203685478e+18 -c12 -9999.9999 -execute my_delete ; -set @arg00= '-9223372036854775808' ; -execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ; -Warnings: -Warning 1264 Data truncated; out of range for column 'c1' at row 1 -Warning 1264 Data truncated; out of range for column 'c2' at row 1 -Warning 1264 Data truncated; out of range for column 'c3' at row 1 -Warning 1265 Data truncated for column 'c4' at row 1 -Warning 1265 Data truncated for column 'c5' at row 1 -Warning 1264 Data truncated; out of range for column 'c12' at row 1 -execute my_select ; -c1 -128 -c2 -32768 -c3 -8388608 -c4 -2147483648 -c5 -2147483648 -c6 -9223372036854775808 -c7 -9.22337e+18 -c8 -9.22337203685478e+18 -c9 -9.22337203685478e+18 -c10 -9.22337203685478e+18 -c12 -9999.9999 -execute my_delete ; -set @arg00= 1.11111111111111111111e+50 ; -execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ; -Warnings: -Warning 1264 Data truncated; out of range for column 'c1' at row 1 -Warning 1264 Data truncated; out of range for column 'c2' at row 1 -Warning 1264 Data truncated; out of range for column 'c3' at row 1 -Warning 1264 Data truncated; out of range for column 'c4' at row 1 -Warning 1264 Data truncated; out of range for column 'c5' at row 1 -Warning 1264 Data truncated; out of range for column 'c6' at row 1 -Warning 1264 Data truncated; out of range for column 'c7' at row 1 -Warning 1264 Data truncated; out of range for column 'c12' at row 1 -execute my_select ; -c1 127 -c2 32767 -c3 8388607 -c4 2147483647 -c5 2147483647 -c6 9223372036854775807 -c7 3.40282e+38 -c8 1.11111111111111e+50 -c9 1.11111111111111e+50 -c10 1.11111111111111e+50 -c12 99999.9999 -execute my_delete ; -set @arg00= '1.11111111111111111111e+50' ; -execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ; -Warnings: -Warning 1265 Data truncated for column 'c1' at row 1 -Warning 1265 Data truncated for column 'c2' at row 1 -Warning 1265 Data truncated for column 'c3' at row 1 -Warning 1265 Data truncated for column 'c4' at row 1 -Warning 1265 Data truncated for column 'c5' at row 1 -Warning 1265 Data truncated for column 'c6' at row 1 -Warning 1264 Data truncated; out of range for column 'c7' at row 1 -Warning 1264 Data truncated; out of range for column 'c12' at row 1 -execute my_select ; -c1 1 -c2 1 -c3 1 -c4 1 -c5 1 -c6 1 -c7 3.40282e+38 -c8 1.11111111111111e+50 -c9 1.11111111111111e+50 -c10 1.11111111111111e+50 -c12 99999.9999 -execute my_delete ; -set @arg00= -1.11111111111111111111e+50 ; -execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ; -Warnings: -Warning 1264 Data truncated; out of range for column 'c1' at row 1 -Warning 1264 Data truncated; out of range for column 'c2' at row 1 -Warning 1264 Data truncated; out of range for column 'c3' at row 1 -Warning 1264 Data truncated; out of range for column 'c4' at row 1 -Warning 1264 Data truncated; out of range for column 'c5' at row 1 -Warning 1264 Data truncated; out of range for column 'c6' at row 1 -Warning 1264 Data truncated; out of range for column 'c7' at row 1 -Warning 1264 Data truncated; out of range for column 'c12' at row 1 -execute my_select ; -c1 -128 -c2 -32768 -c3 -8388608 -c4 -2147483648 -c5 -2147483648 -c6 -9223372036854775808 -c7 -3.40282e+38 -c8 -1.11111111111111e+50 -c9 -1.11111111111111e+50 -c10 -1.11111111111111e+50 -c12 -9999.9999 -execute my_delete ; -set @arg00= '-1.11111111111111111111e+50' ; -execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ; -Warnings: -Warning 1265 Data truncated for column 'c1' at row 1 -Warning 1265 Data truncated for column 'c2' at row 1 -Warning 1265 Data truncated for column 'c3' at row 1 -Warning 1265 Data truncated for column 'c4' at row 1 -Warning 1265 Data truncated for column 'c5' at row 1 -Warning 1265 Data truncated for column 'c6' at row 1 -Warning 1264 Data truncated; out of range for column 'c7' at row 1 -Warning 1264 Data truncated; out of range for column 'c12' at row 1 -execute my_select ; -c1 -1 -c2 -1 -c3 -1 -c4 -1 -c5 -1 -c6 -1 -c7 -3.40282e+38 -c8 -1.11111111111111e+50 -c9 -1.11111111111111e+50 -c10 -1.11111111111111e+50 -c12 -9999.9999 -execute my_delete ; -test_sequence --- insert into string columns -- -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -select c1, c20, c21, c22, c23, c24, c25, c26, c27, c28, c29, c30 -from t9 where c1 >= 20 -order by c1 ; -c1 c20 c21 c22 c23 c24 c25 c26 c27 c28 c29 c30 -20 2 20 20 20 20 20 20 20 20 20 20 -21 2 21 21 21 21 21 21 21 21 21 21 -22 2 22 22 22 22 22 22 22 22 22 22 -23 2 23 23 23 23 23 23 23 23 23 23 -30 3 30 30 30 30 30 30 30 30 30 30 -31 3 31 31 31 31 31 31 31 31 31 31 -32 3 32 32 32 32 32 32 32 32 32 32 -33 3 33 33 33 33 33 33 33 33 33 33 -40 4 40 40 40 40 40 40 40 40 40 40 -41 4 41 41 41 41 41 41 41 41 41 41 -42 4 42 42 42 42 42 42 42 42 42 42 -43 4 43 43 43 43 43 43 43 43 43 43 -50 5 50 50 50.00 50.00 50.00 50.00 50.00 50.00 50.00 50.00 -51 5 51 51 51 51 51 51 51 51 51 51 -52 5 52 52 52.00 52.00 52.00 52.00 52.00 52.00 52.00 52.00 -53 5 53 53 53.00 53.00 53.00 53.00 53.00 53.00 53.00 53.00 -54 5 54 54 54.00 54.00 54.00 54.00 54.00 54.00 54.00 54.00 -55 5 55 55 55 55 55 55 55 55 55 55 -56 6 56 56 56.00 56.00 56.00 56.00 56.00 56.00 56.00 56.00 -57 6 57 57 57.00 57.00 57.00 57.00 57.00 57.00 57.00 57.00 -60 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -61 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -62 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -63 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -71 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -73 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -81 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -83 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -test_sequence --- select .. where string column = .. -- -set @arg00= '20'; -select 'true' as found from t9 -where c1= 20 and concat(c20,substr('20',1+length(c20)))= '20' and c21= '20' and -c22= '20' and c23= '20' and c24= '20' and c25= '20' and c26= '20' and -c27= '20' and c28= '20' and c29= '20' and c30= '20' ; -found -true -select 'true' as found from t9 -where c1= 20 and concat(c20,substr(@arg00,1+length(c20)))= @arg00 and -c21= @arg00 and c22= @arg00 and c23= @arg00 and c25= @arg00 and -c26= @arg00 and c27= @arg00 and c28= @arg00 and c29= @arg00 and c30= @arg00; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and concat(c20,substr('20',1+length(c20)))= '20' and c21= '20' and - c22= '20' and c23= '20' and c24= '20' and c25= '20' and c26= '20' and - c27= '20' and c28= '20' and c29= '20' and c30= '20'" ; -execute stmt1 ; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and concat(c20,substr(?,1+length(c20)))= ? and - c21= ? and c22= ? and c23= ? and c25= ? and - c26= ? and c27= ? and c28= ? and c29= ? and c30= ?" ; -execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ; -found -true -set @arg00= CAST('20' as binary); -select 'true' as found from t9 -where c1= 20 and concat(c20,substr(CAST('20' as binary),1+length(c20))) -= CAST('20' as binary) and c21= CAST('20' as binary) -and c22= CAST('20' as binary) and c23= CAST('20' as binary) and -c24= CAST('20' as binary) and c25= CAST('20' as binary) and -c26= CAST('20' as binary) and c27= CAST('20' as binary) and -c28= CAST('20' as binary) and c29= CAST('20' as binary) and -c30= CAST('20' as binary) ; -found -true -select 'true' as found from t9 -where c1= 20 and concat(c20,substr(@arg00,1+length(c20))) = @arg00 and -c21= @arg00 and c22= @arg00 and c23= @arg00 and c25= @arg00 and -c26= @arg00 and c27= @arg00 and c28= @arg00 and c29= @arg00 and -c30= @arg00; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and concat(c20,substr(CAST('20' as binary),1+length(c20))) - = CAST('20' as binary) and c21= CAST('20' as binary) - and c22= CAST('20' as binary) and c23= CAST('20' as binary) and - c24= CAST('20' as binary) and c25= CAST('20' as binary) and - c26= CAST('20' as binary) and c27= CAST('20' as binary) and - c28= CAST('20' as binary) and c29= CAST('20' as binary) and - c30= CAST('20' as binary)" ; -execute stmt1 ; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and concat(c20,substr(?,1+length(c20))) = ? and c21= ? and - c22= ? and c23= ? and c25= ? and c26= ? and c27= ? and c28= ? and - c29= ? and c30= ?"; -execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ; -found -true -set @arg00= 20; -select 'true' as found from t9 -where c1= 20 and concat(c20,substr(20,1+length(c20)))= 20 and c21= 20 and -c22= 20 and c23= 20 and c24= 20 and c25= 20 and c26= 20 and -c27= 20 and c28= 20 and c29= 20 and c30= 20 ; -found -true -select 'true' as found from t9 -where c1= 20 and concat(c20,substr(@arg00,1+length(c20)))= @arg00 and -c21= @arg00 and c22= @arg00 and c23= @arg00 and c25= @arg00 and -c26= @arg00 and c27= @arg00 and c28= @arg00 and c29= @arg00 and c30= @arg00; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and concat(c20,substr(20,1+length(c20)))= 20 and c21= 20 and - c22= 20 and c23= 20 and c24= 20 and c25= 20 and c26= 20 and - c27= 20 and c28= 20 and c29= 20 and c30= 20" ; -execute stmt1 ; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and concat(c20,substr(?,1+length(c20)))= ? and - c21= ? and c22= ? and c23= ? and c25= ? and - c26= ? and c27= ? and c28= ? and c29= ? and c30= ?" ; -execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ; -found -true -set @arg00= 20.0; -select 'true' as found from t9 -where c1= 20 and concat(c20,substr(20.0,1+length(c20)))= 20.0 and c21= 20.0 and -c22= 20.0 and c23= 20.0 and c24= 20.0 and c25= 20.0 and c26= 20.0 and -c27= 20.0 and c28= 20.0 and c29= 20.0 and c30= 20.0 ; -found -true -select 'true' as found from t9 -where c1= 20 and concat(c20,substr(@arg00,1+length(c20)))= @arg00 and -c21= @arg00 and c22= @arg00 and c23= @arg00 and c25= @arg00 and -c26= @arg00 and c27= @arg00 and c28= @arg00 and c29= @arg00 and c30= @arg00; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and concat(c20,substr(20.0,1+length(c20)))= 20.0 and c21= 20.0 and - c22= 20.0 and c23= 20.0 and c24= 20.0 and c25= 20.0 and c26= 20.0 and - c27= 20.0 and c28= 20.0 and c29= 20.0 and c30= 20.0" ; -execute stmt1 ; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and concat(c20,substr(?,1+length(c20)))= ? and - c21= ? and c22= ? and c23= ? and c25= ? and - c26= ? and c27= ? and c28= ? and c29= ? and c30= ?" ; -execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ; -found -true -delete from t9 ; -test_sequence --- insert into date/time columns -- -Warnings: -Warning 1265 Data truncated for column 'c17' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c17' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c17' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c17' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c17' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c17' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c17' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c17' at row 1 -Warnings: -Warning 1264 Data truncated; out of range for column 'c13' at row 1 -Warning 1265 Data truncated for column 'c14' at row 1 -Warning 1265 Data truncated for column 'c15' at row 1 -Warning 1264 Data truncated; out of range for column 'c16' at row 1 -Warning 1264 Data truncated; out of range for column 'c17' at row 1 -Warnings: -Warning 1264 Data truncated; out of range for column 'c13' at row 1 -Warning 1265 Data truncated for column 'c14' at row 1 -Warning 1265 Data truncated for column 'c15' at row 1 -Warning 1264 Data truncated; out of range for column 'c16' at row 1 -Warning 1264 Data truncated; out of range for column 'c17' at row 1 -Warnings: -Warning 1264 Data truncated; out of range for column 'c13' at row 1 -Warning 1265 Data truncated for column 'c14' at row 1 -Warning 1265 Data truncated for column 'c15' at row 1 -Warning 1264 Data truncated; out of range for column 'c16' at row 1 -Warning 1264 Data truncated; out of range for column 'c17' at row 1 -Warnings: -Warning 1264 Data truncated; out of range for column 'c13' at row 1 -Warning 1265 Data truncated for column 'c14' at row 1 -Warning 1265 Data truncated for column 'c15' at row 1 -Warning 1264 Data truncated; out of range for column 'c16' at row 1 -Warning 1264 Data truncated; out of range for column 'c17' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c15' at row 1 -Warning 1264 Data truncated; out of range for column 'c16' at row 1 -Warning 1264 Data truncated; out of range for column 'c17' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c15' at row 1 -Warning 1264 Data truncated; out of range for column 'c16' at row 1 -Warning 1264 Data truncated; out of range for column 'c17' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c15' at row 1 -Warning 1264 Data truncated; out of range for column 'c16' at row 1 -Warning 1264 Data truncated; out of range for column 'c17' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c15' at row 1 -Warning 1264 Data truncated; out of range for column 'c16' at row 1 -Warning 1264 Data truncated; out of range for column 'c17' at row 1 -select c1, c13, c14, c15, c16, c17 from t9 order by c1 ; -c1 c13 c14 c15 c16 c17 -20 1991-01-01 1991-01-01 01:01:01 1991-01-01 01:01:01 01:01:01 1991 -21 1991-01-01 1991-01-01 01:01:01 1991-01-01 01:01:01 01:01:01 1991 -22 1991-01-01 1991-01-01 01:01:01 1991-01-01 01:01:01 01:01:01 1991 -23 1991-01-01 1991-01-01 01:01:01 1991-01-01 01:01:01 01:01:01 1991 -30 1991-01-01 1991-01-01 01:01:01 1991-01-01 01:01:01 01:01:01 1991 -31 1991-01-01 1991-01-01 01:01:01 1991-01-01 01:01:01 01:01:01 1991 -32 1991-01-01 1991-01-01 01:01:01 1991-01-01 01:01:01 01:01:01 1991 -33 1991-01-01 1991-01-01 01:01:01 1991-01-01 01:01:01 01:01:01 1991 -40 0000-00-00 0000-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 -41 0000-00-00 0000-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 -42 0000-00-00 0000-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 -43 0000-00-00 0000-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 -50 2001-00-00 2001-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 -51 0010-00-00 0010-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 -52 2001-00-00 2001-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 -53 2001-00-00 2001-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 -60 NULL NULL 1991-01-01 01:01:01 NULL NULL -61 NULL NULL 1991-01-01 01:01:01 NULL NULL -62 NULL NULL 1991-01-01 01:01:01 NULL NULL -63 NULL NULL 1991-01-01 01:01:01 NULL NULL -71 NULL NULL 1991-01-01 01:01:01 NULL NULL -73 NULL NULL 1991-01-01 01:01:01 NULL NULL -81 NULL NULL 1991-01-01 01:01:01 NULL NULL -83 NULL NULL 1991-01-01 01:01:01 NULL NULL -test_sequence --- select .. where date/time column = .. -- -set @arg00= '1991-01-01 01:01:01' ; -select 'true' as found from t9 -where c1= 20 and c13= '1991-01-01 01:01:01' and c14= '1991-01-01 01:01:01' and -c15= '1991-01-01 01:01:01' and c16= '1991-01-01 01:01:01' and -c17= '1991-01-01 01:01:01' ; -found -true -select 'true' as found from t9 -where c1= 20 and c13= @arg00 and c14= @arg00 and c15= @arg00 and c16= @arg00 -and c17= @arg00 ; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and c13= '1991-01-01 01:01:01' and c14= '1991-01-01 01:01:01' and - c15= '1991-01-01 01:01:01' and c16= '1991-01-01 01:01:01' and - c17= '1991-01-01 01:01:01'" ; -execute stmt1 ; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and c13= ? and c14= ? and c15= ? and c16= ? and c17= ?" ; -execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00 ; -found -true -set @arg00= CAST('1991-01-01 01:01:01' as datetime) ; -select 'true' as found from t9 -where c1= 20 and c13= CAST('1991-01-01 01:01:01' as datetime) and -c14= CAST('1991-01-01 01:01:01' as datetime) and -c15= CAST('1991-01-01 01:01:01' as datetime) and -c16= CAST('1991-01-01 01:01:01' as datetime) and -c17= CAST('1991-01-01 01:01:01' as datetime) ; -found -true -select 'true' as found from t9 -where c1= 20 and c13= @arg00 and c14= @arg00 and c15= @arg00 and c16= @arg00 -and c17= @arg00 ; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and c13= CAST('1991-01-01 01:01:01' as datetime) and - c14= CAST('1991-01-01 01:01:01' as datetime) and - c15= CAST('1991-01-01 01:01:01' as datetime) and - c16= CAST('1991-01-01 01:01:01' as datetime) and - c17= CAST('1991-01-01 01:01:01' as datetime)" ; -execute stmt1 ; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and c13= ? and c14= ? and c15= ? and c16= ? and c17= ?" ; -execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00 ; -found -true -set @arg00= 1991 ; -select 'true' as found from t9 -where c1= 20 and c17= 1991 ; -found -true -select 'true' as found from t9 -where c1= 20 and c17= @arg00 ; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and c17= 1991" ; -execute stmt1 ; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and c17= ?" ; -execute stmt1 using @arg00 ; -found -true -set @arg00= 1.991e+3 ; -select 'true' as found from t9 -where c1= 20 and abs(c17 - 1.991e+3) < 0.01 ; -found -true -select 'true' as found from t9 -where c1= 20 and abs(c17 - @arg00) < 0.01 ; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and abs(c17 - 1.991e+3) < 0.01" ; -execute stmt1 ; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and abs(c17 - ?) < 0.01" ; -execute stmt1 using @arg00 ; -found -true -drop table t1, t9; diff --git a/mysql-test/r/ps_3innodb.result.es b/mysql-test/r/ps_3innodb.result.es deleted file mode 100644 index 9386f18a4df..00000000000 --- a/mysql-test/r/ps_3innodb.result.es +++ /dev/null @@ -1,3113 +0,0 @@ -use test; -drop table if exists t1, t9 ; -create table t1 -( -a int, b varchar(30), -primary key(a) -) engine = 'InnoDB' ; -create table t9 -( -c1 tinyint, c2 smallint, c3 mediumint, c4 int, -c5 integer, c6 bigint, c7 float, c8 double, -c9 double precision, c10 real, c11 decimal(7, 4), c12 numeric(8, 4), -c13 date, c14 datetime, c15 timestamp(14), c16 time, -c17 year, c18 bit, c19 bool, c20 char, -c21 char(10), c22 varchar(30), c23 tinyblob, c24 tinytext, -c25 blob, c26 text, c27 mediumblob, c28 mediumtext, -c29 longblob, c30 longtext, c31 enum('one', 'two', 'three'), -c32 set('monday', 'tuesday', 'wednesday'), -primary key(c1) -) engine = 'InnoDB' ; -delete from t1 ; -insert into t1 values (1,'one'); -insert into t1 values (2,'two'); -insert into t1 values (3,'three'); -insert into t1 values (4,'four'); -commit ; -delete from t9 ; -insert into t9 -set c1= 1, c2= 1, c3= 1, c4= 1, c5= 1, c6= 1, c7= 1, c8= 1, c9= 1, -c10= 1, c11= 1, c12 = 1, -c13= '2004-02-29', c14= '2004-02-29 11:11:11', c15= '2004-02-29 11:11:11', -c16= '11:11:11', c17= '2004', -c18= 1, c19=true, c20= 'a', c21= '123456789a', -c22= '123456789a123456789b123456789c', c23= 'tinyblob', c24= 'tinytext', -c25= 'blob', c26= 'text', c27= 'mediumblob', c28= 'mediumtext', -c29= 'longblob', c30= 'longtext', c31='one', c32= 'monday'; -insert into t9 -set c1= 9, c2= 9, c3= 9, c4= 9, c5= 9, c6= 9, c7= 9, c8= 9, c9= 9, -c10= 9, c11= 9, c12 = 9, -c13= '2004-02-29', c14= '2004-02-29 11:11:11', c15= '2004-02-29 11:11:11', -c16= '11:11:11', c17= '2004', -c18= 1, c19=false, c20= 'a', c21= '123456789a', -c22= '123456789a123456789b123456789c', c23= 'tinyblob', c24= 'tinytext', -c25= 'blob', c26= 'text', c27= 'mediumblob', c28= 'mediumtext', -c29= 'longblob', c30= 'longtext', c31='two', c32= 'tuesday'; -commit ; -test_sequence ------- simple select tests ------ -prepare stmt1 from ' select * from t9 order by c1 ' ; -execute stmt1; -Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr -def test t9 t9 c1 c1 1 4 1 N 49155 0 63 -def test t9 t9 c2 c2 2 6 1 Y 32768 0 63 -def test t9 t9 c3 c3 9 9 1 Y 32768 0 63 -def test t9 t9 c4 c4 3 11 1 Y 32768 0 63 -def test t9 t9 c5 c5 3 11 1 Y 32768 0 63 -def test t9 t9 c6 c6 8 20 1 Y 32768 0 63 -def test t9 t9 c7 c7 4 12 1 Y 32768 31 63 -def test t9 t9 c8 c8 5 22 1 Y 32768 31 63 -def test t9 t9 c9 c9 5 22 1 Y 32768 31 63 -def test t9 t9 c10 c10 5 22 1 Y 32768 31 63 -def test t9 t9 c11 c11 0 9 6 Y 32768 4 63 -def test t9 t9 c12 c12 0 10 6 Y 32768 4 63 -def test t9 t9 c13 c13 10 10 10 Y 128 0 63 -def test t9 t9 c14 c14 12 19 19 Y 128 0 63 -def test t9 t9 c15 c15 7 19 19 N 1249 0 63 -def test t9 t9 c16 c16 11 8 8 Y 128 0 63 -def test t9 t9 c17 c17 13 4 4 Y 32864 0 63 -def test t9 t9 c18 c18 1 1 1 Y 32768 0 63 -def test t9 t9 c19 c19 1 1 1 Y 32768 0 63 -def test t9 t9 c20 c20 254 1 1 Y 0 0 8 -def test t9 t9 c21 c21 253 10 10 Y 0 0 8 -def test t9 t9 c22 c22 253 30 30 Y 0 0 8 -def test t9 t9 c23 c23 252 255 8 Y 144 0 63 -def test t9 t9 c24 c24 252 255 8 Y 16 0 8 -def test t9 t9 c25 c25 252 65535 4 Y 144 0 63 -def test t9 t9 c26 c26 252 65535 4 Y 16 0 8 -def test t9 t9 c27 c27 252 16777215 10 Y 144 0 63 -def test t9 t9 c28 c28 252 16777215 10 Y 16 0 8 -def test t9 t9 c29 c29 252 16777215 8 Y 144 0 63 -def test t9 t9 c30 c30 252 16777215 8 Y 16 0 8 -def test t9 t9 c31 c31 254 5 3 Y 256 0 8 -def test t9 t9 c32 c32 254 24 7 Y 2048 0 8 -c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 c13 c14 c15 c16 c17 c18 c19 c20 c21 c22 c23 c24 c25 c26 c27 c28 c29 c30 c31 c32 -1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday -9 9 9 9 9 9 9 9 9 9 9.0000 9.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 0 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext two tuesday -set @arg00='SELECT' ; -prepare stmt1 from ' ? a from t1 where a=1 '; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '? a from t1 where a=1' at line 1 -set @arg00=1 ; -select @arg00, b from t1 where a=1 ; -@arg00 b -1 one -prepare stmt1 from ' select ?, b from t1 where a=1 ' ; -execute stmt1 using @arg00 ; -? b -1 one -set @arg00='lion' ; -select @arg00, b from t1 where a=1 ; -@arg00 b -lion one -prepare stmt1 from ' select ?, b from t1 where a=1 ' ; -execute stmt1 using @arg00 ; -? b -lion one -set @arg00=NULL ; -select @arg00, b from t1 where a=1 ; -@arg00 b -NULL one -prepare stmt1 from ' select ?, b from t1 where a=1 ' ; -execute stmt1 using @arg00 ; -? b -NULL one -set @arg00=1 ; -select b, a - @arg00 from t1 where a=1 ; -b a - @arg00 -one 0 -prepare stmt1 from ' select b, a - ? from t1 where a=1 ' ; -execute stmt1 using @arg00 ; -b a - ? -one 0 -set @arg00=null ; -select @arg00 as my_col ; -my_col -NULL -prepare stmt1 from ' select ? as my_col'; -execute stmt1 using @arg00 ; -my_col -NULL -select @arg00 + 1 as my_col ; -my_col -NULL -prepare stmt1 from ' select ? + 1 as my_col'; -execute stmt1 using @arg00 ; -my_col -NULL -select 1 + @arg00 as my_col ; -my_col -NULL -prepare stmt1 from ' select 1 + ? as my_col'; -execute stmt1 using @arg00 ; -my_col -NULL -set @arg00='MySQL' ; -select substr(@arg00,1,2) from t1 where a=1 ; -substr(@arg00,1,2) -My -prepare stmt1 from ' select substr(?,1,2) from t1 where a=1 ' ; -execute stmt1 using @arg00 ; -substr(?,1,2) -My -set @arg00=3 ; -select substr('MySQL',@arg00,5) from t1 where a=1 ; -substr('MySQL',@arg00,5) -SQL -prepare stmt1 from ' select substr(''MySQL'',?,5) from t1 where a=1 ' ; -execute stmt1 using @arg00 ; -substr('MySQL',?,5) -SQL -select substr('MySQL',1,@arg00) from t1 where a=1 ; -substr('MySQL',1,@arg00) -MyS -prepare stmt1 from ' select substr(''MySQL'',1,?) from t1 where a=1 ' ; -execute stmt1 using @arg00 ; -substr('MySQL',1,?) -MyS -set @arg00='MySQL' ; -select a , concat(@arg00,b) from t1 order by a; -a concat(@arg00,b) -1 MySQLone -2 MySQLtwo -3 MySQLthree -4 MySQLfour -prepare stmt1 from ' select a , concat(?,b) from t1 order by a ' ; -execute stmt1 using @arg00; -a concat(?,b) -1 MySQLone -2 MySQLtwo -3 MySQLthree -4 MySQLfour -select a , concat(b,@arg00) from t1 order by a ; -a concat(b,@arg00) -1 oneMySQL -2 twoMySQL -3 threeMySQL -4 fourMySQL -prepare stmt1 from ' select a , concat(b,?) from t1 order by a ' ; -execute stmt1 using @arg00; -a concat(b,?) -1 oneMySQL -2 twoMySQL -3 threeMySQL -4 fourMySQL -set @arg00='MySQL' ; -select group_concat(@arg00,b order by a) from t1 -group by 'a' ; -group_concat(@arg00,b order by a) -MySQLone,MySQLtwo,MySQLthree,MySQLfour -prepare stmt1 from ' select group_concat(?,b order by a) from t1 -group by ''a'' ' ; -execute stmt1 using @arg00; -group_concat(?,b order by a) -MySQLone,MySQLtwo,MySQLthree,MySQLfour -select group_concat(b,@arg00 order by a) from t1 -group by 'a' ; -group_concat(b,@arg00 order by a) -oneMySQL,twoMySQL,threeMySQL,fourMySQL -prepare stmt1 from ' select group_concat(b,? order by a) from t1 -group by ''a'' ' ; -execute stmt1 using @arg00; -group_concat(b,? order by a) -oneMySQL,twoMySQL,threeMySQL,fourMySQL -set @arg00='first' ; -set @arg01='second' ; -set @arg02=NULL; -select @arg00, @arg01 from t1 where a=1 ; -@arg00 @arg01 -first second -prepare stmt1 from ' select ?, ? from t1 where a=1 ' ; -execute stmt1 using @arg00, @arg01 ; -? ? -first second -execute stmt1 using @arg02, @arg01 ; -? ? -NULL second -execute stmt1 using @arg00, @arg02 ; -? ? -first NULL -execute stmt1 using @arg02, @arg02 ; -? ? -NULL NULL -drop table if exists t5 ; -create table t5 (id1 int(11) not null default '0', -value2 varchar(100), value1 varchar(100)) ; -insert into t5 values (1,'hh','hh'),(2,'hh','hh'), -(1,'ii','ii'),(2,'ii','ii') ; -prepare stmt1 from ' select id1,value1 from t5 where id1=? or value1=? order by id1,value1 ' ; -set @arg00=1 ; -set @arg01='hh' ; -execute stmt1 using @arg00, @arg01 ; -id1 value1 -1 hh -1 ii -2 hh -drop table t5 ; -drop table if exists t5 ; -create table t5(session_id char(9) not null) ; -insert into t5 values ('abc') ; -prepare stmt1 from ' select * from t5 -where ?=''1111'' and session_id = ''abc'' ' ; -set @arg00='abc' ; -execute stmt1 using @arg00 ; -session_id -set @arg00='1111' ; -execute stmt1 using @arg00 ; -session_id -abc -set @arg00='abc' ; -execute stmt1 using @arg00 ; -session_id -drop table t5 ; -set @arg00='FROM' ; -select a @arg00 t1 where a=1 ; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@arg00 t1 where a=1' at line 1 -prepare stmt1 from ' select a ? t1 where a=1 ' ; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '? t1 where a=1' at line 1 -set @arg00='t1' ; -select a from @arg00 where a=1 ; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@arg00 where a=1' at line 1 -prepare stmt1 from ' select a from ? where a=1 ' ; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '? where a=1' at line 1 -set @arg00='WHERE' ; -select a from t1 @arg00 a=1 ; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@arg00 a=1' at line 1 -prepare stmt1 from ' select a from t1 ? a=1 ' ; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '? a=1' at line 1 -set @arg00=1 ; -select a FROM t1 where a=@arg00 ; -a -1 -prepare stmt1 from ' select a FROM t1 where a=? ' ; -execute stmt1 using @arg00 ; -a -1 -set @arg00=1000 ; -execute stmt1 using @arg00 ; -a -set @arg00=NULL ; -select a FROM t1 where a=@arg00 ; -a -prepare stmt1 from ' select a FROM t1 where a=? ' ; -execute stmt1 using @arg00 ; -a -set @arg00=4 ; -select a FROM t1 where a=sqrt(@arg00) ; -a -2 -prepare stmt1 from ' select a FROM t1 where a=sqrt(?) ' ; -execute stmt1 using @arg00 ; -a -2 -set @arg00=NULL ; -select a FROM t1 where a=sqrt(@arg00) ; -a -prepare stmt1 from ' select a FROM t1 where a=sqrt(?) ' ; -execute stmt1 using @arg00 ; -a -set @arg00=2 ; -set @arg01=3 ; -select a FROM t1 where a in (@arg00,@arg01) order by a; -a -2 -3 -prepare stmt1 from ' select a FROM t1 where a in (?,?) order by a '; -execute stmt1 using @arg00, @arg01; -a -2 -3 -set @arg00= 'one' ; -set @arg01= 'two' ; -set @arg02= 'five' ; -prepare stmt1 from ' select b FROM t1 where b in (?,?,?) order by b ' ; -execute stmt1 using @arg00, @arg01, @arg02 ; -b -one -two -prepare stmt1 from ' select b FROM t1 where b like ? '; -set @arg00='two' ; -execute stmt1 using @arg00 ; -b -two -set @arg00='tw%' ; -execute stmt1 using @arg00 ; -b -two -set @arg00='%wo' ; -execute stmt1 using @arg00 ; -b -two -set @arg00=null ; -insert into t9 set c1= 0, c5 = NULL ; -select c5 from t9 where c5 > NULL ; -c5 -prepare stmt1 from ' select c5 from t9 where c5 > ? '; -execute stmt1 using @arg00 ; -c5 -select c5 from t9 where c5 < NULL ; -c5 -prepare stmt1 from ' select c5 from t9 where c5 < ? '; -execute stmt1 using @arg00 ; -c5 -select c5 from t9 where c5 = NULL ; -c5 -prepare stmt1 from ' select c5 from t9 where c5 = ? '; -execute stmt1 using @arg00 ; -c5 -select c5 from t9 where c5 <=> NULL ; -c5 -NULL -prepare stmt1 from ' select c5 from t9 where c5 <=> ? '; -execute stmt1 using @arg00 ; -c5 -NULL -delete from t9 where c1= 0 ; -set @arg00='>' ; -select a FROM t1 where a @arg00 1 ; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@arg00 1' at line 1 -prepare stmt1 from ' select a FROM t1 where a ? 1 ' ; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '? 1' at line 1 -set @arg00=1 ; -select a,b FROM t1 where a is not NULL -AND b is not NULL group by a - @arg00 ; -a b -1 one -2 two -3 three -4 four -prepare stmt1 from ' select a,b FROM t1 where a is not NULL -AND b is not NULL group by a - ? ' ; -execute stmt1 using @arg00 ; -a b -1 one -2 two -3 three -4 four -set @arg00='two' ; -select a,b FROM t1 where a is not NULL -AND b is not NULL having b <> @arg00 order by a ; -a b -1 one -3 three -4 four -prepare stmt1 from ' select a,b FROM t1 where a is not NULL -AND b is not NULL having b <> ? order by a ' ; -execute stmt1 using @arg00 ; -a b -1 one -3 three -4 four -set @arg00=1 ; -select a,b FROM t1 where a is not NULL -AND b is not NULL order by a - @arg00 ; -a b -1 one -2 two -3 three -4 four -prepare stmt1 from ' select a,b FROM t1 where a is not NULL -AND b is not NULL order by a - ? ' ; -execute stmt1 using @arg00 ; -a b -1 one -2 two -3 three -4 four -set @arg00=2 ; -select a,b from t1 order by 2 ; -a b -4 four -1 one -3 three -2 two -prepare stmt1 from ' select a,b from t1 -order by ? '; -execute stmt1 using @arg00; -a b -4 four -1 one -3 three -2 two -set @arg00=1 ; -execute stmt1 using @arg00; -a b -1 one -2 two -3 three -4 four -set @arg00=0 ; -execute stmt1 using @arg00; -ERROR 42S22: Unknown column '?' in 'order clause' -set @arg00=1; -prepare stmt1 from ' select a,b from t1 order by a -limit 1 '; -execute stmt1 ; -a b -1 one -prepare stmt1 from ' select a,b from t1 -limit ? '; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '?' at line 2 -set @arg00='b' ; -set @arg01=0 ; -set @arg02=2 ; -set @arg03=2 ; -select sum(a), @arg00 from t1 where a > @arg01 -and b is not null group by substr(b,@arg02) -having sum(a) <> @arg03 ; -sum(a) @arg00 -3 b -1 b -4 b -prepare stmt1 from ' select sum(a), ? from t1 where a > ? -and b is not null group by substr(b,?) -having sum(a) <> ? '; -execute stmt1 using @arg00, @arg01, @arg02, @arg03; -sum(a) ? -3 b -1 b -4 b -test_sequence ------- join tests ------ -select first.a as a1, second.a as a2 -from t1 first, t1 second -where first.a = second.a order by a1 ; -a1 a2 -1 1 -2 2 -3 3 -4 4 -prepare stmt1 from ' select first.a as a1, second.a as a2 - from t1 first, t1 second - where first.a = second.a order by a1 '; -execute stmt1 ; -a1 a2 -1 1 -2 2 -3 3 -4 4 -set @arg00='ABC'; -set @arg01='two'; -set @arg02='one'; -select first.a, @arg00, second.a FROM t1 first, t1 second -where @arg01 = first.b or first.a = second.a or second.b = @arg02 -order by second.a, first.a; -a @arg00 a -1 ABC 1 -2 ABC 1 -3 ABC 1 -4 ABC 1 -2 ABC 2 -2 ABC 3 -3 ABC 3 -2 ABC 4 -4 ABC 4 -prepare stmt1 from ' select first.a, ?, second.a FROM t1 first, t1 second - where ? = first.b or first.a = second.a or second.b = ? - order by second.a, first.a'; -execute stmt1 using @arg00, @arg01, @arg02; -a ? a -1 ABC 1 -2 ABC 1 -3 ABC 1 -4 ABC 1 -2 ABC 2 -2 ABC 3 -3 ABC 3 -2 ABC 4 -4 ABC 4 -drop table if exists t2 ; -create table t2 as select * from t1 ; -set @query1= 'SELECT * FROM t2 join t1 on (t1.a=t2.a) order by t2.a ' ; -set @query2= 'SELECT * FROM t2 natural join t1 order by t2.a ' ; -set @query3= 'SELECT * FROM t2 join t1 using(a) order by t2.a ' ; -set @query4= 'SELECT * FROM t2 left join t1 on(t1.a=t2.a) order by t2.a ' ; -set @query5= 'SELECT * FROM t2 natural left join t1 order by t2.a ' ; -set @query6= 'SELECT * FROM t2 left join t1 using(a) order by t2.a ' ; -set @query7= 'SELECT * FROM t2 right join t1 on(t1.a=t2.a) order by t2.a ' ; -set @query8= 'SELECT * FROM t2 natural right join t1 order by t2.a ' ; -set @query9= 'SELECT * FROM t2 right join t1 using(a) order by t2.a ' ; -the join statement is: -SELECT * FROM t2 right join t1 using(a) order by t2.a -prepare stmt1 from @query9 ; -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -the join statement is: -SELECT * FROM t2 natural right join t1 order by t2.a -prepare stmt1 from @query8 ; -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -the join statement is: -SELECT * FROM t2 right join t1 on(t1.a=t2.a) order by t2.a -prepare stmt1 from @query7 ; -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -the join statement is: -SELECT * FROM t2 left join t1 using(a) order by t2.a -prepare stmt1 from @query6 ; -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -the join statement is: -SELECT * FROM t2 natural left join t1 order by t2.a -prepare stmt1 from @query5 ; -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -the join statement is: -SELECT * FROM t2 left join t1 on(t1.a=t2.a) order by t2.a -prepare stmt1 from @query4 ; -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -the join statement is: -SELECT * FROM t2 join t1 using(a) order by t2.a -prepare stmt1 from @query3 ; -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -the join statement is: -SELECT * FROM t2 natural join t1 order by t2.a -prepare stmt1 from @query2 ; -execute stmt1 ; -a b -1 one -2 two -3 three -4 four -execute stmt1 ; -a b -1 one -2 two -3 three -4 four -execute stmt1 ; -a b -1 one -2 two -3 three -4 four -the join statement is: -SELECT * FROM t2 join t1 on (t1.a=t2.a) order by t2.a -prepare stmt1 from @query1 ; -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -drop table t2 ; -test_sequence ------- subquery tests ------ -prepare stmt1 from ' select a, b FROM t1 outer_table where - a = (select a from t1 where b = ''two'') '; -execute stmt1 ; -a b -2 two -set @arg00='two' ; -select a, b FROM t1 outer_table where -a = (select a from t1 where b = 'two' ) and b=@arg00 ; -a b -2 two -prepare stmt1 from ' select a, b FROM t1 outer_table where - a = (select a from t1 where b = ''two'') and b=? '; -execute stmt1 using @arg00; -a b -2 two -set @arg00='two' ; -select a, b FROM t1 outer_table where -a = (select a from t1 where b = @arg00 ) and b='two' ; -a b -2 two -prepare stmt1 from ' select a, b FROM t1 outer_table where - a = (select a from t1 where b = ? ) and b=''two'' ' ; -execute stmt1 using @arg00; -a b -2 two -set @arg00=3 ; -set @arg01='three' ; -select a,b FROM t1 where (a,b) in (select 3, 'three'); -a b -3 three -select a FROM t1 where (a,b) in (select @arg00,@arg01); -a -3 -prepare stmt1 from ' select a FROM t1 where (a,b) in (select ?, ?) '; -execute stmt1 using @arg00, @arg01; -a -3 -set @arg00=1 ; -set @arg01='two' ; -set @arg02=2 ; -set @arg03='two' ; -select a, @arg00, b FROM t1 outer_table where -b=@arg01 and a = (select @arg02 from t1 where b = @arg03 ) ; -a @arg00 b -2 1 two -prepare stmt1 from ' select a, ?, b FROM t1 outer_table where - b=? and a = (select ? from t1 where b = ? ) ' ; -execute stmt1 using @arg00, @arg01, @arg02, @arg03 ; -a ? b -2 1 two -prepare stmt1 from ' select a, b FROM t1 outer_table where - a = (select a from t1 where b = outer_table.b ) order by a '; -execute stmt1 ; -a b -1 one -2 two -3 three -4 four -prepare stmt1 from ' SELECT a as ccc from t1 where a+1= - (SELECT 1+ccc from t1 where ccc+1=a+1 and a=1) '; -execute stmt1 ; -ccc -1 -deallocate prepare stmt1 ; -prepare stmt1 from ' SELECT a as ccc from t1 where a+1= - (SELECT 1+ccc from t1 where ccc+1=a+1 and a=1) '; -execute stmt1 ; -ccc -1 -deallocate prepare stmt1 ; -prepare stmt1 from ' SELECT a as ccc from t1 where a+1= - (SELECT 1+ccc from t1 where ccc+1=a+1 and a=1) '; -execute stmt1 ; -ccc -1 -deallocate prepare stmt1 ; -set @arg00='two' ; -select a, b FROM t1 outer_table where -a = (select a from t1 where b = outer_table.b ) and b=@arg00 ; -a b -2 two -prepare stmt1 from ' select a, b FROM t1 outer_table where - a = (select a from t1 where b = outer_table.b) and b=? '; -execute stmt1 using @arg00; -a b -2 two -set @arg00=2 ; -select a, b FROM t1 outer_table where -a = (select a from t1 where a = @arg00 and b = outer_table.b) and b='two' ; -a b -2 two -prepare stmt1 from ' select a, b FROM t1 outer_table where - a = (select a from t1 where a = ? and b = outer_table.b) and b=''two'' ' ; -execute stmt1 using @arg00; -a b -2 two -set @arg00=2 ; -select a, b FROM t1 outer_table where -a = (select a from t1 where outer_table.a = @arg00 and a=2) and b='two' ; -a b -2 two -prepare stmt1 from ' select a, b FROM t1 outer_table where - a = (select a from t1 where outer_table.a = ? and a=2) and b=''two'' ' ; -execute stmt1 using @arg00; -a b -2 two -set @arg00=1 ; -set @arg01='two' ; -set @arg02=2 ; -set @arg03='two' ; -select a, @arg00, b FROM t1 outer_table where -b=@arg01 and a = (select @arg02 from t1 where outer_table.b = @arg03 -and outer_table.a=a ) ; -a @arg00 b -2 1 two -prepare stmt1 from ' select a, ?, b FROM t1 outer_table where - b=? and a = (select ? from t1 where outer_table.b = ? - and outer_table.a=a ) ' ; -execute stmt1 using @arg00, @arg01, @arg02, @arg03 ; -a ? b -2 1 two -set @arg00=1 ; -set @arg01=0 ; -select a, @arg00 -from ( select a - @arg00 as a from t1 where a=@arg00 ) as t2 -where a=@arg01; -a @arg00 -0 1 -prepare stmt1 from ' select a, ? - from ( select a - ? as a from t1 where a=? ) as t2 - where a=? '; -execute stmt1 using @arg00, @arg00, @arg00, @arg01 ; -a ? -0 1 -drop table if exists t2 ; -create table t2 as select * from t1; -prepare stmt1 from ' select a in (select a from t2) from t1 ' ; -execute stmt1 ; -a in (select a from t2) -1 -1 -1 -1 -drop table if exists t5, t6, t7 ; -create table t5 (a int , b int) ; -create table t6 like t5 ; -create table t7 like t5 ; -insert into t5 values (0, 100), (1, 2), (1, 3), (2, 2), (2, 7), -(2, -1), (3, 10) ; -insert into t6 values (0, 0), (1, 1), (2, 1), (3, 1), (4, 1) ; -insert into t7 values (3, 3), (2, 2), (1, 1) ; -prepare stmt1 from ' select a, (select count(distinct t5.b) as sum from t5, t6 - where t5.a=t6.a and t6.b > 0 and t5.a <= t7.b - group by t5.a order by sum limit 1) from t7 ' ; -execute stmt1 ; -a (select count(distinct t5.b) as sum from t5, t6 - where t5.a=t6.a and t6.b > 0 and t5.a <= t7.b - group by t5.a order by sum limit 1) -3 1 -2 2 -1 2 -execute stmt1 ; -a (select count(distinct t5.b) as sum from t5, t6 - where t5.a=t6.a and t6.b > 0 and t5.a <= t7.b - group by t5.a order by sum limit 1) -3 1 -2 2 -1 2 -execute stmt1 ; -a (select count(distinct t5.b) as sum from t5, t6 - where t5.a=t6.a and t6.b > 0 and t5.a <= t7.b - group by t5.a order by sum limit 1) -3 1 -2 2 -1 2 -drop table t5, t6, t7 ; -drop table if exists t2 ; -create table t2 as select * from t9; -set @stmt= ' SELECT - (SELECT SUM(c1 + c12 + 0.0) FROM t2 - where (t9.c2 - 0e-3) = t2.c2 - GROUP BY t9.c15 LIMIT 1) as scalar_s, - exists (select 1.0e+0 from t2 - where t2.c3 * 9.0000000000 = t9.c4) as exists_s, - c5 * 4 in (select c6 + 0.3e+1 from t2) as in_s, - (c7 - 4, c8 - 4) in (select c9 + 4.0, c10 + 40e-1 from t2) as in_row_s -FROM t9, -(select c25 x, c32 y from t2) tt WHERE x = c25 ' ; -prepare stmt1 from @stmt ; -execute stmt1 ; -execute stmt1 ; -set @stmt= concat('explain ',@stmt); -prepare stmt1 from @stmt ; -execute stmt1 ; -execute stmt1 ; -set @stmt= ' SELECT - (SELECT SUM(c1+c12+?) FROM t2 where (t9.c2-?)=t2.c2 - GROUP BY t9.c15 LIMIT 1) as scalar_s, - exists (select ? from t2 - where t2.c3*?=t9.c4) as exists_s, - c5*? in (select c6+? from t2) as in_s, - (c7-?, c8-?) in (select c9+?, c10+? from t2) as in_row_s -FROM t9, -(select c25 x, c32 y from t2) tt WHERE x =c25 ' ; -set @arg00= 0.0 ; -set @arg01= 0e-3 ; -set @arg02= 1.0e+0 ; -set @arg03= 9.0000000000 ; -set @arg04= 4 ; -set @arg05= 0.3e+1 ; -set @arg06= 4 ; -set @arg07= 4 ; -set @arg08= 4.0 ; -set @arg09= 40e-1 ; -prepare stmt1 from @stmt ; -execute stmt1 using @arg00, @arg01, @arg02, @arg03, @arg04, @arg05, @arg06, -@arg07, @arg08, @arg09 ; -execute stmt1 using @arg00, @arg01, @arg02, @arg03, @arg04, @arg05, @arg06, -@arg07, @arg08, @arg09 ; -set @stmt= concat('explain ',@stmt); -prepare stmt1 from @stmt ; -execute stmt1 using @arg00, @arg01, @arg02, @arg03, @arg04, @arg05, @arg06, -@arg07, @arg08, @arg09 ; -execute stmt1 using @arg00, @arg01, @arg02, @arg03, @arg04, @arg05, @arg06, -@arg07, @arg08, @arg09 ; -drop table t2 ; -select 1 < (select a from t1) ; -ERROR 21000: Subquery returns more than 1 row -prepare stmt1 from ' select 1 < (select a from t1) ' ; -execute stmt1 ; -ERROR 21000: Subquery returns more than 1 row -select 1 as my_col ; -my_col -1 -test_sequence ------- union tests ------ -prepare stmt1 from ' select a FROM t1 where a=1 - union distinct - select a FROM t1 where a=1 '; -execute stmt1 ; -a -1 -execute stmt1 ; -a -1 -prepare stmt1 from ' select a FROM t1 where a=1 - union all - select a FROM t1 where a=1 '; -execute stmt1 ; -a -1 -1 -prepare stmt1 from ' SELECT 1, 2 union SELECT 1 ' ; -ERROR 21000: The used SELECT statements have a different number of columns -prepare stmt1 from ' SELECT 1 union SELECT 1, 2 ' ; -ERROR 21000: The used SELECT statements have a different number of columns -prepare stmt1 from ' SELECT * from t1 union SELECT 1 ' ; -ERROR 21000: The used SELECT statements have a different number of columns -prepare stmt1 from ' SELECT 1 union SELECT * from t1 ' ; -ERROR 21000: The used SELECT statements have a different number of columns -set @arg00=1 ; -select @arg00 FROM t1 where a=1 -union distinct -select 1 FROM t1 where a=1; -@arg00 -1 -prepare stmt1 from ' select ? FROM t1 where a=1 - union distinct - select 1 FROM t1 where a=1 ' ; -execute stmt1 using @arg00; -? -1 -set @arg00=1 ; -select 1 FROM t1 where a=1 -union distinct -select @arg00 FROM t1 where a=1; -1 -1 -prepare stmt1 from ' select 1 FROM t1 where a=1 - union distinct - select ? FROM t1 where a=1 ' ; -execute stmt1 using @arg00; -1 -1 -set @arg00='a' ; -select @arg00 FROM t1 where a=1 -union distinct -select @arg00 FROM t1 where a=1; -@arg00 -a -prepare stmt1 from ' select ? FROM t1 where a=1 - union distinct - select ? FROM t1 where a=1 '; -execute stmt1 using @arg00, @arg00; -? -a -prepare stmt1 from ' select ? - union distinct - select ? '; -execute stmt1 using @arg00, @arg00; -? -a -set @arg00='a' ; -set @arg01=1 ; -set @arg02='a' ; -set @arg03=2 ; -select @arg00 FROM t1 where a=@arg01 -union distinct -select @arg02 FROM t1 where a=@arg03; -@arg00 -a -prepare stmt1 from ' select ? FROM t1 where a=? - union distinct - select ? FROM t1 where a=? ' ; -execute stmt1 using @arg00, @arg01, @arg02, @arg03; -? -a -set @arg00=1 ; -prepare stmt1 from ' select sum(a) + 200, ? from t1 -union distinct -select sum(a) + 200, 1 from t1 -group by b ' ; -execute stmt1 using @arg00; -sum(a) + 200 ? -210 1 -204 1 -201 1 -203 1 -202 1 -set @Oporto='Oporto' ; -set @Lisboa='Lisboa' ; -set @0=0 ; -set @1=1 ; -set @2=2 ; -set @3=3 ; -set @4=4 ; -select @Oporto,@Lisboa,@0,@1,@2,@3,@4 ; -@Oporto @Lisboa @0 @1 @2 @3 @4 -Oporto Lisboa 0 1 2 3 4 -select sum(a) + 200 as the_sum, @Oporto as the_town from t1 -group by b -union distinct -select sum(a) + 200, @Lisboa from t1 -group by b ; -the_sum the_town -204 Oporto -201 Oporto -203 Oporto -202 Oporto -204 Lisboa -201 Lisboa -203 Lisboa -202 Lisboa -prepare stmt1 from ' select sum(a) + 200 as the_sum, ? as the_town from t1 - group by b - union distinct - select sum(a) + 200, ? from t1 - group by b ' ; -execute stmt1 using @Oporto, @Lisboa; -the_sum the_town -204 Oporto -201 Oporto -203 Oporto -202 Oporto -204 Lisboa -201 Lisboa -203 Lisboa -202 Lisboa -select sum(a) + 200 as the_sum, @Oporto as the_town from t1 -where a > @1 -group by b -union distinct -select sum(a) + 200, @Lisboa from t1 -where a > @2 -group by b ; -the_sum the_town -204 Oporto -203 Oporto -202 Oporto -204 Lisboa -203 Lisboa -prepare stmt1 from ' select sum(a) + 200 as the_sum, ? as the_town from t1 - where a > ? - group by b - union distinct - select sum(a) + 200, ? from t1 - where a > ? - group by b ' ; -execute stmt1 using @Oporto, @1, @Lisboa, @2; -the_sum the_town -204 Oporto -203 Oporto -202 Oporto -204 Lisboa -203 Lisboa -select sum(a) + 200 as the_sum, @Oporto as the_town from t1 -where a > @1 -group by b -having avg(a) > @2 -union distinct -select sum(a) + 200, @Lisboa from t1 -where a > @2 -group by b -having avg(a) > @3; -the_sum the_town -204 Oporto -203 Oporto -204 Lisboa -prepare stmt1 from ' select sum(a) + 200 as the_sum, ? as the_town from t1 - where a > ? - group by b - having avg(a) > ? - union distinct - select sum(a) + 200, ? from t1 - where a > ? - group by b - having avg(a) > ? '; -execute stmt1 using @Oporto, @1, @2, @Lisboa, @2, @3; -the_sum the_town -204 Oporto -203 Oporto -204 Lisboa -test_sequence ------- explain select tests ------ -prepare stmt1 from ' explain select * from t9 ' ; -execute stmt1; -Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr -def id 8 3 1 N 32801 0 8 -def select_type 253 19 6 N 1 31 33 -def table 253 64 2 N 1 31 33 -def type 253 10 3 N 1 31 33 -def possible_keys 253 4096 0 Y 0 31 33 -def key 253 64 0 Y 0 31 33 -def key_len 8 3 0 Y 32800 0 8 -def ref 253 1024 0 Y 0 31 33 -def rows 8 10 1 N 32801 0 8 -def Extra 253 255 0 N 1 31 33 -id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t9 ALL NULL NULL NULL NULL 2 -test_sequence ------- delete tests ------ -delete from t1 ; -insert into t1 values (1,'one'); -insert into t1 values (2,'two'); -insert into t1 values (3,'three'); -insert into t1 values (4,'four'); -commit ; -delete from t9 ; -insert into t9 -set c1= 1, c2= 1, c3= 1, c4= 1, c5= 1, c6= 1, c7= 1, c8= 1, c9= 1, -c10= 1, c11= 1, c12 = 1, -c13= '2004-02-29', c14= '2004-02-29 11:11:11', c15= '2004-02-29 11:11:11', -c16= '11:11:11', c17= '2004', -c18= 1, c19=true, c20= 'a', c21= '123456789a', -c22= '123456789a123456789b123456789c', c23= 'tinyblob', c24= 'tinytext', -c25= 'blob', c26= 'text', c27= 'mediumblob', c28= 'mediumtext', -c29= 'longblob', c30= 'longtext', c31='one', c32= 'monday'; -insert into t9 -set c1= 9, c2= 9, c3= 9, c4= 9, c5= 9, c6= 9, c7= 9, c8= 9, c9= 9, -c10= 9, c11= 9, c12 = 9, -c13= '2004-02-29', c14= '2004-02-29 11:11:11', c15= '2004-02-29 11:11:11', -c16= '11:11:11', c17= '2004', -c18= 1, c19=false, c20= 'a', c21= '123456789a', -c22= '123456789a123456789b123456789c', c23= 'tinyblob', c24= 'tinytext', -c25= 'blob', c26= 'text', c27= 'mediumblob', c28= 'mediumtext', -c29= 'longblob', c30= 'longtext', c31='two', c32= 'tuesday'; -commit ; -prepare stmt1 from 'delete from t1 where a=2' ; -execute stmt1; -select a,b from t1 where a=2; -a b -execute stmt1; -insert into t1 values(0,NULL); -set @arg00=NULL; -prepare stmt1 from 'delete from t1 where b=?' ; -execute stmt1 using @arg00; -select a,b from t1 where b is NULL ; -a b -0 NULL -set @arg00='one'; -execute stmt1 using @arg00; -select a,b from t1 where b=@arg00; -a b -prepare stmt1 from 'truncate table t1' ; -ERROR HY000: This command is not supported in the prepared statement protocol yet -test_sequence ------- update tests ------ -delete from t1 ; -insert into t1 values (1,'one'); -insert into t1 values (2,'two'); -insert into t1 values (3,'three'); -insert into t1 values (4,'four'); -commit ; -delete from t9 ; -insert into t9 -set c1= 1, c2= 1, c3= 1, c4= 1, c5= 1, c6= 1, c7= 1, c8= 1, c9= 1, -c10= 1, c11= 1, c12 = 1, -c13= '2004-02-29', c14= '2004-02-29 11:11:11', c15= '2004-02-29 11:11:11', -c16= '11:11:11', c17= '2004', -c18= 1, c19=true, c20= 'a', c21= '123456789a', -c22= '123456789a123456789b123456789c', c23= 'tinyblob', c24= 'tinytext', -c25= 'blob', c26= 'text', c27= 'mediumblob', c28= 'mediumtext', -c29= 'longblob', c30= 'longtext', c31='one', c32= 'monday'; -insert into t9 -set c1= 9, c2= 9, c3= 9, c4= 9, c5= 9, c6= 9, c7= 9, c8= 9, c9= 9, -c10= 9, c11= 9, c12 = 9, -c13= '2004-02-29', c14= '2004-02-29 11:11:11', c15= '2004-02-29 11:11:11', -c16= '11:11:11', c17= '2004', -c18= 1, c19=false, c20= 'a', c21= '123456789a', -c22= '123456789a123456789b123456789c', c23= 'tinyblob', c24= 'tinytext', -c25= 'blob', c26= 'text', c27= 'mediumblob', c28= 'mediumtext', -c29= 'longblob', c30= 'longtext', c31='two', c32= 'tuesday'; -commit ; -prepare stmt1 from 'update t1 set b=''a=two'' where a=2' ; -execute stmt1; -select a,b from t1 where a=2; -a b -2 a=two -execute stmt1; -select a,b from t1 where a=2; -a b -2 a=two -set @arg00=NULL; -prepare stmt1 from 'update t1 set b=? where a=2' ; -execute stmt1 using @arg00; -select a,b from t1 where a=2; -a b -2 NULL -set @arg00='two'; -execute stmt1 using @arg00; -select a,b from t1 where a=2; -a b -2 two -set @arg00=2; -prepare stmt1 from 'update t1 set b=NULL where a=?' ; -execute stmt1 using @arg00; -select a,b from t1 where a=@arg00; -a b -2 NULL -update t1 set b='two' where a=@arg00; -set @arg00=2000; -execute stmt1 using @arg00; -select a,b from t1 where a=@arg00; -a b -set @arg00=2; -set @arg01=22; -prepare stmt1 from 'update t1 set a=? where a=?' ; -execute stmt1 using @arg00, @arg00; -select a,b from t1 where a=@arg00; -a b -2 two -execute stmt1 using @arg01, @arg00; -select a,b from t1 where a=@arg01; -a b -22 two -execute stmt1 using @arg00, @arg01; -select a,b from t1 where a=@arg00; -a b -2 two -set @arg00=NULL; -set @arg01=2; -execute stmt1 using @arg00, @arg01; -Warnings: -Warning 1263 Data truncated; NULL supplied to NOT NULL column 'a' at row 1 -select a,b from t1 order by a; -a b -0 two -1 one -3 three -4 four -set @arg00=0; -execute stmt1 using @arg01, @arg00; -select a,b from t1 order by a; -a b -1 one -2 two -3 three -4 four -set @arg00=23; -set @arg01='two'; -set @arg02=2; -set @arg03='two'; -set @arg04=2; -drop table if exists t2; -create table t2 as select a,b from t1 ; -prepare stmt1 from 'update t1 set a=? where b=? - and a in (select ? from t2 - where b = ? or a = ?)'; -execute stmt1 using @arg00, @arg01, @arg02, @arg03, @arg04 ; -affected rows: 1 -info: Rows matched: 1 Changed: 1 Warnings: 0 -select a,b from t1 where a = @arg00 ; -a b -23 two -prepare stmt1 from 'update t1 set a=? where b=? - and a not in (select ? from t2 - where b = ? or a = ?)'; -execute stmt1 using @arg04, @arg01, @arg02, @arg03, @arg00 ; -affected rows: 1 -info: Rows matched: 1 Changed: 1 Warnings: 0 -select a,b from t1 order by a ; -a b -1 one -2 two -3 three -4 four -drop table t2 ; -create table t2 -( -a int, b varchar(30), -primary key(a) -) engine = 'InnoDB' ; -insert into t2(a,b) select a, b from t1 ; -prepare stmt1 from 'update t1 set a=? where b=? - and a in (select ? from t2 - where b = ? or a = ?)'; -execute stmt1 using @arg00, @arg01, @arg02, @arg03, @arg04 ; -affected rows: 1 -info: Rows matched: 1 Changed: 1 Warnings: 0 -select a,b from t1 where a = @arg00 ; -a b -23 two -prepare stmt1 from 'update t1 set a=? where b=? - and a not in (select ? from t2 - where b = ? or a = ?)'; -execute stmt1 using @arg04, @arg01, @arg02, @arg03, @arg00 ; -affected rows: 1 -info: Rows matched: 1 Changed: 1 Warnings: 0 -select a,b from t1 order by a ; -a b -1 one -2 two -3 three -4 four -drop table t2 ; -set @arg00=1; -prepare stmt1 from 'update t1 set b=''bla'' -where a=2 -limit 1'; -execute stmt1 ; -select a,b from t1 where b = 'bla' ; -a b -2 bla -prepare stmt1 from 'update t1 set b=''bla'' -where a=2 -limit ?'; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '?' at line 3 -test_sequence ------- insert tests ------ -delete from t1 ; -insert into t1 values (1,'one'); -insert into t1 values (2,'two'); -insert into t1 values (3,'three'); -insert into t1 values (4,'four'); -commit ; -delete from t9 ; -insert into t9 -set c1= 1, c2= 1, c3= 1, c4= 1, c5= 1, c6= 1, c7= 1, c8= 1, c9= 1, -c10= 1, c11= 1, c12 = 1, -c13= '2004-02-29', c14= '2004-02-29 11:11:11', c15= '2004-02-29 11:11:11', -c16= '11:11:11', c17= '2004', -c18= 1, c19=true, c20= 'a', c21= '123456789a', -c22= '123456789a123456789b123456789c', c23= 'tinyblob', c24= 'tinytext', -c25= 'blob', c26= 'text', c27= 'mediumblob', c28= 'mediumtext', -c29= 'longblob', c30= 'longtext', c31='one', c32= 'monday'; -insert into t9 -set c1= 9, c2= 9, c3= 9, c4= 9, c5= 9, c6= 9, c7= 9, c8= 9, c9= 9, -c10= 9, c11= 9, c12 = 9, -c13= '2004-02-29', c14= '2004-02-29 11:11:11', c15= '2004-02-29 11:11:11', -c16= '11:11:11', c17= '2004', -c18= 1, c19=false, c20= 'a', c21= '123456789a', -c22= '123456789a123456789b123456789c', c23= 'tinyblob', c24= 'tinytext', -c25= 'blob', c26= 'text', c27= 'mediumblob', c28= 'mediumtext', -c29= 'longblob', c30= 'longtext', c31='two', c32= 'tuesday'; -commit ; -prepare stmt1 from 'insert into t1 values(5, ''five'' )'; -execute stmt1; -select a,b from t1 where a = 5; -a b -5 five -set @arg00='six' ; -prepare stmt1 from 'insert into t1 values(6, ? )'; -execute stmt1 using @arg00; -select a,b from t1 where b = @arg00; -a b -6 six -execute stmt1 using @arg00; -ERROR 23000: Duplicate entry '6' for key 1 -set @arg00=NULL ; -prepare stmt1 from 'insert into t1 values(0, ? )'; -execute stmt1 using @arg00; -select a,b from t1 where b is NULL; -a b -0 NULL -set @arg00=8 ; -set @arg01='eight' ; -prepare stmt1 from 'insert into t1 values(?, ? )'; -execute stmt1 using @arg00, @arg01 ; -select a,b from t1 where b = @arg01; -a b -8 eight -set @NULL= null ; -set @arg00= 'abc' ; -execute stmt1 using @NULL, @NULL ; -ERROR 23000: Column 'a' cannot be null -execute stmt1 using @NULL, @NULL ; -ERROR 23000: Column 'a' cannot be null -execute stmt1 using @NULL, @arg00 ; -ERROR 23000: Column 'a' cannot be null -execute stmt1 using @NULL, @arg00 ; -ERROR 23000: Column 'a' cannot be null -set @arg01= 10000 + 2 ; -execute stmt1 using @arg01, @arg00 ; -set @arg01= 10000 + 1 ; -execute stmt1 using @arg01, @arg00 ; -select * from t1 where a > 10000 order by a ; -a b -10001 abc -10002 abc -delete from t1 where a > 10000 ; -set @arg01= 10000 + 2 ; -execute stmt1 using @arg01, @NULL ; -set @arg01= 10000 + 1 ; -execute stmt1 using @arg01, @NULL ; -select * from t1 where a > 10000 order by a ; -a b -10001 NULL -10002 NULL -delete from t1 where a > 10000 ; -set @arg01= 10000 + 10 ; -execute stmt1 using @arg01, @arg01 ; -set @arg01= 10000 + 9 ; -execute stmt1 using @arg01, @arg01 ; -set @arg01= 10000 + 8 ; -execute stmt1 using @arg01, @arg01 ; -set @arg01= 10000 + 7 ; -execute stmt1 using @arg01, @arg01 ; -set @arg01= 10000 + 6 ; -execute stmt1 using @arg01, @arg01 ; -set @arg01= 10000 + 5 ; -execute stmt1 using @arg01, @arg01 ; -set @arg01= 10000 + 4 ; -execute stmt1 using @arg01, @arg01 ; -set @arg01= 10000 + 3 ; -execute stmt1 using @arg01, @arg01 ; -set @arg01= 10000 + 2 ; -execute stmt1 using @arg01, @arg01 ; -set @arg01= 10000 + 1 ; -execute stmt1 using @arg01, @arg01 ; -select * from t1 where a > 10000 order by a ; -a b -10001 10001 -10002 10002 -10003 10003 -10004 10004 -10005 10005 -10006 10006 -10007 10007 -10008 10008 -10009 10009 -10010 10010 -delete from t1 where a > 10000 ; -set @arg00=81 ; -set @arg01='8-1' ; -set @arg02=82 ; -set @arg03='8-2' ; -prepare stmt1 from 'insert into t1 values(?,?),(?,?)'; -execute stmt1 using @arg00, @arg01, @arg02, @arg03 ; -select a,b from t1 where a in (@arg00,@arg02) ; -a b -81 8-1 -82 8-2 -set @arg00=9 ; -set @arg01='nine' ; -prepare stmt1 from 'insert into t1 set a=?, b=? '; -execute stmt1 using @arg00, @arg01 ; -select a,b from t1 where a = @arg00 ; -a b -9 nine -set @arg00=6 ; -set @arg01=1 ; -prepare stmt1 from 'insert into t1 set a=?, b=''sechs'' - on duplicate key update a=a + ?, b=concat(b,''modified'') '; -execute stmt1 using @arg00, @arg01; -select * from t1 order by a; -a b -0 NULL -1 one -2 two -3 three -4 four -5 five -7 sixmodified -8 eight -9 nine -81 8-1 -82 8-2 -set @arg00=81 ; -set @arg01=1 ; -execute stmt1 using @arg00, @arg01; -ERROR 23000: Duplicate entry '82' for key 1 -drop table if exists t2 ; -create table t2 (id int auto_increment primary key) -ENGINE= 'InnoDB' ; -prepare stmt1 from ' select last_insert_id() ' ; -insert into t2 values (NULL) ; -execute stmt1 ; -last_insert_id() -1 -insert into t2 values (NULL) ; -execute stmt1 ; -last_insert_id() -2 -drop table t2 ; -set @1000=1000 ; -set @x1000_2="x1000_2" ; -set @x1000_3="x1000_3" ; -set @x1000="x1000" ; -set @1100=1100 ; -set @x1100="x1100" ; -set @100=100 ; -set @updated="updated" ; -insert into t1 values(1000,'x1000_1') ; -insert into t1 values(@1000,@x1000_2),(@1000,@x1000_3) -on duplicate key update a = a + @100, b = concat(b,@updated) ; -select a,b from t1 where a >= 1000 order by a ; -a b -1000 x1000_3 -1100 x1000_1updated -delete from t1 where a >= 1000 ; -insert into t1 values(1000,'x1000_1') ; -prepare stmt1 from ' insert into t1 values(?,?),(?,?) - on duplicate key update a = a + ?, b = concat(b,?) '; -execute stmt1 using @1000, @x1000_2, @1000, @x1000_3, @100, @updated ; -select a,b from t1 where a >= 1000 order by a ; -a b -1000 x1000_3 -1100 x1000_1updated -delete from t1 where a >= 1000 ; -insert into t1 values(1000,'x1000_1') ; -execute stmt1 using @1000, @x1000_2, @1100, @x1000_3, @100, @updated ; -select a,b from t1 where a >= 1000 order by a ; -a b -1200 x1000_1updatedupdated -delete from t1 where a >= 1000 ; -prepare stmt1 from ' replace into t1 (a,b) select 100, ''hundred'' '; -execute stmt1; -execute stmt1; -execute stmt1; -test_sequence ------- multi table tests ------ -delete from t1 ; -delete from t9 ; -insert into t1(a,b) values (1, 'one'), (2, 'two'), (3, 'three') ; -insert into t9 (c1,c21) -values (1, 'one'), (2, 'two'), (3, 'three') ; -prepare stmt_delete from " delete t1, t9 - from t1, t9 where t1.a=t9.c1 and t1.b='updated' "; -prepare stmt_update from " update t1, t9 - set t1.b='updated', t9.c21='updated' - where t1.a=t9.c1 and t1.a=? "; -prepare stmt_select1 from " select a, b from t1 order by a" ; -prepare stmt_select2 from " select c1, c21 from t9 order by c1" ; -set @arg00= 1 ; -execute stmt_update using @arg00 ; -execute stmt_delete ; -execute stmt_select1 ; -a b -2 two -3 three -execute stmt_select2 ; -c1 c21 -2 two -3 three -set @arg00= @arg00 + 1 ; -execute stmt_update using @arg00 ; -execute stmt_delete ; -execute stmt_select1 ; -a b -3 three -execute stmt_select2 ; -c1 c21 -3 three -set @arg00= @arg00 + 1 ; -execute stmt_update using @arg00 ; -execute stmt_delete ; -execute stmt_select1 ; -a b -execute stmt_select2 ; -c1 c21 -set @arg00= @arg00 + 1 ; -delete from t1 ; -insert into t1 values (1,'one'); -insert into t1 values (2,'two'); -insert into t1 values (3,'three'); -insert into t1 values (4,'four'); -commit ; -delete from t9 ; -insert into t9 -set c1= 1, c2= 1, c3= 1, c4= 1, c5= 1, c6= 1, c7= 1, c8= 1, c9= 1, -c10= 1, c11= 1, c12 = 1, -c13= '2004-02-29', c14= '2004-02-29 11:11:11', c15= '2004-02-29 11:11:11', -c16= '11:11:11', c17= '2004', -c18= 1, c19=true, c20= 'a', c21= '123456789a', -c22= '123456789a123456789b123456789c', c23= 'tinyblob', c24= 'tinytext', -c25= 'blob', c26= 'text', c27= 'mediumblob', c28= 'mediumtext', -c29= 'longblob', c30= 'longtext', c31='one', c32= 'monday'; -insert into t9 -set c1= 9, c2= 9, c3= 9, c4= 9, c5= 9, c6= 9, c7= 9, c8= 9, c9= 9, -c10= 9, c11= 9, c12 = 9, -c13= '2004-02-29', c14= '2004-02-29 11:11:11', c15= '2004-02-29 11:11:11', -c16= '11:11:11', c17= '2004', -c18= 1, c19=false, c20= 'a', c21= '123456789a', -c22= '123456789a123456789b123456789c', c23= 'tinyblob', c24= 'tinytext', -c25= 'blob', c26= 'text', c27= 'mediumblob', c28= 'mediumtext', -c29= 'longblob', c30= 'longtext', c31='two', c32= 'tuesday'; -commit ; -insert into t1 values(0,NULL) ; -set @duplicate='duplicate ' ; -set @1000=1000 ; -set @5=5 ; -select a,b from t1 where a < 5 order by a ; -a b -0 NULL -1 one -2 two -3 three -4 four -insert into t1 select a + @1000, concat(@duplicate,b) from t1 -where a < @5 ; -affected rows: 5 -info: Records: 5 Duplicates: 0 Warnings: 0 -select a,b from t1 where a >= 1000 order by a ; -a b -1000 NULL -1001 duplicate one -1002 duplicate two -1003 duplicate three -1004 duplicate four -delete from t1 where a >= 1000 ; -prepare stmt1 from ' insert into t1 select a + ?, concat(?,b) from t1 -where a < ? ' ; -execute stmt1 using @1000, @duplicate, @5; -affected rows: 5 -info: Records: 5 Duplicates: 0 Warnings: 0 -select a,b from t1 where a >= 1000 order by a ; -a b -1000 NULL -1001 duplicate one -1002 duplicate two -1003 duplicate three -1004 duplicate four -delete from t1 where a >= 1000 ; -set @float=1.00; -set @five='five' ; -drop table if exists t2; -create table t2 like t1 ; -insert into t2 (b,a) -select @duplicate, sum(first.a) from t1 first, t1 second -where first.a <> @5 and second.b = first.b -and second.b <> @five -group by second.b -having sum(second.a) > @2 -union -select b, a + @100 from t1 -where (a,b) in ( select sqrt(a+@1)+CAST(@float AS signed),b -from t1); -affected rows: 3 -info: Records: 3 Duplicates: 0 Warnings: 0 -select a,b from t2 order by a ; -a b -3 duplicate -4 duplicate -103 three -delete from t2 ; -prepare stmt1 from ' insert into t2 (b,a) -select ?, sum(first.a) - from t1 first, t1 second - where first.a <> ? and second.b = first.b and second.b <> ? - group by second.b - having sum(second.a) > ? -union -select b, a + ? from t1 - where (a,b) in ( select sqrt(a+?)+CAST(? AS signed),b - from t1 ) ' ; -execute stmt1 using @duplicate, @5, @five, @2, @100, @1, @float ; -affected rows: 3 -info: Records: 3 Duplicates: 0 Warnings: 0 -select a,b from t2 order by a ; -a b -3 duplicate -4 duplicate -103 three -drop table t2; -drop table if exists t5 ; -set @arg01= 8; -set @arg02= 8.0; -set @arg03= 80.00000000000e-1; -set @arg04= 'abc' ; -set @arg05= CAST('abc' as binary) ; -set @arg06= '1991-08-05' ; -set @arg07= CAST('1991-08-05' as date); -set @arg08= '1991-08-05 01:01:01' ; -set @arg09= CAST('1991-08-05 01:01:01' as datetime) ; -set @arg10= unix_timestamp('1991-01-01 01:01:01'); -set @arg11= YEAR('1991-01-01 01:01:01'); -set @arg12= 8 ; -set @arg12= NULL ; -set @arg13= 8.0 ; -set @arg13= NULL ; -set @arg14= 'abc'; -set @arg14= NULL ; -set @arg15= CAST('abc' as binary) ; -set @arg15= NULL ; -create table t5 as select -8 as const01, @arg01 as param01, -8.0 as const02, @arg02 as param02, -80.00000000000e-1 as const03, @arg03 as param03, -'abc' as const04, @arg04 as param04, -CAST('abc' as binary) as const05, @arg05 as param05, -'1991-08-05' as const06, @arg06 as param06, -CAST('1991-08-05' as date) as const07, @arg07 as param07, -'1991-08-05 01:01:01' as const08, @arg08 as param08, -CAST('1991-08-05 01:01:01' as datetime) as const09, @arg09 as param09, -unix_timestamp('1991-01-01 01:01:01') as const10, @arg10 as param10, -YEAR('1991-01-01 01:01:01') as const11, @arg11 as param11, -NULL as const12, @arg12 as param12, -@arg13 as param13, -@arg14 as param14, -@arg15 as param15; -show create table t5 ; -Table Create Table -t5 CREATE TABLE `t5` ( - `const01` bigint(1) NOT NULL default '0', - `param01` bigint(20) default NULL, - `const02` double(3,1) NOT NULL default '0.0', - `param02` double default NULL, - `const03` double NOT NULL default '0', - `param03` double default NULL, - `const04` char(3) NOT NULL default '', - `param04` longtext, - `const05` binary(3) NOT NULL default '', - `param05` longblob, - `const06` varchar(10) NOT NULL default '', - `param06` longtext, - `const07` date default NULL, - `param07` longblob, - `const08` varchar(19) NOT NULL default '', - `param08` longtext, - `const09` datetime default NULL, - `param09` longblob, - `const10` int(10) NOT NULL default '0', - `param10` bigint(20) default NULL, - `const11` int(4) default NULL, - `param11` bigint(20) default NULL, - `const12` binary(0) default NULL, - `param12` bigint(20) default NULL, - `param13` double default NULL, - `param14` longtext, - `param15` longblob -) ENGINE=MyISAM DEFAULT CHARSET=latin1 -select * from t5 ; -Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr -def test t5 t5 const01 const01 8 1 1 N 32769 0 63 -def test t5 t5 param01 param01 8 20 1 Y 32768 0 63 -def test t5 t5 const02 const02 5 3 3 N 32769 1 63 -def test t5 t5 param02 param02 5 20 1 Y 32768 31 63 -def test t5 t5 const03 const03 5 23 1 N 32769 31 63 -def test t5 t5 param03 param03 5 20 1 Y 32768 31 63 -def test t5 t5 const04 const04 254 3 3 N 1 0 8 -def test t5 t5 param04 param04 252 16777215 3 Y 16 0 8 -def test t5 t5 const05 const05 254 3 3 N 129 0 63 -def test t5 t5 param05 param05 252 16777215 3 Y 144 0 63 -def test t5 t5 const06 const06 253 10 10 N 1 0 8 -def test t5 t5 param06 param06 252 16777215 10 Y 16 0 8 -def test t5 t5 const07 const07 10 10 10 Y 128 0 63 -def test t5 t5 param07 param07 252 16777215 10 Y 144 0 63 -def test t5 t5 const08 const08 253 19 19 N 1 0 8 -def test t5 t5 param08 param08 252 16777215 19 Y 16 0 8 -def test t5 t5 const09 const09 12 19 19 Y 128 0 63 -def test t5 t5 param09 param09 252 16777215 19 Y 144 0 63 -def test t5 t5 const10 const10 3 10 9 N 32769 0 63 -def test t5 t5 param10 param10 8 20 9 Y 32768 0 63 -def test t5 t5 const11 const11 3 4 4 Y 32768 0 63 -def test t5 t5 param11 param11 8 20 4 Y 32768 0 63 -def test t5 t5 const12 const12 254 0 0 Y 128 0 63 -def test t5 t5 param12 param12 8 20 0 Y 32768 0 63 -def test t5 t5 param13 param13 5 20 0 Y 32768 31 63 -def test t5 t5 param14 param14 252 16777215 0 Y 16 0 8 -def test t5 t5 param15 param15 252 16777215 0 Y 144 0 63 -const01 8 -param01 8 -const02 8.0 -param02 8 -const03 8 -param03 8 -const04 abc -param04 abc -const05 abc -param05 abc -const06 1991-08-05 -param06 1991-08-05 -const07 1991-08-05 -param07 1991-08-05 -const08 1991-08-05 01:01:01 -param08 1991-08-05 01:01:01 -const09 1991-08-05 01:01:01 -param09 1991-08-05 01:01:01 -const10 662680861 -param10 662680861 -const11 1991 -param11 1991 -const12 NULL -param12 NULL -param13 NULL -param14 NULL -param15 NULL -drop table t5 ; -test_sequence ------- data type conversion tests ------ -delete from t1 ; -insert into t1 values (1,'one'); -insert into t1 values (2,'two'); -insert into t1 values (3,'three'); -insert into t1 values (4,'four'); -commit ; -delete from t9 ; -insert into t9 -set c1= 1, c2= 1, c3= 1, c4= 1, c5= 1, c6= 1, c7= 1, c8= 1, c9= 1, -c10= 1, c11= 1, c12 = 1, -c13= '2004-02-29', c14= '2004-02-29 11:11:11', c15= '2004-02-29 11:11:11', -c16= '11:11:11', c17= '2004', -c18= 1, c19=true, c20= 'a', c21= '123456789a', -c22= '123456789a123456789b123456789c', c23= 'tinyblob', c24= 'tinytext', -c25= 'blob', c26= 'text', c27= 'mediumblob', c28= 'mediumtext', -c29= 'longblob', c30= 'longtext', c31='one', c32= 'monday'; -insert into t9 -set c1= 9, c2= 9, c3= 9, c4= 9, c5= 9, c6= 9, c7= 9, c8= 9, c9= 9, -c10= 9, c11= 9, c12 = 9, -c13= '2004-02-29', c14= '2004-02-29 11:11:11', c15= '2004-02-29 11:11:11', -c16= '11:11:11', c17= '2004', -c18= 1, c19=false, c20= 'a', c21= '123456789a', -c22= '123456789a123456789b123456789c', c23= 'tinyblob', c24= 'tinytext', -c25= 'blob', c26= 'text', c27= 'mediumblob', c28= 'mediumtext', -c29= 'longblob', c30= 'longtext', c31='two', c32= 'tuesday'; -commit ; -insert into t9 set c1= 0, c15= '1991-01-01 01:01:01' ; -select * from t9 order by c1 ; -c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 c13 c14 c15 c16 c17 c18 c19 c20 c21 c22 c23 c24 c25 c26 c27 c28 c29 c30 c31 c32 -0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday -9 9 9 9 9 9 9 9 9 9 9.0000 9.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 0 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext two tuesday -test_sequence ------- select @parameter:= column ------ -prepare full_info from "select @arg01, @arg02, @arg03, @arg04, - @arg05, @arg06, @arg07, @arg08, - @arg09, @arg10, @arg11, @arg12, - @arg13, @arg14, @arg15, @arg16, - @arg17, @arg18, @arg19, @arg20, - @arg21, @arg22, @arg23, @arg24, - @arg25, @arg26, @arg27, @arg28, - @arg29, @arg30, @arg31, @arg32" ; -select @arg01:= c1, @arg02:= c2, @arg03:= c3, @arg04:= c4, -@arg05:= c5, @arg06:= c6, @arg07:= c7, @arg08:= c8, -@arg09:= c9, @arg10:= c10, @arg11:= c11, @arg12:= c12, -@arg13:= c13, @arg14:= c14, @arg15:= c15, @arg16:= c16, -@arg17:= c17, @arg18:= c18, @arg19:= c19, @arg20:= c20, -@arg21:= c21, @arg22:= c22, @arg23:= c23, @arg24:= c24, -@arg25:= c25, @arg26:= c26, @arg27:= c27, @arg28:= c28, -@arg29:= c29, @arg30:= c30, @arg31:= c31, @arg32:= c32 -from t9 where c1= 1 ; -@arg01:= c1 @arg02:= c2 @arg03:= c3 @arg04:= c4 @arg05:= c5 @arg06:= c6 @arg07:= c7 @arg08:= c8 @arg09:= c9 @arg10:= c10 @arg11:= c11 @arg12:= c12 @arg13:= c13 @arg14:= c14 @arg15:= c15 @arg16:= c16 @arg17:= c17 @arg18:= c18 @arg19:= c19 @arg20:= c20 @arg21:= c21 @arg22:= c22 @arg23:= c23 @arg24:= c24 @arg25:= c25 @arg26:= c26 @arg27:= c27 @arg28:= c28 @arg29:= c29 @arg30:= c30 @arg31:= c31 @arg32:= c32 -1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday -execute full_info ; -Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr -def @arg01 254 20 1 Y 128 31 63 -def @arg02 254 20 1 Y 128 31 63 -def @arg03 254 20 1 Y 128 31 63 -def @arg04 254 20 1 Y 128 31 63 -def @arg05 254 20 1 Y 128 31 63 -def @arg06 254 20 1 Y 128 31 63 -def @arg07 254 20 1 Y 128 31 63 -def @arg08 254 20 1 Y 128 31 63 -def @arg09 254 20 1 Y 128 31 63 -def @arg10 254 20 1 Y 128 31 63 -def @arg11 254 20 1 Y 128 31 63 -def @arg12 254 20 1 Y 128 31 63 -def @arg13 254 8192 10 Y 128 31 63 -def @arg14 254 8192 19 Y 128 31 63 -def @arg15 254 8192 19 Y 128 31 63 -def @arg16 254 8192 8 Y 128 31 63 -def @arg17 254 20 4 Y 128 31 63 -def @arg18 254 20 1 Y 128 31 63 -def @arg19 254 20 1 Y 128 31 63 -def @arg20 254 8192 1 Y 0 31 8 -def @arg21 254 8192 10 Y 0 31 8 -def @arg22 254 8192 30 Y 0 31 8 -def @arg23 254 8192 8 Y 128 31 63 -def @arg24 254 8192 8 Y 0 31 8 -def @arg25 254 8192 4 Y 128 31 63 -def @arg26 254 8192 4 Y 0 31 8 -def @arg27 254 8192 10 Y 128 31 63 -def @arg28 254 8192 10 Y 0 31 8 -def @arg29 254 8192 8 Y 128 31 63 -def @arg30 254 8192 8 Y 0 31 8 -def @arg31 254 8192 3 Y 0 31 8 -def @arg32 254 8192 6 Y 128 31 63 -@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32 -1 1 1 1 1 1 1 1 1 1 1 1 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday -select @arg01:= c1, @arg02:= c2, @arg03:= c3, @arg04:= c4, -@arg05:= c5, @arg06:= c6, @arg07:= c7, @arg08:= c8, -@arg09:= c9, @arg10:= c10, @arg11:= c11, @arg12:= c12, -@arg13:= c13, @arg14:= c14, @arg15:= c15, @arg16:= c16, -@arg17:= c17, @arg18:= c18, @arg19:= c19, @arg20:= c20, -@arg21:= c21, @arg22:= c22, @arg23:= c23, @arg24:= c24, -@arg25:= c25, @arg26:= c26, @arg27:= c27, @arg28:= c28, -@arg29:= c29, @arg30:= c30, @arg31:= c31, @arg32:= c32 -from t9 where c1= 0 ; -@arg01:= c1 @arg02:= c2 @arg03:= c3 @arg04:= c4 @arg05:= c5 @arg06:= c6 @arg07:= c7 @arg08:= c8 @arg09:= c9 @arg10:= c10 @arg11:= c11 @arg12:= c12 @arg13:= c13 @arg14:= c14 @arg15:= c15 @arg16:= c16 @arg17:= c17 @arg18:= c18 @arg19:= c19 @arg20:= c20 @arg21:= c21 @arg22:= c22 @arg23:= c23 @arg24:= c24 @arg25:= c25 @arg26:= c26 @arg27:= c27 @arg28:= c28 @arg29:= c29 @arg30:= c30 @arg31:= c31 @arg32:= c32 -0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -execute full_info ; -Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr -def @arg01 254 20 1 Y 128 31 63 -def @arg02 254 20 0 Y 128 31 63 -def @arg03 254 20 0 Y 128 31 63 -def @arg04 254 20 0 Y 128 31 63 -def @arg05 254 20 0 Y 128 31 63 -def @arg06 254 20 0 Y 128 31 63 -def @arg07 254 20 0 Y 128 31 63 -def @arg08 254 20 0 Y 128 31 63 -def @arg09 254 20 0 Y 128 31 63 -def @arg10 254 20 0 Y 128 31 63 -def @arg11 254 20 0 Y 128 31 63 -def @arg12 254 20 0 Y 128 31 63 -def @arg13 254 8192 0 Y 128 31 63 -def @arg14 254 8192 0 Y 128 31 63 -def @arg15 254 8192 19 Y 128 31 63 -def @arg16 254 8192 0 Y 128 31 63 -def @arg17 254 20 0 Y 128 31 63 -def @arg18 254 20 0 Y 128 31 63 -def @arg19 254 20 0 Y 128 31 63 -def @arg20 254 8192 0 Y 0 31 8 -def @arg21 254 8192 0 Y 0 31 8 -def @arg22 254 8192 0 Y 0 31 8 -def @arg23 254 8192 0 Y 128 31 63 -def @arg24 254 8192 0 Y 0 31 8 -def @arg25 254 8192 0 Y 128 31 63 -def @arg26 254 8192 0 Y 0 31 8 -def @arg27 254 8192 0 Y 128 31 63 -def @arg28 254 8192 0 Y 0 31 8 -def @arg29 254 8192 0 Y 128 31 63 -def @arg30 254 8192 0 Y 0 31 8 -def @arg31 254 8192 0 Y 0 31 8 -def @arg32 254 8192 0 Y 0 31 8 -@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32 -0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -prepare stmt1 from "select - @arg01:= c1, @arg02:= c2, @arg03:= c3, @arg04:= c4, - @arg05:= c5, @arg06:= c6, @arg07:= c7, @arg08:= c8, - @arg09:= c9, @arg10:= c10, @arg11:= c11, @arg12:= c12, - @arg13:= c13, @arg14:= c14, @arg15:= c15, @arg16:= c16, - @arg17:= c17, @arg18:= c18, @arg19:= c19, @arg20:= c20, - @arg21:= c21, @arg22:= c22, @arg23:= c23, @arg24:= c24, - @arg25:= c25, @arg26:= c26, @arg27:= c27, @arg28:= c28, - @arg29:= c29, @arg30:= c30, @arg31:= c31, @arg32:= c32 -from t9 where c1= ?" ; -set @my_key= 1 ; -execute stmt1 using @my_key ; -@arg01:= c1 @arg02:= c2 @arg03:= c3 @arg04:= c4 @arg05:= c5 @arg06:= c6 @arg07:= c7 @arg08:= c8 @arg09:= c9 @arg10:= c10 @arg11:= c11 @arg12:= c12 @arg13:= c13 @arg14:= c14 @arg15:= c15 @arg16:= c16 @arg17:= c17 @arg18:= c18 @arg19:= c19 @arg20:= c20 @arg21:= c21 @arg22:= c22 @arg23:= c23 @arg24:= c24 @arg25:= c25 @arg26:= c26 @arg27:= c27 @arg28:= c28 @arg29:= c29 @arg30:= c30 @arg31:= c31 @arg32:= c32 -1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday -execute full_info ; -Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr -def @arg01 254 20 1 Y 128 31 63 -def @arg02 254 20 1 Y 128 31 63 -def @arg03 254 20 1 Y 128 31 63 -def @arg04 254 20 1 Y 128 31 63 -def @arg05 254 20 1 Y 128 31 63 -def @arg06 254 20 1 Y 128 31 63 -def @arg07 254 20 1 Y 128 31 63 -def @arg08 254 20 1 Y 128 31 63 -def @arg09 254 20 1 Y 128 31 63 -def @arg10 254 20 1 Y 128 31 63 -def @arg11 254 20 1 Y 128 31 63 -def @arg12 254 20 1 Y 128 31 63 -def @arg13 254 8192 10 Y 128 31 63 -def @arg14 254 8192 19 Y 128 31 63 -def @arg15 254 8192 19 Y 128 31 63 -def @arg16 254 8192 8 Y 128 31 63 -def @arg17 254 20 4 Y 128 31 63 -def @arg18 254 20 1 Y 128 31 63 -def @arg19 254 20 1 Y 128 31 63 -def @arg20 254 8192 1 Y 0 31 8 -def @arg21 254 8192 10 Y 0 31 8 -def @arg22 254 8192 30 Y 0 31 8 -def @arg23 254 8192 8 Y 128 31 63 -def @arg24 254 8192 8 Y 0 31 8 -def @arg25 254 8192 4 Y 128 31 63 -def @arg26 254 8192 4 Y 0 31 8 -def @arg27 254 8192 10 Y 128 31 63 -def @arg28 254 8192 10 Y 0 31 8 -def @arg29 254 8192 8 Y 128 31 63 -def @arg30 254 8192 8 Y 0 31 8 -def @arg31 254 8192 3 Y 0 31 8 -def @arg32 254 8192 6 Y 128 31 63 -@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32 -1 1 1 1 1 1 1 1 1 1 1 1 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday -set @my_key= 0 ; -execute stmt1 using @my_key ; -@arg01:= c1 @arg02:= c2 @arg03:= c3 @arg04:= c4 @arg05:= c5 @arg06:= c6 @arg07:= c7 @arg08:= c8 @arg09:= c9 @arg10:= c10 @arg11:= c11 @arg12:= c12 @arg13:= c13 @arg14:= c14 @arg15:= c15 @arg16:= c16 @arg17:= c17 @arg18:= c18 @arg19:= c19 @arg20:= c20 @arg21:= c21 @arg22:= c22 @arg23:= c23 @arg24:= c24 @arg25:= c25 @arg26:= c26 @arg27:= c27 @arg28:= c28 @arg29:= c29 @arg30:= c30 @arg31:= c31 @arg32:= c32 -0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -execute full_info ; -Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr -def @arg01 254 20 1 Y 128 31 63 -def @arg02 254 20 0 Y 128 31 63 -def @arg03 254 20 0 Y 128 31 63 -def @arg04 254 20 0 Y 128 31 63 -def @arg05 254 20 0 Y 128 31 63 -def @arg06 254 20 0 Y 128 31 63 -def @arg07 254 20 0 Y 128 31 63 -def @arg08 254 20 0 Y 128 31 63 -def @arg09 254 20 0 Y 128 31 63 -def @arg10 254 20 0 Y 128 31 63 -def @arg11 254 20 0 Y 128 31 63 -def @arg12 254 20 0 Y 128 31 63 -def @arg13 254 8192 0 Y 128 31 63 -def @arg14 254 8192 0 Y 128 31 63 -def @arg15 254 8192 19 Y 128 31 63 -def @arg16 254 8192 0 Y 128 31 63 -def @arg17 254 20 0 Y 128 31 63 -def @arg18 254 20 0 Y 128 31 63 -def @arg19 254 20 0 Y 128 31 63 -def @arg20 254 8192 0 Y 0 31 8 -def @arg21 254 8192 0 Y 0 31 8 -def @arg22 254 8192 0 Y 0 31 8 -def @arg23 254 8192 0 Y 128 31 63 -def @arg24 254 8192 0 Y 0 31 8 -def @arg25 254 8192 0 Y 128 31 63 -def @arg26 254 8192 0 Y 0 31 8 -def @arg27 254 8192 0 Y 128 31 63 -def @arg28 254 8192 0 Y 0 31 8 -def @arg29 254 8192 0 Y 128 31 63 -def @arg30 254 8192 0 Y 0 31 8 -def @arg31 254 8192 0 Y 0 31 8 -def @arg32 254 8192 0 Y 0 31 8 -@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32 -0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -prepare stmt1 from "select ? := c1 from t9 where c1= 1" ; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ':= c1 from t9 where c1= 1' at line 1 -test_sequence ------- select column, .. into @parm,.. ------ -select c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12, -c13, c14, c15, c16, c17, c18, c19, c20, c21, c22, c23, c24, -c25, c26, c27, c28, c29, c30, c31, c32 -into @arg01, @arg02, @arg03, @arg04, @arg05, @arg06, @arg07, @arg08, -@arg09, @arg10, @arg11, @arg12, @arg13, @arg14, @arg15, @arg16, -@arg17, @arg18, @arg19, @arg20, @arg21, @arg22, @arg23, @arg24, -@arg25, @arg26, @arg27, @arg28, @arg29, @arg30, @arg31, @arg32 -from t9 where c1= 1 ; -execute full_info ; -Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr -def @arg01 254 20 1 Y 128 31 63 -def @arg02 254 20 1 Y 128 31 63 -def @arg03 254 20 1 Y 128 31 63 -def @arg04 254 20 1 Y 128 31 63 -def @arg05 254 20 1 Y 128 31 63 -def @arg06 254 20 1 Y 128 31 63 -def @arg07 254 20 1 Y 128 31 63 -def @arg08 254 20 1 Y 128 31 63 -def @arg09 254 20 1 Y 128 31 63 -def @arg10 254 20 1 Y 128 31 63 -def @arg11 254 20 1 Y 128 31 63 -def @arg12 254 20 1 Y 128 31 63 -def @arg13 254 8192 10 Y 128 31 63 -def @arg14 254 8192 19 Y 128 31 63 -def @arg15 254 8192 19 Y 128 31 63 -def @arg16 254 8192 8 Y 128 31 63 -def @arg17 254 20 4 Y 128 31 63 -def @arg18 254 20 1 Y 128 31 63 -def @arg19 254 20 1 Y 128 31 63 -def @arg20 254 8192 1 Y 0 31 8 -def @arg21 254 8192 10 Y 0 31 8 -def @arg22 254 8192 30 Y 0 31 8 -def @arg23 254 8192 8 Y 128 31 63 -def @arg24 254 8192 8 Y 0 31 8 -def @arg25 254 8192 4 Y 128 31 63 -def @arg26 254 8192 4 Y 0 31 8 -def @arg27 254 8192 10 Y 128 31 63 -def @arg28 254 8192 10 Y 0 31 8 -def @arg29 254 8192 8 Y 128 31 63 -def @arg30 254 8192 8 Y 0 31 8 -def @arg31 254 8192 3 Y 0 31 8 -def @arg32 254 8192 6 Y 128 31 63 -@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32 -1 1 1 1 1 1 1 1 1 1 1 1 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday -select c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12, -c13, c14, c15, c16, c17, c18, c19, c20, c21, c22, c23, c24, -c25, c26, c27, c28, c29, c30, c31, c32 -into @arg01, @arg02, @arg03, @arg04, @arg05, @arg06, @arg07, @arg08, -@arg09, @arg10, @arg11, @arg12, @arg13, @arg14, @arg15, @arg16, -@arg17, @arg18, @arg19, @arg20, @arg21, @arg22, @arg23, @arg24, -@arg25, @arg26, @arg27, @arg28, @arg29, @arg30, @arg31, @arg32 -from t9 where c1= 0 ; -execute full_info ; -Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr -def @arg01 254 20 1 Y 128 31 63 -def @arg02 254 20 0 Y 128 31 63 -def @arg03 254 20 0 Y 128 31 63 -def @arg04 254 20 0 Y 128 31 63 -def @arg05 254 20 0 Y 128 31 63 -def @arg06 254 20 0 Y 128 31 63 -def @arg07 254 20 0 Y 128 31 63 -def @arg08 254 20 0 Y 128 31 63 -def @arg09 254 20 0 Y 128 31 63 -def @arg10 254 20 0 Y 128 31 63 -def @arg11 254 20 0 Y 128 31 63 -def @arg12 254 20 0 Y 128 31 63 -def @arg13 254 8192 0 Y 128 31 63 -def @arg14 254 8192 0 Y 128 31 63 -def @arg15 254 8192 19 Y 128 31 63 -def @arg16 254 8192 0 Y 128 31 63 -def @arg17 254 20 0 Y 128 31 63 -def @arg18 254 20 0 Y 128 31 63 -def @arg19 254 20 0 Y 128 31 63 -def @arg20 254 8192 0 Y 0 31 8 -def @arg21 254 8192 0 Y 0 31 8 -def @arg22 254 8192 0 Y 0 31 8 -def @arg23 254 8192 0 Y 128 31 63 -def @arg24 254 8192 0 Y 0 31 8 -def @arg25 254 8192 0 Y 128 31 63 -def @arg26 254 8192 0 Y 0 31 8 -def @arg27 254 8192 0 Y 128 31 63 -def @arg28 254 8192 0 Y 0 31 8 -def @arg29 254 8192 0 Y 128 31 63 -def @arg30 254 8192 0 Y 0 31 8 -def @arg31 254 8192 0 Y 0 31 8 -def @arg32 254 8192 0 Y 0 31 8 -@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32 -0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -prepare stmt1 from "select c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12, - c13, c14, c15, c16, c17, c18, c19, c20, c21, c22, c23, c24, - c25, c26, c27, c28, c29, c30, c31, c32 -into @arg01, @arg02, @arg03, @arg04, @arg05, @arg06, @arg07, @arg08, - @arg09, @arg10, @arg11, @arg12, @arg13, @arg14, @arg15, @arg16, - @arg17, @arg18, @arg19, @arg20, @arg21, @arg22, @arg23, @arg24, - @arg25, @arg26, @arg27, @arg28, @arg29, @arg30, @arg31, @arg32 -from t9 where c1= ?" ; -set @my_key= 1 ; -execute stmt1 using @my_key ; -execute full_info ; -Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr -def @arg01 254 20 1 Y 128 31 63 -def @arg02 254 20 1 Y 128 31 63 -def @arg03 254 20 1 Y 128 31 63 -def @arg04 254 20 1 Y 128 31 63 -def @arg05 254 20 1 Y 128 31 63 -def @arg06 254 20 1 Y 128 31 63 -def @arg07 254 20 1 Y 128 31 63 -def @arg08 254 20 1 Y 128 31 63 -def @arg09 254 20 1 Y 128 31 63 -def @arg10 254 20 1 Y 128 31 63 -def @arg11 254 20 1 Y 128 31 63 -def @arg12 254 20 1 Y 128 31 63 -def @arg13 254 8192 10 Y 128 31 63 -def @arg14 254 8192 19 Y 128 31 63 -def @arg15 254 8192 19 Y 128 31 63 -def @arg16 254 8192 8 Y 128 31 63 -def @arg17 254 20 4 Y 128 31 63 -def @arg18 254 20 1 Y 128 31 63 -def @arg19 254 20 1 Y 128 31 63 -def @arg20 254 8192 1 Y 0 31 8 -def @arg21 254 8192 10 Y 0 31 8 -def @arg22 254 8192 30 Y 0 31 8 -def @arg23 254 8192 8 Y 128 31 63 -def @arg24 254 8192 8 Y 0 31 8 -def @arg25 254 8192 4 Y 128 31 63 -def @arg26 254 8192 4 Y 0 31 8 -def @arg27 254 8192 10 Y 128 31 63 -def @arg28 254 8192 10 Y 0 31 8 -def @arg29 254 8192 8 Y 128 31 63 -def @arg30 254 8192 8 Y 0 31 8 -def @arg31 254 8192 3 Y 0 31 8 -def @arg32 254 8192 6 Y 128 31 63 -@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32 -1 1 1 1 1 1 1 1 1 1 1 1 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday -set @my_key= 0 ; -execute stmt1 using @my_key ; -execute full_info ; -Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr -def @arg01 254 20 1 Y 128 31 63 -def @arg02 254 20 0 Y 128 31 63 -def @arg03 254 20 0 Y 128 31 63 -def @arg04 254 20 0 Y 128 31 63 -def @arg05 254 20 0 Y 128 31 63 -def @arg06 254 20 0 Y 128 31 63 -def @arg07 254 20 0 Y 128 31 63 -def @arg08 254 20 0 Y 128 31 63 -def @arg09 254 20 0 Y 128 31 63 -def @arg10 254 20 0 Y 128 31 63 -def @arg11 254 20 0 Y 128 31 63 -def @arg12 254 20 0 Y 128 31 63 -def @arg13 254 8192 0 Y 128 31 63 -def @arg14 254 8192 0 Y 128 31 63 -def @arg15 254 8192 19 Y 128 31 63 -def @arg16 254 8192 0 Y 128 31 63 -def @arg17 254 20 0 Y 128 31 63 -def @arg18 254 20 0 Y 128 31 63 -def @arg19 254 20 0 Y 128 31 63 -def @arg20 254 8192 0 Y 0 31 8 -def @arg21 254 8192 0 Y 0 31 8 -def @arg22 254 8192 0 Y 0 31 8 -def @arg23 254 8192 0 Y 128 31 63 -def @arg24 254 8192 0 Y 0 31 8 -def @arg25 254 8192 0 Y 128 31 63 -def @arg26 254 8192 0 Y 0 31 8 -def @arg27 254 8192 0 Y 128 31 63 -def @arg28 254 8192 0 Y 0 31 8 -def @arg29 254 8192 0 Y 128 31 63 -def @arg30 254 8192 0 Y 0 31 8 -def @arg31 254 8192 0 Y 0 31 8 -def @arg32 254 8192 0 Y 0 31 8 -@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32 -0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -prepare stmt1 from "select c1 into ? from t9 where c1= 1" ; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '? from t9 where c1= 1' at line 1 -test_sequence --- insert into numeric columns -- -insert into t9 -( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values -( 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20 ) ; -set @arg00= 21 ; -insert into t9 -( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values -( @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ) ; -prepare stmt1 from "insert into t9 - ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values - ( 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22 )" ; -execute stmt1 ; -set @arg00= 23; -prepare stmt2 from "insert into t9 - ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values - ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )" ; -execute stmt2 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00 ; -insert into t9 -( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values -( 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, -30.0, 30.0, 30.0 ) ; -set @arg00= 31.0 ; -insert into t9 -( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values -( @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ) ; -prepare stmt1 from "insert into t9 - ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values - ( 32.0, 32.0, 32.0, 32.0, 32.0, 32.0, 32.0, 32.0, - 32.0, 32.0, 32.0 )" ; -execute stmt1 ; -set @arg00= 33.0; -prepare stmt2 from "insert into t9 - ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values - ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )" ; -execute stmt2 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00 ; -insert into t9 -( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values -( '40', '40', '40', '40', '40', '40', '40', '40', -'40', '40', '40' ) ; -set @arg00= '41' ; -insert into t9 -( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values -( @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ) ; -prepare stmt1 from "insert into t9 - ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values - ( '42', '42', '42', '42', '42', '42', '42', '42', - '42', '42', '42' )" ; -execute stmt1 ; -set @arg00= '43'; -prepare stmt2 from "insert into t9 - ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values - ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )" ; -execute stmt2 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00 ; -insert into t9 -( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values -( CAST('50' as binary), CAST('50' as binary), -CAST('50' as binary), CAST('50' as binary), CAST('50' as binary), -CAST('50' as binary), CAST('50' as binary), CAST('50' as binary), -CAST('50' as binary), CAST('50' as binary), CAST('50' as binary) ) ; -set @arg00= CAST('51' as binary) ; -insert into t9 -( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values -( @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ) ; -prepare stmt1 from "insert into t9 - ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values - ( CAST('52' as binary), CAST('52' as binary), - CAST('52' as binary), CAST('52' as binary), CAST('52' as binary), - CAST('52' as binary), CAST('52' as binary), CAST('52' as binary), - CAST('52' as binary), CAST('52' as binary), CAST('52' as binary) )" ; -execute stmt1 ; -set @arg00= CAST('53' as binary) ; -prepare stmt2 from "insert into t9 - ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values - ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )" ; -execute stmt2 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00 ; -set @arg00= 2 ; -set @arg00= NULL ; -insert into t9 -( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values -( 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, -NULL, NULL, NULL ) ; -insert into t9 -( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values -( 61, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ) ; -prepare stmt1 from "insert into t9 - ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values - ( 62, NULL, NULL, NULL, NULL, NULL, NULL, NULL, - NULL, NULL, NULL )" ; -execute stmt1 ; -prepare stmt2 from "insert into t9 - ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values - ( 63, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )" ; -execute stmt2 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00 ; -set @arg00= 8.0 ; -set @arg00= NULL ; -insert into t9 -( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values -( 71, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ) ; -prepare stmt2 from "insert into t9 - ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values - ( 73, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )" ; -execute stmt2 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00 ; -set @arg00= 'abc' ; -set @arg00= NULL ; -insert into t9 -( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values -( 81, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ) ; -prepare stmt2 from "insert into t9 - ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values - ( 83, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )" ; -execute stmt2 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00 ; -select c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 -from t9 where c1 >= 20 -order by c1 ; -c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c12 -20 20 20 20 20 20 20 20 20 20 20.0000 -21 21 21 21 21 21 21 21 21 21 21.0000 -22 22 22 22 22 22 22 22 22 22 22.0000 -23 23 23 23 23 23 23 23 23 23 23.0000 -30 30 30 30 30 30 30 30 30 30 30.0000 -31 31 31 31 31 31 31 31 31 31 31.0000 -32 32 32 32 32 32 32 32 32 32 32.0000 -33 33 33 33 33 33 33 33 33 33 33.0000 -40 40 40 40 40 40 40 40 40 40 40.0000 -41 41 41 41 41 41 41 41 41 41 41.0000 -42 42 42 42 42 42 42 42 42 42 42.0000 -43 43 43 43 43 43 43 43 43 43 43.0000 -50 50 50 50 50 50 50 50 50 50 50.0000 -51 51 51 51 51 51 51 51 51 51 51.0000 -52 52 52 52 52 52 52 52 52 52 52.0000 -53 53 53 53 53 53 53 53 53 53 53.0000 -60 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -61 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -62 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -63 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -71 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -73 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -81 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -83 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -test_sequence --- select .. where numeric column = .. -- -set @arg00= 20; -select 'true' as found from t9 -where c1= 20 and c2= 20 and c3= 20 and c4= 20 and c5= 20 and c6= 20 and c7= 20 -and c8= 20 and c9= 20 and c10= 20 and c12= 20; -found -true -select 'true' as found from t9 -where c1= @arg00 and c2= @arg00 and c3= @arg00 and c4= @arg00 and c5= @arg00 -and c6= @arg00 and c7= @arg00 and c8= @arg00 and c9= @arg00 and c10= @arg00 -and c12= @arg00; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and c2= 20 and c3= 20 and c4= 20 and c5= 20 and c6= 20 and c7= 20 - and c8= 20 and c9= 20 and c10= 20 and c12= 20 "; -execute stmt1 ; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= ? and c2= ? and c3= ? and c4= ? and c5= ? - and c6= ? and c7= ? and c8= ? and c9= ? and c10= ? - and c12= ? "; -execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00 ; -found -true -set @arg00= 20.0; -select 'true' as found from t9 -where c1= 20.0 and c2= 20.0 and c3= 20.0 and c4= 20.0 and c5= 20.0 and c6= 20.0 -and c7= 20.0 and c8= 20.0 and c9= 20.0 and c10= 20.0 and c12= 20.0; -found -true -select 'true' as found from t9 -where c1= @arg00 and c2= @arg00 and c3= @arg00 and c4= @arg00 and c5= @arg00 -and c6= @arg00 and c7= @arg00 and c8= @arg00 and c9= @arg00 and c10= @arg00 -and c12= @arg00; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20.0 and c2= 20.0 and c3= 20.0 and c4= 20.0 and c5= 20.0 and c6= 20.0 - and c7= 20.0 and c8= 20.0 and c9= 20.0 and c10= 20.0 and c12= 20.0 "; -execute stmt1 ; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= ? and c2= ? and c3= ? and c4= ? and c5= ? - and c6= ? and c7= ? and c8= ? and c9= ? and c10= ? - and c12= ? "; -execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00 ; -found -true -select 'true' as found from t9 -where c1= '20' and c2= '20' and c3= '20' and c4= '20' and c5= '20' and c6= '20' - and c7= '20' and c8= '20' and c9= '20' and c10= '20' and c12= '20'; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= '20' and c2= '20' and c3= '20' and c4= '20' and c5= '20' and c6= '20' - and c7= '20' and c8= '20' and c9= '20' and c10= '20' and c12= '20' "; -execute stmt1 ; -found -true -set @arg00= '20'; -select 'true' as found from t9 -where c1= @arg00 and c2= @arg00 and c3= @arg00 and c4= @arg00 and c5= @arg00 -and c6= @arg00 and c7= @arg00 and c8= @arg00 and c9= @arg00 and c10= @arg00 -and c12= @arg00; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= ? and c2= ? and c3= ? and c4= ? and c5= ? - and c6= ? and c7= ? and c8= ? and c9= ? and c10= ? - and c12= ? "; -execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00 ; -found -true -select 'true' as found from t9 -where c1= CAST('20' as binary) and c2= CAST('20' as binary) and -c3= CAST('20' as binary) and c4= CAST('20' as binary) and -c5= CAST('20' as binary) and c6= CAST('20' as binary) and -c7= CAST('20' as binary) and c8= CAST('20' as binary) and -c9= CAST('20' as binary) and c10= CAST('20' as binary) and -c12= CAST('20' as binary); -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= CAST('20' as binary) and c2= CAST('20' as binary) and - c3= CAST('20' as binary) and c4= CAST('20' as binary) and - c5= CAST('20' as binary) and c6= CAST('20' as binary) and - c7= CAST('20' as binary) and c8= CAST('20' as binary) and - c9= CAST('20' as binary) and c10= CAST('20' as binary) and - c12= CAST('20' as binary) "; -execute stmt1 ; -found -true -set @arg00= CAST('20' as binary) ; -select 'true' as found from t9 -where c1= @arg00 and c2= @arg00 and c3= @arg00 and c4= @arg00 and c5= @arg00 -and c6= @arg00 and c7= @arg00 and c8= @arg00 and c9= @arg00 and c10= @arg00 -and c12= @arg00; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= ? and c2= ? and c3= ? and c4= ? and c5= ? - and c6= ? and c7= ? and c8= ? and c9= ? and c10= ? - and c12= ? "; -execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00 ; -found -true -delete from t9 ; -test_sequence --- some numeric overflow experiments -- -prepare my_insert from "insert into t9 - ( c21, c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values - ( 'O', ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )" ; -prepare my_select from "select c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 -from t9 where c21 = 'O' "; -prepare my_delete from "delete from t9 where c21 = 'O' "; -set @arg00= 9223372036854775807 ; -execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ; -Warnings: -Warning 1264 Data truncated; out of range for column 'c1' at row 1 -Warning 1264 Data truncated; out of range for column 'c2' at row 1 -Warning 1264 Data truncated; out of range for column 'c3' at row 1 -Warning 1264 Data truncated; out of range for column 'c4' at row 1 -Warning 1264 Data truncated; out of range for column 'c5' at row 1 -Warning 1264 Data truncated; out of range for column 'c12' at row 1 -execute my_select ; -c1 127 -c2 32767 -c3 8388607 -c4 2147483647 -c5 2147483647 -c6 9223372036854775807 -c7 9.22337e+18 -c8 9.22337203685478e+18 -c9 9.22337203685478e+18 -c10 9.22337203685478e+18 -c12 99999.9999 -execute my_delete ; -set @arg00= '9223372036854775807' ; -execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ; -Warnings: -Warning 1264 Data truncated; out of range for column 'c1' at row 1 -Warning 1264 Data truncated; out of range for column 'c2' at row 1 -Warning 1264 Data truncated; out of range for column 'c3' at row 1 -Warning 1265 Data truncated for column 'c4' at row 1 -Warning 1265 Data truncated for column 'c5' at row 1 -Warning 1264 Data truncated; out of range for column 'c12' at row 1 -execute my_select ; -c1 127 -c2 32767 -c3 8388607 -c4 2147483647 -c5 2147483647 -c6 9223372036854775807 -c7 9.22337e+18 -c8 9.22337203685478e+18 -c9 9.22337203685478e+18 -c10 9.22337203685478e+18 -c12 99999.9999 -execute my_delete ; -set @arg00= -9223372036854775808 ; -execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ; -Warnings: -Warning 1264 Data truncated; out of range for column 'c1' at row 1 -Warning 1264 Data truncated; out of range for column 'c2' at row 1 -Warning 1264 Data truncated; out of range for column 'c3' at row 1 -Warning 1264 Data truncated; out of range for column 'c4' at row 1 -Warning 1264 Data truncated; out of range for column 'c5' at row 1 -Warning 1264 Data truncated; out of range for column 'c12' at row 1 -execute my_select ; -c1 -128 -c2 -32768 -c3 -8388608 -c4 -2147483648 -c5 -2147483648 -c6 -9223372036854775808 -c7 -9.22337e+18 -c8 -9.22337203685478e+18 -c9 -9.22337203685478e+18 -c10 -9.22337203685478e+18 -c12 -9999.9999 -execute my_delete ; -set @arg00= '-9223372036854775808' ; -execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ; -Warnings: -Warning 1264 Data truncated; out of range for column 'c1' at row 1 -Warning 1264 Data truncated; out of range for column 'c2' at row 1 -Warning 1264 Data truncated; out of range for column 'c3' at row 1 -Warning 1265 Data truncated for column 'c4' at row 1 -Warning 1265 Data truncated for column 'c5' at row 1 -Warning 1264 Data truncated; out of range for column 'c12' at row 1 -execute my_select ; -c1 -128 -c2 -32768 -c3 -8388608 -c4 -2147483648 -c5 -2147483648 -c6 -9223372036854775808 -c7 -9.22337e+18 -c8 -9.22337203685478e+18 -c9 -9.22337203685478e+18 -c10 -9.22337203685478e+18 -c12 -9999.9999 -execute my_delete ; -set @arg00= 1.11111111111111111111e+50 ; -execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ; -Warnings: -Warning 1264 Data truncated; out of range for column 'c1' at row 1 -Warning 1264 Data truncated; out of range for column 'c2' at row 1 -Warning 1264 Data truncated; out of range for column 'c3' at row 1 -Warning 1264 Data truncated; out of range for column 'c4' at row 1 -Warning 1264 Data truncated; out of range for column 'c5' at row 1 -Warning 1264 Data truncated; out of range for column 'c6' at row 1 -Warning 1264 Data truncated; out of range for column 'c7' at row 1 -Warning 1264 Data truncated; out of range for column 'c12' at row 1 -execute my_select ; -c1 127 -c2 32767 -c3 8388607 -c4 2147483647 -c5 2147483647 -c6 9223372036854775807 -c7 3.40282e+38 -c8 1.11111111111111e+50 -c9 1.11111111111111e+50 -c10 1.11111111111111e+50 -c12 99999.9999 -execute my_delete ; -set @arg00= '1.11111111111111111111e+50' ; -execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ; -Warnings: -Warning 1265 Data truncated for column 'c1' at row 1 -Warning 1265 Data truncated for column 'c2' at row 1 -Warning 1265 Data truncated for column 'c3' at row 1 -Warning 1265 Data truncated for column 'c4' at row 1 -Warning 1265 Data truncated for column 'c5' at row 1 -Warning 1265 Data truncated for column 'c6' at row 1 -Warning 1264 Data truncated; out of range for column 'c7' at row 1 -Warning 1264 Data truncated; out of range for column 'c12' at row 1 -execute my_select ; -c1 1 -c2 1 -c3 1 -c4 1 -c5 1 -c6 1 -c7 3.40282e+38 -c8 1.11111111111111e+50 -c9 1.11111111111111e+50 -c10 1.11111111111111e+50 -c12 99999.9999 -execute my_delete ; -set @arg00= -1.11111111111111111111e+50 ; -execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ; -Warnings: -Warning 1264 Data truncated; out of range for column 'c1' at row 1 -Warning 1264 Data truncated; out of range for column 'c2' at row 1 -Warning 1264 Data truncated; out of range for column 'c3' at row 1 -Warning 1264 Data truncated; out of range for column 'c4' at row 1 -Warning 1264 Data truncated; out of range for column 'c5' at row 1 -Warning 1264 Data truncated; out of range for column 'c6' at row 1 -Warning 1264 Data truncated; out of range for column 'c7' at row 1 -Warning 1264 Data truncated; out of range for column 'c12' at row 1 -execute my_select ; -c1 -128 -c2 -32768 -c3 -8388608 -c4 -2147483648 -c5 -2147483648 -c6 -9223372036854775808 -c7 -3.40282e+38 -c8 -1.11111111111111e+50 -c9 -1.11111111111111e+50 -c10 -1.11111111111111e+50 -c12 -9999.9999 -execute my_delete ; -set @arg00= '-1.11111111111111111111e+50' ; -execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ; -Warnings: -Warning 1265 Data truncated for column 'c1' at row 1 -Warning 1265 Data truncated for column 'c2' at row 1 -Warning 1265 Data truncated for column 'c3' at row 1 -Warning 1265 Data truncated for column 'c4' at row 1 -Warning 1265 Data truncated for column 'c5' at row 1 -Warning 1265 Data truncated for column 'c6' at row 1 -Warning 1264 Data truncated; out of range for column 'c7' at row 1 -Warning 1264 Data truncated; out of range for column 'c12' at row 1 -execute my_select ; -c1 -1 -c2 -1 -c3 -1 -c4 -1 -c5 -1 -c6 -1 -c7 -3.40282e+38 -c8 -1.11111111111111e+50 -c9 -1.11111111111111e+50 -c10 -1.11111111111111e+50 -c12 -9999.9999 -execute my_delete ; -test_sequence --- insert into string columns -- -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -select c1, c20, c21, c22, c23, c24, c25, c26, c27, c28, c29, c30 -from t9 where c1 >= 20 -order by c1 ; -c1 c20 c21 c22 c23 c24 c25 c26 c27 c28 c29 c30 -20 2 20 20 20 20 20 20 20 20 20 20 -21 2 21 21 21 21 21 21 21 21 21 21 -22 2 22 22 22 22 22 22 22 22 22 22 -23 2 23 23 23 23 23 23 23 23 23 23 -30 3 30 30 30 30 30 30 30 30 30 30 -31 3 31 31 31 31 31 31 31 31 31 31 -32 3 32 32 32 32 32 32 32 32 32 32 -33 3 33 33 33 33 33 33 33 33 33 33 -40 4 40 40 40 40 40 40 40 40 40 40 -41 4 41 41 41 41 41 41 41 41 41 41 -42 4 42 42 42 42 42 42 42 42 42 42 -43 4 43 43 43 43 43 43 43 43 43 43 -50 5 50 50 50.00 50.00 50.00 50.00 50.00 50.00 50.00 50.00 -51 5 51 51 51 51 51 51 51 51 51 51 -52 5 52 52 52.00 52.00 52.00 52.00 52.00 52.00 52.00 52.00 -53 5 53 53 53.00 53.00 53.00 53.00 53.00 53.00 53.00 53.00 -54 5 54 54 54.00 54.00 54.00 54.00 54.00 54.00 54.00 54.00 -55 5 55 55 55 55 55 55 55 55 55 55 -56 6 56 56 56.00 56.00 56.00 56.00 56.00 56.00 56.00 56.00 -57 6 57 57 57.00 57.00 57.00 57.00 57.00 57.00 57.00 57.00 -60 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -61 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -62 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -63 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -71 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -73 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -81 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -83 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -test_sequence --- select .. where string column = .. -- -set @arg00= '20'; -select 'true' as found from t9 -where c1= 20 and concat(c20,substr('20',1+length(c20)))= '20' and c21= '20' and -c22= '20' and c23= '20' and c24= '20' and c25= '20' and c26= '20' and -c27= '20' and c28= '20' and c29= '20' and c30= '20' ; -found -true -select 'true' as found from t9 -where c1= 20 and concat(c20,substr(@arg00,1+length(c20)))= @arg00 and -c21= @arg00 and c22= @arg00 and c23= @arg00 and c25= @arg00 and -c26= @arg00 and c27= @arg00 and c28= @arg00 and c29= @arg00 and c30= @arg00; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and concat(c20,substr('20',1+length(c20)))= '20' and c21= '20' and - c22= '20' and c23= '20' and c24= '20' and c25= '20' and c26= '20' and - c27= '20' and c28= '20' and c29= '20' and c30= '20'" ; -execute stmt1 ; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and concat(c20,substr(?,1+length(c20)))= ? and - c21= ? and c22= ? and c23= ? and c25= ? and - c26= ? and c27= ? and c28= ? and c29= ? and c30= ?" ; -execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ; -found -true -set @arg00= CAST('20' as binary); -select 'true' as found from t9 -where c1= 20 and concat(c20,substr(CAST('20' as binary),1+length(c20))) -= CAST('20' as binary) and c21= CAST('20' as binary) -and c22= CAST('20' as binary) and c23= CAST('20' as binary) and -c24= CAST('20' as binary) and c25= CAST('20' as binary) and -c26= CAST('20' as binary) and c27= CAST('20' as binary) and -c28= CAST('20' as binary) and c29= CAST('20' as binary) and -c30= CAST('20' as binary) ; -found -true -select 'true' as found from t9 -where c1= 20 and concat(c20,substr(@arg00,1+length(c20))) = @arg00 and -c21= @arg00 and c22= @arg00 and c23= @arg00 and c25= @arg00 and -c26= @arg00 and c27= @arg00 and c28= @arg00 and c29= @arg00 and -c30= @arg00; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and concat(c20,substr(CAST('20' as binary),1+length(c20))) - = CAST('20' as binary) and c21= CAST('20' as binary) - and c22= CAST('20' as binary) and c23= CAST('20' as binary) and - c24= CAST('20' as binary) and c25= CAST('20' as binary) and - c26= CAST('20' as binary) and c27= CAST('20' as binary) and - c28= CAST('20' as binary) and c29= CAST('20' as binary) and - c30= CAST('20' as binary)" ; -execute stmt1 ; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and concat(c20,substr(?,1+length(c20))) = ? and c21= ? and - c22= ? and c23= ? and c25= ? and c26= ? and c27= ? and c28= ? and - c29= ? and c30= ?"; -execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ; -found -true -set @arg00= 20; -select 'true' as found from t9 -where c1= 20 and concat(c20,substr(20,1+length(c20)))= 20 and c21= 20 and -c22= 20 and c23= 20 and c24= 20 and c25= 20 and c26= 20 and -c27= 20 and c28= 20 and c29= 20 and c30= 20 ; -found -true -select 'true' as found from t9 -where c1= 20 and concat(c20,substr(@arg00,1+length(c20)))= @arg00 and -c21= @arg00 and c22= @arg00 and c23= @arg00 and c25= @arg00 and -c26= @arg00 and c27= @arg00 and c28= @arg00 and c29= @arg00 and c30= @arg00; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and concat(c20,substr(20,1+length(c20)))= 20 and c21= 20 and - c22= 20 and c23= 20 and c24= 20 and c25= 20 and c26= 20 and - c27= 20 and c28= 20 and c29= 20 and c30= 20" ; -execute stmt1 ; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and concat(c20,substr(?,1+length(c20)))= ? and - c21= ? and c22= ? and c23= ? and c25= ? and - c26= ? and c27= ? and c28= ? and c29= ? and c30= ?" ; -execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ; -found -true -set @arg00= 20.0; -select 'true' as found from t9 -where c1= 20 and concat(c20,substr(20.0,1+length(c20)))= 20.0 and c21= 20.0 and -c22= 20.0 and c23= 20.0 and c24= 20.0 and c25= 20.0 and c26= 20.0 and -c27= 20.0 and c28= 20.0 and c29= 20.0 and c30= 20.0 ; -found -true -select 'true' as found from t9 -where c1= 20 and concat(c20,substr(@arg00,1+length(c20)))= @arg00 and -c21= @arg00 and c22= @arg00 and c23= @arg00 and c25= @arg00 and -c26= @arg00 and c27= @arg00 and c28= @arg00 and c29= @arg00 and c30= @arg00; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and concat(c20,substr(20.0,1+length(c20)))= 20.0 and c21= 20.0 and - c22= 20.0 and c23= 20.0 and c24= 20.0 and c25= 20.0 and c26= 20.0 and - c27= 20.0 and c28= 20.0 and c29= 20.0 and c30= 20.0" ; -execute stmt1 ; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and concat(c20,substr(?,1+length(c20)))= ? and - c21= ? and c22= ? and c23= ? and c25= ? and - c26= ? and c27= ? and c28= ? and c29= ? and c30= ?" ; -execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ; -found -true -delete from t9 ; -test_sequence --- insert into date/time columns -- -Warnings: -Warning 1265 Data truncated for column 'c17' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c17' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c17' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c17' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c17' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c17' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c17' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c17' at row 1 -Warnings: -Warning 1264 Data truncated; out of range for column 'c13' at row 1 -Warning 1265 Data truncated for column 'c14' at row 1 -Warning 1265 Data truncated for column 'c15' at row 1 -Warning 1264 Data truncated; out of range for column 'c16' at row 1 -Warning 1264 Data truncated; out of range for column 'c17' at row 1 -Warnings: -Warning 1264 Data truncated; out of range for column 'c13' at row 1 -Warning 1265 Data truncated for column 'c14' at row 1 -Warning 1265 Data truncated for column 'c15' at row 1 -Warning 1264 Data truncated; out of range for column 'c16' at row 1 -Warning 1264 Data truncated; out of range for column 'c17' at row 1 -Warnings: -Warning 1264 Data truncated; out of range for column 'c13' at row 1 -Warning 1265 Data truncated for column 'c14' at row 1 -Warning 1265 Data truncated for column 'c15' at row 1 -Warning 1264 Data truncated; out of range for column 'c16' at row 1 -Warning 1264 Data truncated; out of range for column 'c17' at row 1 -Warnings: -Warning 1264 Data truncated; out of range for column 'c13' at row 1 -Warning 1265 Data truncated for column 'c14' at row 1 -Warning 1265 Data truncated for column 'c15' at row 1 -Warning 1264 Data truncated; out of range for column 'c16' at row 1 -Warning 1264 Data truncated; out of range for column 'c17' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c15' at row 1 -Warning 1264 Data truncated; out of range for column 'c16' at row 1 -Warning 1264 Data truncated; out of range for column 'c17' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c15' at row 1 -Warning 1264 Data truncated; out of range for column 'c16' at row 1 -Warning 1264 Data truncated; out of range for column 'c17' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c15' at row 1 -Warning 1264 Data truncated; out of range for column 'c16' at row 1 -Warning 1264 Data truncated; out of range for column 'c17' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c15' at row 1 -Warning 1264 Data truncated; out of range for column 'c16' at row 1 -Warning 1264 Data truncated; out of range for column 'c17' at row 1 -select c1, c13, c14, c15, c16, c17 from t9 order by c1 ; -c1 c13 c14 c15 c16 c17 -20 1991-01-01 1991-01-01 01:01:01 1991-01-01 01:01:01 01:01:01 1991 -21 1991-01-01 1991-01-01 01:01:01 1991-01-01 01:01:01 01:01:01 1991 -22 1991-01-01 1991-01-01 01:01:01 1991-01-01 01:01:01 01:01:01 1991 -23 1991-01-01 1991-01-01 01:01:01 1991-01-01 01:01:01 01:01:01 1991 -30 1991-01-01 1991-01-01 01:01:01 1991-01-01 01:01:01 01:01:01 1991 -31 1991-01-01 1991-01-01 01:01:01 1991-01-01 01:01:01 01:01:01 1991 -32 1991-01-01 1991-01-01 01:01:01 1991-01-01 01:01:01 01:01:01 1991 -33 1991-01-01 1991-01-01 01:01:01 1991-01-01 01:01:01 01:01:01 1991 -40 0000-00-00 0000-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 -41 0000-00-00 0000-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 -42 0000-00-00 0000-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 -43 0000-00-00 0000-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 -50 2001-00-00 2001-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 -51 0010-00-00 0010-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 -52 2001-00-00 2001-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 -53 2001-00-00 2001-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 -60 NULL NULL 1991-01-01 01:01:01 NULL NULL -61 NULL NULL 1991-01-01 01:01:01 NULL NULL -62 NULL NULL 1991-01-01 01:01:01 NULL NULL -63 NULL NULL 1991-01-01 01:01:01 NULL NULL -71 NULL NULL 1991-01-01 01:01:01 NULL NULL -73 NULL NULL 1991-01-01 01:01:01 NULL NULL -81 NULL NULL 1991-01-01 01:01:01 NULL NULL -83 NULL NULL 1991-01-01 01:01:01 NULL NULL -test_sequence --- select .. where date/time column = .. -- -set @arg00= '1991-01-01 01:01:01' ; -select 'true' as found from t9 -where c1= 20 and c13= '1991-01-01 01:01:01' and c14= '1991-01-01 01:01:01' and -c15= '1991-01-01 01:01:01' and c16= '1991-01-01 01:01:01' and -c17= '1991-01-01 01:01:01' ; -found -true -select 'true' as found from t9 -where c1= 20 and c13= @arg00 and c14= @arg00 and c15= @arg00 and c16= @arg00 -and c17= @arg00 ; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and c13= '1991-01-01 01:01:01' and c14= '1991-01-01 01:01:01' and - c15= '1991-01-01 01:01:01' and c16= '1991-01-01 01:01:01' and - c17= '1991-01-01 01:01:01'" ; -execute stmt1 ; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and c13= ? and c14= ? and c15= ? and c16= ? and c17= ?" ; -execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00 ; -found -true -set @arg00= CAST('1991-01-01 01:01:01' as datetime) ; -select 'true' as found from t9 -where c1= 20 and c13= CAST('1991-01-01 01:01:01' as datetime) and -c14= CAST('1991-01-01 01:01:01' as datetime) and -c15= CAST('1991-01-01 01:01:01' as datetime) and -c16= CAST('1991-01-01 01:01:01' as datetime) and -c17= CAST('1991-01-01 01:01:01' as datetime) ; -found -true -select 'true' as found from t9 -where c1= 20 and c13= @arg00 and c14= @arg00 and c15= @arg00 and c16= @arg00 -and c17= @arg00 ; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and c13= CAST('1991-01-01 01:01:01' as datetime) and - c14= CAST('1991-01-01 01:01:01' as datetime) and - c15= CAST('1991-01-01 01:01:01' as datetime) and - c16= CAST('1991-01-01 01:01:01' as datetime) and - c17= CAST('1991-01-01 01:01:01' as datetime)" ; -execute stmt1 ; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and c13= ? and c14= ? and c15= ? and c16= ? and c17= ?" ; -execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00 ; -found -true -set @arg00= 1991 ; -select 'true' as found from t9 -where c1= 20 and c17= 1991 ; -found -true -select 'true' as found from t9 -where c1= 20 and c17= @arg00 ; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and c17= 1991" ; -execute stmt1 ; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and c17= ?" ; -execute stmt1 using @arg00 ; -found -true -set @arg00= 1.991e+3 ; -select 'true' as found from t9 -where c1= 20 and abs(c17 - 1.991e+3) < 0.01 ; -found -true -select 'true' as found from t9 -where c1= 20 and abs(c17 - @arg00) < 0.01 ; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and abs(c17 - 1.991e+3) < 0.01" ; -execute stmt1 ; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and abs(c17 - ?) < 0.01" ; -execute stmt1 using @arg00 ; -found -true -drop table t1, t9; diff --git a/mysql-test/r/ps_4heap.result.es b/mysql-test/r/ps_4heap.result.es deleted file mode 100644 index fcd9c52b4f9..00000000000 --- a/mysql-test/r/ps_4heap.result.es +++ /dev/null @@ -1,3114 +0,0 @@ -use test; -drop table if exists t1, t9 ; -create table t1 -( -a int, b varchar(30), -primary key(a) -) engine = 'HEAP' ; -drop table if exists t9; -create table t9 -( -c1 tinyint, c2 smallint, c3 mediumint, c4 int, -c5 integer, c6 bigint, c7 float, c8 double, -c9 double precision, c10 real, c11 decimal(7, 4), c12 numeric(8, 4), -c13 date, c14 datetime, c15 timestamp(14), c16 time, -c17 year, c18 bit, c19 bool, c20 char, -c21 char(10), c22 varchar(30), c23 char(100), c24 char(100), -c25 char(100), c26 char(100), c27 char(100), c28 char(100), -c29 char(100), c30 char(100), c31 enum('one', 'two', 'three'), -c32 set('monday', 'tuesday', 'wednesday'), -primary key(c1) -) engine = 'HEAP' ; -delete from t1 ; -insert into t1 values (1,'one'); -insert into t1 values (2,'two'); -insert into t1 values (3,'three'); -insert into t1 values (4,'four'); -commit ; -delete from t9 ; -insert into t9 -set c1= 1, c2= 1, c3= 1, c4= 1, c5= 1, c6= 1, c7= 1, c8= 1, c9= 1, -c10= 1, c11= 1, c12 = 1, -c13= '2004-02-29', c14= '2004-02-29 11:11:11', c15= '2004-02-29 11:11:11', -c16= '11:11:11', c17= '2004', -c18= 1, c19=true, c20= 'a', c21= '123456789a', -c22= '123456789a123456789b123456789c', c23= 'tinyblob', c24= 'tinytext', -c25= 'blob', c26= 'text', c27= 'mediumblob', c28= 'mediumtext', -c29= 'longblob', c30= 'longtext', c31='one', c32= 'monday'; -insert into t9 -set c1= 9, c2= 9, c3= 9, c4= 9, c5= 9, c6= 9, c7= 9, c8= 9, c9= 9, -c10= 9, c11= 9, c12 = 9, -c13= '2004-02-29', c14= '2004-02-29 11:11:11', c15= '2004-02-29 11:11:11', -c16= '11:11:11', c17= '2004', -c18= 1, c19=false, c20= 'a', c21= '123456789a', -c22= '123456789a123456789b123456789c', c23= 'tinyblob', c24= 'tinytext', -c25= 'blob', c26= 'text', c27= 'mediumblob', c28= 'mediumtext', -c29= 'longblob', c30= 'longtext', c31='two', c32= 'tuesday'; -commit ; -test_sequence ------- simple select tests ------ -prepare stmt1 from ' select * from t9 order by c1 ' ; -execute stmt1; -Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr -def test t9 t9 c1 c1 1 4 1 N 49155 0 63 -def test t9 t9 c2 c2 2 6 1 Y 32768 0 63 -def test t9 t9 c3 c3 9 9 1 Y 32768 0 63 -def test t9 t9 c4 c4 3 11 1 Y 32768 0 63 -def test t9 t9 c5 c5 3 11 1 Y 32768 0 63 -def test t9 t9 c6 c6 8 20 1 Y 32768 0 63 -def test t9 t9 c7 c7 4 12 1 Y 32768 31 63 -def test t9 t9 c8 c8 5 22 1 Y 32768 31 63 -def test t9 t9 c9 c9 5 22 1 Y 32768 31 63 -def test t9 t9 c10 c10 5 22 1 Y 32768 31 63 -def test t9 t9 c11 c11 0 9 6 Y 32768 4 63 -def test t9 t9 c12 c12 0 10 6 Y 32768 4 63 -def test t9 t9 c13 c13 10 10 10 Y 128 0 63 -def test t9 t9 c14 c14 12 19 19 Y 128 0 63 -def test t9 t9 c15 c15 7 19 19 N 1249 0 63 -def test t9 t9 c16 c16 11 8 8 Y 128 0 63 -def test t9 t9 c17 c17 13 4 4 Y 32864 0 63 -def test t9 t9 c18 c18 1 1 1 Y 32768 0 63 -def test t9 t9 c19 c19 1 1 1 Y 32768 0 63 -def test t9 t9 c20 c20 254 1 1 Y 0 0 8 -def test t9 t9 c21 c21 253 10 10 Y 0 0 8 -def test t9 t9 c22 c22 253 30 30 Y 0 0 8 -def test t9 t9 c23 c23 253 100 8 Y 0 0 8 -def test t9 t9 c24 c24 253 100 8 Y 0 0 8 -def test t9 t9 c25 c25 253 100 4 Y 0 0 8 -def test t9 t9 c26 c26 253 100 4 Y 0 0 8 -def test t9 t9 c27 c27 253 100 10 Y 0 0 8 -def test t9 t9 c28 c28 253 100 10 Y 0 0 8 -def test t9 t9 c29 c29 253 100 8 Y 0 0 8 -def test t9 t9 c30 c30 253 100 8 Y 0 0 8 -def test t9 t9 c31 c31 254 5 3 Y 256 0 8 -def test t9 t9 c32 c32 254 24 7 Y 2048 0 8 -c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 c13 c14 c15 c16 c17 c18 c19 c20 c21 c22 c23 c24 c25 c26 c27 c28 c29 c30 c31 c32 -1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday -9 9 9 9 9 9 9 9 9 9 9.0000 9.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 0 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext two tuesday -set @arg00='SELECT' ; -prepare stmt1 from ' ? a from t1 where a=1 '; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '? a from t1 where a=1' at line 1 -set @arg00=1 ; -select @arg00, b from t1 where a=1 ; -@arg00 b -1 one -prepare stmt1 from ' select ?, b from t1 where a=1 ' ; -execute stmt1 using @arg00 ; -? b -1 one -set @arg00='lion' ; -select @arg00, b from t1 where a=1 ; -@arg00 b -lion one -prepare stmt1 from ' select ?, b from t1 where a=1 ' ; -execute stmt1 using @arg00 ; -? b -lion one -set @arg00=NULL ; -select @arg00, b from t1 where a=1 ; -@arg00 b -NULL one -prepare stmt1 from ' select ?, b from t1 where a=1 ' ; -execute stmt1 using @arg00 ; -? b -NULL one -set @arg00=1 ; -select b, a - @arg00 from t1 where a=1 ; -b a - @arg00 -one 0 -prepare stmt1 from ' select b, a - ? from t1 where a=1 ' ; -execute stmt1 using @arg00 ; -b a - ? -one 0 -set @arg00=null ; -select @arg00 as my_col ; -my_col -NULL -prepare stmt1 from ' select ? as my_col'; -execute stmt1 using @arg00 ; -my_col -NULL -select @arg00 + 1 as my_col ; -my_col -NULL -prepare stmt1 from ' select ? + 1 as my_col'; -execute stmt1 using @arg00 ; -my_col -NULL -select 1 + @arg00 as my_col ; -my_col -NULL -prepare stmt1 from ' select 1 + ? as my_col'; -execute stmt1 using @arg00 ; -my_col -NULL -set @arg00='MySQL' ; -select substr(@arg00,1,2) from t1 where a=1 ; -substr(@arg00,1,2) -My -prepare stmt1 from ' select substr(?,1,2) from t1 where a=1 ' ; -execute stmt1 using @arg00 ; -substr(?,1,2) -My -set @arg00=3 ; -select substr('MySQL',@arg00,5) from t1 where a=1 ; -substr('MySQL',@arg00,5) -SQL -prepare stmt1 from ' select substr(''MySQL'',?,5) from t1 where a=1 ' ; -execute stmt1 using @arg00 ; -substr('MySQL',?,5) -SQL -select substr('MySQL',1,@arg00) from t1 where a=1 ; -substr('MySQL',1,@arg00) -MyS -prepare stmt1 from ' select substr(''MySQL'',1,?) from t1 where a=1 ' ; -execute stmt1 using @arg00 ; -substr('MySQL',1,?) -MyS -set @arg00='MySQL' ; -select a , concat(@arg00,b) from t1 order by a; -a concat(@arg00,b) -1 MySQLone -2 MySQLtwo -3 MySQLthree -4 MySQLfour -prepare stmt1 from ' select a , concat(?,b) from t1 order by a ' ; -execute stmt1 using @arg00; -a concat(?,b) -1 MySQLone -2 MySQLtwo -3 MySQLthree -4 MySQLfour -select a , concat(b,@arg00) from t1 order by a ; -a concat(b,@arg00) -1 oneMySQL -2 twoMySQL -3 threeMySQL -4 fourMySQL -prepare stmt1 from ' select a , concat(b,?) from t1 order by a ' ; -execute stmt1 using @arg00; -a concat(b,?) -1 oneMySQL -2 twoMySQL -3 threeMySQL -4 fourMySQL -set @arg00='MySQL' ; -select group_concat(@arg00,b order by a) from t1 -group by 'a' ; -group_concat(@arg00,b order by a) -MySQLone,MySQLtwo,MySQLthree,MySQLfour -prepare stmt1 from ' select group_concat(?,b order by a) from t1 -group by ''a'' ' ; -execute stmt1 using @arg00; -group_concat(?,b order by a) -MySQLone,MySQLtwo,MySQLthree,MySQLfour -select group_concat(b,@arg00 order by a) from t1 -group by 'a' ; -group_concat(b,@arg00 order by a) -oneMySQL,twoMySQL,threeMySQL,fourMySQL -prepare stmt1 from ' select group_concat(b,? order by a) from t1 -group by ''a'' ' ; -execute stmt1 using @arg00; -group_concat(b,? order by a) -oneMySQL,twoMySQL,threeMySQL,fourMySQL -set @arg00='first' ; -set @arg01='second' ; -set @arg02=NULL; -select @arg00, @arg01 from t1 where a=1 ; -@arg00 @arg01 -first second -prepare stmt1 from ' select ?, ? from t1 where a=1 ' ; -execute stmt1 using @arg00, @arg01 ; -? ? -first second -execute stmt1 using @arg02, @arg01 ; -? ? -NULL second -execute stmt1 using @arg00, @arg02 ; -? ? -first NULL -execute stmt1 using @arg02, @arg02 ; -? ? -NULL NULL -drop table if exists t5 ; -create table t5 (id1 int(11) not null default '0', -value2 varchar(100), value1 varchar(100)) ; -insert into t5 values (1,'hh','hh'),(2,'hh','hh'), -(1,'ii','ii'),(2,'ii','ii') ; -prepare stmt1 from ' select id1,value1 from t5 where id1=? or value1=? order by id1,value1 ' ; -set @arg00=1 ; -set @arg01='hh' ; -execute stmt1 using @arg00, @arg01 ; -id1 value1 -1 hh -1 ii -2 hh -drop table t5 ; -drop table if exists t5 ; -create table t5(session_id char(9) not null) ; -insert into t5 values ('abc') ; -prepare stmt1 from ' select * from t5 -where ?=''1111'' and session_id = ''abc'' ' ; -set @arg00='abc' ; -execute stmt1 using @arg00 ; -session_id -set @arg00='1111' ; -execute stmt1 using @arg00 ; -session_id -abc -set @arg00='abc' ; -execute stmt1 using @arg00 ; -session_id -drop table t5 ; -set @arg00='FROM' ; -select a @arg00 t1 where a=1 ; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@arg00 t1 where a=1' at line 1 -prepare stmt1 from ' select a ? t1 where a=1 ' ; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '? t1 where a=1' at line 1 -set @arg00='t1' ; -select a from @arg00 where a=1 ; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@arg00 where a=1' at line 1 -prepare stmt1 from ' select a from ? where a=1 ' ; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '? where a=1' at line 1 -set @arg00='WHERE' ; -select a from t1 @arg00 a=1 ; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@arg00 a=1' at line 1 -prepare stmt1 from ' select a from t1 ? a=1 ' ; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '? a=1' at line 1 -set @arg00=1 ; -select a FROM t1 where a=@arg00 ; -a -1 -prepare stmt1 from ' select a FROM t1 where a=? ' ; -execute stmt1 using @arg00 ; -a -1 -set @arg00=1000 ; -execute stmt1 using @arg00 ; -a -set @arg00=NULL ; -select a FROM t1 where a=@arg00 ; -a -prepare stmt1 from ' select a FROM t1 where a=? ' ; -execute stmt1 using @arg00 ; -a -set @arg00=4 ; -select a FROM t1 where a=sqrt(@arg00) ; -a -2 -prepare stmt1 from ' select a FROM t1 where a=sqrt(?) ' ; -execute stmt1 using @arg00 ; -a -2 -set @arg00=NULL ; -select a FROM t1 where a=sqrt(@arg00) ; -a -prepare stmt1 from ' select a FROM t1 where a=sqrt(?) ' ; -execute stmt1 using @arg00 ; -a -set @arg00=2 ; -set @arg01=3 ; -select a FROM t1 where a in (@arg00,@arg01) order by a; -a -2 -3 -prepare stmt1 from ' select a FROM t1 where a in (?,?) order by a '; -execute stmt1 using @arg00, @arg01; -a -2 -3 -set @arg00= 'one' ; -set @arg01= 'two' ; -set @arg02= 'five' ; -prepare stmt1 from ' select b FROM t1 where b in (?,?,?) order by b ' ; -execute stmt1 using @arg00, @arg01, @arg02 ; -b -one -two -prepare stmt1 from ' select b FROM t1 where b like ? '; -set @arg00='two' ; -execute stmt1 using @arg00 ; -b -two -set @arg00='tw%' ; -execute stmt1 using @arg00 ; -b -two -set @arg00='%wo' ; -execute stmt1 using @arg00 ; -b -two -set @arg00=null ; -insert into t9 set c1= 0, c5 = NULL ; -select c5 from t9 where c5 > NULL ; -c5 -prepare stmt1 from ' select c5 from t9 where c5 > ? '; -execute stmt1 using @arg00 ; -c5 -select c5 from t9 where c5 < NULL ; -c5 -prepare stmt1 from ' select c5 from t9 where c5 < ? '; -execute stmt1 using @arg00 ; -c5 -select c5 from t9 where c5 = NULL ; -c5 -prepare stmt1 from ' select c5 from t9 where c5 = ? '; -execute stmt1 using @arg00 ; -c5 -select c5 from t9 where c5 <=> NULL ; -c5 -NULL -prepare stmt1 from ' select c5 from t9 where c5 <=> ? '; -execute stmt1 using @arg00 ; -c5 -NULL -delete from t9 where c1= 0 ; -set @arg00='>' ; -select a FROM t1 where a @arg00 1 ; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@arg00 1' at line 1 -prepare stmt1 from ' select a FROM t1 where a ? 1 ' ; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '? 1' at line 1 -set @arg00=1 ; -select a,b FROM t1 where a is not NULL -AND b is not NULL group by a - @arg00 ; -a b -1 one -2 two -3 three -4 four -prepare stmt1 from ' select a,b FROM t1 where a is not NULL -AND b is not NULL group by a - ? ' ; -execute stmt1 using @arg00 ; -a b -1 one -2 two -3 three -4 four -set @arg00='two' ; -select a,b FROM t1 where a is not NULL -AND b is not NULL having b <> @arg00 order by a ; -a b -1 one -3 three -4 four -prepare stmt1 from ' select a,b FROM t1 where a is not NULL -AND b is not NULL having b <> ? order by a ' ; -execute stmt1 using @arg00 ; -a b -1 one -3 three -4 four -set @arg00=1 ; -select a,b FROM t1 where a is not NULL -AND b is not NULL order by a - @arg00 ; -a b -1 one -2 two -3 three -4 four -prepare stmt1 from ' select a,b FROM t1 where a is not NULL -AND b is not NULL order by a - ? ' ; -execute stmt1 using @arg00 ; -a b -1 one -2 two -3 three -4 four -set @arg00=2 ; -select a,b from t1 order by 2 ; -a b -4 four -1 one -3 three -2 two -prepare stmt1 from ' select a,b from t1 -order by ? '; -execute stmt1 using @arg00; -a b -4 four -1 one -3 three -2 two -set @arg00=1 ; -execute stmt1 using @arg00; -a b -1 one -2 two -3 three -4 four -set @arg00=0 ; -execute stmt1 using @arg00; -ERROR 42S22: Unknown column '?' in 'order clause' -set @arg00=1; -prepare stmt1 from ' select a,b from t1 order by a -limit 1 '; -execute stmt1 ; -a b -1 one -prepare stmt1 from ' select a,b from t1 -limit ? '; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '?' at line 2 -set @arg00='b' ; -set @arg01=0 ; -set @arg02=2 ; -set @arg03=2 ; -select sum(a), @arg00 from t1 where a > @arg01 -and b is not null group by substr(b,@arg02) -having sum(a) <> @arg03 ; -sum(a) @arg00 -3 b -1 b -4 b -prepare stmt1 from ' select sum(a), ? from t1 where a > ? -and b is not null group by substr(b,?) -having sum(a) <> ? '; -execute stmt1 using @arg00, @arg01, @arg02, @arg03; -sum(a) ? -3 b -1 b -4 b -test_sequence ------- join tests ------ -select first.a as a1, second.a as a2 -from t1 first, t1 second -where first.a = second.a order by a1 ; -a1 a2 -1 1 -2 2 -3 3 -4 4 -prepare stmt1 from ' select first.a as a1, second.a as a2 - from t1 first, t1 second - where first.a = second.a order by a1 '; -execute stmt1 ; -a1 a2 -1 1 -2 2 -3 3 -4 4 -set @arg00='ABC'; -set @arg01='two'; -set @arg02='one'; -select first.a, @arg00, second.a FROM t1 first, t1 second -where @arg01 = first.b or first.a = second.a or second.b = @arg02 -order by second.a, first.a; -a @arg00 a -1 ABC 1 -2 ABC 1 -3 ABC 1 -4 ABC 1 -2 ABC 2 -2 ABC 3 -3 ABC 3 -2 ABC 4 -4 ABC 4 -prepare stmt1 from ' select first.a, ?, second.a FROM t1 first, t1 second - where ? = first.b or first.a = second.a or second.b = ? - order by second.a, first.a'; -execute stmt1 using @arg00, @arg01, @arg02; -a ? a -1 ABC 1 -2 ABC 1 -3 ABC 1 -4 ABC 1 -2 ABC 2 -2 ABC 3 -3 ABC 3 -2 ABC 4 -4 ABC 4 -drop table if exists t2 ; -create table t2 as select * from t1 ; -set @query1= 'SELECT * FROM t2 join t1 on (t1.a=t2.a) order by t2.a ' ; -set @query2= 'SELECT * FROM t2 natural join t1 order by t2.a ' ; -set @query3= 'SELECT * FROM t2 join t1 using(a) order by t2.a ' ; -set @query4= 'SELECT * FROM t2 left join t1 on(t1.a=t2.a) order by t2.a ' ; -set @query5= 'SELECT * FROM t2 natural left join t1 order by t2.a ' ; -set @query6= 'SELECT * FROM t2 left join t1 using(a) order by t2.a ' ; -set @query7= 'SELECT * FROM t2 right join t1 on(t1.a=t2.a) order by t2.a ' ; -set @query8= 'SELECT * FROM t2 natural right join t1 order by t2.a ' ; -set @query9= 'SELECT * FROM t2 right join t1 using(a) order by t2.a ' ; -the join statement is: -SELECT * FROM t2 right join t1 using(a) order by t2.a -prepare stmt1 from @query9 ; -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -the join statement is: -SELECT * FROM t2 natural right join t1 order by t2.a -prepare stmt1 from @query8 ; -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -the join statement is: -SELECT * FROM t2 right join t1 on(t1.a=t2.a) order by t2.a -prepare stmt1 from @query7 ; -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -the join statement is: -SELECT * FROM t2 left join t1 using(a) order by t2.a -prepare stmt1 from @query6 ; -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -the join statement is: -SELECT * FROM t2 natural left join t1 order by t2.a -prepare stmt1 from @query5 ; -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -the join statement is: -SELECT * FROM t2 left join t1 on(t1.a=t2.a) order by t2.a -prepare stmt1 from @query4 ; -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -the join statement is: -SELECT * FROM t2 join t1 using(a) order by t2.a -prepare stmt1 from @query3 ; -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -the join statement is: -SELECT * FROM t2 natural join t1 order by t2.a -prepare stmt1 from @query2 ; -execute stmt1 ; -a b -1 one -2 two -3 three -4 four -execute stmt1 ; -a b -1 one -2 two -3 three -4 four -execute stmt1 ; -a b -1 one -2 two -3 three -4 four -the join statement is: -SELECT * FROM t2 join t1 on (t1.a=t2.a) order by t2.a -prepare stmt1 from @query1 ; -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -drop table t2 ; -test_sequence ------- subquery tests ------ -prepare stmt1 from ' select a, b FROM t1 outer_table where - a = (select a from t1 where b = ''two'') '; -execute stmt1 ; -a b -2 two -set @arg00='two' ; -select a, b FROM t1 outer_table where -a = (select a from t1 where b = 'two' ) and b=@arg00 ; -a b -2 two -prepare stmt1 from ' select a, b FROM t1 outer_table where - a = (select a from t1 where b = ''two'') and b=? '; -execute stmt1 using @arg00; -a b -2 two -set @arg00='two' ; -select a, b FROM t1 outer_table where -a = (select a from t1 where b = @arg00 ) and b='two' ; -a b -2 two -prepare stmt1 from ' select a, b FROM t1 outer_table where - a = (select a from t1 where b = ? ) and b=''two'' ' ; -execute stmt1 using @arg00; -a b -2 two -set @arg00=3 ; -set @arg01='three' ; -select a,b FROM t1 where (a,b) in (select 3, 'three'); -a b -3 three -select a FROM t1 where (a,b) in (select @arg00,@arg01); -a -3 -prepare stmt1 from ' select a FROM t1 where (a,b) in (select ?, ?) '; -execute stmt1 using @arg00, @arg01; -a -3 -set @arg00=1 ; -set @arg01='two' ; -set @arg02=2 ; -set @arg03='two' ; -select a, @arg00, b FROM t1 outer_table where -b=@arg01 and a = (select @arg02 from t1 where b = @arg03 ) ; -a @arg00 b -2 1 two -prepare stmt1 from ' select a, ?, b FROM t1 outer_table where - b=? and a = (select ? from t1 where b = ? ) ' ; -execute stmt1 using @arg00, @arg01, @arg02, @arg03 ; -a ? b -2 1 two -prepare stmt1 from ' select a, b FROM t1 outer_table where - a = (select a from t1 where b = outer_table.b ) order by a '; -execute stmt1 ; -a b -1 one -2 two -3 three -4 four -prepare stmt1 from ' SELECT a as ccc from t1 where a+1= - (SELECT 1+ccc from t1 where ccc+1=a+1 and a=1) '; -execute stmt1 ; -ccc -1 -deallocate prepare stmt1 ; -prepare stmt1 from ' SELECT a as ccc from t1 where a+1= - (SELECT 1+ccc from t1 where ccc+1=a+1 and a=1) '; -execute stmt1 ; -ccc -1 -deallocate prepare stmt1 ; -prepare stmt1 from ' SELECT a as ccc from t1 where a+1= - (SELECT 1+ccc from t1 where ccc+1=a+1 and a=1) '; -execute stmt1 ; -ccc -1 -deallocate prepare stmt1 ; -set @arg00='two' ; -select a, b FROM t1 outer_table where -a = (select a from t1 where b = outer_table.b ) and b=@arg00 ; -a b -2 two -prepare stmt1 from ' select a, b FROM t1 outer_table where - a = (select a from t1 where b = outer_table.b) and b=? '; -execute stmt1 using @arg00; -a b -2 two -set @arg00=2 ; -select a, b FROM t1 outer_table where -a = (select a from t1 where a = @arg00 and b = outer_table.b) and b='two' ; -a b -2 two -prepare stmt1 from ' select a, b FROM t1 outer_table where - a = (select a from t1 where a = ? and b = outer_table.b) and b=''two'' ' ; -execute stmt1 using @arg00; -a b -2 two -set @arg00=2 ; -select a, b FROM t1 outer_table where -a = (select a from t1 where outer_table.a = @arg00 and a=2) and b='two' ; -a b -2 two -prepare stmt1 from ' select a, b FROM t1 outer_table where - a = (select a from t1 where outer_table.a = ? and a=2) and b=''two'' ' ; -execute stmt1 using @arg00; -a b -2 two -set @arg00=1 ; -set @arg01='two' ; -set @arg02=2 ; -set @arg03='two' ; -select a, @arg00, b FROM t1 outer_table where -b=@arg01 and a = (select @arg02 from t1 where outer_table.b = @arg03 -and outer_table.a=a ) ; -a @arg00 b -2 1 two -prepare stmt1 from ' select a, ?, b FROM t1 outer_table where - b=? and a = (select ? from t1 where outer_table.b = ? - and outer_table.a=a ) ' ; -execute stmt1 using @arg00, @arg01, @arg02, @arg03 ; -a ? b -2 1 two -set @arg00=1 ; -set @arg01=0 ; -select a, @arg00 -from ( select a - @arg00 as a from t1 where a=@arg00 ) as t2 -where a=@arg01; -a @arg00 -0 1 -prepare stmt1 from ' select a, ? - from ( select a - ? as a from t1 where a=? ) as t2 - where a=? '; -execute stmt1 using @arg00, @arg00, @arg00, @arg01 ; -a ? -0 1 -drop table if exists t2 ; -create table t2 as select * from t1; -prepare stmt1 from ' select a in (select a from t2) from t1 ' ; -execute stmt1 ; -a in (select a from t2) -1 -1 -1 -1 -drop table if exists t5, t6, t7 ; -create table t5 (a int , b int) ; -create table t6 like t5 ; -create table t7 like t5 ; -insert into t5 values (0, 100), (1, 2), (1, 3), (2, 2), (2, 7), -(2, -1), (3, 10) ; -insert into t6 values (0, 0), (1, 1), (2, 1), (3, 1), (4, 1) ; -insert into t7 values (3, 3), (2, 2), (1, 1) ; -prepare stmt1 from ' select a, (select count(distinct t5.b) as sum from t5, t6 - where t5.a=t6.a and t6.b > 0 and t5.a <= t7.b - group by t5.a order by sum limit 1) from t7 ' ; -execute stmt1 ; -a (select count(distinct t5.b) as sum from t5, t6 - where t5.a=t6.a and t6.b > 0 and t5.a <= t7.b - group by t5.a order by sum limit 1) -3 1 -2 2 -1 2 -execute stmt1 ; -a (select count(distinct t5.b) as sum from t5, t6 - where t5.a=t6.a and t6.b > 0 and t5.a <= t7.b - group by t5.a order by sum limit 1) -3 1 -2 2 -1 2 -execute stmt1 ; -a (select count(distinct t5.b) as sum from t5, t6 - where t5.a=t6.a and t6.b > 0 and t5.a <= t7.b - group by t5.a order by sum limit 1) -3 1 -2 2 -1 2 -drop table t5, t6, t7 ; -drop table if exists t2 ; -create table t2 as select * from t9; -set @stmt= ' SELECT - (SELECT SUM(c1 + c12 + 0.0) FROM t2 - where (t9.c2 - 0e-3) = t2.c2 - GROUP BY t9.c15 LIMIT 1) as scalar_s, - exists (select 1.0e+0 from t2 - where t2.c3 * 9.0000000000 = t9.c4) as exists_s, - c5 * 4 in (select c6 + 0.3e+1 from t2) as in_s, - (c7 - 4, c8 - 4) in (select c9 + 4.0, c10 + 40e-1 from t2) as in_row_s -FROM t9, -(select c25 x, c32 y from t2) tt WHERE x = c25 ' ; -prepare stmt1 from @stmt ; -execute stmt1 ; -execute stmt1 ; -set @stmt= concat('explain ',@stmt); -prepare stmt1 from @stmt ; -execute stmt1 ; -execute stmt1 ; -set @stmt= ' SELECT - (SELECT SUM(c1+c12+?) FROM t2 where (t9.c2-?)=t2.c2 - GROUP BY t9.c15 LIMIT 1) as scalar_s, - exists (select ? from t2 - where t2.c3*?=t9.c4) as exists_s, - c5*? in (select c6+? from t2) as in_s, - (c7-?, c8-?) in (select c9+?, c10+? from t2) as in_row_s -FROM t9, -(select c25 x, c32 y from t2) tt WHERE x =c25 ' ; -set @arg00= 0.0 ; -set @arg01= 0e-3 ; -set @arg02= 1.0e+0 ; -set @arg03= 9.0000000000 ; -set @arg04= 4 ; -set @arg05= 0.3e+1 ; -set @arg06= 4 ; -set @arg07= 4 ; -set @arg08= 4.0 ; -set @arg09= 40e-1 ; -prepare stmt1 from @stmt ; -execute stmt1 using @arg00, @arg01, @arg02, @arg03, @arg04, @arg05, @arg06, -@arg07, @arg08, @arg09 ; -execute stmt1 using @arg00, @arg01, @arg02, @arg03, @arg04, @arg05, @arg06, -@arg07, @arg08, @arg09 ; -set @stmt= concat('explain ',@stmt); -prepare stmt1 from @stmt ; -execute stmt1 using @arg00, @arg01, @arg02, @arg03, @arg04, @arg05, @arg06, -@arg07, @arg08, @arg09 ; -execute stmt1 using @arg00, @arg01, @arg02, @arg03, @arg04, @arg05, @arg06, -@arg07, @arg08, @arg09 ; -drop table t2 ; -select 1 < (select a from t1) ; -ERROR 21000: Subquery returns more than 1 row -prepare stmt1 from ' select 1 < (select a from t1) ' ; -execute stmt1 ; -ERROR 21000: Subquery returns more than 1 row -select 1 as my_col ; -my_col -1 -test_sequence ------- union tests ------ -prepare stmt1 from ' select a FROM t1 where a=1 - union distinct - select a FROM t1 where a=1 '; -execute stmt1 ; -a -1 -execute stmt1 ; -a -1 -prepare stmt1 from ' select a FROM t1 where a=1 - union all - select a FROM t1 where a=1 '; -execute stmt1 ; -a -1 -1 -prepare stmt1 from ' SELECT 1, 2 union SELECT 1 ' ; -ERROR 21000: The used SELECT statements have a different number of columns -prepare stmt1 from ' SELECT 1 union SELECT 1, 2 ' ; -ERROR 21000: The used SELECT statements have a different number of columns -prepare stmt1 from ' SELECT * from t1 union SELECT 1 ' ; -ERROR 21000: The used SELECT statements have a different number of columns -prepare stmt1 from ' SELECT 1 union SELECT * from t1 ' ; -ERROR 21000: The used SELECT statements have a different number of columns -set @arg00=1 ; -select @arg00 FROM t1 where a=1 -union distinct -select 1 FROM t1 where a=1; -@arg00 -1 -prepare stmt1 from ' select ? FROM t1 where a=1 - union distinct - select 1 FROM t1 where a=1 ' ; -execute stmt1 using @arg00; -? -1 -set @arg00=1 ; -select 1 FROM t1 where a=1 -union distinct -select @arg00 FROM t1 where a=1; -1 -1 -prepare stmt1 from ' select 1 FROM t1 where a=1 - union distinct - select ? FROM t1 where a=1 ' ; -execute stmt1 using @arg00; -1 -1 -set @arg00='a' ; -select @arg00 FROM t1 where a=1 -union distinct -select @arg00 FROM t1 where a=1; -@arg00 -a -prepare stmt1 from ' select ? FROM t1 where a=1 - union distinct - select ? FROM t1 where a=1 '; -execute stmt1 using @arg00, @arg00; -? -a -prepare stmt1 from ' select ? - union distinct - select ? '; -execute stmt1 using @arg00, @arg00; -? -a -set @arg00='a' ; -set @arg01=1 ; -set @arg02='a' ; -set @arg03=2 ; -select @arg00 FROM t1 where a=@arg01 -union distinct -select @arg02 FROM t1 where a=@arg03; -@arg00 -a -prepare stmt1 from ' select ? FROM t1 where a=? - union distinct - select ? FROM t1 where a=? ' ; -execute stmt1 using @arg00, @arg01, @arg02, @arg03; -? -a -set @arg00=1 ; -prepare stmt1 from ' select sum(a) + 200, ? from t1 -union distinct -select sum(a) + 200, 1 from t1 -group by b ' ; -execute stmt1 using @arg00; -sum(a) + 200 ? -210 1 -204 1 -201 1 -203 1 -202 1 -set @Oporto='Oporto' ; -set @Lisboa='Lisboa' ; -set @0=0 ; -set @1=1 ; -set @2=2 ; -set @3=3 ; -set @4=4 ; -select @Oporto,@Lisboa,@0,@1,@2,@3,@4 ; -@Oporto @Lisboa @0 @1 @2 @3 @4 -Oporto Lisboa 0 1 2 3 4 -select sum(a) + 200 as the_sum, @Oporto as the_town from t1 -group by b -union distinct -select sum(a) + 200, @Lisboa from t1 -group by b ; -the_sum the_town -204 Oporto -201 Oporto -203 Oporto -202 Oporto -204 Lisboa -201 Lisboa -203 Lisboa -202 Lisboa -prepare stmt1 from ' select sum(a) + 200 as the_sum, ? as the_town from t1 - group by b - union distinct - select sum(a) + 200, ? from t1 - group by b ' ; -execute stmt1 using @Oporto, @Lisboa; -the_sum the_town -204 Oporto -201 Oporto -203 Oporto -202 Oporto -204 Lisboa -201 Lisboa -203 Lisboa -202 Lisboa -select sum(a) + 200 as the_sum, @Oporto as the_town from t1 -where a > @1 -group by b -union distinct -select sum(a) + 200, @Lisboa from t1 -where a > @2 -group by b ; -the_sum the_town -204 Oporto -203 Oporto -202 Oporto -204 Lisboa -203 Lisboa -prepare stmt1 from ' select sum(a) + 200 as the_sum, ? as the_town from t1 - where a > ? - group by b - union distinct - select sum(a) + 200, ? from t1 - where a > ? - group by b ' ; -execute stmt1 using @Oporto, @1, @Lisboa, @2; -the_sum the_town -204 Oporto -203 Oporto -202 Oporto -204 Lisboa -203 Lisboa -select sum(a) + 200 as the_sum, @Oporto as the_town from t1 -where a > @1 -group by b -having avg(a) > @2 -union distinct -select sum(a) + 200, @Lisboa from t1 -where a > @2 -group by b -having avg(a) > @3; -the_sum the_town -204 Oporto -203 Oporto -204 Lisboa -prepare stmt1 from ' select sum(a) + 200 as the_sum, ? as the_town from t1 - where a > ? - group by b - having avg(a) > ? - union distinct - select sum(a) + 200, ? from t1 - where a > ? - group by b - having avg(a) > ? '; -execute stmt1 using @Oporto, @1, @2, @Lisboa, @2, @3; -the_sum the_town -204 Oporto -203 Oporto -204 Lisboa -test_sequence ------- explain select tests ------ -prepare stmt1 from ' explain select * from t9 ' ; -execute stmt1; -Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr -def id 8 3 1 N 32801 0 8 -def select_type 253 19 6 N 1 31 33 -def table 253 64 2 N 1 31 33 -def type 253 10 3 N 1 31 33 -def possible_keys 253 4096 0 Y 0 31 33 -def key 253 64 0 Y 0 31 33 -def key_len 8 3 0 Y 32800 0 8 -def ref 253 1024 0 Y 0 31 33 -def rows 8 10 1 N 32801 0 8 -def Extra 253 255 0 N 1 31 33 -id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t9 ALL NULL NULL NULL NULL 2 -test_sequence ------- delete tests ------ -delete from t1 ; -insert into t1 values (1,'one'); -insert into t1 values (2,'two'); -insert into t1 values (3,'three'); -insert into t1 values (4,'four'); -commit ; -delete from t9 ; -insert into t9 -set c1= 1, c2= 1, c3= 1, c4= 1, c5= 1, c6= 1, c7= 1, c8= 1, c9= 1, -c10= 1, c11= 1, c12 = 1, -c13= '2004-02-29', c14= '2004-02-29 11:11:11', c15= '2004-02-29 11:11:11', -c16= '11:11:11', c17= '2004', -c18= 1, c19=true, c20= 'a', c21= '123456789a', -c22= '123456789a123456789b123456789c', c23= 'tinyblob', c24= 'tinytext', -c25= 'blob', c26= 'text', c27= 'mediumblob', c28= 'mediumtext', -c29= 'longblob', c30= 'longtext', c31='one', c32= 'monday'; -insert into t9 -set c1= 9, c2= 9, c3= 9, c4= 9, c5= 9, c6= 9, c7= 9, c8= 9, c9= 9, -c10= 9, c11= 9, c12 = 9, -c13= '2004-02-29', c14= '2004-02-29 11:11:11', c15= '2004-02-29 11:11:11', -c16= '11:11:11', c17= '2004', -c18= 1, c19=false, c20= 'a', c21= '123456789a', -c22= '123456789a123456789b123456789c', c23= 'tinyblob', c24= 'tinytext', -c25= 'blob', c26= 'text', c27= 'mediumblob', c28= 'mediumtext', -c29= 'longblob', c30= 'longtext', c31='two', c32= 'tuesday'; -commit ; -prepare stmt1 from 'delete from t1 where a=2' ; -execute stmt1; -select a,b from t1 where a=2; -a b -execute stmt1; -insert into t1 values(0,NULL); -set @arg00=NULL; -prepare stmt1 from 'delete from t1 where b=?' ; -execute stmt1 using @arg00; -select a,b from t1 where b is NULL ; -a b -0 NULL -set @arg00='one'; -execute stmt1 using @arg00; -select a,b from t1 where b=@arg00; -a b -prepare stmt1 from 'truncate table t1' ; -ERROR HY000: This command is not supported in the prepared statement protocol yet -test_sequence ------- update tests ------ -delete from t1 ; -insert into t1 values (1,'one'); -insert into t1 values (2,'two'); -insert into t1 values (3,'three'); -insert into t1 values (4,'four'); -commit ; -delete from t9 ; -insert into t9 -set c1= 1, c2= 1, c3= 1, c4= 1, c5= 1, c6= 1, c7= 1, c8= 1, c9= 1, -c10= 1, c11= 1, c12 = 1, -c13= '2004-02-29', c14= '2004-02-29 11:11:11', c15= '2004-02-29 11:11:11', -c16= '11:11:11', c17= '2004', -c18= 1, c19=true, c20= 'a', c21= '123456789a', -c22= '123456789a123456789b123456789c', c23= 'tinyblob', c24= 'tinytext', -c25= 'blob', c26= 'text', c27= 'mediumblob', c28= 'mediumtext', -c29= 'longblob', c30= 'longtext', c31='one', c32= 'monday'; -insert into t9 -set c1= 9, c2= 9, c3= 9, c4= 9, c5= 9, c6= 9, c7= 9, c8= 9, c9= 9, -c10= 9, c11= 9, c12 = 9, -c13= '2004-02-29', c14= '2004-02-29 11:11:11', c15= '2004-02-29 11:11:11', -c16= '11:11:11', c17= '2004', -c18= 1, c19=false, c20= 'a', c21= '123456789a', -c22= '123456789a123456789b123456789c', c23= 'tinyblob', c24= 'tinytext', -c25= 'blob', c26= 'text', c27= 'mediumblob', c28= 'mediumtext', -c29= 'longblob', c30= 'longtext', c31='two', c32= 'tuesday'; -commit ; -prepare stmt1 from 'update t1 set b=''a=two'' where a=2' ; -execute stmt1; -select a,b from t1 where a=2; -a b -2 a=two -execute stmt1; -select a,b from t1 where a=2; -a b -2 a=two -set @arg00=NULL; -prepare stmt1 from 'update t1 set b=? where a=2' ; -execute stmt1 using @arg00; -select a,b from t1 where a=2; -a b -2 NULL -set @arg00='two'; -execute stmt1 using @arg00; -select a,b from t1 where a=2; -a b -2 two -set @arg00=2; -prepare stmt1 from 'update t1 set b=NULL where a=?' ; -execute stmt1 using @arg00; -select a,b from t1 where a=@arg00; -a b -2 NULL -update t1 set b='two' where a=@arg00; -set @arg00=2000; -execute stmt1 using @arg00; -select a,b from t1 where a=@arg00; -a b -set @arg00=2; -set @arg01=22; -prepare stmt1 from 'update t1 set a=? where a=?' ; -execute stmt1 using @arg00, @arg00; -select a,b from t1 where a=@arg00; -a b -2 two -execute stmt1 using @arg01, @arg00; -select a,b from t1 where a=@arg01; -a b -22 two -execute stmt1 using @arg00, @arg01; -select a,b from t1 where a=@arg00; -a b -2 two -set @arg00=NULL; -set @arg01=2; -execute stmt1 using @arg00, @arg01; -Warnings: -Warning 1263 Data truncated; NULL supplied to NOT NULL column 'a' at row 1 -select a,b from t1 order by a; -a b -0 two -1 one -3 three -4 four -set @arg00=0; -execute stmt1 using @arg01, @arg00; -select a,b from t1 order by a; -a b -1 one -2 two -3 three -4 four -set @arg00=23; -set @arg01='two'; -set @arg02=2; -set @arg03='two'; -set @arg04=2; -drop table if exists t2; -create table t2 as select a,b from t1 ; -prepare stmt1 from 'update t1 set a=? where b=? - and a in (select ? from t2 - where b = ? or a = ?)'; -execute stmt1 using @arg00, @arg01, @arg02, @arg03, @arg04 ; -affected rows: 1 -info: Rows matched: 1 Changed: 1 Warnings: 0 -select a,b from t1 where a = @arg00 ; -a b -23 two -prepare stmt1 from 'update t1 set a=? where b=? - and a not in (select ? from t2 - where b = ? or a = ?)'; -execute stmt1 using @arg04, @arg01, @arg02, @arg03, @arg00 ; -affected rows: 1 -info: Rows matched: 1 Changed: 1 Warnings: 0 -select a,b from t1 order by a ; -a b -1 one -2 two -3 three -4 four -drop table t2 ; -create table t2 -( -a int, b varchar(30), -primary key(a) -) engine = 'HEAP' ; -insert into t2(a,b) select a, b from t1 ; -prepare stmt1 from 'update t1 set a=? where b=? - and a in (select ? from t2 - where b = ? or a = ?)'; -execute stmt1 using @arg00, @arg01, @arg02, @arg03, @arg04 ; -affected rows: 1 -info: Rows matched: 1 Changed: 1 Warnings: 0 -select a,b from t1 where a = @arg00 ; -a b -23 two -prepare stmt1 from 'update t1 set a=? where b=? - and a not in (select ? from t2 - where b = ? or a = ?)'; -execute stmt1 using @arg04, @arg01, @arg02, @arg03, @arg00 ; -affected rows: 1 -info: Rows matched: 1 Changed: 1 Warnings: 0 -select a,b from t1 order by a ; -a b -1 one -2 two -3 three -4 four -drop table t2 ; -set @arg00=1; -prepare stmt1 from 'update t1 set b=''bla'' -where a=2 -limit 1'; -execute stmt1 ; -select a,b from t1 where b = 'bla' ; -a b -2 bla -prepare stmt1 from 'update t1 set b=''bla'' -where a=2 -limit ?'; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '?' at line 3 -test_sequence ------- insert tests ------ -delete from t1 ; -insert into t1 values (1,'one'); -insert into t1 values (2,'two'); -insert into t1 values (3,'three'); -insert into t1 values (4,'four'); -commit ; -delete from t9 ; -insert into t9 -set c1= 1, c2= 1, c3= 1, c4= 1, c5= 1, c6= 1, c7= 1, c8= 1, c9= 1, -c10= 1, c11= 1, c12 = 1, -c13= '2004-02-29', c14= '2004-02-29 11:11:11', c15= '2004-02-29 11:11:11', -c16= '11:11:11', c17= '2004', -c18= 1, c19=true, c20= 'a', c21= '123456789a', -c22= '123456789a123456789b123456789c', c23= 'tinyblob', c24= 'tinytext', -c25= 'blob', c26= 'text', c27= 'mediumblob', c28= 'mediumtext', -c29= 'longblob', c30= 'longtext', c31='one', c32= 'monday'; -insert into t9 -set c1= 9, c2= 9, c3= 9, c4= 9, c5= 9, c6= 9, c7= 9, c8= 9, c9= 9, -c10= 9, c11= 9, c12 = 9, -c13= '2004-02-29', c14= '2004-02-29 11:11:11', c15= '2004-02-29 11:11:11', -c16= '11:11:11', c17= '2004', -c18= 1, c19=false, c20= 'a', c21= '123456789a', -c22= '123456789a123456789b123456789c', c23= 'tinyblob', c24= 'tinytext', -c25= 'blob', c26= 'text', c27= 'mediumblob', c28= 'mediumtext', -c29= 'longblob', c30= 'longtext', c31='two', c32= 'tuesday'; -commit ; -prepare stmt1 from 'insert into t1 values(5, ''five'' )'; -execute stmt1; -select a,b from t1 where a = 5; -a b -5 five -set @arg00='six' ; -prepare stmt1 from 'insert into t1 values(6, ? )'; -execute stmt1 using @arg00; -select a,b from t1 where b = @arg00; -a b -6 six -execute stmt1 using @arg00; -ERROR 23000: Duplicate entry '6' for key 1 -set @arg00=NULL ; -prepare stmt1 from 'insert into t1 values(0, ? )'; -execute stmt1 using @arg00; -select a,b from t1 where b is NULL; -a b -0 NULL -set @arg00=8 ; -set @arg01='eight' ; -prepare stmt1 from 'insert into t1 values(?, ? )'; -execute stmt1 using @arg00, @arg01 ; -select a,b from t1 where b = @arg01; -a b -8 eight -set @NULL= null ; -set @arg00= 'abc' ; -execute stmt1 using @NULL, @NULL ; -ERROR 23000: Column 'a' cannot be null -execute stmt1 using @NULL, @NULL ; -ERROR 23000: Column 'a' cannot be null -execute stmt1 using @NULL, @arg00 ; -ERROR 23000: Column 'a' cannot be null -execute stmt1 using @NULL, @arg00 ; -ERROR 23000: Column 'a' cannot be null -set @arg01= 10000 + 2 ; -execute stmt1 using @arg01, @arg00 ; -set @arg01= 10000 + 1 ; -execute stmt1 using @arg01, @arg00 ; -select * from t1 where a > 10000 order by a ; -a b -10001 abc -10002 abc -delete from t1 where a > 10000 ; -set @arg01= 10000 + 2 ; -execute stmt1 using @arg01, @NULL ; -set @arg01= 10000 + 1 ; -execute stmt1 using @arg01, @NULL ; -select * from t1 where a > 10000 order by a ; -a b -10001 NULL -10002 NULL -delete from t1 where a > 10000 ; -set @arg01= 10000 + 10 ; -execute stmt1 using @arg01, @arg01 ; -set @arg01= 10000 + 9 ; -execute stmt1 using @arg01, @arg01 ; -set @arg01= 10000 + 8 ; -execute stmt1 using @arg01, @arg01 ; -set @arg01= 10000 + 7 ; -execute stmt1 using @arg01, @arg01 ; -set @arg01= 10000 + 6 ; -execute stmt1 using @arg01, @arg01 ; -set @arg01= 10000 + 5 ; -execute stmt1 using @arg01, @arg01 ; -set @arg01= 10000 + 4 ; -execute stmt1 using @arg01, @arg01 ; -set @arg01= 10000 + 3 ; -execute stmt1 using @arg01, @arg01 ; -set @arg01= 10000 + 2 ; -execute stmt1 using @arg01, @arg01 ; -set @arg01= 10000 + 1 ; -execute stmt1 using @arg01, @arg01 ; -select * from t1 where a > 10000 order by a ; -a b -10001 10001 -10002 10002 -10003 10003 -10004 10004 -10005 10005 -10006 10006 -10007 10007 -10008 10008 -10009 10009 -10010 10010 -delete from t1 where a > 10000 ; -set @arg00=81 ; -set @arg01='8-1' ; -set @arg02=82 ; -set @arg03='8-2' ; -prepare stmt1 from 'insert into t1 values(?,?),(?,?)'; -execute stmt1 using @arg00, @arg01, @arg02, @arg03 ; -select a,b from t1 where a in (@arg00,@arg02) ; -a b -81 8-1 -82 8-2 -set @arg00=9 ; -set @arg01='nine' ; -prepare stmt1 from 'insert into t1 set a=?, b=? '; -execute stmt1 using @arg00, @arg01 ; -select a,b from t1 where a = @arg00 ; -a b -9 nine -set @arg00=6 ; -set @arg01=1 ; -prepare stmt1 from 'insert into t1 set a=?, b=''sechs'' - on duplicate key update a=a + ?, b=concat(b,''modified'') '; -execute stmt1 using @arg00, @arg01; -select * from t1 order by a; -a b -0 NULL -1 one -2 two -3 three -4 four -5 five -7 sixmodified -8 eight -9 nine -81 8-1 -82 8-2 -set @arg00=81 ; -set @arg01=1 ; -execute stmt1 using @arg00, @arg01; -ERROR 23000: Duplicate entry '82' for key 1 -drop table if exists t2 ; -create table t2 (id int auto_increment primary key) -ENGINE= 'HEAP' ; -prepare stmt1 from ' select last_insert_id() ' ; -insert into t2 values (NULL) ; -execute stmt1 ; -last_insert_id() -1 -insert into t2 values (NULL) ; -execute stmt1 ; -last_insert_id() -2 -drop table t2 ; -set @1000=1000 ; -set @x1000_2="x1000_2" ; -set @x1000_3="x1000_3" ; -set @x1000="x1000" ; -set @1100=1100 ; -set @x1100="x1100" ; -set @100=100 ; -set @updated="updated" ; -insert into t1 values(1000,'x1000_1') ; -insert into t1 values(@1000,@x1000_2),(@1000,@x1000_3) -on duplicate key update a = a + @100, b = concat(b,@updated) ; -select a,b from t1 where a >= 1000 order by a ; -a b -1000 x1000_3 -1100 x1000_1updated -delete from t1 where a >= 1000 ; -insert into t1 values(1000,'x1000_1') ; -prepare stmt1 from ' insert into t1 values(?,?),(?,?) - on duplicate key update a = a + ?, b = concat(b,?) '; -execute stmt1 using @1000, @x1000_2, @1000, @x1000_3, @100, @updated ; -select a,b from t1 where a >= 1000 order by a ; -a b -1000 x1000_3 -1100 x1000_1updated -delete from t1 where a >= 1000 ; -insert into t1 values(1000,'x1000_1') ; -execute stmt1 using @1000, @x1000_2, @1100, @x1000_3, @100, @updated ; -select a,b from t1 where a >= 1000 order by a ; -a b -1200 x1000_1updatedupdated -delete from t1 where a >= 1000 ; -prepare stmt1 from ' replace into t1 (a,b) select 100, ''hundred'' '; -execute stmt1; -execute stmt1; -execute stmt1; -test_sequence ------- multi table tests ------ -delete from t1 ; -delete from t9 ; -insert into t1(a,b) values (1, 'one'), (2, 'two'), (3, 'three') ; -insert into t9 (c1,c21) -values (1, 'one'), (2, 'two'), (3, 'three') ; -prepare stmt_delete from " delete t1, t9 - from t1, t9 where t1.a=t9.c1 and t1.b='updated' "; -prepare stmt_update from " update t1, t9 - set t1.b='updated', t9.c21='updated' - where t1.a=t9.c1 and t1.a=? "; -prepare stmt_select1 from " select a, b from t1 order by a" ; -prepare stmt_select2 from " select c1, c21 from t9 order by c1" ; -set @arg00= 1 ; -execute stmt_update using @arg00 ; -execute stmt_delete ; -execute stmt_select1 ; -a b -2 two -3 three -execute stmt_select2 ; -c1 c21 -2 two -3 three -set @arg00= @arg00 + 1 ; -execute stmt_update using @arg00 ; -execute stmt_delete ; -execute stmt_select1 ; -a b -3 three -execute stmt_select2 ; -c1 c21 -3 three -set @arg00= @arg00 + 1 ; -execute stmt_update using @arg00 ; -execute stmt_delete ; -execute stmt_select1 ; -a b -execute stmt_select2 ; -c1 c21 -set @arg00= @arg00 + 1 ; -delete from t1 ; -insert into t1 values (1,'one'); -insert into t1 values (2,'two'); -insert into t1 values (3,'three'); -insert into t1 values (4,'four'); -commit ; -delete from t9 ; -insert into t9 -set c1= 1, c2= 1, c3= 1, c4= 1, c5= 1, c6= 1, c7= 1, c8= 1, c9= 1, -c10= 1, c11= 1, c12 = 1, -c13= '2004-02-29', c14= '2004-02-29 11:11:11', c15= '2004-02-29 11:11:11', -c16= '11:11:11', c17= '2004', -c18= 1, c19=true, c20= 'a', c21= '123456789a', -c22= '123456789a123456789b123456789c', c23= 'tinyblob', c24= 'tinytext', -c25= 'blob', c26= 'text', c27= 'mediumblob', c28= 'mediumtext', -c29= 'longblob', c30= 'longtext', c31='one', c32= 'monday'; -insert into t9 -set c1= 9, c2= 9, c3= 9, c4= 9, c5= 9, c6= 9, c7= 9, c8= 9, c9= 9, -c10= 9, c11= 9, c12 = 9, -c13= '2004-02-29', c14= '2004-02-29 11:11:11', c15= '2004-02-29 11:11:11', -c16= '11:11:11', c17= '2004', -c18= 1, c19=false, c20= 'a', c21= '123456789a', -c22= '123456789a123456789b123456789c', c23= 'tinyblob', c24= 'tinytext', -c25= 'blob', c26= 'text', c27= 'mediumblob', c28= 'mediumtext', -c29= 'longblob', c30= 'longtext', c31='two', c32= 'tuesday'; -commit ; -insert into t1 values(0,NULL) ; -set @duplicate='duplicate ' ; -set @1000=1000 ; -set @5=5 ; -select a,b from t1 where a < 5 order by a ; -a b -0 NULL -1 one -2 two -3 three -4 four -insert into t1 select a + @1000, concat(@duplicate,b) from t1 -where a < @5 ; -affected rows: 5 -info: Records: 5 Duplicates: 0 Warnings: 0 -select a,b from t1 where a >= 1000 order by a ; -a b -1000 NULL -1001 duplicate one -1002 duplicate two -1003 duplicate three -1004 duplicate four -delete from t1 where a >= 1000 ; -prepare stmt1 from ' insert into t1 select a + ?, concat(?,b) from t1 -where a < ? ' ; -execute stmt1 using @1000, @duplicate, @5; -affected rows: 5 -info: Records: 5 Duplicates: 0 Warnings: 0 -select a,b from t1 where a >= 1000 order by a ; -a b -1000 NULL -1001 duplicate one -1002 duplicate two -1003 duplicate three -1004 duplicate four -delete from t1 where a >= 1000 ; -set @float=1.00; -set @five='five' ; -drop table if exists t2; -create table t2 like t1 ; -insert into t2 (b,a) -select @duplicate, sum(first.a) from t1 first, t1 second -where first.a <> @5 and second.b = first.b -and second.b <> @five -group by second.b -having sum(second.a) > @2 -union -select b, a + @100 from t1 -where (a,b) in ( select sqrt(a+@1)+CAST(@float AS signed),b -from t1); -affected rows: 3 -info: Records: 3 Duplicates: 0 Warnings: 0 -select a,b from t2 order by a ; -a b -3 duplicate -4 duplicate -103 three -delete from t2 ; -prepare stmt1 from ' insert into t2 (b,a) -select ?, sum(first.a) - from t1 first, t1 second - where first.a <> ? and second.b = first.b and second.b <> ? - group by second.b - having sum(second.a) > ? -union -select b, a + ? from t1 - where (a,b) in ( select sqrt(a+?)+CAST(? AS signed),b - from t1 ) ' ; -execute stmt1 using @duplicate, @5, @five, @2, @100, @1, @float ; -affected rows: 3 -info: Records: 3 Duplicates: 0 Warnings: 0 -select a,b from t2 order by a ; -a b -3 duplicate -4 duplicate -103 three -drop table t2; -drop table if exists t5 ; -set @arg01= 8; -set @arg02= 8.0; -set @arg03= 80.00000000000e-1; -set @arg04= 'abc' ; -set @arg05= CAST('abc' as binary) ; -set @arg06= '1991-08-05' ; -set @arg07= CAST('1991-08-05' as date); -set @arg08= '1991-08-05 01:01:01' ; -set @arg09= CAST('1991-08-05 01:01:01' as datetime) ; -set @arg10= unix_timestamp('1991-01-01 01:01:01'); -set @arg11= YEAR('1991-01-01 01:01:01'); -set @arg12= 8 ; -set @arg12= NULL ; -set @arg13= 8.0 ; -set @arg13= NULL ; -set @arg14= 'abc'; -set @arg14= NULL ; -set @arg15= CAST('abc' as binary) ; -set @arg15= NULL ; -create table t5 as select -8 as const01, @arg01 as param01, -8.0 as const02, @arg02 as param02, -80.00000000000e-1 as const03, @arg03 as param03, -'abc' as const04, @arg04 as param04, -CAST('abc' as binary) as const05, @arg05 as param05, -'1991-08-05' as const06, @arg06 as param06, -CAST('1991-08-05' as date) as const07, @arg07 as param07, -'1991-08-05 01:01:01' as const08, @arg08 as param08, -CAST('1991-08-05 01:01:01' as datetime) as const09, @arg09 as param09, -unix_timestamp('1991-01-01 01:01:01') as const10, @arg10 as param10, -YEAR('1991-01-01 01:01:01') as const11, @arg11 as param11, -NULL as const12, @arg12 as param12, -@arg13 as param13, -@arg14 as param14, -@arg15 as param15; -show create table t5 ; -Table Create Table -t5 CREATE TABLE `t5` ( - `const01` bigint(1) NOT NULL default '0', - `param01` bigint(20) default NULL, - `const02` double(3,1) NOT NULL default '0.0', - `param02` double default NULL, - `const03` double NOT NULL default '0', - `param03` double default NULL, - `const04` char(3) NOT NULL default '', - `param04` longtext, - `const05` binary(3) NOT NULL default '', - `param05` longblob, - `const06` varchar(10) NOT NULL default '', - `param06` longtext, - `const07` date default NULL, - `param07` longblob, - `const08` varchar(19) NOT NULL default '', - `param08` longtext, - `const09` datetime default NULL, - `param09` longblob, - `const10` int(10) NOT NULL default '0', - `param10` bigint(20) default NULL, - `const11` int(4) default NULL, - `param11` bigint(20) default NULL, - `const12` binary(0) default NULL, - `param12` bigint(20) default NULL, - `param13` double default NULL, - `param14` longtext, - `param15` longblob -) ENGINE=MyISAM DEFAULT CHARSET=latin1 -select * from t5 ; -Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr -def test t5 t5 const01 const01 8 1 1 N 32769 0 63 -def test t5 t5 param01 param01 8 20 1 Y 32768 0 63 -def test t5 t5 const02 const02 5 3 3 N 32769 1 63 -def test t5 t5 param02 param02 5 20 1 Y 32768 31 63 -def test t5 t5 const03 const03 5 23 1 N 32769 31 63 -def test t5 t5 param03 param03 5 20 1 Y 32768 31 63 -def test t5 t5 const04 const04 254 3 3 N 1 0 8 -def test t5 t5 param04 param04 252 16777215 3 Y 16 0 8 -def test t5 t5 const05 const05 254 3 3 N 129 0 63 -def test t5 t5 param05 param05 252 16777215 3 Y 144 0 63 -def test t5 t5 const06 const06 253 10 10 N 1 0 8 -def test t5 t5 param06 param06 252 16777215 10 Y 16 0 8 -def test t5 t5 const07 const07 10 10 10 Y 128 0 63 -def test t5 t5 param07 param07 252 16777215 10 Y 144 0 63 -def test t5 t5 const08 const08 253 19 19 N 1 0 8 -def test t5 t5 param08 param08 252 16777215 19 Y 16 0 8 -def test t5 t5 const09 const09 12 19 19 Y 128 0 63 -def test t5 t5 param09 param09 252 16777215 19 Y 144 0 63 -def test t5 t5 const10 const10 3 10 9 N 32769 0 63 -def test t5 t5 param10 param10 8 20 9 Y 32768 0 63 -def test t5 t5 const11 const11 3 4 4 Y 32768 0 63 -def test t5 t5 param11 param11 8 20 4 Y 32768 0 63 -def test t5 t5 const12 const12 254 0 0 Y 128 0 63 -def test t5 t5 param12 param12 8 20 0 Y 32768 0 63 -def test t5 t5 param13 param13 5 20 0 Y 32768 31 63 -def test t5 t5 param14 param14 252 16777215 0 Y 16 0 8 -def test t5 t5 param15 param15 252 16777215 0 Y 144 0 63 -const01 8 -param01 8 -const02 8.0 -param02 8 -const03 8 -param03 8 -const04 abc -param04 abc -const05 abc -param05 abc -const06 1991-08-05 -param06 1991-08-05 -const07 1991-08-05 -param07 1991-08-05 -const08 1991-08-05 01:01:01 -param08 1991-08-05 01:01:01 -const09 1991-08-05 01:01:01 -param09 1991-08-05 01:01:01 -const10 662680861 -param10 662680861 -const11 1991 -param11 1991 -const12 NULL -param12 NULL -param13 NULL -param14 NULL -param15 NULL -drop table t5 ; -test_sequence ------- data type conversion tests ------ -delete from t1 ; -insert into t1 values (1,'one'); -insert into t1 values (2,'two'); -insert into t1 values (3,'three'); -insert into t1 values (4,'four'); -commit ; -delete from t9 ; -insert into t9 -set c1= 1, c2= 1, c3= 1, c4= 1, c5= 1, c6= 1, c7= 1, c8= 1, c9= 1, -c10= 1, c11= 1, c12 = 1, -c13= '2004-02-29', c14= '2004-02-29 11:11:11', c15= '2004-02-29 11:11:11', -c16= '11:11:11', c17= '2004', -c18= 1, c19=true, c20= 'a', c21= '123456789a', -c22= '123456789a123456789b123456789c', c23= 'tinyblob', c24= 'tinytext', -c25= 'blob', c26= 'text', c27= 'mediumblob', c28= 'mediumtext', -c29= 'longblob', c30= 'longtext', c31='one', c32= 'monday'; -insert into t9 -set c1= 9, c2= 9, c3= 9, c4= 9, c5= 9, c6= 9, c7= 9, c8= 9, c9= 9, -c10= 9, c11= 9, c12 = 9, -c13= '2004-02-29', c14= '2004-02-29 11:11:11', c15= '2004-02-29 11:11:11', -c16= '11:11:11', c17= '2004', -c18= 1, c19=false, c20= 'a', c21= '123456789a', -c22= '123456789a123456789b123456789c', c23= 'tinyblob', c24= 'tinytext', -c25= 'blob', c26= 'text', c27= 'mediumblob', c28= 'mediumtext', -c29= 'longblob', c30= 'longtext', c31='two', c32= 'tuesday'; -commit ; -insert into t9 set c1= 0, c15= '1991-01-01 01:01:01' ; -select * from t9 order by c1 ; -c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 c13 c14 c15 c16 c17 c18 c19 c20 c21 c22 c23 c24 c25 c26 c27 c28 c29 c30 c31 c32 -0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday -9 9 9 9 9 9 9 9 9 9 9.0000 9.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 0 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext two tuesday -test_sequence ------- select @parameter:= column ------ -prepare full_info from "select @arg01, @arg02, @arg03, @arg04, - @arg05, @arg06, @arg07, @arg08, - @arg09, @arg10, @arg11, @arg12, - @arg13, @arg14, @arg15, @arg16, - @arg17, @arg18, @arg19, @arg20, - @arg21, @arg22, @arg23, @arg24, - @arg25, @arg26, @arg27, @arg28, - @arg29, @arg30, @arg31, @arg32" ; -select @arg01:= c1, @arg02:= c2, @arg03:= c3, @arg04:= c4, -@arg05:= c5, @arg06:= c6, @arg07:= c7, @arg08:= c8, -@arg09:= c9, @arg10:= c10, @arg11:= c11, @arg12:= c12, -@arg13:= c13, @arg14:= c14, @arg15:= c15, @arg16:= c16, -@arg17:= c17, @arg18:= c18, @arg19:= c19, @arg20:= c20, -@arg21:= c21, @arg22:= c22, @arg23:= c23, @arg24:= c24, -@arg25:= c25, @arg26:= c26, @arg27:= c27, @arg28:= c28, -@arg29:= c29, @arg30:= c30, @arg31:= c31, @arg32:= c32 -from t9 where c1= 1 ; -@arg01:= c1 @arg02:= c2 @arg03:= c3 @arg04:= c4 @arg05:= c5 @arg06:= c6 @arg07:= c7 @arg08:= c8 @arg09:= c9 @arg10:= c10 @arg11:= c11 @arg12:= c12 @arg13:= c13 @arg14:= c14 @arg15:= c15 @arg16:= c16 @arg17:= c17 @arg18:= c18 @arg19:= c19 @arg20:= c20 @arg21:= c21 @arg22:= c22 @arg23:= c23 @arg24:= c24 @arg25:= c25 @arg26:= c26 @arg27:= c27 @arg28:= c28 @arg29:= c29 @arg30:= c30 @arg31:= c31 @arg32:= c32 -1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday -execute full_info ; -Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr -def @arg01 254 20 1 Y 128 31 63 -def @arg02 254 20 1 Y 128 31 63 -def @arg03 254 20 1 Y 128 31 63 -def @arg04 254 20 1 Y 128 31 63 -def @arg05 254 20 1 Y 128 31 63 -def @arg06 254 20 1 Y 128 31 63 -def @arg07 254 20 1 Y 128 31 63 -def @arg08 254 20 1 Y 128 31 63 -def @arg09 254 20 1 Y 128 31 63 -def @arg10 254 20 1 Y 128 31 63 -def @arg11 254 20 1 Y 128 31 63 -def @arg12 254 20 1 Y 128 31 63 -def @arg13 254 8192 10 Y 128 31 63 -def @arg14 254 8192 19 Y 128 31 63 -def @arg15 254 8192 19 Y 128 31 63 -def @arg16 254 8192 8 Y 128 31 63 -def @arg17 254 20 4 Y 128 31 63 -def @arg18 254 20 1 Y 128 31 63 -def @arg19 254 20 1 Y 128 31 63 -def @arg20 254 8192 1 Y 0 31 8 -def @arg21 254 8192 10 Y 0 31 8 -def @arg22 254 8192 30 Y 0 31 8 -def @arg23 254 8192 8 Y 0 31 8 -def @arg24 254 8192 8 Y 0 31 8 -def @arg25 254 8192 4 Y 0 31 8 -def @arg26 254 8192 4 Y 0 31 8 -def @arg27 254 8192 10 Y 0 31 8 -def @arg28 254 8192 10 Y 0 31 8 -def @arg29 254 8192 8 Y 0 31 8 -def @arg30 254 8192 8 Y 0 31 8 -def @arg31 254 8192 3 Y 0 31 8 -def @arg32 254 8192 6 Y 128 31 63 -@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32 -1 1 1 1 1 1 1 1 1 1 1 1 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday -select @arg01:= c1, @arg02:= c2, @arg03:= c3, @arg04:= c4, -@arg05:= c5, @arg06:= c6, @arg07:= c7, @arg08:= c8, -@arg09:= c9, @arg10:= c10, @arg11:= c11, @arg12:= c12, -@arg13:= c13, @arg14:= c14, @arg15:= c15, @arg16:= c16, -@arg17:= c17, @arg18:= c18, @arg19:= c19, @arg20:= c20, -@arg21:= c21, @arg22:= c22, @arg23:= c23, @arg24:= c24, -@arg25:= c25, @arg26:= c26, @arg27:= c27, @arg28:= c28, -@arg29:= c29, @arg30:= c30, @arg31:= c31, @arg32:= c32 -from t9 where c1= 0 ; -@arg01:= c1 @arg02:= c2 @arg03:= c3 @arg04:= c4 @arg05:= c5 @arg06:= c6 @arg07:= c7 @arg08:= c8 @arg09:= c9 @arg10:= c10 @arg11:= c11 @arg12:= c12 @arg13:= c13 @arg14:= c14 @arg15:= c15 @arg16:= c16 @arg17:= c17 @arg18:= c18 @arg19:= c19 @arg20:= c20 @arg21:= c21 @arg22:= c22 @arg23:= c23 @arg24:= c24 @arg25:= c25 @arg26:= c26 @arg27:= c27 @arg28:= c28 @arg29:= c29 @arg30:= c30 @arg31:= c31 @arg32:= c32 -0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -execute full_info ; -Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr -def @arg01 254 20 1 Y 128 31 63 -def @arg02 254 20 0 Y 128 31 63 -def @arg03 254 20 0 Y 128 31 63 -def @arg04 254 20 0 Y 128 31 63 -def @arg05 254 20 0 Y 128 31 63 -def @arg06 254 20 0 Y 128 31 63 -def @arg07 254 20 0 Y 128 31 63 -def @arg08 254 20 0 Y 128 31 63 -def @arg09 254 20 0 Y 128 31 63 -def @arg10 254 20 0 Y 128 31 63 -def @arg11 254 20 0 Y 128 31 63 -def @arg12 254 20 0 Y 128 31 63 -def @arg13 254 8192 0 Y 128 31 63 -def @arg14 254 8192 0 Y 128 31 63 -def @arg15 254 8192 19 Y 128 31 63 -def @arg16 254 8192 0 Y 128 31 63 -def @arg17 254 20 0 Y 128 31 63 -def @arg18 254 20 0 Y 128 31 63 -def @arg19 254 20 0 Y 128 31 63 -def @arg20 254 8192 0 Y 0 31 8 -def @arg21 254 8192 0 Y 0 31 8 -def @arg22 254 8192 0 Y 0 31 8 -def @arg23 254 8192 0 Y 0 31 8 -def @arg24 254 8192 0 Y 0 31 8 -def @arg25 254 8192 0 Y 0 31 8 -def @arg26 254 8192 0 Y 0 31 8 -def @arg27 254 8192 0 Y 0 31 8 -def @arg28 254 8192 0 Y 0 31 8 -def @arg29 254 8192 0 Y 0 31 8 -def @arg30 254 8192 0 Y 0 31 8 -def @arg31 254 8192 0 Y 0 31 8 -def @arg32 254 8192 0 Y 0 31 8 -@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32 -0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -prepare stmt1 from "select - @arg01:= c1, @arg02:= c2, @arg03:= c3, @arg04:= c4, - @arg05:= c5, @arg06:= c6, @arg07:= c7, @arg08:= c8, - @arg09:= c9, @arg10:= c10, @arg11:= c11, @arg12:= c12, - @arg13:= c13, @arg14:= c14, @arg15:= c15, @arg16:= c16, - @arg17:= c17, @arg18:= c18, @arg19:= c19, @arg20:= c20, - @arg21:= c21, @arg22:= c22, @arg23:= c23, @arg24:= c24, - @arg25:= c25, @arg26:= c26, @arg27:= c27, @arg28:= c28, - @arg29:= c29, @arg30:= c30, @arg31:= c31, @arg32:= c32 -from t9 where c1= ?" ; -set @my_key= 1 ; -execute stmt1 using @my_key ; -@arg01:= c1 @arg02:= c2 @arg03:= c3 @arg04:= c4 @arg05:= c5 @arg06:= c6 @arg07:= c7 @arg08:= c8 @arg09:= c9 @arg10:= c10 @arg11:= c11 @arg12:= c12 @arg13:= c13 @arg14:= c14 @arg15:= c15 @arg16:= c16 @arg17:= c17 @arg18:= c18 @arg19:= c19 @arg20:= c20 @arg21:= c21 @arg22:= c22 @arg23:= c23 @arg24:= c24 @arg25:= c25 @arg26:= c26 @arg27:= c27 @arg28:= c28 @arg29:= c29 @arg30:= c30 @arg31:= c31 @arg32:= c32 -1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday -execute full_info ; -Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr -def @arg01 254 20 1 Y 128 31 63 -def @arg02 254 20 1 Y 128 31 63 -def @arg03 254 20 1 Y 128 31 63 -def @arg04 254 20 1 Y 128 31 63 -def @arg05 254 20 1 Y 128 31 63 -def @arg06 254 20 1 Y 128 31 63 -def @arg07 254 20 1 Y 128 31 63 -def @arg08 254 20 1 Y 128 31 63 -def @arg09 254 20 1 Y 128 31 63 -def @arg10 254 20 1 Y 128 31 63 -def @arg11 254 20 1 Y 128 31 63 -def @arg12 254 20 1 Y 128 31 63 -def @arg13 254 8192 10 Y 128 31 63 -def @arg14 254 8192 19 Y 128 31 63 -def @arg15 254 8192 19 Y 128 31 63 -def @arg16 254 8192 8 Y 128 31 63 -def @arg17 254 20 4 Y 128 31 63 -def @arg18 254 20 1 Y 128 31 63 -def @arg19 254 20 1 Y 128 31 63 -def @arg20 254 8192 1 Y 0 31 8 -def @arg21 254 8192 10 Y 0 31 8 -def @arg22 254 8192 30 Y 0 31 8 -def @arg23 254 8192 8 Y 0 31 8 -def @arg24 254 8192 8 Y 0 31 8 -def @arg25 254 8192 4 Y 0 31 8 -def @arg26 254 8192 4 Y 0 31 8 -def @arg27 254 8192 10 Y 0 31 8 -def @arg28 254 8192 10 Y 0 31 8 -def @arg29 254 8192 8 Y 0 31 8 -def @arg30 254 8192 8 Y 0 31 8 -def @arg31 254 8192 3 Y 0 31 8 -def @arg32 254 8192 6 Y 128 31 63 -@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32 -1 1 1 1 1 1 1 1 1 1 1 1 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday -set @my_key= 0 ; -execute stmt1 using @my_key ; -@arg01:= c1 @arg02:= c2 @arg03:= c3 @arg04:= c4 @arg05:= c5 @arg06:= c6 @arg07:= c7 @arg08:= c8 @arg09:= c9 @arg10:= c10 @arg11:= c11 @arg12:= c12 @arg13:= c13 @arg14:= c14 @arg15:= c15 @arg16:= c16 @arg17:= c17 @arg18:= c18 @arg19:= c19 @arg20:= c20 @arg21:= c21 @arg22:= c22 @arg23:= c23 @arg24:= c24 @arg25:= c25 @arg26:= c26 @arg27:= c27 @arg28:= c28 @arg29:= c29 @arg30:= c30 @arg31:= c31 @arg32:= c32 -0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -execute full_info ; -Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr -def @arg01 254 20 1 Y 128 31 63 -def @arg02 254 20 0 Y 128 31 63 -def @arg03 254 20 0 Y 128 31 63 -def @arg04 254 20 0 Y 128 31 63 -def @arg05 254 20 0 Y 128 31 63 -def @arg06 254 20 0 Y 128 31 63 -def @arg07 254 20 0 Y 128 31 63 -def @arg08 254 20 0 Y 128 31 63 -def @arg09 254 20 0 Y 128 31 63 -def @arg10 254 20 0 Y 128 31 63 -def @arg11 254 20 0 Y 128 31 63 -def @arg12 254 20 0 Y 128 31 63 -def @arg13 254 8192 0 Y 128 31 63 -def @arg14 254 8192 0 Y 128 31 63 -def @arg15 254 8192 19 Y 128 31 63 -def @arg16 254 8192 0 Y 128 31 63 -def @arg17 254 20 0 Y 128 31 63 -def @arg18 254 20 0 Y 128 31 63 -def @arg19 254 20 0 Y 128 31 63 -def @arg20 254 8192 0 Y 0 31 8 -def @arg21 254 8192 0 Y 0 31 8 -def @arg22 254 8192 0 Y 0 31 8 -def @arg23 254 8192 0 Y 0 31 8 -def @arg24 254 8192 0 Y 0 31 8 -def @arg25 254 8192 0 Y 0 31 8 -def @arg26 254 8192 0 Y 0 31 8 -def @arg27 254 8192 0 Y 0 31 8 -def @arg28 254 8192 0 Y 0 31 8 -def @arg29 254 8192 0 Y 0 31 8 -def @arg30 254 8192 0 Y 0 31 8 -def @arg31 254 8192 0 Y 0 31 8 -def @arg32 254 8192 0 Y 0 31 8 -@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32 -0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -prepare stmt1 from "select ? := c1 from t9 where c1= 1" ; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ':= c1 from t9 where c1= 1' at line 1 -test_sequence ------- select column, .. into @parm,.. ------ -select c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12, -c13, c14, c15, c16, c17, c18, c19, c20, c21, c22, c23, c24, -c25, c26, c27, c28, c29, c30, c31, c32 -into @arg01, @arg02, @arg03, @arg04, @arg05, @arg06, @arg07, @arg08, -@arg09, @arg10, @arg11, @arg12, @arg13, @arg14, @arg15, @arg16, -@arg17, @arg18, @arg19, @arg20, @arg21, @arg22, @arg23, @arg24, -@arg25, @arg26, @arg27, @arg28, @arg29, @arg30, @arg31, @arg32 -from t9 where c1= 1 ; -execute full_info ; -Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr -def @arg01 254 20 1 Y 128 31 63 -def @arg02 254 20 1 Y 128 31 63 -def @arg03 254 20 1 Y 128 31 63 -def @arg04 254 20 1 Y 128 31 63 -def @arg05 254 20 1 Y 128 31 63 -def @arg06 254 20 1 Y 128 31 63 -def @arg07 254 20 1 Y 128 31 63 -def @arg08 254 20 1 Y 128 31 63 -def @arg09 254 20 1 Y 128 31 63 -def @arg10 254 20 1 Y 128 31 63 -def @arg11 254 20 1 Y 128 31 63 -def @arg12 254 20 1 Y 128 31 63 -def @arg13 254 8192 10 Y 128 31 63 -def @arg14 254 8192 19 Y 128 31 63 -def @arg15 254 8192 19 Y 128 31 63 -def @arg16 254 8192 8 Y 128 31 63 -def @arg17 254 20 4 Y 128 31 63 -def @arg18 254 20 1 Y 128 31 63 -def @arg19 254 20 1 Y 128 31 63 -def @arg20 254 8192 1 Y 0 31 8 -def @arg21 254 8192 10 Y 0 31 8 -def @arg22 254 8192 30 Y 0 31 8 -def @arg23 254 8192 8 Y 0 31 8 -def @arg24 254 8192 8 Y 0 31 8 -def @arg25 254 8192 4 Y 0 31 8 -def @arg26 254 8192 4 Y 0 31 8 -def @arg27 254 8192 10 Y 0 31 8 -def @arg28 254 8192 10 Y 0 31 8 -def @arg29 254 8192 8 Y 0 31 8 -def @arg30 254 8192 8 Y 0 31 8 -def @arg31 254 8192 3 Y 0 31 8 -def @arg32 254 8192 6 Y 128 31 63 -@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32 -1 1 1 1 1 1 1 1 1 1 1 1 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday -select c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12, -c13, c14, c15, c16, c17, c18, c19, c20, c21, c22, c23, c24, -c25, c26, c27, c28, c29, c30, c31, c32 -into @arg01, @arg02, @arg03, @arg04, @arg05, @arg06, @arg07, @arg08, -@arg09, @arg10, @arg11, @arg12, @arg13, @arg14, @arg15, @arg16, -@arg17, @arg18, @arg19, @arg20, @arg21, @arg22, @arg23, @arg24, -@arg25, @arg26, @arg27, @arg28, @arg29, @arg30, @arg31, @arg32 -from t9 where c1= 0 ; -execute full_info ; -Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr -def @arg01 254 20 1 Y 128 31 63 -def @arg02 254 20 0 Y 128 31 63 -def @arg03 254 20 0 Y 128 31 63 -def @arg04 254 20 0 Y 128 31 63 -def @arg05 254 20 0 Y 128 31 63 -def @arg06 254 20 0 Y 128 31 63 -def @arg07 254 20 0 Y 128 31 63 -def @arg08 254 20 0 Y 128 31 63 -def @arg09 254 20 0 Y 128 31 63 -def @arg10 254 20 0 Y 128 31 63 -def @arg11 254 20 0 Y 128 31 63 -def @arg12 254 20 0 Y 128 31 63 -def @arg13 254 8192 0 Y 128 31 63 -def @arg14 254 8192 0 Y 128 31 63 -def @arg15 254 8192 19 Y 128 31 63 -def @arg16 254 8192 0 Y 128 31 63 -def @arg17 254 20 0 Y 128 31 63 -def @arg18 254 20 0 Y 128 31 63 -def @arg19 254 20 0 Y 128 31 63 -def @arg20 254 8192 0 Y 0 31 8 -def @arg21 254 8192 0 Y 0 31 8 -def @arg22 254 8192 0 Y 0 31 8 -def @arg23 254 8192 0 Y 0 31 8 -def @arg24 254 8192 0 Y 0 31 8 -def @arg25 254 8192 0 Y 0 31 8 -def @arg26 254 8192 0 Y 0 31 8 -def @arg27 254 8192 0 Y 0 31 8 -def @arg28 254 8192 0 Y 0 31 8 -def @arg29 254 8192 0 Y 0 31 8 -def @arg30 254 8192 0 Y 0 31 8 -def @arg31 254 8192 0 Y 0 31 8 -def @arg32 254 8192 0 Y 0 31 8 -@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32 -0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -prepare stmt1 from "select c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12, - c13, c14, c15, c16, c17, c18, c19, c20, c21, c22, c23, c24, - c25, c26, c27, c28, c29, c30, c31, c32 -into @arg01, @arg02, @arg03, @arg04, @arg05, @arg06, @arg07, @arg08, - @arg09, @arg10, @arg11, @arg12, @arg13, @arg14, @arg15, @arg16, - @arg17, @arg18, @arg19, @arg20, @arg21, @arg22, @arg23, @arg24, - @arg25, @arg26, @arg27, @arg28, @arg29, @arg30, @arg31, @arg32 -from t9 where c1= ?" ; -set @my_key= 1 ; -execute stmt1 using @my_key ; -execute full_info ; -Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr -def @arg01 254 20 1 Y 128 31 63 -def @arg02 254 20 1 Y 128 31 63 -def @arg03 254 20 1 Y 128 31 63 -def @arg04 254 20 1 Y 128 31 63 -def @arg05 254 20 1 Y 128 31 63 -def @arg06 254 20 1 Y 128 31 63 -def @arg07 254 20 1 Y 128 31 63 -def @arg08 254 20 1 Y 128 31 63 -def @arg09 254 20 1 Y 128 31 63 -def @arg10 254 20 1 Y 128 31 63 -def @arg11 254 20 1 Y 128 31 63 -def @arg12 254 20 1 Y 128 31 63 -def @arg13 254 8192 10 Y 128 31 63 -def @arg14 254 8192 19 Y 128 31 63 -def @arg15 254 8192 19 Y 128 31 63 -def @arg16 254 8192 8 Y 128 31 63 -def @arg17 254 20 4 Y 128 31 63 -def @arg18 254 20 1 Y 128 31 63 -def @arg19 254 20 1 Y 128 31 63 -def @arg20 254 8192 1 Y 0 31 8 -def @arg21 254 8192 10 Y 0 31 8 -def @arg22 254 8192 30 Y 0 31 8 -def @arg23 254 8192 8 Y 0 31 8 -def @arg24 254 8192 8 Y 0 31 8 -def @arg25 254 8192 4 Y 0 31 8 -def @arg26 254 8192 4 Y 0 31 8 -def @arg27 254 8192 10 Y 0 31 8 -def @arg28 254 8192 10 Y 0 31 8 -def @arg29 254 8192 8 Y 0 31 8 -def @arg30 254 8192 8 Y 0 31 8 -def @arg31 254 8192 3 Y 0 31 8 -def @arg32 254 8192 6 Y 128 31 63 -@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32 -1 1 1 1 1 1 1 1 1 1 1 1 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday -set @my_key= 0 ; -execute stmt1 using @my_key ; -execute full_info ; -Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr -def @arg01 254 20 1 Y 128 31 63 -def @arg02 254 20 0 Y 128 31 63 -def @arg03 254 20 0 Y 128 31 63 -def @arg04 254 20 0 Y 128 31 63 -def @arg05 254 20 0 Y 128 31 63 -def @arg06 254 20 0 Y 128 31 63 -def @arg07 254 20 0 Y 128 31 63 -def @arg08 254 20 0 Y 128 31 63 -def @arg09 254 20 0 Y 128 31 63 -def @arg10 254 20 0 Y 128 31 63 -def @arg11 254 20 0 Y 128 31 63 -def @arg12 254 20 0 Y 128 31 63 -def @arg13 254 8192 0 Y 128 31 63 -def @arg14 254 8192 0 Y 128 31 63 -def @arg15 254 8192 19 Y 128 31 63 -def @arg16 254 8192 0 Y 128 31 63 -def @arg17 254 20 0 Y 128 31 63 -def @arg18 254 20 0 Y 128 31 63 -def @arg19 254 20 0 Y 128 31 63 -def @arg20 254 8192 0 Y 0 31 8 -def @arg21 254 8192 0 Y 0 31 8 -def @arg22 254 8192 0 Y 0 31 8 -def @arg23 254 8192 0 Y 0 31 8 -def @arg24 254 8192 0 Y 0 31 8 -def @arg25 254 8192 0 Y 0 31 8 -def @arg26 254 8192 0 Y 0 31 8 -def @arg27 254 8192 0 Y 0 31 8 -def @arg28 254 8192 0 Y 0 31 8 -def @arg29 254 8192 0 Y 0 31 8 -def @arg30 254 8192 0 Y 0 31 8 -def @arg31 254 8192 0 Y 0 31 8 -def @arg32 254 8192 0 Y 0 31 8 -@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32 -0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -prepare stmt1 from "select c1 into ? from t9 where c1= 1" ; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '? from t9 where c1= 1' at line 1 -test_sequence --- insert into numeric columns -- -insert into t9 -( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values -( 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20 ) ; -set @arg00= 21 ; -insert into t9 -( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values -( @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ) ; -prepare stmt1 from "insert into t9 - ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values - ( 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22 )" ; -execute stmt1 ; -set @arg00= 23; -prepare stmt2 from "insert into t9 - ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values - ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )" ; -execute stmt2 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00 ; -insert into t9 -( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values -( 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, -30.0, 30.0, 30.0 ) ; -set @arg00= 31.0 ; -insert into t9 -( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values -( @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ) ; -prepare stmt1 from "insert into t9 - ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values - ( 32.0, 32.0, 32.0, 32.0, 32.0, 32.0, 32.0, 32.0, - 32.0, 32.0, 32.0 )" ; -execute stmt1 ; -set @arg00= 33.0; -prepare stmt2 from "insert into t9 - ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values - ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )" ; -execute stmt2 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00 ; -insert into t9 -( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values -( '40', '40', '40', '40', '40', '40', '40', '40', -'40', '40', '40' ) ; -set @arg00= '41' ; -insert into t9 -( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values -( @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ) ; -prepare stmt1 from "insert into t9 - ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values - ( '42', '42', '42', '42', '42', '42', '42', '42', - '42', '42', '42' )" ; -execute stmt1 ; -set @arg00= '43'; -prepare stmt2 from "insert into t9 - ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values - ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )" ; -execute stmt2 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00 ; -insert into t9 -( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values -( CAST('50' as binary), CAST('50' as binary), -CAST('50' as binary), CAST('50' as binary), CAST('50' as binary), -CAST('50' as binary), CAST('50' as binary), CAST('50' as binary), -CAST('50' as binary), CAST('50' as binary), CAST('50' as binary) ) ; -set @arg00= CAST('51' as binary) ; -insert into t9 -( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values -( @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ) ; -prepare stmt1 from "insert into t9 - ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values - ( CAST('52' as binary), CAST('52' as binary), - CAST('52' as binary), CAST('52' as binary), CAST('52' as binary), - CAST('52' as binary), CAST('52' as binary), CAST('52' as binary), - CAST('52' as binary), CAST('52' as binary), CAST('52' as binary) )" ; -execute stmt1 ; -set @arg00= CAST('53' as binary) ; -prepare stmt2 from "insert into t9 - ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values - ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )" ; -execute stmt2 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00 ; -set @arg00= 2 ; -set @arg00= NULL ; -insert into t9 -( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values -( 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, -NULL, NULL, NULL ) ; -insert into t9 -( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values -( 61, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ) ; -prepare stmt1 from "insert into t9 - ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values - ( 62, NULL, NULL, NULL, NULL, NULL, NULL, NULL, - NULL, NULL, NULL )" ; -execute stmt1 ; -prepare stmt2 from "insert into t9 - ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values - ( 63, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )" ; -execute stmt2 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00 ; -set @arg00= 8.0 ; -set @arg00= NULL ; -insert into t9 -( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values -( 71, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ) ; -prepare stmt2 from "insert into t9 - ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values - ( 73, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )" ; -execute stmt2 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00 ; -set @arg00= 'abc' ; -set @arg00= NULL ; -insert into t9 -( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values -( 81, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ) ; -prepare stmt2 from "insert into t9 - ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values - ( 83, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )" ; -execute stmt2 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00 ; -select c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 -from t9 where c1 >= 20 -order by c1 ; -c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c12 -20 20 20 20 20 20 20 20 20 20 20.0000 -21 21 21 21 21 21 21 21 21 21 21.0000 -22 22 22 22 22 22 22 22 22 22 22.0000 -23 23 23 23 23 23 23 23 23 23 23.0000 -30 30 30 30 30 30 30 30 30 30 30.0000 -31 31 31 31 31 31 31 31 31 31 31.0000 -32 32 32 32 32 32 32 32 32 32 32.0000 -33 33 33 33 33 33 33 33 33 33 33.0000 -40 40 40 40 40 40 40 40 40 40 40.0000 -41 41 41 41 41 41 41 41 41 41 41.0000 -42 42 42 42 42 42 42 42 42 42 42.0000 -43 43 43 43 43 43 43 43 43 43 43.0000 -50 50 50 50 50 50 50 50 50 50 50.0000 -51 51 51 51 51 51 51 51 51 51 51.0000 -52 52 52 52 52 52 52 52 52 52 52.0000 -53 53 53 53 53 53 53 53 53 53 53.0000 -60 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -61 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -62 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -63 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -71 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -73 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -81 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -83 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -test_sequence --- select .. where numeric column = .. -- -set @arg00= 20; -select 'true' as found from t9 -where c1= 20 and c2= 20 and c3= 20 and c4= 20 and c5= 20 and c6= 20 and c7= 20 -and c8= 20 and c9= 20 and c10= 20 and c12= 20; -found -true -select 'true' as found from t9 -where c1= @arg00 and c2= @arg00 and c3= @arg00 and c4= @arg00 and c5= @arg00 -and c6= @arg00 and c7= @arg00 and c8= @arg00 and c9= @arg00 and c10= @arg00 -and c12= @arg00; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and c2= 20 and c3= 20 and c4= 20 and c5= 20 and c6= 20 and c7= 20 - and c8= 20 and c9= 20 and c10= 20 and c12= 20 "; -execute stmt1 ; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= ? and c2= ? and c3= ? and c4= ? and c5= ? - and c6= ? and c7= ? and c8= ? and c9= ? and c10= ? - and c12= ? "; -execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00 ; -found -true -set @arg00= 20.0; -select 'true' as found from t9 -where c1= 20.0 and c2= 20.0 and c3= 20.0 and c4= 20.0 and c5= 20.0 and c6= 20.0 -and c7= 20.0 and c8= 20.0 and c9= 20.0 and c10= 20.0 and c12= 20.0; -found -true -select 'true' as found from t9 -where c1= @arg00 and c2= @arg00 and c3= @arg00 and c4= @arg00 and c5= @arg00 -and c6= @arg00 and c7= @arg00 and c8= @arg00 and c9= @arg00 and c10= @arg00 -and c12= @arg00; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20.0 and c2= 20.0 and c3= 20.0 and c4= 20.0 and c5= 20.0 and c6= 20.0 - and c7= 20.0 and c8= 20.0 and c9= 20.0 and c10= 20.0 and c12= 20.0 "; -execute stmt1 ; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= ? and c2= ? and c3= ? and c4= ? and c5= ? - and c6= ? and c7= ? and c8= ? and c9= ? and c10= ? - and c12= ? "; -execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00 ; -found -true -select 'true' as found from t9 -where c1= '20' and c2= '20' and c3= '20' and c4= '20' and c5= '20' and c6= '20' - and c7= '20' and c8= '20' and c9= '20' and c10= '20' and c12= '20'; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= '20' and c2= '20' and c3= '20' and c4= '20' and c5= '20' and c6= '20' - and c7= '20' and c8= '20' and c9= '20' and c10= '20' and c12= '20' "; -execute stmt1 ; -found -true -set @arg00= '20'; -select 'true' as found from t9 -where c1= @arg00 and c2= @arg00 and c3= @arg00 and c4= @arg00 and c5= @arg00 -and c6= @arg00 and c7= @arg00 and c8= @arg00 and c9= @arg00 and c10= @arg00 -and c12= @arg00; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= ? and c2= ? and c3= ? and c4= ? and c5= ? - and c6= ? and c7= ? and c8= ? and c9= ? and c10= ? - and c12= ? "; -execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00 ; -found -true -select 'true' as found from t9 -where c1= CAST('20' as binary) and c2= CAST('20' as binary) and -c3= CAST('20' as binary) and c4= CAST('20' as binary) and -c5= CAST('20' as binary) and c6= CAST('20' as binary) and -c7= CAST('20' as binary) and c8= CAST('20' as binary) and -c9= CAST('20' as binary) and c10= CAST('20' as binary) and -c12= CAST('20' as binary); -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= CAST('20' as binary) and c2= CAST('20' as binary) and - c3= CAST('20' as binary) and c4= CAST('20' as binary) and - c5= CAST('20' as binary) and c6= CAST('20' as binary) and - c7= CAST('20' as binary) and c8= CAST('20' as binary) and - c9= CAST('20' as binary) and c10= CAST('20' as binary) and - c12= CAST('20' as binary) "; -execute stmt1 ; -found -true -set @arg00= CAST('20' as binary) ; -select 'true' as found from t9 -where c1= @arg00 and c2= @arg00 and c3= @arg00 and c4= @arg00 and c5= @arg00 -and c6= @arg00 and c7= @arg00 and c8= @arg00 and c9= @arg00 and c10= @arg00 -and c12= @arg00; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= ? and c2= ? and c3= ? and c4= ? and c5= ? - and c6= ? and c7= ? and c8= ? and c9= ? and c10= ? - and c12= ? "; -execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00 ; -found -true -delete from t9 ; -test_sequence --- some numeric overflow experiments -- -prepare my_insert from "insert into t9 - ( c21, c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values - ( 'O', ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )" ; -prepare my_select from "select c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 -from t9 where c21 = 'O' "; -prepare my_delete from "delete from t9 where c21 = 'O' "; -set @arg00= 9223372036854775807 ; -execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ; -Warnings: -Warning 1264 Data truncated; out of range for column 'c1' at row 1 -Warning 1264 Data truncated; out of range for column 'c2' at row 1 -Warning 1264 Data truncated; out of range for column 'c3' at row 1 -Warning 1264 Data truncated; out of range for column 'c4' at row 1 -Warning 1264 Data truncated; out of range for column 'c5' at row 1 -Warning 1264 Data truncated; out of range for column 'c12' at row 1 -execute my_select ; -c1 127 -c2 32767 -c3 8388607 -c4 2147483647 -c5 2147483647 -c6 9223372036854775807 -c7 9.22337e+18 -c8 9.22337203685478e+18 -c9 9.22337203685478e+18 -c10 9.22337203685478e+18 -c12 99999.9999 -execute my_delete ; -set @arg00= '9223372036854775807' ; -execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ; -Warnings: -Warning 1264 Data truncated; out of range for column 'c1' at row 1 -Warning 1264 Data truncated; out of range for column 'c2' at row 1 -Warning 1264 Data truncated; out of range for column 'c3' at row 1 -Warning 1265 Data truncated for column 'c4' at row 1 -Warning 1265 Data truncated for column 'c5' at row 1 -Warning 1264 Data truncated; out of range for column 'c12' at row 1 -execute my_select ; -c1 127 -c2 32767 -c3 8388607 -c4 2147483647 -c5 2147483647 -c6 9223372036854775807 -c7 9.22337e+18 -c8 9.22337203685478e+18 -c9 9.22337203685478e+18 -c10 9.22337203685478e+18 -c12 99999.9999 -execute my_delete ; -set @arg00= -9223372036854775808 ; -execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ; -Warnings: -Warning 1264 Data truncated; out of range for column 'c1' at row 1 -Warning 1264 Data truncated; out of range for column 'c2' at row 1 -Warning 1264 Data truncated; out of range for column 'c3' at row 1 -Warning 1264 Data truncated; out of range for column 'c4' at row 1 -Warning 1264 Data truncated; out of range for column 'c5' at row 1 -Warning 1264 Data truncated; out of range for column 'c12' at row 1 -execute my_select ; -c1 -128 -c2 -32768 -c3 -8388608 -c4 -2147483648 -c5 -2147483648 -c6 -9223372036854775808 -c7 -9.22337e+18 -c8 -9.22337203685478e+18 -c9 -9.22337203685478e+18 -c10 -9.22337203685478e+18 -c12 -9999.9999 -execute my_delete ; -set @arg00= '-9223372036854775808' ; -execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ; -Warnings: -Warning 1264 Data truncated; out of range for column 'c1' at row 1 -Warning 1264 Data truncated; out of range for column 'c2' at row 1 -Warning 1264 Data truncated; out of range for column 'c3' at row 1 -Warning 1265 Data truncated for column 'c4' at row 1 -Warning 1265 Data truncated for column 'c5' at row 1 -Warning 1264 Data truncated; out of range for column 'c12' at row 1 -execute my_select ; -c1 -128 -c2 -32768 -c3 -8388608 -c4 -2147483648 -c5 -2147483648 -c6 -9223372036854775808 -c7 -9.22337e+18 -c8 -9.22337203685478e+18 -c9 -9.22337203685478e+18 -c10 -9.22337203685478e+18 -c12 -9999.9999 -execute my_delete ; -set @arg00= 1.11111111111111111111e+50 ; -execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ; -Warnings: -Warning 1264 Data truncated; out of range for column 'c1' at row 1 -Warning 1264 Data truncated; out of range for column 'c2' at row 1 -Warning 1264 Data truncated; out of range for column 'c3' at row 1 -Warning 1264 Data truncated; out of range for column 'c4' at row 1 -Warning 1264 Data truncated; out of range for column 'c5' at row 1 -Warning 1264 Data truncated; out of range for column 'c6' at row 1 -Warning 1264 Data truncated; out of range for column 'c7' at row 1 -Warning 1264 Data truncated; out of range for column 'c12' at row 1 -execute my_select ; -c1 127 -c2 32767 -c3 8388607 -c4 2147483647 -c5 2147483647 -c6 9223372036854775807 -c7 3.40282e+38 -c8 1.11111111111111e+50 -c9 1.11111111111111e+50 -c10 1.11111111111111e+50 -c12 99999.9999 -execute my_delete ; -set @arg00= '1.11111111111111111111e+50' ; -execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ; -Warnings: -Warning 1265 Data truncated for column 'c1' at row 1 -Warning 1265 Data truncated for column 'c2' at row 1 -Warning 1265 Data truncated for column 'c3' at row 1 -Warning 1265 Data truncated for column 'c4' at row 1 -Warning 1265 Data truncated for column 'c5' at row 1 -Warning 1265 Data truncated for column 'c6' at row 1 -Warning 1264 Data truncated; out of range for column 'c7' at row 1 -Warning 1264 Data truncated; out of range for column 'c12' at row 1 -execute my_select ; -c1 1 -c2 1 -c3 1 -c4 1 -c5 1 -c6 1 -c7 3.40282e+38 -c8 1.11111111111111e+50 -c9 1.11111111111111e+50 -c10 1.11111111111111e+50 -c12 99999.9999 -execute my_delete ; -set @arg00= -1.11111111111111111111e+50 ; -execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ; -Warnings: -Warning 1264 Data truncated; out of range for column 'c1' at row 1 -Warning 1264 Data truncated; out of range for column 'c2' at row 1 -Warning 1264 Data truncated; out of range for column 'c3' at row 1 -Warning 1264 Data truncated; out of range for column 'c4' at row 1 -Warning 1264 Data truncated; out of range for column 'c5' at row 1 -Warning 1264 Data truncated; out of range for column 'c6' at row 1 -Warning 1264 Data truncated; out of range for column 'c7' at row 1 -Warning 1264 Data truncated; out of range for column 'c12' at row 1 -execute my_select ; -c1 -128 -c2 -32768 -c3 -8388608 -c4 -2147483648 -c5 -2147483648 -c6 -9223372036854775808 -c7 -3.40282e+38 -c8 -1.11111111111111e+50 -c9 -1.11111111111111e+50 -c10 -1.11111111111111e+50 -c12 -9999.9999 -execute my_delete ; -set @arg00= '-1.11111111111111111111e+50' ; -execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ; -Warnings: -Warning 1265 Data truncated for column 'c1' at row 1 -Warning 1265 Data truncated for column 'c2' at row 1 -Warning 1265 Data truncated for column 'c3' at row 1 -Warning 1265 Data truncated for column 'c4' at row 1 -Warning 1265 Data truncated for column 'c5' at row 1 -Warning 1265 Data truncated for column 'c6' at row 1 -Warning 1264 Data truncated; out of range for column 'c7' at row 1 -Warning 1264 Data truncated; out of range for column 'c12' at row 1 -execute my_select ; -c1 -1 -c2 -1 -c3 -1 -c4 -1 -c5 -1 -c6 -1 -c7 -3.40282e+38 -c8 -1.11111111111111e+50 -c9 -1.11111111111111e+50 -c10 -1.11111111111111e+50 -c12 -9999.9999 -execute my_delete ; -test_sequence --- insert into string columns -- -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -select c1, c20, c21, c22, c23, c24, c25, c26, c27, c28, c29, c30 -from t9 where c1 >= 20 -order by c1 ; -c1 c20 c21 c22 c23 c24 c25 c26 c27 c28 c29 c30 -20 2 20 20 20 20 20 20 20 20 20 20 -21 2 21 21 21 21 21 21 21 21 21 21 -22 2 22 22 22 22 22 22 22 22 22 22 -23 2 23 23 23 23 23 23 23 23 23 23 -30 3 30 30 30 30 30 30 30 30 30 30 -31 3 31 31 31 31 31 31 31 31 31 31 -32 3 32 32 32 32 32 32 32 32 32 32 -33 3 33 33 33 33 33 33 33 33 33 33 -40 4 40 40 40 40 40 40 40 40 40 40 -41 4 41 41 41 41 41 41 41 41 41 41 -42 4 42 42 42 42 42 42 42 42 42 42 -43 4 43 43 43 43 43 43 43 43 43 43 -50 5 50 50 50 50 50 50 50 50 50 50 -51 5 51 51 51 51 51 51 51 51 51 51 -52 5 52 52 52 52 52 52 52 52 52 52 -53 5 53 53 53 53 53 53 53 53 53 53 -54 5 54 54 54 54 54 54 54 54 54 54 -55 5 55 55 55 55 55 55 55 55 55 55 -56 6 56 56 56 56 56 56 56 56 56 56 -57 6 57 57 57 57 57 57 57 57 57 57 -60 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -61 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -62 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -63 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -71 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -73 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -81 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -83 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -test_sequence --- select .. where string column = .. -- -set @arg00= '20'; -select 'true' as found from t9 -where c1= 20 and concat(c20,substr('20',1+length(c20)))= '20' and c21= '20' and -c22= '20' and c23= '20' and c24= '20' and c25= '20' and c26= '20' and -c27= '20' and c28= '20' and c29= '20' and c30= '20' ; -found -true -select 'true' as found from t9 -where c1= 20 and concat(c20,substr(@arg00,1+length(c20)))= @arg00 and -c21= @arg00 and c22= @arg00 and c23= @arg00 and c25= @arg00 and -c26= @arg00 and c27= @arg00 and c28= @arg00 and c29= @arg00 and c30= @arg00; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and concat(c20,substr('20',1+length(c20)))= '20' and c21= '20' and - c22= '20' and c23= '20' and c24= '20' and c25= '20' and c26= '20' and - c27= '20' and c28= '20' and c29= '20' and c30= '20'" ; -execute stmt1 ; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and concat(c20,substr(?,1+length(c20)))= ? and - c21= ? and c22= ? and c23= ? and c25= ? and - c26= ? and c27= ? and c28= ? and c29= ? and c30= ?" ; -execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ; -found -true -set @arg00= CAST('20' as binary); -select 'true' as found from t9 -where c1= 20 and concat(c20,substr(CAST('20' as binary),1+length(c20))) -= CAST('20' as binary) and c21= CAST('20' as binary) -and c22= CAST('20' as binary) and c23= CAST('20' as binary) and -c24= CAST('20' as binary) and c25= CAST('20' as binary) and -c26= CAST('20' as binary) and c27= CAST('20' as binary) and -c28= CAST('20' as binary) and c29= CAST('20' as binary) and -c30= CAST('20' as binary) ; -found -true -select 'true' as found from t9 -where c1= 20 and concat(c20,substr(@arg00,1+length(c20))) = @arg00 and -c21= @arg00 and c22= @arg00 and c23= @arg00 and c25= @arg00 and -c26= @arg00 and c27= @arg00 and c28= @arg00 and c29= @arg00 and -c30= @arg00; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and concat(c20,substr(CAST('20' as binary),1+length(c20))) - = CAST('20' as binary) and c21= CAST('20' as binary) - and c22= CAST('20' as binary) and c23= CAST('20' as binary) and - c24= CAST('20' as binary) and c25= CAST('20' as binary) and - c26= CAST('20' as binary) and c27= CAST('20' as binary) and - c28= CAST('20' as binary) and c29= CAST('20' as binary) and - c30= CAST('20' as binary)" ; -execute stmt1 ; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and concat(c20,substr(?,1+length(c20))) = ? and c21= ? and - c22= ? and c23= ? and c25= ? and c26= ? and c27= ? and c28= ? and - c29= ? and c30= ?"; -execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ; -found -true -set @arg00= 20; -select 'true' as found from t9 -where c1= 20 and concat(c20,substr(20,1+length(c20)))= 20 and c21= 20 and -c22= 20 and c23= 20 and c24= 20 and c25= 20 and c26= 20 and -c27= 20 and c28= 20 and c29= 20 and c30= 20 ; -found -true -select 'true' as found from t9 -where c1= 20 and concat(c20,substr(@arg00,1+length(c20)))= @arg00 and -c21= @arg00 and c22= @arg00 and c23= @arg00 and c25= @arg00 and -c26= @arg00 and c27= @arg00 and c28= @arg00 and c29= @arg00 and c30= @arg00; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and concat(c20,substr(20,1+length(c20)))= 20 and c21= 20 and - c22= 20 and c23= 20 and c24= 20 and c25= 20 and c26= 20 and - c27= 20 and c28= 20 and c29= 20 and c30= 20" ; -execute stmt1 ; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and concat(c20,substr(?,1+length(c20)))= ? and - c21= ? and c22= ? and c23= ? and c25= ? and - c26= ? and c27= ? and c28= ? and c29= ? and c30= ?" ; -execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ; -found -true -set @arg00= 20.0; -select 'true' as found from t9 -where c1= 20 and concat(c20,substr(20.0,1+length(c20)))= 20.0 and c21= 20.0 and -c22= 20.0 and c23= 20.0 and c24= 20.0 and c25= 20.0 and c26= 20.0 and -c27= 20.0 and c28= 20.0 and c29= 20.0 and c30= 20.0 ; -found -true -select 'true' as found from t9 -where c1= 20 and concat(c20,substr(@arg00,1+length(c20)))= @arg00 and -c21= @arg00 and c22= @arg00 and c23= @arg00 and c25= @arg00 and -c26= @arg00 and c27= @arg00 and c28= @arg00 and c29= @arg00 and c30= @arg00; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and concat(c20,substr(20.0,1+length(c20)))= 20.0 and c21= 20.0 and - c22= 20.0 and c23= 20.0 and c24= 20.0 and c25= 20.0 and c26= 20.0 and - c27= 20.0 and c28= 20.0 and c29= 20.0 and c30= 20.0" ; -execute stmt1 ; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and concat(c20,substr(?,1+length(c20)))= ? and - c21= ? and c22= ? and c23= ? and c25= ? and - c26= ? and c27= ? and c28= ? and c29= ? and c30= ?" ; -execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ; -found -true -delete from t9 ; -test_sequence --- insert into date/time columns -- -Warnings: -Warning 1265 Data truncated for column 'c17' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c17' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c17' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c17' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c17' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c17' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c17' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c17' at row 1 -Warnings: -Warning 1264 Data truncated; out of range for column 'c13' at row 1 -Warning 1265 Data truncated for column 'c14' at row 1 -Warning 1265 Data truncated for column 'c15' at row 1 -Warning 1264 Data truncated; out of range for column 'c16' at row 1 -Warning 1264 Data truncated; out of range for column 'c17' at row 1 -Warnings: -Warning 1264 Data truncated; out of range for column 'c13' at row 1 -Warning 1265 Data truncated for column 'c14' at row 1 -Warning 1265 Data truncated for column 'c15' at row 1 -Warning 1264 Data truncated; out of range for column 'c16' at row 1 -Warning 1264 Data truncated; out of range for column 'c17' at row 1 -Warnings: -Warning 1264 Data truncated; out of range for column 'c13' at row 1 -Warning 1265 Data truncated for column 'c14' at row 1 -Warning 1265 Data truncated for column 'c15' at row 1 -Warning 1264 Data truncated; out of range for column 'c16' at row 1 -Warning 1264 Data truncated; out of range for column 'c17' at row 1 -Warnings: -Warning 1264 Data truncated; out of range for column 'c13' at row 1 -Warning 1265 Data truncated for column 'c14' at row 1 -Warning 1265 Data truncated for column 'c15' at row 1 -Warning 1264 Data truncated; out of range for column 'c16' at row 1 -Warning 1264 Data truncated; out of range for column 'c17' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c15' at row 1 -Warning 1264 Data truncated; out of range for column 'c16' at row 1 -Warning 1264 Data truncated; out of range for column 'c17' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c15' at row 1 -Warning 1264 Data truncated; out of range for column 'c16' at row 1 -Warning 1264 Data truncated; out of range for column 'c17' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c15' at row 1 -Warning 1264 Data truncated; out of range for column 'c16' at row 1 -Warning 1264 Data truncated; out of range for column 'c17' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c15' at row 1 -Warning 1264 Data truncated; out of range for column 'c16' at row 1 -Warning 1264 Data truncated; out of range for column 'c17' at row 1 -select c1, c13, c14, c15, c16, c17 from t9 order by c1 ; -c1 c13 c14 c15 c16 c17 -20 1991-01-01 1991-01-01 01:01:01 1991-01-01 01:01:01 01:01:01 1991 -21 1991-01-01 1991-01-01 01:01:01 1991-01-01 01:01:01 01:01:01 1991 -22 1991-01-01 1991-01-01 01:01:01 1991-01-01 01:01:01 01:01:01 1991 -23 1991-01-01 1991-01-01 01:01:01 1991-01-01 01:01:01 01:01:01 1991 -30 1991-01-01 1991-01-01 01:01:01 1991-01-01 01:01:01 01:01:01 1991 -31 1991-01-01 1991-01-01 01:01:01 1991-01-01 01:01:01 01:01:01 1991 -32 1991-01-01 1991-01-01 01:01:01 1991-01-01 01:01:01 01:01:01 1991 -33 1991-01-01 1991-01-01 01:01:01 1991-01-01 01:01:01 01:01:01 1991 -40 0000-00-00 0000-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 -41 0000-00-00 0000-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 -42 0000-00-00 0000-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 -43 0000-00-00 0000-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 -50 2001-00-00 2001-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 -51 0010-00-00 0010-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 -52 2001-00-00 2001-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 -53 2001-00-00 2001-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 -60 NULL NULL 1991-01-01 01:01:01 NULL NULL -61 NULL NULL 1991-01-01 01:01:01 NULL NULL -62 NULL NULL 1991-01-01 01:01:01 NULL NULL -63 NULL NULL 1991-01-01 01:01:01 NULL NULL -71 NULL NULL 1991-01-01 01:01:01 NULL NULL -73 NULL NULL 1991-01-01 01:01:01 NULL NULL -81 NULL NULL 1991-01-01 01:01:01 NULL NULL -83 NULL NULL 1991-01-01 01:01:01 NULL NULL -test_sequence --- select .. where date/time column = .. -- -set @arg00= '1991-01-01 01:01:01' ; -select 'true' as found from t9 -where c1= 20 and c13= '1991-01-01 01:01:01' and c14= '1991-01-01 01:01:01' and -c15= '1991-01-01 01:01:01' and c16= '1991-01-01 01:01:01' and -c17= '1991-01-01 01:01:01' ; -found -true -select 'true' as found from t9 -where c1= 20 and c13= @arg00 and c14= @arg00 and c15= @arg00 and c16= @arg00 -and c17= @arg00 ; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and c13= '1991-01-01 01:01:01' and c14= '1991-01-01 01:01:01' and - c15= '1991-01-01 01:01:01' and c16= '1991-01-01 01:01:01' and - c17= '1991-01-01 01:01:01'" ; -execute stmt1 ; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and c13= ? and c14= ? and c15= ? and c16= ? and c17= ?" ; -execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00 ; -found -true -set @arg00= CAST('1991-01-01 01:01:01' as datetime) ; -select 'true' as found from t9 -where c1= 20 and c13= CAST('1991-01-01 01:01:01' as datetime) and -c14= CAST('1991-01-01 01:01:01' as datetime) and -c15= CAST('1991-01-01 01:01:01' as datetime) and -c16= CAST('1991-01-01 01:01:01' as datetime) and -c17= CAST('1991-01-01 01:01:01' as datetime) ; -found -true -select 'true' as found from t9 -where c1= 20 and c13= @arg00 and c14= @arg00 and c15= @arg00 and c16= @arg00 -and c17= @arg00 ; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and c13= CAST('1991-01-01 01:01:01' as datetime) and - c14= CAST('1991-01-01 01:01:01' as datetime) and - c15= CAST('1991-01-01 01:01:01' as datetime) and - c16= CAST('1991-01-01 01:01:01' as datetime) and - c17= CAST('1991-01-01 01:01:01' as datetime)" ; -execute stmt1 ; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and c13= ? and c14= ? and c15= ? and c16= ? and c17= ?" ; -execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00 ; -found -true -set @arg00= 1991 ; -select 'true' as found from t9 -where c1= 20 and c17= 1991 ; -found -true -select 'true' as found from t9 -where c1= 20 and c17= @arg00 ; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and c17= 1991" ; -execute stmt1 ; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and c17= ?" ; -execute stmt1 using @arg00 ; -found -true -set @arg00= 1.991e+3 ; -select 'true' as found from t9 -where c1= 20 and abs(c17 - 1.991e+3) < 0.01 ; -found -true -select 'true' as found from t9 -where c1= 20 and abs(c17 - @arg00) < 0.01 ; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and abs(c17 - 1.991e+3) < 0.01" ; -execute stmt1 ; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and abs(c17 - ?) < 0.01" ; -execute stmt1 using @arg00 ; -found -true -drop table t1, t9; diff --git a/mysql-test/r/ps_5merge.result.es b/mysql-test/r/ps_5merge.result.es deleted file mode 100644 index 4f05be1b4d9..00000000000 --- a/mysql-test/r/ps_5merge.result.es +++ /dev/null @@ -1,6064 +0,0 @@ -use test; -drop table if exists t1, t1_1, t1_2, -t9, t9_1, t9_2; -drop table if exists t1, t9 ; -create table t1 -( -a int, b varchar(30), -primary key(a) -) engine = 'MYISAM' ; -create table t9 -( -c1 tinyint, c2 smallint, c3 mediumint, c4 int, -c5 integer, c6 bigint, c7 float, c8 double, -c9 double precision, c10 real, c11 decimal(7, 4), c12 numeric(8, 4), -c13 date, c14 datetime, c15 timestamp(14), c16 time, -c17 year, c18 bit, c19 bool, c20 char, -c21 char(10), c22 varchar(30), c23 tinyblob, c24 tinytext, -c25 blob, c26 text, c27 mediumblob, c28 mediumtext, -c29 longblob, c30 longtext, c31 enum('one', 'two', 'three'), -c32 set('monday', 'tuesday', 'wednesday'), -primary key(c1) -) engine = 'MYISAM' ; -rename table t1 to t1_1, t9 to t9_1 ; -drop table if exists t1, t9 ; -create table t1 -( -a int, b varchar(30), -primary key(a) -) engine = 'MYISAM' ; -create table t9 -( -c1 tinyint, c2 smallint, c3 mediumint, c4 int, -c5 integer, c6 bigint, c7 float, c8 double, -c9 double precision, c10 real, c11 decimal(7, 4), c12 numeric(8, 4), -c13 date, c14 datetime, c15 timestamp(14), c16 time, -c17 year, c18 bit, c19 bool, c20 char, -c21 char(10), c22 varchar(30), c23 tinyblob, c24 tinytext, -c25 blob, c26 text, c27 mediumblob, c28 mediumtext, -c29 longblob, c30 longtext, c31 enum('one', 'two', 'three'), -c32 set('monday', 'tuesday', 'wednesday'), -primary key(c1) -) engine = 'MYISAM' ; -rename table t1 to t1_2, t9 to t9_2 ; -create table t1 -( -a int, b varchar(30), -primary key(a) -) ENGINE = MERGE UNION=(t1_1,t1_2) -INSERT_METHOD=FIRST; -create table t9 -( -c1 tinyint, c2 smallint, c3 mediumint, c4 int, -c5 integer, c6 bigint, c7 float, c8 double, -c9 double precision, c10 real, c11 decimal(7, 4), c12 numeric(8, 4), -c13 date, c14 datetime, c15 timestamp(14), c16 time, -c17 year, c18 bit, c19 bool, c20 char, -c21 char(10), c22 varchar(30), c23 tinyblob, c24 tinytext, -c25 blob, c26 text, c27 mediumblob, c28 mediumtext, -c29 longblob, c30 longtext, c31 enum('one', 'two', 'three'), -c32 set('monday', 'tuesday', 'wednesday'), -primary key(c1) -) ENGINE = MERGE UNION=(t9_1,t9_2) -INSERT_METHOD=FIRST; -delete from t1 ; -insert into t1 values (1,'one'); -insert into t1 values (2,'two'); -insert into t1 values (3,'three'); -insert into t1 values (4,'four'); -commit ; -delete from t9 ; -insert into t9 -set c1= 1, c2= 1, c3= 1, c4= 1, c5= 1, c6= 1, c7= 1, c8= 1, c9= 1, -c10= 1, c11= 1, c12 = 1, -c13= '2004-02-29', c14= '2004-02-29 11:11:11', c15= '2004-02-29 11:11:11', -c16= '11:11:11', c17= '2004', -c18= 1, c19=true, c20= 'a', c21= '123456789a', -c22= '123456789a123456789b123456789c', c23= 'tinyblob', c24= 'tinytext', -c25= 'blob', c26= 'text', c27= 'mediumblob', c28= 'mediumtext', -c29= 'longblob', c30= 'longtext', c31='one', c32= 'monday'; -insert into t9 -set c1= 9, c2= 9, c3= 9, c4= 9, c5= 9, c6= 9, c7= 9, c8= 9, c9= 9, -c10= 9, c11= 9, c12 = 9, -c13= '2004-02-29', c14= '2004-02-29 11:11:11', c15= '2004-02-29 11:11:11', -c16= '11:11:11', c17= '2004', -c18= 1, c19=false, c20= 'a', c21= '123456789a', -c22= '123456789a123456789b123456789c', c23= 'tinyblob', c24= 'tinytext', -c25= 'blob', c26= 'text', c27= 'mediumblob', c28= 'mediumtext', -c29= 'longblob', c30= 'longtext', c31='two', c32= 'tuesday'; -commit ; -test_sequence ------- simple select tests ------ -prepare stmt1 from ' select * from t9 order by c1 ' ; -execute stmt1; -Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr -def test t9 t9 c1 c1 1 4 1 N 49155 0 63 -def test t9 t9 c2 c2 2 6 1 Y 32768 0 63 -def test t9 t9 c3 c3 9 9 1 Y 32768 0 63 -def test t9 t9 c4 c4 3 11 1 Y 32768 0 63 -def test t9 t9 c5 c5 3 11 1 Y 32768 0 63 -def test t9 t9 c6 c6 8 20 1 Y 32768 0 63 -def test t9 t9 c7 c7 4 12 1 Y 32768 31 63 -def test t9 t9 c8 c8 5 22 1 Y 32768 31 63 -def test t9 t9 c9 c9 5 22 1 Y 32768 31 63 -def test t9 t9 c10 c10 5 22 1 Y 32768 31 63 -def test t9 t9 c11 c11 0 9 6 Y 32768 4 63 -def test t9 t9 c12 c12 0 10 6 Y 32768 4 63 -def test t9 t9 c13 c13 10 10 10 Y 128 0 63 -def test t9 t9 c14 c14 12 19 19 Y 128 0 63 -def test t9 t9 c15 c15 7 19 19 N 1249 0 63 -def test t9 t9 c16 c16 11 8 8 Y 128 0 63 -def test t9 t9 c17 c17 13 4 4 Y 32864 0 63 -def test t9 t9 c18 c18 1 1 1 Y 32768 0 63 -def test t9 t9 c19 c19 1 1 1 Y 32768 0 63 -def test t9 t9 c20 c20 254 1 1 Y 0 0 8 -def test t9 t9 c21 c21 253 10 10 Y 0 0 8 -def test t9 t9 c22 c22 253 30 30 Y 0 0 8 -def test t9 t9 c23 c23 252 255 8 Y 144 0 63 -def test t9 t9 c24 c24 252 255 8 Y 16 0 8 -def test t9 t9 c25 c25 252 65535 4 Y 144 0 63 -def test t9 t9 c26 c26 252 65535 4 Y 16 0 8 -def test t9 t9 c27 c27 252 16777215 10 Y 144 0 63 -def test t9 t9 c28 c28 252 16777215 10 Y 16 0 8 -def test t9 t9 c29 c29 252 16777215 8 Y 144 0 63 -def test t9 t9 c30 c30 252 16777215 8 Y 16 0 8 -def test t9 t9 c31 c31 254 5 3 Y 256 0 8 -def test t9 t9 c32 c32 254 24 7 Y 2048 0 8 -c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 c13 c14 c15 c16 c17 c18 c19 c20 c21 c22 c23 c24 c25 c26 c27 c28 c29 c30 c31 c32 -1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday -9 9 9 9 9 9 9 9 9 9 9.0000 9.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 0 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext two tuesday -set @arg00='SELECT' ; -prepare stmt1 from ' ? a from t1 where a=1 '; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '? a from t1 where a=1' at line 1 -set @arg00=1 ; -select @arg00, b from t1 where a=1 ; -@arg00 b -1 one -prepare stmt1 from ' select ?, b from t1 where a=1 ' ; -execute stmt1 using @arg00 ; -? b -1 one -set @arg00='lion' ; -select @arg00, b from t1 where a=1 ; -@arg00 b -lion one -prepare stmt1 from ' select ?, b from t1 where a=1 ' ; -execute stmt1 using @arg00 ; -? b -lion one -set @arg00=NULL ; -select @arg00, b from t1 where a=1 ; -@arg00 b -NULL one -prepare stmt1 from ' select ?, b from t1 where a=1 ' ; -execute stmt1 using @arg00 ; -? b -NULL one -set @arg00=1 ; -select b, a - @arg00 from t1 where a=1 ; -b a - @arg00 -one 0 -prepare stmt1 from ' select b, a - ? from t1 where a=1 ' ; -execute stmt1 using @arg00 ; -b a - ? -one 0 -set @arg00=null ; -select @arg00 as my_col ; -my_col -NULL -prepare stmt1 from ' select ? as my_col'; -execute stmt1 using @arg00 ; -my_col -NULL -select @arg00 + 1 as my_col ; -my_col -NULL -prepare stmt1 from ' select ? + 1 as my_col'; -execute stmt1 using @arg00 ; -my_col -NULL -select 1 + @arg00 as my_col ; -my_col -NULL -prepare stmt1 from ' select 1 + ? as my_col'; -execute stmt1 using @arg00 ; -my_col -NULL -set @arg00='MySQL' ; -select substr(@arg00,1,2) from t1 where a=1 ; -substr(@arg00,1,2) -My -prepare stmt1 from ' select substr(?,1,2) from t1 where a=1 ' ; -execute stmt1 using @arg00 ; -substr(?,1,2) -My -set @arg00=3 ; -select substr('MySQL',@arg00,5) from t1 where a=1 ; -substr('MySQL',@arg00,5) -SQL -prepare stmt1 from ' select substr(''MySQL'',?,5) from t1 where a=1 ' ; -execute stmt1 using @arg00 ; -substr('MySQL',?,5) -SQL -select substr('MySQL',1,@arg00) from t1 where a=1 ; -substr('MySQL',1,@arg00) -MyS -prepare stmt1 from ' select substr(''MySQL'',1,?) from t1 where a=1 ' ; -execute stmt1 using @arg00 ; -substr('MySQL',1,?) -MyS -set @arg00='MySQL' ; -select a , concat(@arg00,b) from t1 order by a; -a concat(@arg00,b) -1 MySQLone -2 MySQLtwo -3 MySQLthree -4 MySQLfour -prepare stmt1 from ' select a , concat(?,b) from t1 order by a ' ; -execute stmt1 using @arg00; -a concat(?,b) -1 MySQLone -2 MySQLtwo -3 MySQLthree -4 MySQLfour -select a , concat(b,@arg00) from t1 order by a ; -a concat(b,@arg00) -1 oneMySQL -2 twoMySQL -3 threeMySQL -4 fourMySQL -prepare stmt1 from ' select a , concat(b,?) from t1 order by a ' ; -execute stmt1 using @arg00; -a concat(b,?) -1 oneMySQL -2 twoMySQL -3 threeMySQL -4 fourMySQL -set @arg00='MySQL' ; -select group_concat(@arg00,b order by a) from t1 -group by 'a' ; -group_concat(@arg00,b order by a) -MySQLone,MySQLtwo,MySQLthree,MySQLfour -prepare stmt1 from ' select group_concat(?,b order by a) from t1 -group by ''a'' ' ; -execute stmt1 using @arg00; -group_concat(?,b order by a) -MySQLone,MySQLtwo,MySQLthree,MySQLfour -select group_concat(b,@arg00 order by a) from t1 -group by 'a' ; -group_concat(b,@arg00 order by a) -oneMySQL,twoMySQL,threeMySQL,fourMySQL -prepare stmt1 from ' select group_concat(b,? order by a) from t1 -group by ''a'' ' ; -execute stmt1 using @arg00; -group_concat(b,? order by a) -oneMySQL,twoMySQL,threeMySQL,fourMySQL -set @arg00='first' ; -set @arg01='second' ; -set @arg02=NULL; -select @arg00, @arg01 from t1 where a=1 ; -@arg00 @arg01 -first second -prepare stmt1 from ' select ?, ? from t1 where a=1 ' ; -execute stmt1 using @arg00, @arg01 ; -? ? -first second -execute stmt1 using @arg02, @arg01 ; -? ? -NULL second -execute stmt1 using @arg00, @arg02 ; -? ? -first NULL -execute stmt1 using @arg02, @arg02 ; -? ? -NULL NULL -drop table if exists t5 ; -create table t5 (id1 int(11) not null default '0', -value2 varchar(100), value1 varchar(100)) ; -insert into t5 values (1,'hh','hh'),(2,'hh','hh'), -(1,'ii','ii'),(2,'ii','ii') ; -prepare stmt1 from ' select id1,value1 from t5 where id1=? or value1=? order by id1,value1 ' ; -set @arg00=1 ; -set @arg01='hh' ; -execute stmt1 using @arg00, @arg01 ; -id1 value1 -1 hh -1 ii -2 hh -drop table t5 ; -drop table if exists t5 ; -create table t5(session_id char(9) not null) ; -insert into t5 values ('abc') ; -prepare stmt1 from ' select * from t5 -where ?=''1111'' and session_id = ''abc'' ' ; -set @arg00='abc' ; -execute stmt1 using @arg00 ; -session_id -set @arg00='1111' ; -execute stmt1 using @arg00 ; -session_id -abc -set @arg00='abc' ; -execute stmt1 using @arg00 ; -session_id -drop table t5 ; -set @arg00='FROM' ; -select a @arg00 t1 where a=1 ; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@arg00 t1 where a=1' at line 1 -prepare stmt1 from ' select a ? t1 where a=1 ' ; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '? t1 where a=1' at line 1 -set @arg00='t1' ; -select a from @arg00 where a=1 ; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@arg00 where a=1' at line 1 -prepare stmt1 from ' select a from ? where a=1 ' ; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '? where a=1' at line 1 -set @arg00='WHERE' ; -select a from t1 @arg00 a=1 ; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@arg00 a=1' at line 1 -prepare stmt1 from ' select a from t1 ? a=1 ' ; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '? a=1' at line 1 -set @arg00=1 ; -select a FROM t1 where a=@arg00 ; -a -1 -prepare stmt1 from ' select a FROM t1 where a=? ' ; -execute stmt1 using @arg00 ; -a -1 -set @arg00=1000 ; -execute stmt1 using @arg00 ; -a -set @arg00=NULL ; -select a FROM t1 where a=@arg00 ; -a -prepare stmt1 from ' select a FROM t1 where a=? ' ; -execute stmt1 using @arg00 ; -a -set @arg00=4 ; -select a FROM t1 where a=sqrt(@arg00) ; -a -2 -prepare stmt1 from ' select a FROM t1 where a=sqrt(?) ' ; -execute stmt1 using @arg00 ; -a -2 -set @arg00=NULL ; -select a FROM t1 where a=sqrt(@arg00) ; -a -prepare stmt1 from ' select a FROM t1 where a=sqrt(?) ' ; -execute stmt1 using @arg00 ; -a -set @arg00=2 ; -set @arg01=3 ; -select a FROM t1 where a in (@arg00,@arg01) order by a; -a -2 -3 -prepare stmt1 from ' select a FROM t1 where a in (?,?) order by a '; -execute stmt1 using @arg00, @arg01; -a -2 -3 -set @arg00= 'one' ; -set @arg01= 'two' ; -set @arg02= 'five' ; -prepare stmt1 from ' select b FROM t1 where b in (?,?,?) order by b ' ; -execute stmt1 using @arg00, @arg01, @arg02 ; -b -one -two -prepare stmt1 from ' select b FROM t1 where b like ? '; -set @arg00='two' ; -execute stmt1 using @arg00 ; -b -two -set @arg00='tw%' ; -execute stmt1 using @arg00 ; -b -two -set @arg00='%wo' ; -execute stmt1 using @arg00 ; -b -two -set @arg00=null ; -insert into t9 set c1= 0, c5 = NULL ; -select c5 from t9 where c5 > NULL ; -c5 -prepare stmt1 from ' select c5 from t9 where c5 > ? '; -execute stmt1 using @arg00 ; -c5 -select c5 from t9 where c5 < NULL ; -c5 -prepare stmt1 from ' select c5 from t9 where c5 < ? '; -execute stmt1 using @arg00 ; -c5 -select c5 from t9 where c5 = NULL ; -c5 -prepare stmt1 from ' select c5 from t9 where c5 = ? '; -execute stmt1 using @arg00 ; -c5 -select c5 from t9 where c5 <=> NULL ; -c5 -NULL -prepare stmt1 from ' select c5 from t9 where c5 <=> ? '; -execute stmt1 using @arg00 ; -c5 -NULL -delete from t9 where c1= 0 ; -set @arg00='>' ; -select a FROM t1 where a @arg00 1 ; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@arg00 1' at line 1 -prepare stmt1 from ' select a FROM t1 where a ? 1 ' ; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '? 1' at line 1 -set @arg00=1 ; -select a,b FROM t1 where a is not NULL -AND b is not NULL group by a - @arg00 ; -a b -1 one -2 two -3 three -4 four -prepare stmt1 from ' select a,b FROM t1 where a is not NULL -AND b is not NULL group by a - ? ' ; -execute stmt1 using @arg00 ; -a b -1 one -2 two -3 three -4 four -set @arg00='two' ; -select a,b FROM t1 where a is not NULL -AND b is not NULL having b <> @arg00 order by a ; -a b -1 one -3 three -4 four -prepare stmt1 from ' select a,b FROM t1 where a is not NULL -AND b is not NULL having b <> ? order by a ' ; -execute stmt1 using @arg00 ; -a b -1 one -3 three -4 four -set @arg00=1 ; -select a,b FROM t1 where a is not NULL -AND b is not NULL order by a - @arg00 ; -a b -1 one -2 two -3 three -4 four -prepare stmt1 from ' select a,b FROM t1 where a is not NULL -AND b is not NULL order by a - ? ' ; -execute stmt1 using @arg00 ; -a b -1 one -2 two -3 three -4 four -set @arg00=2 ; -select a,b from t1 order by 2 ; -a b -4 four -1 one -3 three -2 two -prepare stmt1 from ' select a,b from t1 -order by ? '; -execute stmt1 using @arg00; -a b -4 four -1 one -3 three -2 two -set @arg00=1 ; -execute stmt1 using @arg00; -a b -1 one -2 two -3 three -4 four -set @arg00=0 ; -execute stmt1 using @arg00; -ERROR 42S22: Unknown column '?' in 'order clause' -set @arg00=1; -prepare stmt1 from ' select a,b from t1 order by a -limit 1 '; -execute stmt1 ; -a b -1 one -prepare stmt1 from ' select a,b from t1 -limit ? '; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '?' at line 2 -set @arg00='b' ; -set @arg01=0 ; -set @arg02=2 ; -set @arg03=2 ; -select sum(a), @arg00 from t1 where a > @arg01 -and b is not null group by substr(b,@arg02) -having sum(a) <> @arg03 ; -sum(a) @arg00 -3 b -1 b -4 b -prepare stmt1 from ' select sum(a), ? from t1 where a > ? -and b is not null group by substr(b,?) -having sum(a) <> ? '; -execute stmt1 using @arg00, @arg01, @arg02, @arg03; -sum(a) ? -3 b -1 b -4 b -test_sequence ------- join tests ------ -select first.a as a1, second.a as a2 -from t1 first, t1 second -where first.a = second.a order by a1 ; -a1 a2 -1 1 -2 2 -3 3 -4 4 -prepare stmt1 from ' select first.a as a1, second.a as a2 - from t1 first, t1 second - where first.a = second.a order by a1 '; -execute stmt1 ; -a1 a2 -1 1 -2 2 -3 3 -4 4 -set @arg00='ABC'; -set @arg01='two'; -set @arg02='one'; -select first.a, @arg00, second.a FROM t1 first, t1 second -where @arg01 = first.b or first.a = second.a or second.b = @arg02 -order by second.a, first.a; -a @arg00 a -1 ABC 1 -2 ABC 1 -3 ABC 1 -4 ABC 1 -2 ABC 2 -2 ABC 3 -3 ABC 3 -2 ABC 4 -4 ABC 4 -prepare stmt1 from ' select first.a, ?, second.a FROM t1 first, t1 second - where ? = first.b or first.a = second.a or second.b = ? - order by second.a, first.a'; -execute stmt1 using @arg00, @arg01, @arg02; -a ? a -1 ABC 1 -2 ABC 1 -3 ABC 1 -4 ABC 1 -2 ABC 2 -2 ABC 3 -3 ABC 3 -2 ABC 4 -4 ABC 4 -drop table if exists t2 ; -create table t2 as select * from t1 ; -set @query1= 'SELECT * FROM t2 join t1 on (t1.a=t2.a) order by t2.a ' ; -set @query2= 'SELECT * FROM t2 natural join t1 order by t2.a ' ; -set @query3= 'SELECT * FROM t2 join t1 using(a) order by t2.a ' ; -set @query4= 'SELECT * FROM t2 left join t1 on(t1.a=t2.a) order by t2.a ' ; -set @query5= 'SELECT * FROM t2 natural left join t1 order by t2.a ' ; -set @query6= 'SELECT * FROM t2 left join t1 using(a) order by t2.a ' ; -set @query7= 'SELECT * FROM t2 right join t1 on(t1.a=t2.a) order by t2.a ' ; -set @query8= 'SELECT * FROM t2 natural right join t1 order by t2.a ' ; -set @query9= 'SELECT * FROM t2 right join t1 using(a) order by t2.a ' ; -the join statement is: -SELECT * FROM t2 right join t1 using(a) order by t2.a -prepare stmt1 from @query9 ; -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -the join statement is: -SELECT * FROM t2 natural right join t1 order by t2.a -prepare stmt1 from @query8 ; -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -the join statement is: -SELECT * FROM t2 right join t1 on(t1.a=t2.a) order by t2.a -prepare stmt1 from @query7 ; -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -the join statement is: -SELECT * FROM t2 left join t1 using(a) order by t2.a -prepare stmt1 from @query6 ; -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -the join statement is: -SELECT * FROM t2 natural left join t1 order by t2.a -prepare stmt1 from @query5 ; -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -the join statement is: -SELECT * FROM t2 left join t1 on(t1.a=t2.a) order by t2.a -prepare stmt1 from @query4 ; -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -the join statement is: -SELECT * FROM t2 join t1 using(a) order by t2.a -prepare stmt1 from @query3 ; -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -the join statement is: -SELECT * FROM t2 natural join t1 order by t2.a -prepare stmt1 from @query2 ; -execute stmt1 ; -a b -1 one -2 two -3 three -4 four -execute stmt1 ; -a b -1 one -2 two -3 three -4 four -execute stmt1 ; -a b -1 one -2 two -3 three -4 four -the join statement is: -SELECT * FROM t2 join t1 on (t1.a=t2.a) order by t2.a -prepare stmt1 from @query1 ; -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -drop table t2 ; -test_sequence ------- subquery tests ------ -prepare stmt1 from ' select a, b FROM t1 outer_table where - a = (select a from t1 where b = ''two'') '; -execute stmt1 ; -a b -2 two -set @arg00='two' ; -select a, b FROM t1 outer_table where -a = (select a from t1 where b = 'two' ) and b=@arg00 ; -a b -2 two -prepare stmt1 from ' select a, b FROM t1 outer_table where - a = (select a from t1 where b = ''two'') and b=? '; -execute stmt1 using @arg00; -a b -2 two -set @arg00='two' ; -select a, b FROM t1 outer_table where -a = (select a from t1 where b = @arg00 ) and b='two' ; -a b -2 two -prepare stmt1 from ' select a, b FROM t1 outer_table where - a = (select a from t1 where b = ? ) and b=''two'' ' ; -execute stmt1 using @arg00; -a b -2 two -set @arg00=3 ; -set @arg01='three' ; -select a,b FROM t1 where (a,b) in (select 3, 'three'); -a b -3 three -select a FROM t1 where (a,b) in (select @arg00,@arg01); -a -3 -prepare stmt1 from ' select a FROM t1 where (a,b) in (select ?, ?) '; -execute stmt1 using @arg00, @arg01; -a -3 -set @arg00=1 ; -set @arg01='two' ; -set @arg02=2 ; -set @arg03='two' ; -select a, @arg00, b FROM t1 outer_table where -b=@arg01 and a = (select @arg02 from t1 where b = @arg03 ) ; -a @arg00 b -2 1 two -prepare stmt1 from ' select a, ?, b FROM t1 outer_table where - b=? and a = (select ? from t1 where b = ? ) ' ; -execute stmt1 using @arg00, @arg01, @arg02, @arg03 ; -a ? b -2 1 two -prepare stmt1 from ' select a, b FROM t1 outer_table where - a = (select a from t1 where b = outer_table.b ) order by a '; -execute stmt1 ; -a b -1 one -2 two -3 three -4 four -prepare stmt1 from ' SELECT a as ccc from t1 where a+1= - (SELECT 1+ccc from t1 where ccc+1=a+1 and a=1) '; -execute stmt1 ; -ccc -1 -deallocate prepare stmt1 ; -prepare stmt1 from ' SELECT a as ccc from t1 where a+1= - (SELECT 1+ccc from t1 where ccc+1=a+1 and a=1) '; -execute stmt1 ; -ccc -1 -deallocate prepare stmt1 ; -prepare stmt1 from ' SELECT a as ccc from t1 where a+1= - (SELECT 1+ccc from t1 where ccc+1=a+1 and a=1) '; -execute stmt1 ; -ccc -1 -deallocate prepare stmt1 ; -set @arg00='two' ; -select a, b FROM t1 outer_table where -a = (select a from t1 where b = outer_table.b ) and b=@arg00 ; -a b -2 two -prepare stmt1 from ' select a, b FROM t1 outer_table where - a = (select a from t1 where b = outer_table.b) and b=? '; -execute stmt1 using @arg00; -a b -2 two -set @arg00=2 ; -select a, b FROM t1 outer_table where -a = (select a from t1 where a = @arg00 and b = outer_table.b) and b='two' ; -a b -2 two -prepare stmt1 from ' select a, b FROM t1 outer_table where - a = (select a from t1 where a = ? and b = outer_table.b) and b=''two'' ' ; -execute stmt1 using @arg00; -a b -2 two -set @arg00=2 ; -select a, b FROM t1 outer_table where -a = (select a from t1 where outer_table.a = @arg00 and a=2) and b='two' ; -a b -2 two -prepare stmt1 from ' select a, b FROM t1 outer_table where - a = (select a from t1 where outer_table.a = ? and a=2) and b=''two'' ' ; -execute stmt1 using @arg00; -a b -2 two -set @arg00=1 ; -set @arg01='two' ; -set @arg02=2 ; -set @arg03='two' ; -select a, @arg00, b FROM t1 outer_table where -b=@arg01 and a = (select @arg02 from t1 where outer_table.b = @arg03 -and outer_table.a=a ) ; -a @arg00 b -2 1 two -prepare stmt1 from ' select a, ?, b FROM t1 outer_table where - b=? and a = (select ? from t1 where outer_table.b = ? - and outer_table.a=a ) ' ; -execute stmt1 using @arg00, @arg01, @arg02, @arg03 ; -a ? b -2 1 two -set @arg00=1 ; -set @arg01=0 ; -select a, @arg00 -from ( select a - @arg00 as a from t1 where a=@arg00 ) as t2 -where a=@arg01; -a @arg00 -0 1 -prepare stmt1 from ' select a, ? - from ( select a - ? as a from t1 where a=? ) as t2 - where a=? '; -execute stmt1 using @arg00, @arg00, @arg00, @arg01 ; -a ? -0 1 -drop table if exists t2 ; -create table t2 as select * from t1; -prepare stmt1 from ' select a in (select a from t2) from t1 ' ; -execute stmt1 ; -a in (select a from t2) -1 -1 -1 -1 -drop table if exists t5, t6, t7 ; -create table t5 (a int , b int) ; -create table t6 like t5 ; -create table t7 like t5 ; -insert into t5 values (0, 100), (1, 2), (1, 3), (2, 2), (2, 7), -(2, -1), (3, 10) ; -insert into t6 values (0, 0), (1, 1), (2, 1), (3, 1), (4, 1) ; -insert into t7 values (3, 3), (2, 2), (1, 1) ; -prepare stmt1 from ' select a, (select count(distinct t5.b) as sum from t5, t6 - where t5.a=t6.a and t6.b > 0 and t5.a <= t7.b - group by t5.a order by sum limit 1) from t7 ' ; -execute stmt1 ; -a (select count(distinct t5.b) as sum from t5, t6 - where t5.a=t6.a and t6.b > 0 and t5.a <= t7.b - group by t5.a order by sum limit 1) -3 1 -2 2 -1 2 -execute stmt1 ; -a (select count(distinct t5.b) as sum from t5, t6 - where t5.a=t6.a and t6.b > 0 and t5.a <= t7.b - group by t5.a order by sum limit 1) -3 1 -2 2 -1 2 -execute stmt1 ; -a (select count(distinct t5.b) as sum from t5, t6 - where t5.a=t6.a and t6.b > 0 and t5.a <= t7.b - group by t5.a order by sum limit 1) -3 1 -2 2 -1 2 -drop table t5, t6, t7 ; -drop table if exists t2 ; -create table t2 as select * from t9; -set @stmt= ' SELECT - (SELECT SUM(c1 + c12 + 0.0) FROM t2 - where (t9.c2 - 0e-3) = t2.c2 - GROUP BY t9.c15 LIMIT 1) as scalar_s, - exists (select 1.0e+0 from t2 - where t2.c3 * 9.0000000000 = t9.c4) as exists_s, - c5 * 4 in (select c6 + 0.3e+1 from t2) as in_s, - (c7 - 4, c8 - 4) in (select c9 + 4.0, c10 + 40e-1 from t2) as in_row_s -FROM t9, -(select c25 x, c32 y from t2) tt WHERE x = c25 ' ; -prepare stmt1 from @stmt ; -execute stmt1 ; -execute stmt1 ; -set @stmt= concat('explain ',@stmt); -prepare stmt1 from @stmt ; -execute stmt1 ; -execute stmt1 ; -set @stmt= ' SELECT - (SELECT SUM(c1+c12+?) FROM t2 where (t9.c2-?)=t2.c2 - GROUP BY t9.c15 LIMIT 1) as scalar_s, - exists (select ? from t2 - where t2.c3*?=t9.c4) as exists_s, - c5*? in (select c6+? from t2) as in_s, - (c7-?, c8-?) in (select c9+?, c10+? from t2) as in_row_s -FROM t9, -(select c25 x, c32 y from t2) tt WHERE x =c25 ' ; -set @arg00= 0.0 ; -set @arg01= 0e-3 ; -set @arg02= 1.0e+0 ; -set @arg03= 9.0000000000 ; -set @arg04= 4 ; -set @arg05= 0.3e+1 ; -set @arg06= 4 ; -set @arg07= 4 ; -set @arg08= 4.0 ; -set @arg09= 40e-1 ; -prepare stmt1 from @stmt ; -execute stmt1 using @arg00, @arg01, @arg02, @arg03, @arg04, @arg05, @arg06, -@arg07, @arg08, @arg09 ; -execute stmt1 using @arg00, @arg01, @arg02, @arg03, @arg04, @arg05, @arg06, -@arg07, @arg08, @arg09 ; -set @stmt= concat('explain ',@stmt); -prepare stmt1 from @stmt ; -execute stmt1 using @arg00, @arg01, @arg02, @arg03, @arg04, @arg05, @arg06, -@arg07, @arg08, @arg09 ; -execute stmt1 using @arg00, @arg01, @arg02, @arg03, @arg04, @arg05, @arg06, -@arg07, @arg08, @arg09 ; -drop table t2 ; -select 1 < (select a from t1) ; -ERROR 21000: Subquery returns more than 1 row -prepare stmt1 from ' select 1 < (select a from t1) ' ; -execute stmt1 ; -ERROR 21000: Subquery returns more than 1 row -select 1 as my_col ; -my_col -1 -test_sequence ------- union tests ------ -prepare stmt1 from ' select a FROM t1 where a=1 - union distinct - select a FROM t1 where a=1 '; -execute stmt1 ; -a -1 -execute stmt1 ; -a -1 -prepare stmt1 from ' select a FROM t1 where a=1 - union all - select a FROM t1 where a=1 '; -execute stmt1 ; -a -1 -1 -prepare stmt1 from ' SELECT 1, 2 union SELECT 1 ' ; -ERROR 21000: The used SELECT statements have a different number of columns -prepare stmt1 from ' SELECT 1 union SELECT 1, 2 ' ; -ERROR 21000: The used SELECT statements have a different number of columns -prepare stmt1 from ' SELECT * from t1 union SELECT 1 ' ; -ERROR 21000: The used SELECT statements have a different number of columns -prepare stmt1 from ' SELECT 1 union SELECT * from t1 ' ; -ERROR 21000: The used SELECT statements have a different number of columns -set @arg00=1 ; -select @arg00 FROM t1 where a=1 -union distinct -select 1 FROM t1 where a=1; -@arg00 -1 -prepare stmt1 from ' select ? FROM t1 where a=1 - union distinct - select 1 FROM t1 where a=1 ' ; -execute stmt1 using @arg00; -? -1 -set @arg00=1 ; -select 1 FROM t1 where a=1 -union distinct -select @arg00 FROM t1 where a=1; -1 -1 -prepare stmt1 from ' select 1 FROM t1 where a=1 - union distinct - select ? FROM t1 where a=1 ' ; -execute stmt1 using @arg00; -1 -1 -set @arg00='a' ; -select @arg00 FROM t1 where a=1 -union distinct -select @arg00 FROM t1 where a=1; -@arg00 -a -prepare stmt1 from ' select ? FROM t1 where a=1 - union distinct - select ? FROM t1 where a=1 '; -execute stmt1 using @arg00, @arg00; -? -a -prepare stmt1 from ' select ? - union distinct - select ? '; -execute stmt1 using @arg00, @arg00; -? -a -set @arg00='a' ; -set @arg01=1 ; -set @arg02='a' ; -set @arg03=2 ; -select @arg00 FROM t1 where a=@arg01 -union distinct -select @arg02 FROM t1 where a=@arg03; -@arg00 -a -prepare stmt1 from ' select ? FROM t1 where a=? - union distinct - select ? FROM t1 where a=? ' ; -execute stmt1 using @arg00, @arg01, @arg02, @arg03; -? -a -set @arg00=1 ; -prepare stmt1 from ' select sum(a) + 200, ? from t1 -union distinct -select sum(a) + 200, 1 from t1 -group by b ' ; -execute stmt1 using @arg00; -sum(a) + 200 ? -210 1 -204 1 -201 1 -203 1 -202 1 -set @Oporto='Oporto' ; -set @Lisboa='Lisboa' ; -set @0=0 ; -set @1=1 ; -set @2=2 ; -set @3=3 ; -set @4=4 ; -select @Oporto,@Lisboa,@0,@1,@2,@3,@4 ; -@Oporto @Lisboa @0 @1 @2 @3 @4 -Oporto Lisboa 0 1 2 3 4 -select sum(a) + 200 as the_sum, @Oporto as the_town from t1 -group by b -union distinct -select sum(a) + 200, @Lisboa from t1 -group by b ; -the_sum the_town -204 Oporto -201 Oporto -203 Oporto -202 Oporto -204 Lisboa -201 Lisboa -203 Lisboa -202 Lisboa -prepare stmt1 from ' select sum(a) + 200 as the_sum, ? as the_town from t1 - group by b - union distinct - select sum(a) + 200, ? from t1 - group by b ' ; -execute stmt1 using @Oporto, @Lisboa; -the_sum the_town -204 Oporto -201 Oporto -203 Oporto -202 Oporto -204 Lisboa -201 Lisboa -203 Lisboa -202 Lisboa -select sum(a) + 200 as the_sum, @Oporto as the_town from t1 -where a > @1 -group by b -union distinct -select sum(a) + 200, @Lisboa from t1 -where a > @2 -group by b ; -the_sum the_town -204 Oporto -203 Oporto -202 Oporto -204 Lisboa -203 Lisboa -prepare stmt1 from ' select sum(a) + 200 as the_sum, ? as the_town from t1 - where a > ? - group by b - union distinct - select sum(a) + 200, ? from t1 - where a > ? - group by b ' ; -execute stmt1 using @Oporto, @1, @Lisboa, @2; -the_sum the_town -204 Oporto -203 Oporto -202 Oporto -204 Lisboa -203 Lisboa -select sum(a) + 200 as the_sum, @Oporto as the_town from t1 -where a > @1 -group by b -having avg(a) > @2 -union distinct -select sum(a) + 200, @Lisboa from t1 -where a > @2 -group by b -having avg(a) > @3; -the_sum the_town -204 Oporto -203 Oporto -204 Lisboa -prepare stmt1 from ' select sum(a) + 200 as the_sum, ? as the_town from t1 - where a > ? - group by b - having avg(a) > ? - union distinct - select sum(a) + 200, ? from t1 - where a > ? - group by b - having avg(a) > ? '; -execute stmt1 using @Oporto, @1, @2, @Lisboa, @2, @3; -the_sum the_town -204 Oporto -203 Oporto -204 Lisboa -test_sequence ------- explain select tests ------ -prepare stmt1 from ' explain select * from t9 ' ; -execute stmt1; -Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr -def id 8 3 1 N 32801 0 8 -def select_type 253 19 6 N 1 31 33 -def table 253 64 2 N 1 31 33 -def type 253 10 3 N 1 31 33 -def possible_keys 253 4096 0 Y 0 31 33 -def key 253 64 0 Y 0 31 33 -def key_len 8 3 0 Y 32800 0 8 -def ref 253 1024 0 Y 0 31 33 -def rows 8 10 1 N 32801 0 8 -def Extra 253 255 0 N 1 31 33 -id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t9 ALL NULL NULL NULL NULL 2 -test_sequence ------- delete tests ------ -delete from t1 ; -insert into t1 values (1,'one'); -insert into t1 values (2,'two'); -insert into t1 values (3,'three'); -insert into t1 values (4,'four'); -commit ; -delete from t9 ; -insert into t9 -set c1= 1, c2= 1, c3= 1, c4= 1, c5= 1, c6= 1, c7= 1, c8= 1, c9= 1, -c10= 1, c11= 1, c12 = 1, -c13= '2004-02-29', c14= '2004-02-29 11:11:11', c15= '2004-02-29 11:11:11', -c16= '11:11:11', c17= '2004', -c18= 1, c19=true, c20= 'a', c21= '123456789a', -c22= '123456789a123456789b123456789c', c23= 'tinyblob', c24= 'tinytext', -c25= 'blob', c26= 'text', c27= 'mediumblob', c28= 'mediumtext', -c29= 'longblob', c30= 'longtext', c31='one', c32= 'monday'; -insert into t9 -set c1= 9, c2= 9, c3= 9, c4= 9, c5= 9, c6= 9, c7= 9, c8= 9, c9= 9, -c10= 9, c11= 9, c12 = 9, -c13= '2004-02-29', c14= '2004-02-29 11:11:11', c15= '2004-02-29 11:11:11', -c16= '11:11:11', c17= '2004', -c18= 1, c19=false, c20= 'a', c21= '123456789a', -c22= '123456789a123456789b123456789c', c23= 'tinyblob', c24= 'tinytext', -c25= 'blob', c26= 'text', c27= 'mediumblob', c28= 'mediumtext', -c29= 'longblob', c30= 'longtext', c31='two', c32= 'tuesday'; -commit ; -prepare stmt1 from 'delete from t1 where a=2' ; -execute stmt1; -select a,b from t1 where a=2; -a b -execute stmt1; -insert into t1 values(0,NULL); -set @arg00=NULL; -prepare stmt1 from 'delete from t1 where b=?' ; -execute stmt1 using @arg00; -select a,b from t1 where b is NULL ; -a b -0 NULL -set @arg00='one'; -execute stmt1 using @arg00; -select a,b from t1 where b=@arg00; -a b -prepare stmt1 from 'truncate table t1' ; -ERROR HY000: This command is not supported in the prepared statement protocol yet -test_sequence ------- update tests ------ -delete from t1 ; -insert into t1 values (1,'one'); -insert into t1 values (2,'two'); -insert into t1 values (3,'three'); -insert into t1 values (4,'four'); -commit ; -delete from t9 ; -insert into t9 -set c1= 1, c2= 1, c3= 1, c4= 1, c5= 1, c6= 1, c7= 1, c8= 1, c9= 1, -c10= 1, c11= 1, c12 = 1, -c13= '2004-02-29', c14= '2004-02-29 11:11:11', c15= '2004-02-29 11:11:11', -c16= '11:11:11', c17= '2004', -c18= 1, c19=true, c20= 'a', c21= '123456789a', -c22= '123456789a123456789b123456789c', c23= 'tinyblob', c24= 'tinytext', -c25= 'blob', c26= 'text', c27= 'mediumblob', c28= 'mediumtext', -c29= 'longblob', c30= 'longtext', c31='one', c32= 'monday'; -insert into t9 -set c1= 9, c2= 9, c3= 9, c4= 9, c5= 9, c6= 9, c7= 9, c8= 9, c9= 9, -c10= 9, c11= 9, c12 = 9, -c13= '2004-02-29', c14= '2004-02-29 11:11:11', c15= '2004-02-29 11:11:11', -c16= '11:11:11', c17= '2004', -c18= 1, c19=false, c20= 'a', c21= '123456789a', -c22= '123456789a123456789b123456789c', c23= 'tinyblob', c24= 'tinytext', -c25= 'blob', c26= 'text', c27= 'mediumblob', c28= 'mediumtext', -c29= 'longblob', c30= 'longtext', c31='two', c32= 'tuesday'; -commit ; -prepare stmt1 from 'update t1 set b=''a=two'' where a=2' ; -execute stmt1; -select a,b from t1 where a=2; -a b -2 a=two -execute stmt1; -select a,b from t1 where a=2; -a b -2 a=two -set @arg00=NULL; -prepare stmt1 from 'update t1 set b=? where a=2' ; -execute stmt1 using @arg00; -select a,b from t1 where a=2; -a b -2 NULL -set @arg00='two'; -execute stmt1 using @arg00; -select a,b from t1 where a=2; -a b -2 two -set @arg00=2; -prepare stmt1 from 'update t1 set b=NULL where a=?' ; -execute stmt1 using @arg00; -select a,b from t1 where a=@arg00; -a b -2 NULL -update t1 set b='two' where a=@arg00; -set @arg00=2000; -execute stmt1 using @arg00; -select a,b from t1 where a=@arg00; -a b -set @arg00=2; -set @arg01=22; -prepare stmt1 from 'update t1 set a=? where a=?' ; -execute stmt1 using @arg00, @arg00; -select a,b from t1 where a=@arg00; -a b -2 two -execute stmt1 using @arg01, @arg00; -select a,b from t1 where a=@arg01; -a b -22 two -execute stmt1 using @arg00, @arg01; -select a,b from t1 where a=@arg00; -a b -2 two -set @arg00=NULL; -set @arg01=2; -execute stmt1 using @arg00, @arg01; -Warnings: -Warning 1263 Data truncated; NULL supplied to NOT NULL column 'a' at row 1 -select a,b from t1 order by a; -a b -0 two -1 one -3 three -4 four -set @arg00=0; -execute stmt1 using @arg01, @arg00; -select a,b from t1 order by a; -a b -1 one -2 two -3 three -4 four -set @arg00=23; -set @arg01='two'; -set @arg02=2; -set @arg03='two'; -set @arg04=2; -drop table if exists t2; -create table t2 as select a,b from t1 ; -prepare stmt1 from 'update t1 set a=? where b=? - and a in (select ? from t2 - where b = ? or a = ?)'; -execute stmt1 using @arg00, @arg01, @arg02, @arg03, @arg04 ; -affected rows: 1 -info: Rows matched: 1 Changed: 1 Warnings: 0 -select a,b from t1 where a = @arg00 ; -a b -23 two -prepare stmt1 from 'update t1 set a=? where b=? - and a not in (select ? from t2 - where b = ? or a = ?)'; -execute stmt1 using @arg04, @arg01, @arg02, @arg03, @arg00 ; -affected rows: 1 -info: Rows matched: 1 Changed: 1 Warnings: 0 -select a,b from t1 order by a ; -a b -1 one -2 two -3 three -4 four -drop table t2 ; -create table t2 -( -a int, b varchar(30), -primary key(a) -) engine = 'MYISAM' ; -insert into t2(a,b) select a, b from t1 ; -prepare stmt1 from 'update t1 set a=? where b=? - and a in (select ? from t2 - where b = ? or a = ?)'; -execute stmt1 using @arg00, @arg01, @arg02, @arg03, @arg04 ; -affected rows: 1 -info: Rows matched: 1 Changed: 1 Warnings: 0 -select a,b from t1 where a = @arg00 ; -a b -23 two -prepare stmt1 from 'update t1 set a=? where b=? - and a not in (select ? from t2 - where b = ? or a = ?)'; -execute stmt1 using @arg04, @arg01, @arg02, @arg03, @arg00 ; -affected rows: 1 -info: Rows matched: 1 Changed: 1 Warnings: 0 -select a,b from t1 order by a ; -a b -1 one -2 two -3 three -4 four -drop table t2 ; -set @arg00=1; -prepare stmt1 from 'update t1 set b=''bla'' -where a=2 -limit 1'; -execute stmt1 ; -select a,b from t1 where b = 'bla' ; -a b -2 bla -prepare stmt1 from 'update t1 set b=''bla'' -where a=2 -limit ?'; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '?' at line 3 -test_sequence ------- insert tests ------ -delete from t1 ; -insert into t1 values (1,'one'); -insert into t1 values (2,'two'); -insert into t1 values (3,'three'); -insert into t1 values (4,'four'); -commit ; -delete from t9 ; -insert into t9 -set c1= 1, c2= 1, c3= 1, c4= 1, c5= 1, c6= 1, c7= 1, c8= 1, c9= 1, -c10= 1, c11= 1, c12 = 1, -c13= '2004-02-29', c14= '2004-02-29 11:11:11', c15= '2004-02-29 11:11:11', -c16= '11:11:11', c17= '2004', -c18= 1, c19=true, c20= 'a', c21= '123456789a', -c22= '123456789a123456789b123456789c', c23= 'tinyblob', c24= 'tinytext', -c25= 'blob', c26= 'text', c27= 'mediumblob', c28= 'mediumtext', -c29= 'longblob', c30= 'longtext', c31='one', c32= 'monday'; -insert into t9 -set c1= 9, c2= 9, c3= 9, c4= 9, c5= 9, c6= 9, c7= 9, c8= 9, c9= 9, -c10= 9, c11= 9, c12 = 9, -c13= '2004-02-29', c14= '2004-02-29 11:11:11', c15= '2004-02-29 11:11:11', -c16= '11:11:11', c17= '2004', -c18= 1, c19=false, c20= 'a', c21= '123456789a', -c22= '123456789a123456789b123456789c', c23= 'tinyblob', c24= 'tinytext', -c25= 'blob', c26= 'text', c27= 'mediumblob', c28= 'mediumtext', -c29= 'longblob', c30= 'longtext', c31='two', c32= 'tuesday'; -commit ; -prepare stmt1 from 'insert into t1 values(5, ''five'' )'; -execute stmt1; -select a,b from t1 where a = 5; -a b -5 five -set @arg00='six' ; -prepare stmt1 from 'insert into t1 values(6, ? )'; -execute stmt1 using @arg00; -select a,b from t1 where b = @arg00; -a b -6 six -execute stmt1 using @arg00; -ERROR 23000: Duplicate entry '6' for key 1 -set @arg00=NULL ; -prepare stmt1 from 'insert into t1 values(0, ? )'; -execute stmt1 using @arg00; -select a,b from t1 where b is NULL; -a b -0 NULL -set @arg00=8 ; -set @arg01='eight' ; -prepare stmt1 from 'insert into t1 values(?, ? )'; -execute stmt1 using @arg00, @arg01 ; -select a,b from t1 where b = @arg01; -a b -8 eight -set @NULL= null ; -set @arg00= 'abc' ; -execute stmt1 using @NULL, @NULL ; -ERROR 23000: Column 'a' cannot be null -execute stmt1 using @NULL, @NULL ; -ERROR 23000: Column 'a' cannot be null -execute stmt1 using @NULL, @arg00 ; -ERROR 23000: Column 'a' cannot be null -execute stmt1 using @NULL, @arg00 ; -ERROR 23000: Column 'a' cannot be null -set @arg01= 10000 + 2 ; -execute stmt1 using @arg01, @arg00 ; -set @arg01= 10000 + 1 ; -execute stmt1 using @arg01, @arg00 ; -select * from t1 where a > 10000 order by a ; -a b -10001 abc -10002 abc -delete from t1 where a > 10000 ; -set @arg01= 10000 + 2 ; -execute stmt1 using @arg01, @NULL ; -set @arg01= 10000 + 1 ; -execute stmt1 using @arg01, @NULL ; -select * from t1 where a > 10000 order by a ; -a b -10001 NULL -10002 NULL -delete from t1 where a > 10000 ; -set @arg01= 10000 + 10 ; -execute stmt1 using @arg01, @arg01 ; -set @arg01= 10000 + 9 ; -execute stmt1 using @arg01, @arg01 ; -set @arg01= 10000 + 8 ; -execute stmt1 using @arg01, @arg01 ; -set @arg01= 10000 + 7 ; -execute stmt1 using @arg01, @arg01 ; -set @arg01= 10000 + 6 ; -execute stmt1 using @arg01, @arg01 ; -set @arg01= 10000 + 5 ; -execute stmt1 using @arg01, @arg01 ; -set @arg01= 10000 + 4 ; -execute stmt1 using @arg01, @arg01 ; -set @arg01= 10000 + 3 ; -execute stmt1 using @arg01, @arg01 ; -set @arg01= 10000 + 2 ; -execute stmt1 using @arg01, @arg01 ; -set @arg01= 10000 + 1 ; -execute stmt1 using @arg01, @arg01 ; -select * from t1 where a > 10000 order by a ; -a b -10001 10001 -10002 10002 -10003 10003 -10004 10004 -10005 10005 -10006 10006 -10007 10007 -10008 10008 -10009 10009 -10010 10010 -delete from t1 where a > 10000 ; -set @arg00=81 ; -set @arg01='8-1' ; -set @arg02=82 ; -set @arg03='8-2' ; -prepare stmt1 from 'insert into t1 values(?,?),(?,?)'; -execute stmt1 using @arg00, @arg01, @arg02, @arg03 ; -select a,b from t1 where a in (@arg00,@arg02) ; -a b -81 8-1 -82 8-2 -set @arg00=9 ; -set @arg01='nine' ; -prepare stmt1 from 'insert into t1 set a=?, b=? '; -execute stmt1 using @arg00, @arg01 ; -select a,b from t1 where a = @arg00 ; -a b -9 nine -set @arg00=6 ; -set @arg01=1 ; -prepare stmt1 from 'insert into t1 set a=?, b=''sechs'' - on duplicate key update a=a + ?, b=concat(b,''modified'') '; -execute stmt1 using @arg00, @arg01; -select * from t1 order by a; -a b -0 NULL -1 one -2 two -3 three -4 four -5 five -7 sixmodified -8 eight -9 nine -81 8-1 -82 8-2 -set @arg00=81 ; -set @arg01=1 ; -execute stmt1 using @arg00, @arg01; -ERROR 23000: Duplicate entry '82' for key 1 -drop table if exists t2 ; -create table t2 (id int auto_increment primary key) -ENGINE= 'MYISAM' ; -prepare stmt1 from ' select last_insert_id() ' ; -insert into t2 values (NULL) ; -execute stmt1 ; -last_insert_id() -1 -insert into t2 values (NULL) ; -execute stmt1 ; -last_insert_id() -2 -drop table t2 ; -set @1000=1000 ; -set @x1000_2="x1000_2" ; -set @x1000_3="x1000_3" ; -set @x1000="x1000" ; -set @1100=1100 ; -set @x1100="x1100" ; -set @100=100 ; -set @updated="updated" ; -insert into t1 values(1000,'x1000_1') ; -insert into t1 values(@1000,@x1000_2),(@1000,@x1000_3) -on duplicate key update a = a + @100, b = concat(b,@updated) ; -select a,b from t1 where a >= 1000 order by a ; -a b -1000 x1000_3 -1100 x1000_1updated -delete from t1 where a >= 1000 ; -insert into t1 values(1000,'x1000_1') ; -prepare stmt1 from ' insert into t1 values(?,?),(?,?) - on duplicate key update a = a + ?, b = concat(b,?) '; -execute stmt1 using @1000, @x1000_2, @1000, @x1000_3, @100, @updated ; -select a,b from t1 where a >= 1000 order by a ; -a b -1000 x1000_3 -1100 x1000_1updated -delete from t1 where a >= 1000 ; -insert into t1 values(1000,'x1000_1') ; -execute stmt1 using @1000, @x1000_2, @1100, @x1000_3, @100, @updated ; -select a,b from t1 where a >= 1000 order by a ; -a b -1200 x1000_1updatedupdated -delete from t1 where a >= 1000 ; -prepare stmt1 from ' replace into t1 (a,b) select 100, ''hundred'' '; -execute stmt1; -execute stmt1; -execute stmt1; -test_sequence ------- multi table tests ------ -delete from t1 ; -delete from t9 ; -insert into t1(a,b) values (1, 'one'), (2, 'two'), (3, 'three') ; -insert into t9 (c1,c21) -values (1, 'one'), (2, 'two'), (3, 'three') ; -prepare stmt_delete from " delete t1, t9 - from t1, t9 where t1.a=t9.c1 and t1.b='updated' "; -prepare stmt_update from " update t1, t9 - set t1.b='updated', t9.c21='updated' - where t1.a=t9.c1 and t1.a=? "; -prepare stmt_select1 from " select a, b from t1 order by a" ; -prepare stmt_select2 from " select c1, c21 from t9 order by c1" ; -set @arg00= 1 ; -execute stmt_update using @arg00 ; -execute stmt_delete ; -execute stmt_select1 ; -a b -2 two -3 three -execute stmt_select2 ; -c1 c21 -2 two -3 three -set @arg00= @arg00 + 1 ; -execute stmt_update using @arg00 ; -execute stmt_delete ; -execute stmt_select1 ; -a b -3 three -execute stmt_select2 ; -c1 c21 -3 three -set @arg00= @arg00 + 1 ; -execute stmt_update using @arg00 ; -execute stmt_delete ; -execute stmt_select1 ; -a b -execute stmt_select2 ; -c1 c21 -set @arg00= @arg00 + 1 ; -drop table if exists t5 ; -set @arg01= 8; -set @arg02= 8.0; -set @arg03= 80.00000000000e-1; -set @arg04= 'abc' ; -set @arg05= CAST('abc' as binary) ; -set @arg06= '1991-08-05' ; -set @arg07= CAST('1991-08-05' as date); -set @arg08= '1991-08-05 01:01:01' ; -set @arg09= CAST('1991-08-05 01:01:01' as datetime) ; -set @arg10= unix_timestamp('1991-01-01 01:01:01'); -set @arg11= YEAR('1991-01-01 01:01:01'); -set @arg12= 8 ; -set @arg12= NULL ; -set @arg13= 8.0 ; -set @arg13= NULL ; -set @arg14= 'abc'; -set @arg14= NULL ; -set @arg15= CAST('abc' as binary) ; -set @arg15= NULL ; -create table t5 as select -8 as const01, @arg01 as param01, -8.0 as const02, @arg02 as param02, -80.00000000000e-1 as const03, @arg03 as param03, -'abc' as const04, @arg04 as param04, -CAST('abc' as binary) as const05, @arg05 as param05, -'1991-08-05' as const06, @arg06 as param06, -CAST('1991-08-05' as date) as const07, @arg07 as param07, -'1991-08-05 01:01:01' as const08, @arg08 as param08, -CAST('1991-08-05 01:01:01' as datetime) as const09, @arg09 as param09, -unix_timestamp('1991-01-01 01:01:01') as const10, @arg10 as param10, -YEAR('1991-01-01 01:01:01') as const11, @arg11 as param11, -NULL as const12, @arg12 as param12, -@arg13 as param13, -@arg14 as param14, -@arg15 as param15; -show create table t5 ; -Table Create Table -t5 CREATE TABLE `t5` ( - `const01` bigint(1) NOT NULL default '0', - `param01` bigint(20) default NULL, - `const02` double(3,1) NOT NULL default '0.0', - `param02` double default NULL, - `const03` double NOT NULL default '0', - `param03` double default NULL, - `const04` char(3) NOT NULL default '', - `param04` longtext, - `const05` binary(3) NOT NULL default '', - `param05` longblob, - `const06` varchar(10) NOT NULL default '', - `param06` longtext, - `const07` date default NULL, - `param07` longblob, - `const08` varchar(19) NOT NULL default '', - `param08` longtext, - `const09` datetime default NULL, - `param09` longblob, - `const10` int(10) NOT NULL default '0', - `param10` bigint(20) default NULL, - `const11` int(4) default NULL, - `param11` bigint(20) default NULL, - `const12` binary(0) default NULL, - `param12` bigint(20) default NULL, - `param13` double default NULL, - `param14` longtext, - `param15` longblob -) ENGINE=MyISAM DEFAULT CHARSET=latin1 -select * from t5 ; -Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr -def test t5 t5 const01 const01 8 1 1 N 32769 0 63 -def test t5 t5 param01 param01 8 20 1 Y 32768 0 63 -def test t5 t5 const02 const02 5 3 3 N 32769 1 63 -def test t5 t5 param02 param02 5 20 1 Y 32768 31 63 -def test t5 t5 const03 const03 5 23 1 N 32769 31 63 -def test t5 t5 param03 param03 5 20 1 Y 32768 31 63 -def test t5 t5 const04 const04 254 3 3 N 1 0 8 -def test t5 t5 param04 param04 252 16777215 3 Y 16 0 8 -def test t5 t5 const05 const05 254 3 3 N 129 0 63 -def test t5 t5 param05 param05 252 16777215 3 Y 144 0 63 -def test t5 t5 const06 const06 253 10 10 N 1 0 8 -def test t5 t5 param06 param06 252 16777215 10 Y 16 0 8 -def test t5 t5 const07 const07 10 10 10 Y 128 0 63 -def test t5 t5 param07 param07 252 16777215 10 Y 144 0 63 -def test t5 t5 const08 const08 253 19 19 N 1 0 8 -def test t5 t5 param08 param08 252 16777215 19 Y 16 0 8 -def test t5 t5 const09 const09 12 19 19 Y 128 0 63 -def test t5 t5 param09 param09 252 16777215 19 Y 144 0 63 -def test t5 t5 const10 const10 3 10 9 N 32769 0 63 -def test t5 t5 param10 param10 8 20 9 Y 32768 0 63 -def test t5 t5 const11 const11 3 4 4 Y 32768 0 63 -def test t5 t5 param11 param11 8 20 4 Y 32768 0 63 -def test t5 t5 const12 const12 254 0 0 Y 128 0 63 -def test t5 t5 param12 param12 8 20 0 Y 32768 0 63 -def test t5 t5 param13 param13 5 20 0 Y 32768 31 63 -def test t5 t5 param14 param14 252 16777215 0 Y 16 0 8 -def test t5 t5 param15 param15 252 16777215 0 Y 144 0 63 -const01 8 -param01 8 -const02 8.0 -param02 8 -const03 8 -param03 8 -const04 abc -param04 abc -const05 abc -param05 abc -const06 1991-08-05 -param06 1991-08-05 -const07 1991-08-05 -param07 1991-08-05 -const08 1991-08-05 01:01:01 -param08 1991-08-05 01:01:01 -const09 1991-08-05 01:01:01 -param09 1991-08-05 01:01:01 -const10 662680861 -param10 662680861 -const11 1991 -param11 1991 -const12 NULL -param12 NULL -param13 NULL -param14 NULL -param15 NULL -drop table t5 ; -test_sequence ------- data type conversion tests ------ -delete from t1 ; -insert into t1 values (1,'one'); -insert into t1 values (2,'two'); -insert into t1 values (3,'three'); -insert into t1 values (4,'four'); -commit ; -delete from t9 ; -insert into t9 -set c1= 1, c2= 1, c3= 1, c4= 1, c5= 1, c6= 1, c7= 1, c8= 1, c9= 1, -c10= 1, c11= 1, c12 = 1, -c13= '2004-02-29', c14= '2004-02-29 11:11:11', c15= '2004-02-29 11:11:11', -c16= '11:11:11', c17= '2004', -c18= 1, c19=true, c20= 'a', c21= '123456789a', -c22= '123456789a123456789b123456789c', c23= 'tinyblob', c24= 'tinytext', -c25= 'blob', c26= 'text', c27= 'mediumblob', c28= 'mediumtext', -c29= 'longblob', c30= 'longtext', c31='one', c32= 'monday'; -insert into t9 -set c1= 9, c2= 9, c3= 9, c4= 9, c5= 9, c6= 9, c7= 9, c8= 9, c9= 9, -c10= 9, c11= 9, c12 = 9, -c13= '2004-02-29', c14= '2004-02-29 11:11:11', c15= '2004-02-29 11:11:11', -c16= '11:11:11', c17= '2004', -c18= 1, c19=false, c20= 'a', c21= '123456789a', -c22= '123456789a123456789b123456789c', c23= 'tinyblob', c24= 'tinytext', -c25= 'blob', c26= 'text', c27= 'mediumblob', c28= 'mediumtext', -c29= 'longblob', c30= 'longtext', c31='two', c32= 'tuesday'; -commit ; -insert into t9 set c1= 0, c15= '1991-01-01 01:01:01' ; -select * from t9 order by c1 ; -c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 c13 c14 c15 c16 c17 c18 c19 c20 c21 c22 c23 c24 c25 c26 c27 c28 c29 c30 c31 c32 -0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday -9 9 9 9 9 9 9 9 9 9 9.0000 9.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 0 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext two tuesday -test_sequence ------- select @parameter:= column ------ -prepare full_info from "select @arg01, @arg02, @arg03, @arg04, - @arg05, @arg06, @arg07, @arg08, - @arg09, @arg10, @arg11, @arg12, - @arg13, @arg14, @arg15, @arg16, - @arg17, @arg18, @arg19, @arg20, - @arg21, @arg22, @arg23, @arg24, - @arg25, @arg26, @arg27, @arg28, - @arg29, @arg30, @arg31, @arg32" ; -select @arg01:= c1, @arg02:= c2, @arg03:= c3, @arg04:= c4, -@arg05:= c5, @arg06:= c6, @arg07:= c7, @arg08:= c8, -@arg09:= c9, @arg10:= c10, @arg11:= c11, @arg12:= c12, -@arg13:= c13, @arg14:= c14, @arg15:= c15, @arg16:= c16, -@arg17:= c17, @arg18:= c18, @arg19:= c19, @arg20:= c20, -@arg21:= c21, @arg22:= c22, @arg23:= c23, @arg24:= c24, -@arg25:= c25, @arg26:= c26, @arg27:= c27, @arg28:= c28, -@arg29:= c29, @arg30:= c30, @arg31:= c31, @arg32:= c32 -from t9 where c1= 1 ; -@arg01:= c1 @arg02:= c2 @arg03:= c3 @arg04:= c4 @arg05:= c5 @arg06:= c6 @arg07:= c7 @arg08:= c8 @arg09:= c9 @arg10:= c10 @arg11:= c11 @arg12:= c12 @arg13:= c13 @arg14:= c14 @arg15:= c15 @arg16:= c16 @arg17:= c17 @arg18:= c18 @arg19:= c19 @arg20:= c20 @arg21:= c21 @arg22:= c22 @arg23:= c23 @arg24:= c24 @arg25:= c25 @arg26:= c26 @arg27:= c27 @arg28:= c28 @arg29:= c29 @arg30:= c30 @arg31:= c31 @arg32:= c32 -1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday -execute full_info ; -Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr -def @arg01 254 20 1 Y 128 31 63 -def @arg02 254 20 1 Y 128 31 63 -def @arg03 254 20 1 Y 128 31 63 -def @arg04 254 20 1 Y 128 31 63 -def @arg05 254 20 1 Y 128 31 63 -def @arg06 254 20 1 Y 128 31 63 -def @arg07 254 20 1 Y 128 31 63 -def @arg08 254 20 1 Y 128 31 63 -def @arg09 254 20 1 Y 128 31 63 -def @arg10 254 20 1 Y 128 31 63 -def @arg11 254 20 1 Y 128 31 63 -def @arg12 254 20 1 Y 128 31 63 -def @arg13 254 8192 10 Y 128 31 63 -def @arg14 254 8192 19 Y 128 31 63 -def @arg15 254 8192 19 Y 128 31 63 -def @arg16 254 8192 8 Y 128 31 63 -def @arg17 254 20 4 Y 128 31 63 -def @arg18 254 20 1 Y 128 31 63 -def @arg19 254 20 1 Y 128 31 63 -def @arg20 254 8192 1 Y 0 31 8 -def @arg21 254 8192 10 Y 0 31 8 -def @arg22 254 8192 30 Y 0 31 8 -def @arg23 254 8192 8 Y 128 31 63 -def @arg24 254 8192 8 Y 0 31 8 -def @arg25 254 8192 4 Y 128 31 63 -def @arg26 254 8192 4 Y 0 31 8 -def @arg27 254 8192 10 Y 128 31 63 -def @arg28 254 8192 10 Y 0 31 8 -def @arg29 254 8192 8 Y 128 31 63 -def @arg30 254 8192 8 Y 0 31 8 -def @arg31 254 8192 3 Y 0 31 8 -def @arg32 254 8192 6 Y 128 31 63 -@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32 -1 1 1 1 1 1 1 1 1 1 1 1 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday -select @arg01:= c1, @arg02:= c2, @arg03:= c3, @arg04:= c4, -@arg05:= c5, @arg06:= c6, @arg07:= c7, @arg08:= c8, -@arg09:= c9, @arg10:= c10, @arg11:= c11, @arg12:= c12, -@arg13:= c13, @arg14:= c14, @arg15:= c15, @arg16:= c16, -@arg17:= c17, @arg18:= c18, @arg19:= c19, @arg20:= c20, -@arg21:= c21, @arg22:= c22, @arg23:= c23, @arg24:= c24, -@arg25:= c25, @arg26:= c26, @arg27:= c27, @arg28:= c28, -@arg29:= c29, @arg30:= c30, @arg31:= c31, @arg32:= c32 -from t9 where c1= 0 ; -@arg01:= c1 @arg02:= c2 @arg03:= c3 @arg04:= c4 @arg05:= c5 @arg06:= c6 @arg07:= c7 @arg08:= c8 @arg09:= c9 @arg10:= c10 @arg11:= c11 @arg12:= c12 @arg13:= c13 @arg14:= c14 @arg15:= c15 @arg16:= c16 @arg17:= c17 @arg18:= c18 @arg19:= c19 @arg20:= c20 @arg21:= c21 @arg22:= c22 @arg23:= c23 @arg24:= c24 @arg25:= c25 @arg26:= c26 @arg27:= c27 @arg28:= c28 @arg29:= c29 @arg30:= c30 @arg31:= c31 @arg32:= c32 -0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -execute full_info ; -Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr -def @arg01 254 20 1 Y 128 31 63 -def @arg02 254 20 0 Y 128 31 63 -def @arg03 254 20 0 Y 128 31 63 -def @arg04 254 20 0 Y 128 31 63 -def @arg05 254 20 0 Y 128 31 63 -def @arg06 254 20 0 Y 128 31 63 -def @arg07 254 20 0 Y 128 31 63 -def @arg08 254 20 0 Y 128 31 63 -def @arg09 254 20 0 Y 128 31 63 -def @arg10 254 20 0 Y 128 31 63 -def @arg11 254 20 0 Y 128 31 63 -def @arg12 254 20 0 Y 128 31 63 -def @arg13 254 8192 0 Y 128 31 63 -def @arg14 254 8192 0 Y 128 31 63 -def @arg15 254 8192 19 Y 128 31 63 -def @arg16 254 8192 0 Y 128 31 63 -def @arg17 254 20 0 Y 128 31 63 -def @arg18 254 20 0 Y 128 31 63 -def @arg19 254 20 0 Y 128 31 63 -def @arg20 254 8192 0 Y 0 31 8 -def @arg21 254 8192 0 Y 0 31 8 -def @arg22 254 8192 0 Y 0 31 8 -def @arg23 254 8192 0 Y 128 31 63 -def @arg24 254 8192 0 Y 0 31 8 -def @arg25 254 8192 0 Y 128 31 63 -def @arg26 254 8192 0 Y 0 31 8 -def @arg27 254 8192 0 Y 128 31 63 -def @arg28 254 8192 0 Y 0 31 8 -def @arg29 254 8192 0 Y 128 31 63 -def @arg30 254 8192 0 Y 0 31 8 -def @arg31 254 8192 0 Y 0 31 8 -def @arg32 254 8192 0 Y 0 31 8 -@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32 -0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -prepare stmt1 from "select - @arg01:= c1, @arg02:= c2, @arg03:= c3, @arg04:= c4, - @arg05:= c5, @arg06:= c6, @arg07:= c7, @arg08:= c8, - @arg09:= c9, @arg10:= c10, @arg11:= c11, @arg12:= c12, - @arg13:= c13, @arg14:= c14, @arg15:= c15, @arg16:= c16, - @arg17:= c17, @arg18:= c18, @arg19:= c19, @arg20:= c20, - @arg21:= c21, @arg22:= c22, @arg23:= c23, @arg24:= c24, - @arg25:= c25, @arg26:= c26, @arg27:= c27, @arg28:= c28, - @arg29:= c29, @arg30:= c30, @arg31:= c31, @arg32:= c32 -from t9 where c1= ?" ; -set @my_key= 1 ; -execute stmt1 using @my_key ; -@arg01:= c1 @arg02:= c2 @arg03:= c3 @arg04:= c4 @arg05:= c5 @arg06:= c6 @arg07:= c7 @arg08:= c8 @arg09:= c9 @arg10:= c10 @arg11:= c11 @arg12:= c12 @arg13:= c13 @arg14:= c14 @arg15:= c15 @arg16:= c16 @arg17:= c17 @arg18:= c18 @arg19:= c19 @arg20:= c20 @arg21:= c21 @arg22:= c22 @arg23:= c23 @arg24:= c24 @arg25:= c25 @arg26:= c26 @arg27:= c27 @arg28:= c28 @arg29:= c29 @arg30:= c30 @arg31:= c31 @arg32:= c32 -1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday -execute full_info ; -Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr -def @arg01 254 20 1 Y 128 31 63 -def @arg02 254 20 1 Y 128 31 63 -def @arg03 254 20 1 Y 128 31 63 -def @arg04 254 20 1 Y 128 31 63 -def @arg05 254 20 1 Y 128 31 63 -def @arg06 254 20 1 Y 128 31 63 -def @arg07 254 20 1 Y 128 31 63 -def @arg08 254 20 1 Y 128 31 63 -def @arg09 254 20 1 Y 128 31 63 -def @arg10 254 20 1 Y 128 31 63 -def @arg11 254 20 1 Y 128 31 63 -def @arg12 254 20 1 Y 128 31 63 -def @arg13 254 8192 10 Y 128 31 63 -def @arg14 254 8192 19 Y 128 31 63 -def @arg15 254 8192 19 Y 128 31 63 -def @arg16 254 8192 8 Y 128 31 63 -def @arg17 254 20 4 Y 128 31 63 -def @arg18 254 20 1 Y 128 31 63 -def @arg19 254 20 1 Y 128 31 63 -def @arg20 254 8192 1 Y 0 31 8 -def @arg21 254 8192 10 Y 0 31 8 -def @arg22 254 8192 30 Y 0 31 8 -def @arg23 254 8192 8 Y 128 31 63 -def @arg24 254 8192 8 Y 0 31 8 -def @arg25 254 8192 4 Y 128 31 63 -def @arg26 254 8192 4 Y 0 31 8 -def @arg27 254 8192 10 Y 128 31 63 -def @arg28 254 8192 10 Y 0 31 8 -def @arg29 254 8192 8 Y 128 31 63 -def @arg30 254 8192 8 Y 0 31 8 -def @arg31 254 8192 3 Y 0 31 8 -def @arg32 254 8192 6 Y 128 31 63 -@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32 -1 1 1 1 1 1 1 1 1 1 1 1 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday -set @my_key= 0 ; -execute stmt1 using @my_key ; -@arg01:= c1 @arg02:= c2 @arg03:= c3 @arg04:= c4 @arg05:= c5 @arg06:= c6 @arg07:= c7 @arg08:= c8 @arg09:= c9 @arg10:= c10 @arg11:= c11 @arg12:= c12 @arg13:= c13 @arg14:= c14 @arg15:= c15 @arg16:= c16 @arg17:= c17 @arg18:= c18 @arg19:= c19 @arg20:= c20 @arg21:= c21 @arg22:= c22 @arg23:= c23 @arg24:= c24 @arg25:= c25 @arg26:= c26 @arg27:= c27 @arg28:= c28 @arg29:= c29 @arg30:= c30 @arg31:= c31 @arg32:= c32 -0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -execute full_info ; -Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr -def @arg01 254 20 1 Y 128 31 63 -def @arg02 254 20 0 Y 128 31 63 -def @arg03 254 20 0 Y 128 31 63 -def @arg04 254 20 0 Y 128 31 63 -def @arg05 254 20 0 Y 128 31 63 -def @arg06 254 20 0 Y 128 31 63 -def @arg07 254 20 0 Y 128 31 63 -def @arg08 254 20 0 Y 128 31 63 -def @arg09 254 20 0 Y 128 31 63 -def @arg10 254 20 0 Y 128 31 63 -def @arg11 254 20 0 Y 128 31 63 -def @arg12 254 20 0 Y 128 31 63 -def @arg13 254 8192 0 Y 128 31 63 -def @arg14 254 8192 0 Y 128 31 63 -def @arg15 254 8192 19 Y 128 31 63 -def @arg16 254 8192 0 Y 128 31 63 -def @arg17 254 20 0 Y 128 31 63 -def @arg18 254 20 0 Y 128 31 63 -def @arg19 254 20 0 Y 128 31 63 -def @arg20 254 8192 0 Y 0 31 8 -def @arg21 254 8192 0 Y 0 31 8 -def @arg22 254 8192 0 Y 0 31 8 -def @arg23 254 8192 0 Y 128 31 63 -def @arg24 254 8192 0 Y 0 31 8 -def @arg25 254 8192 0 Y 128 31 63 -def @arg26 254 8192 0 Y 0 31 8 -def @arg27 254 8192 0 Y 128 31 63 -def @arg28 254 8192 0 Y 0 31 8 -def @arg29 254 8192 0 Y 128 31 63 -def @arg30 254 8192 0 Y 0 31 8 -def @arg31 254 8192 0 Y 0 31 8 -def @arg32 254 8192 0 Y 0 31 8 -@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32 -0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -prepare stmt1 from "select ? := c1 from t9 where c1= 1" ; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ':= c1 from t9 where c1= 1' at line 1 -test_sequence ------- select column, .. into @parm,.. ------ -select c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12, -c13, c14, c15, c16, c17, c18, c19, c20, c21, c22, c23, c24, -c25, c26, c27, c28, c29, c30, c31, c32 -into @arg01, @arg02, @arg03, @arg04, @arg05, @arg06, @arg07, @arg08, -@arg09, @arg10, @arg11, @arg12, @arg13, @arg14, @arg15, @arg16, -@arg17, @arg18, @arg19, @arg20, @arg21, @arg22, @arg23, @arg24, -@arg25, @arg26, @arg27, @arg28, @arg29, @arg30, @arg31, @arg32 -from t9 where c1= 1 ; -execute full_info ; -Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr -def @arg01 254 20 1 Y 128 31 63 -def @arg02 254 20 1 Y 128 31 63 -def @arg03 254 20 1 Y 128 31 63 -def @arg04 254 20 1 Y 128 31 63 -def @arg05 254 20 1 Y 128 31 63 -def @arg06 254 20 1 Y 128 31 63 -def @arg07 254 20 1 Y 128 31 63 -def @arg08 254 20 1 Y 128 31 63 -def @arg09 254 20 1 Y 128 31 63 -def @arg10 254 20 1 Y 128 31 63 -def @arg11 254 20 1 Y 128 31 63 -def @arg12 254 20 1 Y 128 31 63 -def @arg13 254 8192 10 Y 128 31 63 -def @arg14 254 8192 19 Y 128 31 63 -def @arg15 254 8192 19 Y 128 31 63 -def @arg16 254 8192 8 Y 128 31 63 -def @arg17 254 20 4 Y 128 31 63 -def @arg18 254 20 1 Y 128 31 63 -def @arg19 254 20 1 Y 128 31 63 -def @arg20 254 8192 1 Y 0 31 8 -def @arg21 254 8192 10 Y 0 31 8 -def @arg22 254 8192 30 Y 0 31 8 -def @arg23 254 8192 8 Y 128 31 63 -def @arg24 254 8192 8 Y 0 31 8 -def @arg25 254 8192 4 Y 128 31 63 -def @arg26 254 8192 4 Y 0 31 8 -def @arg27 254 8192 10 Y 128 31 63 -def @arg28 254 8192 10 Y 0 31 8 -def @arg29 254 8192 8 Y 128 31 63 -def @arg30 254 8192 8 Y 0 31 8 -def @arg31 254 8192 3 Y 0 31 8 -def @arg32 254 8192 6 Y 128 31 63 -@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32 -1 1 1 1 1 1 1 1 1 1 1 1 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday -select c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12, -c13, c14, c15, c16, c17, c18, c19, c20, c21, c22, c23, c24, -c25, c26, c27, c28, c29, c30, c31, c32 -into @arg01, @arg02, @arg03, @arg04, @arg05, @arg06, @arg07, @arg08, -@arg09, @arg10, @arg11, @arg12, @arg13, @arg14, @arg15, @arg16, -@arg17, @arg18, @arg19, @arg20, @arg21, @arg22, @arg23, @arg24, -@arg25, @arg26, @arg27, @arg28, @arg29, @arg30, @arg31, @arg32 -from t9 where c1= 0 ; -execute full_info ; -Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr -def @arg01 254 20 1 Y 128 31 63 -def @arg02 254 20 0 Y 128 31 63 -def @arg03 254 20 0 Y 128 31 63 -def @arg04 254 20 0 Y 128 31 63 -def @arg05 254 20 0 Y 128 31 63 -def @arg06 254 20 0 Y 128 31 63 -def @arg07 254 20 0 Y 128 31 63 -def @arg08 254 20 0 Y 128 31 63 -def @arg09 254 20 0 Y 128 31 63 -def @arg10 254 20 0 Y 128 31 63 -def @arg11 254 20 0 Y 128 31 63 -def @arg12 254 20 0 Y 128 31 63 -def @arg13 254 8192 0 Y 128 31 63 -def @arg14 254 8192 0 Y 128 31 63 -def @arg15 254 8192 19 Y 128 31 63 -def @arg16 254 8192 0 Y 128 31 63 -def @arg17 254 20 0 Y 128 31 63 -def @arg18 254 20 0 Y 128 31 63 -def @arg19 254 20 0 Y 128 31 63 -def @arg20 254 8192 0 Y 0 31 8 -def @arg21 254 8192 0 Y 0 31 8 -def @arg22 254 8192 0 Y 0 31 8 -def @arg23 254 8192 0 Y 128 31 63 -def @arg24 254 8192 0 Y 0 31 8 -def @arg25 254 8192 0 Y 128 31 63 -def @arg26 254 8192 0 Y 0 31 8 -def @arg27 254 8192 0 Y 128 31 63 -def @arg28 254 8192 0 Y 0 31 8 -def @arg29 254 8192 0 Y 128 31 63 -def @arg30 254 8192 0 Y 0 31 8 -def @arg31 254 8192 0 Y 0 31 8 -def @arg32 254 8192 0 Y 0 31 8 -@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32 -0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -prepare stmt1 from "select c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12, - c13, c14, c15, c16, c17, c18, c19, c20, c21, c22, c23, c24, - c25, c26, c27, c28, c29, c30, c31, c32 -into @arg01, @arg02, @arg03, @arg04, @arg05, @arg06, @arg07, @arg08, - @arg09, @arg10, @arg11, @arg12, @arg13, @arg14, @arg15, @arg16, - @arg17, @arg18, @arg19, @arg20, @arg21, @arg22, @arg23, @arg24, - @arg25, @arg26, @arg27, @arg28, @arg29, @arg30, @arg31, @arg32 -from t9 where c1= ?" ; -set @my_key= 1 ; -execute stmt1 using @my_key ; -execute full_info ; -Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr -def @arg01 254 20 1 Y 128 31 63 -def @arg02 254 20 1 Y 128 31 63 -def @arg03 254 20 1 Y 128 31 63 -def @arg04 254 20 1 Y 128 31 63 -def @arg05 254 20 1 Y 128 31 63 -def @arg06 254 20 1 Y 128 31 63 -def @arg07 254 20 1 Y 128 31 63 -def @arg08 254 20 1 Y 128 31 63 -def @arg09 254 20 1 Y 128 31 63 -def @arg10 254 20 1 Y 128 31 63 -def @arg11 254 20 1 Y 128 31 63 -def @arg12 254 20 1 Y 128 31 63 -def @arg13 254 8192 10 Y 128 31 63 -def @arg14 254 8192 19 Y 128 31 63 -def @arg15 254 8192 19 Y 128 31 63 -def @arg16 254 8192 8 Y 128 31 63 -def @arg17 254 20 4 Y 128 31 63 -def @arg18 254 20 1 Y 128 31 63 -def @arg19 254 20 1 Y 128 31 63 -def @arg20 254 8192 1 Y 0 31 8 -def @arg21 254 8192 10 Y 0 31 8 -def @arg22 254 8192 30 Y 0 31 8 -def @arg23 254 8192 8 Y 128 31 63 -def @arg24 254 8192 8 Y 0 31 8 -def @arg25 254 8192 4 Y 128 31 63 -def @arg26 254 8192 4 Y 0 31 8 -def @arg27 254 8192 10 Y 128 31 63 -def @arg28 254 8192 10 Y 0 31 8 -def @arg29 254 8192 8 Y 128 31 63 -def @arg30 254 8192 8 Y 0 31 8 -def @arg31 254 8192 3 Y 0 31 8 -def @arg32 254 8192 6 Y 128 31 63 -@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32 -1 1 1 1 1 1 1 1 1 1 1 1 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday -set @my_key= 0 ; -execute stmt1 using @my_key ; -execute full_info ; -Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr -def @arg01 254 20 1 Y 128 31 63 -def @arg02 254 20 0 Y 128 31 63 -def @arg03 254 20 0 Y 128 31 63 -def @arg04 254 20 0 Y 128 31 63 -def @arg05 254 20 0 Y 128 31 63 -def @arg06 254 20 0 Y 128 31 63 -def @arg07 254 20 0 Y 128 31 63 -def @arg08 254 20 0 Y 128 31 63 -def @arg09 254 20 0 Y 128 31 63 -def @arg10 254 20 0 Y 128 31 63 -def @arg11 254 20 0 Y 128 31 63 -def @arg12 254 20 0 Y 128 31 63 -def @arg13 254 8192 0 Y 128 31 63 -def @arg14 254 8192 0 Y 128 31 63 -def @arg15 254 8192 19 Y 128 31 63 -def @arg16 254 8192 0 Y 128 31 63 -def @arg17 254 20 0 Y 128 31 63 -def @arg18 254 20 0 Y 128 31 63 -def @arg19 254 20 0 Y 128 31 63 -def @arg20 254 8192 0 Y 0 31 8 -def @arg21 254 8192 0 Y 0 31 8 -def @arg22 254 8192 0 Y 0 31 8 -def @arg23 254 8192 0 Y 128 31 63 -def @arg24 254 8192 0 Y 0 31 8 -def @arg25 254 8192 0 Y 128 31 63 -def @arg26 254 8192 0 Y 0 31 8 -def @arg27 254 8192 0 Y 128 31 63 -def @arg28 254 8192 0 Y 0 31 8 -def @arg29 254 8192 0 Y 128 31 63 -def @arg30 254 8192 0 Y 0 31 8 -def @arg31 254 8192 0 Y 0 31 8 -def @arg32 254 8192 0 Y 0 31 8 -@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32 -0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -prepare stmt1 from "select c1 into ? from t9 where c1= 1" ; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '? from t9 where c1= 1' at line 1 -test_sequence --- insert into numeric columns -- -insert into t9 -( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values -( 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20 ) ; -set @arg00= 21 ; -insert into t9 -( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values -( @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ) ; -prepare stmt1 from "insert into t9 - ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values - ( 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22 )" ; -execute stmt1 ; -set @arg00= 23; -prepare stmt2 from "insert into t9 - ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values - ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )" ; -execute stmt2 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00 ; -insert into t9 -( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values -( 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, -30.0, 30.0, 30.0 ) ; -set @arg00= 31.0 ; -insert into t9 -( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values -( @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ) ; -prepare stmt1 from "insert into t9 - ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values - ( 32.0, 32.0, 32.0, 32.0, 32.0, 32.0, 32.0, 32.0, - 32.0, 32.0, 32.0 )" ; -execute stmt1 ; -set @arg00= 33.0; -prepare stmt2 from "insert into t9 - ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values - ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )" ; -execute stmt2 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00 ; -insert into t9 -( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values -( '40', '40', '40', '40', '40', '40', '40', '40', -'40', '40', '40' ) ; -set @arg00= '41' ; -insert into t9 -( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values -( @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ) ; -prepare stmt1 from "insert into t9 - ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values - ( '42', '42', '42', '42', '42', '42', '42', '42', - '42', '42', '42' )" ; -execute stmt1 ; -set @arg00= '43'; -prepare stmt2 from "insert into t9 - ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values - ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )" ; -execute stmt2 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00 ; -insert into t9 -( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values -( CAST('50' as binary), CAST('50' as binary), -CAST('50' as binary), CAST('50' as binary), CAST('50' as binary), -CAST('50' as binary), CAST('50' as binary), CAST('50' as binary), -CAST('50' as binary), CAST('50' as binary), CAST('50' as binary) ) ; -set @arg00= CAST('51' as binary) ; -insert into t9 -( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values -( @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ) ; -prepare stmt1 from "insert into t9 - ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values - ( CAST('52' as binary), CAST('52' as binary), - CAST('52' as binary), CAST('52' as binary), CAST('52' as binary), - CAST('52' as binary), CAST('52' as binary), CAST('52' as binary), - CAST('52' as binary), CAST('52' as binary), CAST('52' as binary) )" ; -execute stmt1 ; -set @arg00= CAST('53' as binary) ; -prepare stmt2 from "insert into t9 - ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values - ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )" ; -execute stmt2 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00 ; -set @arg00= 2 ; -set @arg00= NULL ; -insert into t9 -( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values -( 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, -NULL, NULL, NULL ) ; -insert into t9 -( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values -( 61, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ) ; -prepare stmt1 from "insert into t9 - ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values - ( 62, NULL, NULL, NULL, NULL, NULL, NULL, NULL, - NULL, NULL, NULL )" ; -execute stmt1 ; -prepare stmt2 from "insert into t9 - ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values - ( 63, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )" ; -execute stmt2 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00 ; -set @arg00= 8.0 ; -set @arg00= NULL ; -insert into t9 -( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values -( 71, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ) ; -prepare stmt2 from "insert into t9 - ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values - ( 73, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )" ; -execute stmt2 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00 ; -set @arg00= 'abc' ; -set @arg00= NULL ; -insert into t9 -( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values -( 81, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ) ; -prepare stmt2 from "insert into t9 - ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values - ( 83, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )" ; -execute stmt2 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00 ; -select c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 -from t9 where c1 >= 20 -order by c1 ; -c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c12 -20 20 20 20 20 20 20 20 20 20 20.0000 -21 21 21 21 21 21 21 21 21 21 21.0000 -22 22 22 22 22 22 22 22 22 22 22.0000 -23 23 23 23 23 23 23 23 23 23 23.0000 -30 30 30 30 30 30 30 30 30 30 30.0000 -31 31 31 31 31 31 31 31 31 31 31.0000 -32 32 32 32 32 32 32 32 32 32 32.0000 -33 33 33 33 33 33 33 33 33 33 33.0000 -40 40 40 40 40 40 40 40 40 40 40.0000 -41 41 41 41 41 41 41 41 41 41 41.0000 -42 42 42 42 42 42 42 42 42 42 42.0000 -43 43 43 43 43 43 43 43 43 43 43.0000 -50 50 50 50 50 50 50 50 50 50 50.0000 -51 51 51 51 51 51 51 51 51 51 51.0000 -52 52 52 52 52 52 52 52 52 52 52.0000 -53 53 53 53 53 53 53 53 53 53 53.0000 -60 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -61 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -62 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -63 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -71 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -73 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -81 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -83 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -test_sequence --- select .. where numeric column = .. -- -set @arg00= 20; -select 'true' as found from t9 -where c1= 20 and c2= 20 and c3= 20 and c4= 20 and c5= 20 and c6= 20 and c7= 20 -and c8= 20 and c9= 20 and c10= 20 and c12= 20; -found -true -select 'true' as found from t9 -where c1= @arg00 and c2= @arg00 and c3= @arg00 and c4= @arg00 and c5= @arg00 -and c6= @arg00 and c7= @arg00 and c8= @arg00 and c9= @arg00 and c10= @arg00 -and c12= @arg00; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and c2= 20 and c3= 20 and c4= 20 and c5= 20 and c6= 20 and c7= 20 - and c8= 20 and c9= 20 and c10= 20 and c12= 20 "; -execute stmt1 ; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= ? and c2= ? and c3= ? and c4= ? and c5= ? - and c6= ? and c7= ? and c8= ? and c9= ? and c10= ? - and c12= ? "; -execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00 ; -found -true -set @arg00= 20.0; -select 'true' as found from t9 -where c1= 20.0 and c2= 20.0 and c3= 20.0 and c4= 20.0 and c5= 20.0 and c6= 20.0 -and c7= 20.0 and c8= 20.0 and c9= 20.0 and c10= 20.0 and c12= 20.0; -found -true -select 'true' as found from t9 -where c1= @arg00 and c2= @arg00 and c3= @arg00 and c4= @arg00 and c5= @arg00 -and c6= @arg00 and c7= @arg00 and c8= @arg00 and c9= @arg00 and c10= @arg00 -and c12= @arg00; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20.0 and c2= 20.0 and c3= 20.0 and c4= 20.0 and c5= 20.0 and c6= 20.0 - and c7= 20.0 and c8= 20.0 and c9= 20.0 and c10= 20.0 and c12= 20.0 "; -execute stmt1 ; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= ? and c2= ? and c3= ? and c4= ? and c5= ? - and c6= ? and c7= ? and c8= ? and c9= ? and c10= ? - and c12= ? "; -execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00 ; -found -true -select 'true' as found from t9 -where c1= '20' and c2= '20' and c3= '20' and c4= '20' and c5= '20' and c6= '20' - and c7= '20' and c8= '20' and c9= '20' and c10= '20' and c12= '20'; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= '20' and c2= '20' and c3= '20' and c4= '20' and c5= '20' and c6= '20' - and c7= '20' and c8= '20' and c9= '20' and c10= '20' and c12= '20' "; -execute stmt1 ; -found -true -set @arg00= '20'; -select 'true' as found from t9 -where c1= @arg00 and c2= @arg00 and c3= @arg00 and c4= @arg00 and c5= @arg00 -and c6= @arg00 and c7= @arg00 and c8= @arg00 and c9= @arg00 and c10= @arg00 -and c12= @arg00; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= ? and c2= ? and c3= ? and c4= ? and c5= ? - and c6= ? and c7= ? and c8= ? and c9= ? and c10= ? - and c12= ? "; -execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00 ; -found -true -select 'true' as found from t9 -where c1= CAST('20' as binary) and c2= CAST('20' as binary) and -c3= CAST('20' as binary) and c4= CAST('20' as binary) and -c5= CAST('20' as binary) and c6= CAST('20' as binary) and -c7= CAST('20' as binary) and c8= CAST('20' as binary) and -c9= CAST('20' as binary) and c10= CAST('20' as binary) and -c12= CAST('20' as binary); -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= CAST('20' as binary) and c2= CAST('20' as binary) and - c3= CAST('20' as binary) and c4= CAST('20' as binary) and - c5= CAST('20' as binary) and c6= CAST('20' as binary) and - c7= CAST('20' as binary) and c8= CAST('20' as binary) and - c9= CAST('20' as binary) and c10= CAST('20' as binary) and - c12= CAST('20' as binary) "; -execute stmt1 ; -found -true -set @arg00= CAST('20' as binary) ; -select 'true' as found from t9 -where c1= @arg00 and c2= @arg00 and c3= @arg00 and c4= @arg00 and c5= @arg00 -and c6= @arg00 and c7= @arg00 and c8= @arg00 and c9= @arg00 and c10= @arg00 -and c12= @arg00; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= ? and c2= ? and c3= ? and c4= ? and c5= ? - and c6= ? and c7= ? and c8= ? and c9= ? and c10= ? - and c12= ? "; -execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00 ; -found -true -delete from t9 ; -test_sequence --- some numeric overflow experiments -- -prepare my_insert from "insert into t9 - ( c21, c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values - ( 'O', ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )" ; -prepare my_select from "select c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 -from t9 where c21 = 'O' "; -prepare my_delete from "delete from t9 where c21 = 'O' "; -set @arg00= 9223372036854775807 ; -execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ; -Warnings: -Warning 1264 Data truncated; out of range for column 'c1' at row 1 -Warning 1264 Data truncated; out of range for column 'c2' at row 1 -Warning 1264 Data truncated; out of range for column 'c3' at row 1 -Warning 1264 Data truncated; out of range for column 'c4' at row 1 -Warning 1264 Data truncated; out of range for column 'c5' at row 1 -Warning 1264 Data truncated; out of range for column 'c12' at row 1 -execute my_select ; -c1 127 -c2 32767 -c3 8388607 -c4 2147483647 -c5 2147483647 -c6 9223372036854775807 -c7 9.22337e+18 -c8 9.22337203685478e+18 -c9 9.22337203685478e+18 -c10 9.22337203685478e+18 -c12 99999.9999 -execute my_delete ; -set @arg00= '9223372036854775807' ; -execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ; -Warnings: -Warning 1264 Data truncated; out of range for column 'c1' at row 1 -Warning 1264 Data truncated; out of range for column 'c2' at row 1 -Warning 1264 Data truncated; out of range for column 'c3' at row 1 -Warning 1265 Data truncated for column 'c4' at row 1 -Warning 1265 Data truncated for column 'c5' at row 1 -Warning 1264 Data truncated; out of range for column 'c12' at row 1 -execute my_select ; -c1 127 -c2 32767 -c3 8388607 -c4 2147483647 -c5 2147483647 -c6 9223372036854775807 -c7 9.22337e+18 -c8 9.22337203685478e+18 -c9 9.22337203685478e+18 -c10 9.22337203685478e+18 -c12 99999.9999 -execute my_delete ; -set @arg00= -9223372036854775808 ; -execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ; -Warnings: -Warning 1264 Data truncated; out of range for column 'c1' at row 1 -Warning 1264 Data truncated; out of range for column 'c2' at row 1 -Warning 1264 Data truncated; out of range for column 'c3' at row 1 -Warning 1264 Data truncated; out of range for column 'c4' at row 1 -Warning 1264 Data truncated; out of range for column 'c5' at row 1 -Warning 1264 Data truncated; out of range for column 'c12' at row 1 -execute my_select ; -c1 -128 -c2 -32768 -c3 -8388608 -c4 -2147483648 -c5 -2147483648 -c6 -9223372036854775808 -c7 -9.22337e+18 -c8 -9.22337203685478e+18 -c9 -9.22337203685478e+18 -c10 -9.22337203685478e+18 -c12 -9999.9999 -execute my_delete ; -set @arg00= '-9223372036854775808' ; -execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ; -Warnings: -Warning 1264 Data truncated; out of range for column 'c1' at row 1 -Warning 1264 Data truncated; out of range for column 'c2' at row 1 -Warning 1264 Data truncated; out of range for column 'c3' at row 1 -Warning 1265 Data truncated for column 'c4' at row 1 -Warning 1265 Data truncated for column 'c5' at row 1 -Warning 1264 Data truncated; out of range for column 'c12' at row 1 -execute my_select ; -c1 -128 -c2 -32768 -c3 -8388608 -c4 -2147483648 -c5 -2147483648 -c6 -9223372036854775808 -c7 -9.22337e+18 -c8 -9.22337203685478e+18 -c9 -9.22337203685478e+18 -c10 -9.22337203685478e+18 -c12 -9999.9999 -execute my_delete ; -set @arg00= 1.11111111111111111111e+50 ; -execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ; -Warnings: -Warning 1264 Data truncated; out of range for column 'c1' at row 1 -Warning 1264 Data truncated; out of range for column 'c2' at row 1 -Warning 1264 Data truncated; out of range for column 'c3' at row 1 -Warning 1264 Data truncated; out of range for column 'c4' at row 1 -Warning 1264 Data truncated; out of range for column 'c5' at row 1 -Warning 1264 Data truncated; out of range for column 'c6' at row 1 -Warning 1264 Data truncated; out of range for column 'c7' at row 1 -Warning 1264 Data truncated; out of range for column 'c12' at row 1 -execute my_select ; -c1 127 -c2 32767 -c3 8388607 -c4 2147483647 -c5 2147483647 -c6 9223372036854775807 -c7 3.40282e+38 -c8 1.11111111111111e+50 -c9 1.11111111111111e+50 -c10 1.11111111111111e+50 -c12 99999.9999 -execute my_delete ; -set @arg00= '1.11111111111111111111e+50' ; -execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ; -Warnings: -Warning 1265 Data truncated for column 'c1' at row 1 -Warning 1265 Data truncated for column 'c2' at row 1 -Warning 1265 Data truncated for column 'c3' at row 1 -Warning 1265 Data truncated for column 'c4' at row 1 -Warning 1265 Data truncated for column 'c5' at row 1 -Warning 1265 Data truncated for column 'c6' at row 1 -Warning 1264 Data truncated; out of range for column 'c7' at row 1 -Warning 1264 Data truncated; out of range for column 'c12' at row 1 -execute my_select ; -c1 1 -c2 1 -c3 1 -c4 1 -c5 1 -c6 1 -c7 3.40282e+38 -c8 1.11111111111111e+50 -c9 1.11111111111111e+50 -c10 1.11111111111111e+50 -c12 99999.9999 -execute my_delete ; -set @arg00= -1.11111111111111111111e+50 ; -execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ; -Warnings: -Warning 1264 Data truncated; out of range for column 'c1' at row 1 -Warning 1264 Data truncated; out of range for column 'c2' at row 1 -Warning 1264 Data truncated; out of range for column 'c3' at row 1 -Warning 1264 Data truncated; out of range for column 'c4' at row 1 -Warning 1264 Data truncated; out of range for column 'c5' at row 1 -Warning 1264 Data truncated; out of range for column 'c6' at row 1 -Warning 1264 Data truncated; out of range for column 'c7' at row 1 -Warning 1264 Data truncated; out of range for column 'c12' at row 1 -execute my_select ; -c1 -128 -c2 -32768 -c3 -8388608 -c4 -2147483648 -c5 -2147483648 -c6 -9223372036854775808 -c7 -3.40282e+38 -c8 -1.11111111111111e+50 -c9 -1.11111111111111e+50 -c10 -1.11111111111111e+50 -c12 -9999.9999 -execute my_delete ; -set @arg00= '-1.11111111111111111111e+50' ; -execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ; -Warnings: -Warning 1265 Data truncated for column 'c1' at row 1 -Warning 1265 Data truncated for column 'c2' at row 1 -Warning 1265 Data truncated for column 'c3' at row 1 -Warning 1265 Data truncated for column 'c4' at row 1 -Warning 1265 Data truncated for column 'c5' at row 1 -Warning 1265 Data truncated for column 'c6' at row 1 -Warning 1264 Data truncated; out of range for column 'c7' at row 1 -Warning 1264 Data truncated; out of range for column 'c12' at row 1 -execute my_select ; -c1 -1 -c2 -1 -c3 -1 -c4 -1 -c5 -1 -c6 -1 -c7 -3.40282e+38 -c8 -1.11111111111111e+50 -c9 -1.11111111111111e+50 -c10 -1.11111111111111e+50 -c12 -9999.9999 -execute my_delete ; -test_sequence --- insert into string columns -- -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -select c1, c20, c21, c22, c23, c24, c25, c26, c27, c28, c29, c30 -from t9 where c1 >= 20 -order by c1 ; -c1 c20 c21 c22 c23 c24 c25 c26 c27 c28 c29 c30 -20 2 20 20 20 20 20 20 20 20 20 20 -21 2 21 21 21 21 21 21 21 21 21 21 -22 2 22 22 22 22 22 22 22 22 22 22 -23 2 23 23 23 23 23 23 23 23 23 23 -30 3 30 30 30 30 30 30 30 30 30 30 -31 3 31 31 31 31 31 31 31 31 31 31 -32 3 32 32 32 32 32 32 32 32 32 32 -33 3 33 33 33 33 33 33 33 33 33 33 -40 4 40 40 40 40 40 40 40 40 40 40 -41 4 41 41 41 41 41 41 41 41 41 41 -42 4 42 42 42 42 42 42 42 42 42 42 -43 4 43 43 43 43 43 43 43 43 43 43 -50 5 50 50 50.00 50.00 50.00 50.00 50.00 50.00 50.00 50.00 -51 5 51 51 51 51 51 51 51 51 51 51 -52 5 52 52 52.00 52.00 52.00 52.00 52.00 52.00 52.00 52.00 -53 5 53 53 53.00 53.00 53.00 53.00 53.00 53.00 53.00 53.00 -54 5 54 54 54.00 54.00 54.00 54.00 54.00 54.00 54.00 54.00 -55 5 55 55 55 55 55 55 55 55 55 55 -56 6 56 56 56.00 56.00 56.00 56.00 56.00 56.00 56.00 56.00 -57 6 57 57 57.00 57.00 57.00 57.00 57.00 57.00 57.00 57.00 -60 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -61 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -62 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -63 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -71 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -73 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -81 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -83 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -test_sequence --- select .. where string column = .. -- -set @arg00= '20'; -select 'true' as found from t9 -where c1= 20 and concat(c20,substr('20',1+length(c20)))= '20' and c21= '20' and -c22= '20' and c23= '20' and c24= '20' and c25= '20' and c26= '20' and -c27= '20' and c28= '20' and c29= '20' and c30= '20' ; -found -true -select 'true' as found from t9 -where c1= 20 and concat(c20,substr(@arg00,1+length(c20)))= @arg00 and -c21= @arg00 and c22= @arg00 and c23= @arg00 and c25= @arg00 and -c26= @arg00 and c27= @arg00 and c28= @arg00 and c29= @arg00 and c30= @arg00; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and concat(c20,substr('20',1+length(c20)))= '20' and c21= '20' and - c22= '20' and c23= '20' and c24= '20' and c25= '20' and c26= '20' and - c27= '20' and c28= '20' and c29= '20' and c30= '20'" ; -execute stmt1 ; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and concat(c20,substr(?,1+length(c20)))= ? and - c21= ? and c22= ? and c23= ? and c25= ? and - c26= ? and c27= ? and c28= ? and c29= ? and c30= ?" ; -execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ; -found -true -set @arg00= CAST('20' as binary); -select 'true' as found from t9 -where c1= 20 and concat(c20,substr(CAST('20' as binary),1+length(c20))) -= CAST('20' as binary) and c21= CAST('20' as binary) -and c22= CAST('20' as binary) and c23= CAST('20' as binary) and -c24= CAST('20' as binary) and c25= CAST('20' as binary) and -c26= CAST('20' as binary) and c27= CAST('20' as binary) and -c28= CAST('20' as binary) and c29= CAST('20' as binary) and -c30= CAST('20' as binary) ; -found -true -select 'true' as found from t9 -where c1= 20 and concat(c20,substr(@arg00,1+length(c20))) = @arg00 and -c21= @arg00 and c22= @arg00 and c23= @arg00 and c25= @arg00 and -c26= @arg00 and c27= @arg00 and c28= @arg00 and c29= @arg00 and -c30= @arg00; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and concat(c20,substr(CAST('20' as binary),1+length(c20))) - = CAST('20' as binary) and c21= CAST('20' as binary) - and c22= CAST('20' as binary) and c23= CAST('20' as binary) and - c24= CAST('20' as binary) and c25= CAST('20' as binary) and - c26= CAST('20' as binary) and c27= CAST('20' as binary) and - c28= CAST('20' as binary) and c29= CAST('20' as binary) and - c30= CAST('20' as binary)" ; -execute stmt1 ; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and concat(c20,substr(?,1+length(c20))) = ? and c21= ? and - c22= ? and c23= ? and c25= ? and c26= ? and c27= ? and c28= ? and - c29= ? and c30= ?"; -execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ; -found -true -set @arg00= 20; -select 'true' as found from t9 -where c1= 20 and concat(c20,substr(20,1+length(c20)))= 20 and c21= 20 and -c22= 20 and c23= 20 and c24= 20 and c25= 20 and c26= 20 and -c27= 20 and c28= 20 and c29= 20 and c30= 20 ; -found -true -select 'true' as found from t9 -where c1= 20 and concat(c20,substr(@arg00,1+length(c20)))= @arg00 and -c21= @arg00 and c22= @arg00 and c23= @arg00 and c25= @arg00 and -c26= @arg00 and c27= @arg00 and c28= @arg00 and c29= @arg00 and c30= @arg00; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and concat(c20,substr(20,1+length(c20)))= 20 and c21= 20 and - c22= 20 and c23= 20 and c24= 20 and c25= 20 and c26= 20 and - c27= 20 and c28= 20 and c29= 20 and c30= 20" ; -execute stmt1 ; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and concat(c20,substr(?,1+length(c20)))= ? and - c21= ? and c22= ? and c23= ? and c25= ? and - c26= ? and c27= ? and c28= ? and c29= ? and c30= ?" ; -execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ; -found -true -set @arg00= 20.0; -select 'true' as found from t9 -where c1= 20 and concat(c20,substr(20.0,1+length(c20)))= 20.0 and c21= 20.0 and -c22= 20.0 and c23= 20.0 and c24= 20.0 and c25= 20.0 and c26= 20.0 and -c27= 20.0 and c28= 20.0 and c29= 20.0 and c30= 20.0 ; -found -true -select 'true' as found from t9 -where c1= 20 and concat(c20,substr(@arg00,1+length(c20)))= @arg00 and -c21= @arg00 and c22= @arg00 and c23= @arg00 and c25= @arg00 and -c26= @arg00 and c27= @arg00 and c28= @arg00 and c29= @arg00 and c30= @arg00; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and concat(c20,substr(20.0,1+length(c20)))= 20.0 and c21= 20.0 and - c22= 20.0 and c23= 20.0 and c24= 20.0 and c25= 20.0 and c26= 20.0 and - c27= 20.0 and c28= 20.0 and c29= 20.0 and c30= 20.0" ; -execute stmt1 ; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and concat(c20,substr(?,1+length(c20)))= ? and - c21= ? and c22= ? and c23= ? and c25= ? and - c26= ? and c27= ? and c28= ? and c29= ? and c30= ?" ; -execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ; -found -true -delete from t9 ; -test_sequence --- insert into date/time columns -- -Warnings: -Warning 1265 Data truncated for column 'c17' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c17' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c17' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c17' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c17' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c17' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c17' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c17' at row 1 -Warnings: -Warning 1264 Data truncated; out of range for column 'c13' at row 1 -Warning 1265 Data truncated for column 'c14' at row 1 -Warning 1265 Data truncated for column 'c15' at row 1 -Warning 1264 Data truncated; out of range for column 'c16' at row 1 -Warning 1264 Data truncated; out of range for column 'c17' at row 1 -Warnings: -Warning 1264 Data truncated; out of range for column 'c13' at row 1 -Warning 1265 Data truncated for column 'c14' at row 1 -Warning 1265 Data truncated for column 'c15' at row 1 -Warning 1264 Data truncated; out of range for column 'c16' at row 1 -Warning 1264 Data truncated; out of range for column 'c17' at row 1 -Warnings: -Warning 1264 Data truncated; out of range for column 'c13' at row 1 -Warning 1265 Data truncated for column 'c14' at row 1 -Warning 1265 Data truncated for column 'c15' at row 1 -Warning 1264 Data truncated; out of range for column 'c16' at row 1 -Warning 1264 Data truncated; out of range for column 'c17' at row 1 -Warnings: -Warning 1264 Data truncated; out of range for column 'c13' at row 1 -Warning 1265 Data truncated for column 'c14' at row 1 -Warning 1265 Data truncated for column 'c15' at row 1 -Warning 1264 Data truncated; out of range for column 'c16' at row 1 -Warning 1264 Data truncated; out of range for column 'c17' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c15' at row 1 -Warning 1264 Data truncated; out of range for column 'c16' at row 1 -Warning 1264 Data truncated; out of range for column 'c17' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c15' at row 1 -Warning 1264 Data truncated; out of range for column 'c16' at row 1 -Warning 1264 Data truncated; out of range for column 'c17' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c15' at row 1 -Warning 1264 Data truncated; out of range for column 'c16' at row 1 -Warning 1264 Data truncated; out of range for column 'c17' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c15' at row 1 -Warning 1264 Data truncated; out of range for column 'c16' at row 1 -Warning 1264 Data truncated; out of range for column 'c17' at row 1 -select c1, c13, c14, c15, c16, c17 from t9 order by c1 ; -c1 c13 c14 c15 c16 c17 -20 1991-01-01 1991-01-01 01:01:01 1991-01-01 01:01:01 01:01:01 1991 -21 1991-01-01 1991-01-01 01:01:01 1991-01-01 01:01:01 01:01:01 1991 -22 1991-01-01 1991-01-01 01:01:01 1991-01-01 01:01:01 01:01:01 1991 -23 1991-01-01 1991-01-01 01:01:01 1991-01-01 01:01:01 01:01:01 1991 -30 1991-01-01 1991-01-01 01:01:01 1991-01-01 01:01:01 01:01:01 1991 -31 1991-01-01 1991-01-01 01:01:01 1991-01-01 01:01:01 01:01:01 1991 -32 1991-01-01 1991-01-01 01:01:01 1991-01-01 01:01:01 01:01:01 1991 -33 1991-01-01 1991-01-01 01:01:01 1991-01-01 01:01:01 01:01:01 1991 -40 0000-00-00 0000-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 -41 0000-00-00 0000-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 -42 0000-00-00 0000-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 -43 0000-00-00 0000-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 -50 2001-00-00 2001-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 -51 0010-00-00 0010-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 -52 2001-00-00 2001-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 -53 2001-00-00 2001-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 -60 NULL NULL 1991-01-01 01:01:01 NULL NULL -61 NULL NULL 1991-01-01 01:01:01 NULL NULL -62 NULL NULL 1991-01-01 01:01:01 NULL NULL -63 NULL NULL 1991-01-01 01:01:01 NULL NULL -71 NULL NULL 1991-01-01 01:01:01 NULL NULL -73 NULL NULL 1991-01-01 01:01:01 NULL NULL -81 NULL NULL 1991-01-01 01:01:01 NULL NULL -83 NULL NULL 1991-01-01 01:01:01 NULL NULL -test_sequence --- select .. where date/time column = .. -- -set @arg00= '1991-01-01 01:01:01' ; -select 'true' as found from t9 -where c1= 20 and c13= '1991-01-01 01:01:01' and c14= '1991-01-01 01:01:01' and -c15= '1991-01-01 01:01:01' and c16= '1991-01-01 01:01:01' and -c17= '1991-01-01 01:01:01' ; -found -true -select 'true' as found from t9 -where c1= 20 and c13= @arg00 and c14= @arg00 and c15= @arg00 and c16= @arg00 -and c17= @arg00 ; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and c13= '1991-01-01 01:01:01' and c14= '1991-01-01 01:01:01' and - c15= '1991-01-01 01:01:01' and c16= '1991-01-01 01:01:01' and - c17= '1991-01-01 01:01:01'" ; -execute stmt1 ; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and c13= ? and c14= ? and c15= ? and c16= ? and c17= ?" ; -execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00 ; -found -true -set @arg00= CAST('1991-01-01 01:01:01' as datetime) ; -select 'true' as found from t9 -where c1= 20 and c13= CAST('1991-01-01 01:01:01' as datetime) and -c14= CAST('1991-01-01 01:01:01' as datetime) and -c15= CAST('1991-01-01 01:01:01' as datetime) and -c16= CAST('1991-01-01 01:01:01' as datetime) and -c17= CAST('1991-01-01 01:01:01' as datetime) ; -found -true -select 'true' as found from t9 -where c1= 20 and c13= @arg00 and c14= @arg00 and c15= @arg00 and c16= @arg00 -and c17= @arg00 ; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and c13= CAST('1991-01-01 01:01:01' as datetime) and - c14= CAST('1991-01-01 01:01:01' as datetime) and - c15= CAST('1991-01-01 01:01:01' as datetime) and - c16= CAST('1991-01-01 01:01:01' as datetime) and - c17= CAST('1991-01-01 01:01:01' as datetime)" ; -execute stmt1 ; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and c13= ? and c14= ? and c15= ? and c16= ? and c17= ?" ; -execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00 ; -found -true -set @arg00= 1991 ; -select 'true' as found from t9 -where c1= 20 and c17= 1991 ; -found -true -select 'true' as found from t9 -where c1= 20 and c17= @arg00 ; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and c17= 1991" ; -execute stmt1 ; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and c17= ?" ; -execute stmt1 using @arg00 ; -found -true -set @arg00= 1.991e+3 ; -select 'true' as found from t9 -where c1= 20 and abs(c17 - 1.991e+3) < 0.01 ; -found -true -select 'true' as found from t9 -where c1= 20 and abs(c17 - @arg00) < 0.01 ; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and abs(c17 - 1.991e+3) < 0.01" ; -execute stmt1 ; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and abs(c17 - ?) < 0.01" ; -execute stmt1 using @arg00 ; -found -true -drop table t1, t9 ; -create table t1 -( -a int, b varchar(30), -primary key(a) -) ENGINE = MERGE UNION=(t1_1,t1_2) -INSERT_METHOD=LAST; -create table t9 -( -c1 tinyint, c2 smallint, c3 mediumint, c4 int, -c5 integer, c6 bigint, c7 float, c8 double, -c9 double precision, c10 real, c11 decimal(7, 4), c12 numeric(8, 4), -c13 date, c14 datetime, c15 timestamp(14), c16 time, -c17 year, c18 bit, c19 bool, c20 char, -c21 char(10), c22 varchar(30), c23 tinyblob, c24 tinytext, -c25 blob, c26 text, c27 mediumblob, c28 mediumtext, -c29 longblob, c30 longtext, c31 enum('one', 'two', 'three'), -c32 set('monday', 'tuesday', 'wednesday'), -primary key(c1) -) ENGINE = MERGE UNION=(t9_1,t9_2) -INSERT_METHOD=LAST; -delete from t1 ; -insert into t1 values (1,'one'); -insert into t1 values (2,'two'); -insert into t1 values (3,'three'); -insert into t1 values (4,'four'); -commit ; -delete from t9 ; -insert into t9 -set c1= 1, c2= 1, c3= 1, c4= 1, c5= 1, c6= 1, c7= 1, c8= 1, c9= 1, -c10= 1, c11= 1, c12 = 1, -c13= '2004-02-29', c14= '2004-02-29 11:11:11', c15= '2004-02-29 11:11:11', -c16= '11:11:11', c17= '2004', -c18= 1, c19=true, c20= 'a', c21= '123456789a', -c22= '123456789a123456789b123456789c', c23= 'tinyblob', c24= 'tinytext', -c25= 'blob', c26= 'text', c27= 'mediumblob', c28= 'mediumtext', -c29= 'longblob', c30= 'longtext', c31='one', c32= 'monday'; -insert into t9 -set c1= 9, c2= 9, c3= 9, c4= 9, c5= 9, c6= 9, c7= 9, c8= 9, c9= 9, -c10= 9, c11= 9, c12 = 9, -c13= '2004-02-29', c14= '2004-02-29 11:11:11', c15= '2004-02-29 11:11:11', -c16= '11:11:11', c17= '2004', -c18= 1, c19=false, c20= 'a', c21= '123456789a', -c22= '123456789a123456789b123456789c', c23= 'tinyblob', c24= 'tinytext', -c25= 'blob', c26= 'text', c27= 'mediumblob', c28= 'mediumtext', -c29= 'longblob', c30= 'longtext', c31='two', c32= 'tuesday'; -commit ; -test_sequence ------- simple select tests ------ -prepare stmt1 from ' select * from t9 order by c1 ' ; -execute stmt1; -Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr -def test t9 t9 c1 c1 1 4 1 N 49155 0 63 -def test t9 t9 c2 c2 2 6 1 Y 32768 0 63 -def test t9 t9 c3 c3 9 9 1 Y 32768 0 63 -def test t9 t9 c4 c4 3 11 1 Y 32768 0 63 -def test t9 t9 c5 c5 3 11 1 Y 32768 0 63 -def test t9 t9 c6 c6 8 20 1 Y 32768 0 63 -def test t9 t9 c7 c7 4 12 1 Y 32768 31 63 -def test t9 t9 c8 c8 5 22 1 Y 32768 31 63 -def test t9 t9 c9 c9 5 22 1 Y 32768 31 63 -def test t9 t9 c10 c10 5 22 1 Y 32768 31 63 -def test t9 t9 c11 c11 0 9 6 Y 32768 4 63 -def test t9 t9 c12 c12 0 10 6 Y 32768 4 63 -def test t9 t9 c13 c13 10 10 10 Y 128 0 63 -def test t9 t9 c14 c14 12 19 19 Y 128 0 63 -def test t9 t9 c15 c15 7 19 19 N 1249 0 63 -def test t9 t9 c16 c16 11 8 8 Y 128 0 63 -def test t9 t9 c17 c17 13 4 4 Y 32864 0 63 -def test t9 t9 c18 c18 1 1 1 Y 32768 0 63 -def test t9 t9 c19 c19 1 1 1 Y 32768 0 63 -def test t9 t9 c20 c20 254 1 1 Y 0 0 8 -def test t9 t9 c21 c21 253 10 10 Y 0 0 8 -def test t9 t9 c22 c22 253 30 30 Y 0 0 8 -def test t9 t9 c23 c23 252 255 8 Y 144 0 63 -def test t9 t9 c24 c24 252 255 8 Y 16 0 8 -def test t9 t9 c25 c25 252 65535 4 Y 144 0 63 -def test t9 t9 c26 c26 252 65535 4 Y 16 0 8 -def test t9 t9 c27 c27 252 16777215 10 Y 144 0 63 -def test t9 t9 c28 c28 252 16777215 10 Y 16 0 8 -def test t9 t9 c29 c29 252 16777215 8 Y 144 0 63 -def test t9 t9 c30 c30 252 16777215 8 Y 16 0 8 -def test t9 t9 c31 c31 254 5 3 Y 256 0 8 -def test t9 t9 c32 c32 254 24 7 Y 2048 0 8 -c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 c13 c14 c15 c16 c17 c18 c19 c20 c21 c22 c23 c24 c25 c26 c27 c28 c29 c30 c31 c32 -1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday -9 9 9 9 9 9 9 9 9 9 9.0000 9.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 0 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext two tuesday -set @arg00='SELECT' ; -prepare stmt1 from ' ? a from t1 where a=1 '; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '? a from t1 where a=1' at line 1 -set @arg00=1 ; -select @arg00, b from t1 where a=1 ; -@arg00 b -1 one -prepare stmt1 from ' select ?, b from t1 where a=1 ' ; -execute stmt1 using @arg00 ; -? b -1 one -set @arg00='lion' ; -select @arg00, b from t1 where a=1 ; -@arg00 b -lion one -prepare stmt1 from ' select ?, b from t1 where a=1 ' ; -execute stmt1 using @arg00 ; -? b -lion one -set @arg00=NULL ; -select @arg00, b from t1 where a=1 ; -@arg00 b -NULL one -prepare stmt1 from ' select ?, b from t1 where a=1 ' ; -execute stmt1 using @arg00 ; -? b -NULL one -set @arg00=1 ; -select b, a - @arg00 from t1 where a=1 ; -b a - @arg00 -one 0 -prepare stmt1 from ' select b, a - ? from t1 where a=1 ' ; -execute stmt1 using @arg00 ; -b a - ? -one 0 -set @arg00=null ; -select @arg00 as my_col ; -my_col -NULL -prepare stmt1 from ' select ? as my_col'; -execute stmt1 using @arg00 ; -my_col -NULL -select @arg00 + 1 as my_col ; -my_col -NULL -prepare stmt1 from ' select ? + 1 as my_col'; -execute stmt1 using @arg00 ; -my_col -NULL -select 1 + @arg00 as my_col ; -my_col -NULL -prepare stmt1 from ' select 1 + ? as my_col'; -execute stmt1 using @arg00 ; -my_col -NULL -set @arg00='MySQL' ; -select substr(@arg00,1,2) from t1 where a=1 ; -substr(@arg00,1,2) -My -prepare stmt1 from ' select substr(?,1,2) from t1 where a=1 ' ; -execute stmt1 using @arg00 ; -substr(?,1,2) -My -set @arg00=3 ; -select substr('MySQL',@arg00,5) from t1 where a=1 ; -substr('MySQL',@arg00,5) -SQL -prepare stmt1 from ' select substr(''MySQL'',?,5) from t1 where a=1 ' ; -execute stmt1 using @arg00 ; -substr('MySQL',?,5) -SQL -select substr('MySQL',1,@arg00) from t1 where a=1 ; -substr('MySQL',1,@arg00) -MyS -prepare stmt1 from ' select substr(''MySQL'',1,?) from t1 where a=1 ' ; -execute stmt1 using @arg00 ; -substr('MySQL',1,?) -MyS -set @arg00='MySQL' ; -select a , concat(@arg00,b) from t1 order by a; -a concat(@arg00,b) -1 MySQLone -2 MySQLtwo -3 MySQLthree -4 MySQLfour -prepare stmt1 from ' select a , concat(?,b) from t1 order by a ' ; -execute stmt1 using @arg00; -a concat(?,b) -1 MySQLone -2 MySQLtwo -3 MySQLthree -4 MySQLfour -select a , concat(b,@arg00) from t1 order by a ; -a concat(b,@arg00) -1 oneMySQL -2 twoMySQL -3 threeMySQL -4 fourMySQL -prepare stmt1 from ' select a , concat(b,?) from t1 order by a ' ; -execute stmt1 using @arg00; -a concat(b,?) -1 oneMySQL -2 twoMySQL -3 threeMySQL -4 fourMySQL -set @arg00='MySQL' ; -select group_concat(@arg00,b order by a) from t1 -group by 'a' ; -group_concat(@arg00,b order by a) -MySQLone,MySQLtwo,MySQLthree,MySQLfour -prepare stmt1 from ' select group_concat(?,b order by a) from t1 -group by ''a'' ' ; -execute stmt1 using @arg00; -group_concat(?,b order by a) -MySQLone,MySQLtwo,MySQLthree,MySQLfour -select group_concat(b,@arg00 order by a) from t1 -group by 'a' ; -group_concat(b,@arg00 order by a) -oneMySQL,twoMySQL,threeMySQL,fourMySQL -prepare stmt1 from ' select group_concat(b,? order by a) from t1 -group by ''a'' ' ; -execute stmt1 using @arg00; -group_concat(b,? order by a) -oneMySQL,twoMySQL,threeMySQL,fourMySQL -set @arg00='first' ; -set @arg01='second' ; -set @arg02=NULL; -select @arg00, @arg01 from t1 where a=1 ; -@arg00 @arg01 -first second -prepare stmt1 from ' select ?, ? from t1 where a=1 ' ; -execute stmt1 using @arg00, @arg01 ; -? ? -first second -execute stmt1 using @arg02, @arg01 ; -? ? -NULL second -execute stmt1 using @arg00, @arg02 ; -? ? -first NULL -execute stmt1 using @arg02, @arg02 ; -? ? -NULL NULL -drop table if exists t5 ; -create table t5 (id1 int(11) not null default '0', -value2 varchar(100), value1 varchar(100)) ; -insert into t5 values (1,'hh','hh'),(2,'hh','hh'), -(1,'ii','ii'),(2,'ii','ii') ; -prepare stmt1 from ' select id1,value1 from t5 where id1=? or value1=? order by id1,value1 ' ; -set @arg00=1 ; -set @arg01='hh' ; -execute stmt1 using @arg00, @arg01 ; -id1 value1 -1 hh -1 ii -2 hh -drop table t5 ; -drop table if exists t5 ; -create table t5(session_id char(9) not null) ; -insert into t5 values ('abc') ; -prepare stmt1 from ' select * from t5 -where ?=''1111'' and session_id = ''abc'' ' ; -set @arg00='abc' ; -execute stmt1 using @arg00 ; -session_id -set @arg00='1111' ; -execute stmt1 using @arg00 ; -session_id -abc -set @arg00='abc' ; -execute stmt1 using @arg00 ; -session_id -drop table t5 ; -set @arg00='FROM' ; -select a @arg00 t1 where a=1 ; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@arg00 t1 where a=1' at line 1 -prepare stmt1 from ' select a ? t1 where a=1 ' ; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '? t1 where a=1' at line 1 -set @arg00='t1' ; -select a from @arg00 where a=1 ; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@arg00 where a=1' at line 1 -prepare stmt1 from ' select a from ? where a=1 ' ; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '? where a=1' at line 1 -set @arg00='WHERE' ; -select a from t1 @arg00 a=1 ; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@arg00 a=1' at line 1 -prepare stmt1 from ' select a from t1 ? a=1 ' ; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '? a=1' at line 1 -set @arg00=1 ; -select a FROM t1 where a=@arg00 ; -a -1 -prepare stmt1 from ' select a FROM t1 where a=? ' ; -execute stmt1 using @arg00 ; -a -1 -set @arg00=1000 ; -execute stmt1 using @arg00 ; -a -set @arg00=NULL ; -select a FROM t1 where a=@arg00 ; -a -prepare stmt1 from ' select a FROM t1 where a=? ' ; -execute stmt1 using @arg00 ; -a -set @arg00=4 ; -select a FROM t1 where a=sqrt(@arg00) ; -a -2 -prepare stmt1 from ' select a FROM t1 where a=sqrt(?) ' ; -execute stmt1 using @arg00 ; -a -2 -set @arg00=NULL ; -select a FROM t1 where a=sqrt(@arg00) ; -a -prepare stmt1 from ' select a FROM t1 where a=sqrt(?) ' ; -execute stmt1 using @arg00 ; -a -set @arg00=2 ; -set @arg01=3 ; -select a FROM t1 where a in (@arg00,@arg01) order by a; -a -2 -3 -prepare stmt1 from ' select a FROM t1 where a in (?,?) order by a '; -execute stmt1 using @arg00, @arg01; -a -2 -3 -set @arg00= 'one' ; -set @arg01= 'two' ; -set @arg02= 'five' ; -prepare stmt1 from ' select b FROM t1 where b in (?,?,?) order by b ' ; -execute stmt1 using @arg00, @arg01, @arg02 ; -b -one -two -prepare stmt1 from ' select b FROM t1 where b like ? '; -set @arg00='two' ; -execute stmt1 using @arg00 ; -b -two -set @arg00='tw%' ; -execute stmt1 using @arg00 ; -b -two -set @arg00='%wo' ; -execute stmt1 using @arg00 ; -b -two -set @arg00=null ; -insert into t9 set c1= 0, c5 = NULL ; -select c5 from t9 where c5 > NULL ; -c5 -prepare stmt1 from ' select c5 from t9 where c5 > ? '; -execute stmt1 using @arg00 ; -c5 -select c5 from t9 where c5 < NULL ; -c5 -prepare stmt1 from ' select c5 from t9 where c5 < ? '; -execute stmt1 using @arg00 ; -c5 -select c5 from t9 where c5 = NULL ; -c5 -prepare stmt1 from ' select c5 from t9 where c5 = ? '; -execute stmt1 using @arg00 ; -c5 -select c5 from t9 where c5 <=> NULL ; -c5 -NULL -prepare stmt1 from ' select c5 from t9 where c5 <=> ? '; -execute stmt1 using @arg00 ; -c5 -NULL -delete from t9 where c1= 0 ; -set @arg00='>' ; -select a FROM t1 where a @arg00 1 ; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@arg00 1' at line 1 -prepare stmt1 from ' select a FROM t1 where a ? 1 ' ; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '? 1' at line 1 -set @arg00=1 ; -select a,b FROM t1 where a is not NULL -AND b is not NULL group by a - @arg00 ; -a b -1 one -2 two -3 three -4 four -prepare stmt1 from ' select a,b FROM t1 where a is not NULL -AND b is not NULL group by a - ? ' ; -execute stmt1 using @arg00 ; -a b -1 one -2 two -3 three -4 four -set @arg00='two' ; -select a,b FROM t1 where a is not NULL -AND b is not NULL having b <> @arg00 order by a ; -a b -1 one -3 three -4 four -prepare stmt1 from ' select a,b FROM t1 where a is not NULL -AND b is not NULL having b <> ? order by a ' ; -execute stmt1 using @arg00 ; -a b -1 one -3 three -4 four -set @arg00=1 ; -select a,b FROM t1 where a is not NULL -AND b is not NULL order by a - @arg00 ; -a b -1 one -2 two -3 three -4 four -prepare stmt1 from ' select a,b FROM t1 where a is not NULL -AND b is not NULL order by a - ? ' ; -execute stmt1 using @arg00 ; -a b -1 one -2 two -3 three -4 four -set @arg00=2 ; -select a,b from t1 order by 2 ; -a b -4 four -1 one -3 three -2 two -prepare stmt1 from ' select a,b from t1 -order by ? '; -execute stmt1 using @arg00; -a b -4 four -1 one -3 three -2 two -set @arg00=1 ; -execute stmt1 using @arg00; -a b -1 one -2 two -3 three -4 four -set @arg00=0 ; -execute stmt1 using @arg00; -ERROR 42S22: Unknown column '?' in 'order clause' -set @arg00=1; -prepare stmt1 from ' select a,b from t1 order by a -limit 1 '; -execute stmt1 ; -a b -1 one -prepare stmt1 from ' select a,b from t1 -limit ? '; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '?' at line 2 -set @arg00='b' ; -set @arg01=0 ; -set @arg02=2 ; -set @arg03=2 ; -select sum(a), @arg00 from t1 where a > @arg01 -and b is not null group by substr(b,@arg02) -having sum(a) <> @arg03 ; -sum(a) @arg00 -3 b -1 b -4 b -prepare stmt1 from ' select sum(a), ? from t1 where a > ? -and b is not null group by substr(b,?) -having sum(a) <> ? '; -execute stmt1 using @arg00, @arg01, @arg02, @arg03; -sum(a) ? -3 b -1 b -4 b -test_sequence ------- join tests ------ -select first.a as a1, second.a as a2 -from t1 first, t1 second -where first.a = second.a order by a1 ; -a1 a2 -1 1 -2 2 -3 3 -4 4 -prepare stmt1 from ' select first.a as a1, second.a as a2 - from t1 first, t1 second - where first.a = second.a order by a1 '; -execute stmt1 ; -a1 a2 -1 1 -2 2 -3 3 -4 4 -set @arg00='ABC'; -set @arg01='two'; -set @arg02='one'; -select first.a, @arg00, second.a FROM t1 first, t1 second -where @arg01 = first.b or first.a = second.a or second.b = @arg02 -order by second.a, first.a; -a @arg00 a -1 ABC 1 -2 ABC 1 -3 ABC 1 -4 ABC 1 -2 ABC 2 -2 ABC 3 -3 ABC 3 -2 ABC 4 -4 ABC 4 -prepare stmt1 from ' select first.a, ?, second.a FROM t1 first, t1 second - where ? = first.b or first.a = second.a or second.b = ? - order by second.a, first.a'; -execute stmt1 using @arg00, @arg01, @arg02; -a ? a -1 ABC 1 -2 ABC 1 -3 ABC 1 -4 ABC 1 -2 ABC 2 -2 ABC 3 -3 ABC 3 -2 ABC 4 -4 ABC 4 -drop table if exists t2 ; -create table t2 as select * from t1 ; -set @query1= 'SELECT * FROM t2 join t1 on (t1.a=t2.a) order by t2.a ' ; -set @query2= 'SELECT * FROM t2 natural join t1 order by t2.a ' ; -set @query3= 'SELECT * FROM t2 join t1 using(a) order by t2.a ' ; -set @query4= 'SELECT * FROM t2 left join t1 on(t1.a=t2.a) order by t2.a ' ; -set @query5= 'SELECT * FROM t2 natural left join t1 order by t2.a ' ; -set @query6= 'SELECT * FROM t2 left join t1 using(a) order by t2.a ' ; -set @query7= 'SELECT * FROM t2 right join t1 on(t1.a=t2.a) order by t2.a ' ; -set @query8= 'SELECT * FROM t2 natural right join t1 order by t2.a ' ; -set @query9= 'SELECT * FROM t2 right join t1 using(a) order by t2.a ' ; -the join statement is: -SELECT * FROM t2 right join t1 using(a) order by t2.a -prepare stmt1 from @query9 ; -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -the join statement is: -SELECT * FROM t2 natural right join t1 order by t2.a -prepare stmt1 from @query8 ; -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -the join statement is: -SELECT * FROM t2 right join t1 on(t1.a=t2.a) order by t2.a -prepare stmt1 from @query7 ; -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -the join statement is: -SELECT * FROM t2 left join t1 using(a) order by t2.a -prepare stmt1 from @query6 ; -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -the join statement is: -SELECT * FROM t2 natural left join t1 order by t2.a -prepare stmt1 from @query5 ; -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -the join statement is: -SELECT * FROM t2 left join t1 on(t1.a=t2.a) order by t2.a -prepare stmt1 from @query4 ; -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -the join statement is: -SELECT * FROM t2 join t1 using(a) order by t2.a -prepare stmt1 from @query3 ; -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -the join statement is: -SELECT * FROM t2 natural join t1 order by t2.a -prepare stmt1 from @query2 ; -execute stmt1 ; -a b -1 one -2 two -3 three -4 four -execute stmt1 ; -a b -1 one -2 two -3 three -4 four -execute stmt1 ; -a b -1 one -2 two -3 three -4 four -the join statement is: -SELECT * FROM t2 join t1 on (t1.a=t2.a) order by t2.a -prepare stmt1 from @query1 ; -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -drop table t2 ; -test_sequence ------- subquery tests ------ -prepare stmt1 from ' select a, b FROM t1 outer_table where - a = (select a from t1 where b = ''two'') '; -execute stmt1 ; -a b -2 two -set @arg00='two' ; -select a, b FROM t1 outer_table where -a = (select a from t1 where b = 'two' ) and b=@arg00 ; -a b -2 two -prepare stmt1 from ' select a, b FROM t1 outer_table where - a = (select a from t1 where b = ''two'') and b=? '; -execute stmt1 using @arg00; -a b -2 two -set @arg00='two' ; -select a, b FROM t1 outer_table where -a = (select a from t1 where b = @arg00 ) and b='two' ; -a b -2 two -prepare stmt1 from ' select a, b FROM t1 outer_table where - a = (select a from t1 where b = ? ) and b=''two'' ' ; -execute stmt1 using @arg00; -a b -2 two -set @arg00=3 ; -set @arg01='three' ; -select a,b FROM t1 where (a,b) in (select 3, 'three'); -a b -3 three -select a FROM t1 where (a,b) in (select @arg00,@arg01); -a -3 -prepare stmt1 from ' select a FROM t1 where (a,b) in (select ?, ?) '; -execute stmt1 using @arg00, @arg01; -a -3 -set @arg00=1 ; -set @arg01='two' ; -set @arg02=2 ; -set @arg03='two' ; -select a, @arg00, b FROM t1 outer_table where -b=@arg01 and a = (select @arg02 from t1 where b = @arg03 ) ; -a @arg00 b -2 1 two -prepare stmt1 from ' select a, ?, b FROM t1 outer_table where - b=? and a = (select ? from t1 where b = ? ) ' ; -execute stmt1 using @arg00, @arg01, @arg02, @arg03 ; -a ? b -2 1 two -prepare stmt1 from ' select a, b FROM t1 outer_table where - a = (select a from t1 where b = outer_table.b ) order by a '; -execute stmt1 ; -a b -1 one -2 two -3 three -4 four -prepare stmt1 from ' SELECT a as ccc from t1 where a+1= - (SELECT 1+ccc from t1 where ccc+1=a+1 and a=1) '; -execute stmt1 ; -ccc -1 -deallocate prepare stmt1 ; -prepare stmt1 from ' SELECT a as ccc from t1 where a+1= - (SELECT 1+ccc from t1 where ccc+1=a+1 and a=1) '; -execute stmt1 ; -ccc -1 -deallocate prepare stmt1 ; -prepare stmt1 from ' SELECT a as ccc from t1 where a+1= - (SELECT 1+ccc from t1 where ccc+1=a+1 and a=1) '; -execute stmt1 ; -ccc -1 -deallocate prepare stmt1 ; -set @arg00='two' ; -select a, b FROM t1 outer_table where -a = (select a from t1 where b = outer_table.b ) and b=@arg00 ; -a b -2 two -prepare stmt1 from ' select a, b FROM t1 outer_table where - a = (select a from t1 where b = outer_table.b) and b=? '; -execute stmt1 using @arg00; -a b -2 two -set @arg00=2 ; -select a, b FROM t1 outer_table where -a = (select a from t1 where a = @arg00 and b = outer_table.b) and b='two' ; -a b -2 two -prepare stmt1 from ' select a, b FROM t1 outer_table where - a = (select a from t1 where a = ? and b = outer_table.b) and b=''two'' ' ; -execute stmt1 using @arg00; -a b -2 two -set @arg00=2 ; -select a, b FROM t1 outer_table where -a = (select a from t1 where outer_table.a = @arg00 and a=2) and b='two' ; -a b -2 two -prepare stmt1 from ' select a, b FROM t1 outer_table where - a = (select a from t1 where outer_table.a = ? and a=2) and b=''two'' ' ; -execute stmt1 using @arg00; -a b -2 two -set @arg00=1 ; -set @arg01='two' ; -set @arg02=2 ; -set @arg03='two' ; -select a, @arg00, b FROM t1 outer_table where -b=@arg01 and a = (select @arg02 from t1 where outer_table.b = @arg03 -and outer_table.a=a ) ; -a @arg00 b -2 1 two -prepare stmt1 from ' select a, ?, b FROM t1 outer_table where - b=? and a = (select ? from t1 where outer_table.b = ? - and outer_table.a=a ) ' ; -execute stmt1 using @arg00, @arg01, @arg02, @arg03 ; -a ? b -2 1 two -set @arg00=1 ; -set @arg01=0 ; -select a, @arg00 -from ( select a - @arg00 as a from t1 where a=@arg00 ) as t2 -where a=@arg01; -a @arg00 -0 1 -prepare stmt1 from ' select a, ? - from ( select a - ? as a from t1 where a=? ) as t2 - where a=? '; -execute stmt1 using @arg00, @arg00, @arg00, @arg01 ; -a ? -0 1 -drop table if exists t2 ; -create table t2 as select * from t1; -prepare stmt1 from ' select a in (select a from t2) from t1 ' ; -execute stmt1 ; -a in (select a from t2) -1 -1 -1 -1 -drop table if exists t5, t6, t7 ; -create table t5 (a int , b int) ; -create table t6 like t5 ; -create table t7 like t5 ; -insert into t5 values (0, 100), (1, 2), (1, 3), (2, 2), (2, 7), -(2, -1), (3, 10) ; -insert into t6 values (0, 0), (1, 1), (2, 1), (3, 1), (4, 1) ; -insert into t7 values (3, 3), (2, 2), (1, 1) ; -prepare stmt1 from ' select a, (select count(distinct t5.b) as sum from t5, t6 - where t5.a=t6.a and t6.b > 0 and t5.a <= t7.b - group by t5.a order by sum limit 1) from t7 ' ; -execute stmt1 ; -a (select count(distinct t5.b) as sum from t5, t6 - where t5.a=t6.a and t6.b > 0 and t5.a <= t7.b - group by t5.a order by sum limit 1) -3 1 -2 2 -1 2 -execute stmt1 ; -a (select count(distinct t5.b) as sum from t5, t6 - where t5.a=t6.a and t6.b > 0 and t5.a <= t7.b - group by t5.a order by sum limit 1) -3 1 -2 2 -1 2 -execute stmt1 ; -a (select count(distinct t5.b) as sum from t5, t6 - where t5.a=t6.a and t6.b > 0 and t5.a <= t7.b - group by t5.a order by sum limit 1) -3 1 -2 2 -1 2 -drop table t5, t6, t7 ; -drop table if exists t2 ; -create table t2 as select * from t9; -set @stmt= ' SELECT - (SELECT SUM(c1 + c12 + 0.0) FROM t2 - where (t9.c2 - 0e-3) = t2.c2 - GROUP BY t9.c15 LIMIT 1) as scalar_s, - exists (select 1.0e+0 from t2 - where t2.c3 * 9.0000000000 = t9.c4) as exists_s, - c5 * 4 in (select c6 + 0.3e+1 from t2) as in_s, - (c7 - 4, c8 - 4) in (select c9 + 4.0, c10 + 40e-1 from t2) as in_row_s -FROM t9, -(select c25 x, c32 y from t2) tt WHERE x = c25 ' ; -prepare stmt1 from @stmt ; -execute stmt1 ; -execute stmt1 ; -set @stmt= concat('explain ',@stmt); -prepare stmt1 from @stmt ; -execute stmt1 ; -execute stmt1 ; -set @stmt= ' SELECT - (SELECT SUM(c1+c12+?) FROM t2 where (t9.c2-?)=t2.c2 - GROUP BY t9.c15 LIMIT 1) as scalar_s, - exists (select ? from t2 - where t2.c3*?=t9.c4) as exists_s, - c5*? in (select c6+? from t2) as in_s, - (c7-?, c8-?) in (select c9+?, c10+? from t2) as in_row_s -FROM t9, -(select c25 x, c32 y from t2) tt WHERE x =c25 ' ; -set @arg00= 0.0 ; -set @arg01= 0e-3 ; -set @arg02= 1.0e+0 ; -set @arg03= 9.0000000000 ; -set @arg04= 4 ; -set @arg05= 0.3e+1 ; -set @arg06= 4 ; -set @arg07= 4 ; -set @arg08= 4.0 ; -set @arg09= 40e-1 ; -prepare stmt1 from @stmt ; -execute stmt1 using @arg00, @arg01, @arg02, @arg03, @arg04, @arg05, @arg06, -@arg07, @arg08, @arg09 ; -execute stmt1 using @arg00, @arg01, @arg02, @arg03, @arg04, @arg05, @arg06, -@arg07, @arg08, @arg09 ; -set @stmt= concat('explain ',@stmt); -prepare stmt1 from @stmt ; -execute stmt1 using @arg00, @arg01, @arg02, @arg03, @arg04, @arg05, @arg06, -@arg07, @arg08, @arg09 ; -execute stmt1 using @arg00, @arg01, @arg02, @arg03, @arg04, @arg05, @arg06, -@arg07, @arg08, @arg09 ; -drop table t2 ; -select 1 < (select a from t1) ; -ERROR 21000: Subquery returns more than 1 row -prepare stmt1 from ' select 1 < (select a from t1) ' ; -execute stmt1 ; -ERROR 21000: Subquery returns more than 1 row -select 1 as my_col ; -my_col -1 -test_sequence ------- union tests ------ -prepare stmt1 from ' select a FROM t1 where a=1 - union distinct - select a FROM t1 where a=1 '; -execute stmt1 ; -a -1 -execute stmt1 ; -a -1 -prepare stmt1 from ' select a FROM t1 where a=1 - union all - select a FROM t1 where a=1 '; -execute stmt1 ; -a -1 -1 -prepare stmt1 from ' SELECT 1, 2 union SELECT 1 ' ; -ERROR 21000: The used SELECT statements have a different number of columns -prepare stmt1 from ' SELECT 1 union SELECT 1, 2 ' ; -ERROR 21000: The used SELECT statements have a different number of columns -prepare stmt1 from ' SELECT * from t1 union SELECT 1 ' ; -ERROR 21000: The used SELECT statements have a different number of columns -prepare stmt1 from ' SELECT 1 union SELECT * from t1 ' ; -ERROR 21000: The used SELECT statements have a different number of columns -set @arg00=1 ; -select @arg00 FROM t1 where a=1 -union distinct -select 1 FROM t1 where a=1; -@arg00 -1 -prepare stmt1 from ' select ? FROM t1 where a=1 - union distinct - select 1 FROM t1 where a=1 ' ; -execute stmt1 using @arg00; -? -1 -set @arg00=1 ; -select 1 FROM t1 where a=1 -union distinct -select @arg00 FROM t1 where a=1; -1 -1 -prepare stmt1 from ' select 1 FROM t1 where a=1 - union distinct - select ? FROM t1 where a=1 ' ; -execute stmt1 using @arg00; -1 -1 -set @arg00='a' ; -select @arg00 FROM t1 where a=1 -union distinct -select @arg00 FROM t1 where a=1; -@arg00 -a -prepare stmt1 from ' select ? FROM t1 where a=1 - union distinct - select ? FROM t1 where a=1 '; -execute stmt1 using @arg00, @arg00; -? -a -prepare stmt1 from ' select ? - union distinct - select ? '; -execute stmt1 using @arg00, @arg00; -? -a -set @arg00='a' ; -set @arg01=1 ; -set @arg02='a' ; -set @arg03=2 ; -select @arg00 FROM t1 where a=@arg01 -union distinct -select @arg02 FROM t1 where a=@arg03; -@arg00 -a -prepare stmt1 from ' select ? FROM t1 where a=? - union distinct - select ? FROM t1 where a=? ' ; -execute stmt1 using @arg00, @arg01, @arg02, @arg03; -? -a -set @arg00=1 ; -prepare stmt1 from ' select sum(a) + 200, ? from t1 -union distinct -select sum(a) + 200, 1 from t1 -group by b ' ; -execute stmt1 using @arg00; -sum(a) + 200 ? -210 1 -204 1 -201 1 -203 1 -202 1 -set @Oporto='Oporto' ; -set @Lisboa='Lisboa' ; -set @0=0 ; -set @1=1 ; -set @2=2 ; -set @3=3 ; -set @4=4 ; -select @Oporto,@Lisboa,@0,@1,@2,@3,@4 ; -@Oporto @Lisboa @0 @1 @2 @3 @4 -Oporto Lisboa 0 1 2 3 4 -select sum(a) + 200 as the_sum, @Oporto as the_town from t1 -group by b -union distinct -select sum(a) + 200, @Lisboa from t1 -group by b ; -the_sum the_town -204 Oporto -201 Oporto -203 Oporto -202 Oporto -204 Lisboa -201 Lisboa -203 Lisboa -202 Lisboa -prepare stmt1 from ' select sum(a) + 200 as the_sum, ? as the_town from t1 - group by b - union distinct - select sum(a) + 200, ? from t1 - group by b ' ; -execute stmt1 using @Oporto, @Lisboa; -the_sum the_town -204 Oporto -201 Oporto -203 Oporto -202 Oporto -204 Lisboa -201 Lisboa -203 Lisboa -202 Lisboa -select sum(a) + 200 as the_sum, @Oporto as the_town from t1 -where a > @1 -group by b -union distinct -select sum(a) + 200, @Lisboa from t1 -where a > @2 -group by b ; -the_sum the_town -204 Oporto -203 Oporto -202 Oporto -204 Lisboa -203 Lisboa -prepare stmt1 from ' select sum(a) + 200 as the_sum, ? as the_town from t1 - where a > ? - group by b - union distinct - select sum(a) + 200, ? from t1 - where a > ? - group by b ' ; -execute stmt1 using @Oporto, @1, @Lisboa, @2; -the_sum the_town -204 Oporto -203 Oporto -202 Oporto -204 Lisboa -203 Lisboa -select sum(a) + 200 as the_sum, @Oporto as the_town from t1 -where a > @1 -group by b -having avg(a) > @2 -union distinct -select sum(a) + 200, @Lisboa from t1 -where a > @2 -group by b -having avg(a) > @3; -the_sum the_town -204 Oporto -203 Oporto -204 Lisboa -prepare stmt1 from ' select sum(a) + 200 as the_sum, ? as the_town from t1 - where a > ? - group by b - having avg(a) > ? - union distinct - select sum(a) + 200, ? from t1 - where a > ? - group by b - having avg(a) > ? '; -execute stmt1 using @Oporto, @1, @2, @Lisboa, @2, @3; -the_sum the_town -204 Oporto -203 Oporto -204 Lisboa -test_sequence ------- explain select tests ------ -prepare stmt1 from ' explain select * from t9 ' ; -execute stmt1; -Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr -def id 8 3 1 N 32801 0 8 -def select_type 253 19 6 N 1 31 33 -def table 253 64 2 N 1 31 33 -def type 253 10 3 N 1 31 33 -def possible_keys 253 4096 0 Y 0 31 33 -def key 253 64 0 Y 0 31 33 -def key_len 8 3 0 Y 32800 0 8 -def ref 253 1024 0 Y 0 31 33 -def rows 8 10 1 N 32801 0 8 -def Extra 253 255 0 N 1 31 33 -id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t9 ALL NULL NULL NULL NULL 2 -test_sequence ------- delete tests ------ -delete from t1 ; -insert into t1 values (1,'one'); -insert into t1 values (2,'two'); -insert into t1 values (3,'three'); -insert into t1 values (4,'four'); -commit ; -delete from t9 ; -insert into t9 -set c1= 1, c2= 1, c3= 1, c4= 1, c5= 1, c6= 1, c7= 1, c8= 1, c9= 1, -c10= 1, c11= 1, c12 = 1, -c13= '2004-02-29', c14= '2004-02-29 11:11:11', c15= '2004-02-29 11:11:11', -c16= '11:11:11', c17= '2004', -c18= 1, c19=true, c20= 'a', c21= '123456789a', -c22= '123456789a123456789b123456789c', c23= 'tinyblob', c24= 'tinytext', -c25= 'blob', c26= 'text', c27= 'mediumblob', c28= 'mediumtext', -c29= 'longblob', c30= 'longtext', c31='one', c32= 'monday'; -insert into t9 -set c1= 9, c2= 9, c3= 9, c4= 9, c5= 9, c6= 9, c7= 9, c8= 9, c9= 9, -c10= 9, c11= 9, c12 = 9, -c13= '2004-02-29', c14= '2004-02-29 11:11:11', c15= '2004-02-29 11:11:11', -c16= '11:11:11', c17= '2004', -c18= 1, c19=false, c20= 'a', c21= '123456789a', -c22= '123456789a123456789b123456789c', c23= 'tinyblob', c24= 'tinytext', -c25= 'blob', c26= 'text', c27= 'mediumblob', c28= 'mediumtext', -c29= 'longblob', c30= 'longtext', c31='two', c32= 'tuesday'; -commit ; -prepare stmt1 from 'delete from t1 where a=2' ; -execute stmt1; -select a,b from t1 where a=2; -a b -execute stmt1; -insert into t1 values(0,NULL); -set @arg00=NULL; -prepare stmt1 from 'delete from t1 where b=?' ; -execute stmt1 using @arg00; -select a,b from t1 where b is NULL ; -a b -0 NULL -set @arg00='one'; -execute stmt1 using @arg00; -select a,b from t1 where b=@arg00; -a b -prepare stmt1 from 'truncate table t1' ; -ERROR HY000: This command is not supported in the prepared statement protocol yet -test_sequence ------- update tests ------ -delete from t1 ; -insert into t1 values (1,'one'); -insert into t1 values (2,'two'); -insert into t1 values (3,'three'); -insert into t1 values (4,'four'); -commit ; -delete from t9 ; -insert into t9 -set c1= 1, c2= 1, c3= 1, c4= 1, c5= 1, c6= 1, c7= 1, c8= 1, c9= 1, -c10= 1, c11= 1, c12 = 1, -c13= '2004-02-29', c14= '2004-02-29 11:11:11', c15= '2004-02-29 11:11:11', -c16= '11:11:11', c17= '2004', -c18= 1, c19=true, c20= 'a', c21= '123456789a', -c22= '123456789a123456789b123456789c', c23= 'tinyblob', c24= 'tinytext', -c25= 'blob', c26= 'text', c27= 'mediumblob', c28= 'mediumtext', -c29= 'longblob', c30= 'longtext', c31='one', c32= 'monday'; -insert into t9 -set c1= 9, c2= 9, c3= 9, c4= 9, c5= 9, c6= 9, c7= 9, c8= 9, c9= 9, -c10= 9, c11= 9, c12 = 9, -c13= '2004-02-29', c14= '2004-02-29 11:11:11', c15= '2004-02-29 11:11:11', -c16= '11:11:11', c17= '2004', -c18= 1, c19=false, c20= 'a', c21= '123456789a', -c22= '123456789a123456789b123456789c', c23= 'tinyblob', c24= 'tinytext', -c25= 'blob', c26= 'text', c27= 'mediumblob', c28= 'mediumtext', -c29= 'longblob', c30= 'longtext', c31='two', c32= 'tuesday'; -commit ; -prepare stmt1 from 'update t1 set b=''a=two'' where a=2' ; -execute stmt1; -select a,b from t1 where a=2; -a b -2 a=two -execute stmt1; -select a,b from t1 where a=2; -a b -2 a=two -set @arg00=NULL; -prepare stmt1 from 'update t1 set b=? where a=2' ; -execute stmt1 using @arg00; -select a,b from t1 where a=2; -a b -2 NULL -set @arg00='two'; -execute stmt1 using @arg00; -select a,b from t1 where a=2; -a b -2 two -set @arg00=2; -prepare stmt1 from 'update t1 set b=NULL where a=?' ; -execute stmt1 using @arg00; -select a,b from t1 where a=@arg00; -a b -2 NULL -update t1 set b='two' where a=@arg00; -set @arg00=2000; -execute stmt1 using @arg00; -select a,b from t1 where a=@arg00; -a b -set @arg00=2; -set @arg01=22; -prepare stmt1 from 'update t1 set a=? where a=?' ; -execute stmt1 using @arg00, @arg00; -select a,b from t1 where a=@arg00; -a b -2 two -execute stmt1 using @arg01, @arg00; -select a,b from t1 where a=@arg01; -a b -22 two -execute stmt1 using @arg00, @arg01; -select a,b from t1 where a=@arg00; -a b -2 two -set @arg00=NULL; -set @arg01=2; -execute stmt1 using @arg00, @arg01; -Warnings: -Warning 1263 Data truncated; NULL supplied to NOT NULL column 'a' at row 1 -select a,b from t1 order by a; -a b -0 two -1 one -3 three -4 four -set @arg00=0; -execute stmt1 using @arg01, @arg00; -select a,b from t1 order by a; -a b -1 one -2 two -3 three -4 four -set @arg00=23; -set @arg01='two'; -set @arg02=2; -set @arg03='two'; -set @arg04=2; -drop table if exists t2; -create table t2 as select a,b from t1 ; -prepare stmt1 from 'update t1 set a=? where b=? - and a in (select ? from t2 - where b = ? or a = ?)'; -execute stmt1 using @arg00, @arg01, @arg02, @arg03, @arg04 ; -affected rows: 1 -info: Rows matched: 1 Changed: 1 Warnings: 0 -select a,b from t1 where a = @arg00 ; -a b -23 two -prepare stmt1 from 'update t1 set a=? where b=? - and a not in (select ? from t2 - where b = ? or a = ?)'; -execute stmt1 using @arg04, @arg01, @arg02, @arg03, @arg00 ; -affected rows: 1 -info: Rows matched: 1 Changed: 1 Warnings: 0 -select a,b from t1 order by a ; -a b -1 one -2 two -3 three -4 four -drop table t2 ; -create table t2 -( -a int, b varchar(30), -primary key(a) -) engine = 'MYISAM' ; -insert into t2(a,b) select a, b from t1 ; -prepare stmt1 from 'update t1 set a=? where b=? - and a in (select ? from t2 - where b = ? or a = ?)'; -execute stmt1 using @arg00, @arg01, @arg02, @arg03, @arg04 ; -affected rows: 1 -info: Rows matched: 1 Changed: 1 Warnings: 0 -select a,b from t1 where a = @arg00 ; -a b -23 two -prepare stmt1 from 'update t1 set a=? where b=? - and a not in (select ? from t2 - where b = ? or a = ?)'; -execute stmt1 using @arg04, @arg01, @arg02, @arg03, @arg00 ; -affected rows: 1 -info: Rows matched: 1 Changed: 1 Warnings: 0 -select a,b from t1 order by a ; -a b -1 one -2 two -3 three -4 four -drop table t2 ; -set @arg00=1; -prepare stmt1 from 'update t1 set b=''bla'' -where a=2 -limit 1'; -execute stmt1 ; -select a,b from t1 where b = 'bla' ; -a b -2 bla -prepare stmt1 from 'update t1 set b=''bla'' -where a=2 -limit ?'; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '?' at line 3 -test_sequence ------- insert tests ------ -delete from t1 ; -insert into t1 values (1,'one'); -insert into t1 values (2,'two'); -insert into t1 values (3,'three'); -insert into t1 values (4,'four'); -commit ; -delete from t9 ; -insert into t9 -set c1= 1, c2= 1, c3= 1, c4= 1, c5= 1, c6= 1, c7= 1, c8= 1, c9= 1, -c10= 1, c11= 1, c12 = 1, -c13= '2004-02-29', c14= '2004-02-29 11:11:11', c15= '2004-02-29 11:11:11', -c16= '11:11:11', c17= '2004', -c18= 1, c19=true, c20= 'a', c21= '123456789a', -c22= '123456789a123456789b123456789c', c23= 'tinyblob', c24= 'tinytext', -c25= 'blob', c26= 'text', c27= 'mediumblob', c28= 'mediumtext', -c29= 'longblob', c30= 'longtext', c31='one', c32= 'monday'; -insert into t9 -set c1= 9, c2= 9, c3= 9, c4= 9, c5= 9, c6= 9, c7= 9, c8= 9, c9= 9, -c10= 9, c11= 9, c12 = 9, -c13= '2004-02-29', c14= '2004-02-29 11:11:11', c15= '2004-02-29 11:11:11', -c16= '11:11:11', c17= '2004', -c18= 1, c19=false, c20= 'a', c21= '123456789a', -c22= '123456789a123456789b123456789c', c23= 'tinyblob', c24= 'tinytext', -c25= 'blob', c26= 'text', c27= 'mediumblob', c28= 'mediumtext', -c29= 'longblob', c30= 'longtext', c31='two', c32= 'tuesday'; -commit ; -prepare stmt1 from 'insert into t1 values(5, ''five'' )'; -execute stmt1; -select a,b from t1 where a = 5; -a b -5 five -set @arg00='six' ; -prepare stmt1 from 'insert into t1 values(6, ? )'; -execute stmt1 using @arg00; -select a,b from t1 where b = @arg00; -a b -6 six -execute stmt1 using @arg00; -ERROR 23000: Duplicate entry '6' for key 1 -set @arg00=NULL ; -prepare stmt1 from 'insert into t1 values(0, ? )'; -execute stmt1 using @arg00; -select a,b from t1 where b is NULL; -a b -0 NULL -set @arg00=8 ; -set @arg01='eight' ; -prepare stmt1 from 'insert into t1 values(?, ? )'; -execute stmt1 using @arg00, @arg01 ; -select a,b from t1 where b = @arg01; -a b -8 eight -set @NULL= null ; -set @arg00= 'abc' ; -execute stmt1 using @NULL, @NULL ; -ERROR 23000: Column 'a' cannot be null -execute stmt1 using @NULL, @NULL ; -ERROR 23000: Column 'a' cannot be null -execute stmt1 using @NULL, @arg00 ; -ERROR 23000: Column 'a' cannot be null -execute stmt1 using @NULL, @arg00 ; -ERROR 23000: Column 'a' cannot be null -set @arg01= 10000 + 2 ; -execute stmt1 using @arg01, @arg00 ; -set @arg01= 10000 + 1 ; -execute stmt1 using @arg01, @arg00 ; -select * from t1 where a > 10000 order by a ; -a b -10001 abc -10002 abc -delete from t1 where a > 10000 ; -set @arg01= 10000 + 2 ; -execute stmt1 using @arg01, @NULL ; -set @arg01= 10000 + 1 ; -execute stmt1 using @arg01, @NULL ; -select * from t1 where a > 10000 order by a ; -a b -10001 NULL -10002 NULL -delete from t1 where a > 10000 ; -set @arg01= 10000 + 10 ; -execute stmt1 using @arg01, @arg01 ; -set @arg01= 10000 + 9 ; -execute stmt1 using @arg01, @arg01 ; -set @arg01= 10000 + 8 ; -execute stmt1 using @arg01, @arg01 ; -set @arg01= 10000 + 7 ; -execute stmt1 using @arg01, @arg01 ; -set @arg01= 10000 + 6 ; -execute stmt1 using @arg01, @arg01 ; -set @arg01= 10000 + 5 ; -execute stmt1 using @arg01, @arg01 ; -set @arg01= 10000 + 4 ; -execute stmt1 using @arg01, @arg01 ; -set @arg01= 10000 + 3 ; -execute stmt1 using @arg01, @arg01 ; -set @arg01= 10000 + 2 ; -execute stmt1 using @arg01, @arg01 ; -set @arg01= 10000 + 1 ; -execute stmt1 using @arg01, @arg01 ; -select * from t1 where a > 10000 order by a ; -a b -10001 10001 -10002 10002 -10003 10003 -10004 10004 -10005 10005 -10006 10006 -10007 10007 -10008 10008 -10009 10009 -10010 10010 -delete from t1 where a > 10000 ; -set @arg00=81 ; -set @arg01='8-1' ; -set @arg02=82 ; -set @arg03='8-2' ; -prepare stmt1 from 'insert into t1 values(?,?),(?,?)'; -execute stmt1 using @arg00, @arg01, @arg02, @arg03 ; -select a,b from t1 where a in (@arg00,@arg02) ; -a b -81 8-1 -82 8-2 -set @arg00=9 ; -set @arg01='nine' ; -prepare stmt1 from 'insert into t1 set a=?, b=? '; -execute stmt1 using @arg00, @arg01 ; -select a,b from t1 where a = @arg00 ; -a b -9 nine -set @arg00=6 ; -set @arg01=1 ; -prepare stmt1 from 'insert into t1 set a=?, b=''sechs'' - on duplicate key update a=a + ?, b=concat(b,''modified'') '; -execute stmt1 using @arg00, @arg01; -select * from t1 order by a; -a b -0 NULL -1 one -2 two -3 three -4 four -5 five -7 sixmodified -8 eight -9 nine -81 8-1 -82 8-2 -set @arg00=81 ; -set @arg01=1 ; -execute stmt1 using @arg00, @arg01; -ERROR 23000: Duplicate entry '82' for key 1 -drop table if exists t2 ; -create table t2 (id int auto_increment primary key) -ENGINE= 'MYISAM' ; -prepare stmt1 from ' select last_insert_id() ' ; -insert into t2 values (NULL) ; -execute stmt1 ; -last_insert_id() -1 -insert into t2 values (NULL) ; -execute stmt1 ; -last_insert_id() -2 -drop table t2 ; -set @1000=1000 ; -set @x1000_2="x1000_2" ; -set @x1000_3="x1000_3" ; -set @x1000="x1000" ; -set @1100=1100 ; -set @x1100="x1100" ; -set @100=100 ; -set @updated="updated" ; -insert into t1 values(1000,'x1000_1') ; -insert into t1 values(@1000,@x1000_2),(@1000,@x1000_3) -on duplicate key update a = a + @100, b = concat(b,@updated) ; -select a,b from t1 where a >= 1000 order by a ; -a b -1000 x1000_3 -1100 x1000_1updated -delete from t1 where a >= 1000 ; -insert into t1 values(1000,'x1000_1') ; -prepare stmt1 from ' insert into t1 values(?,?),(?,?) - on duplicate key update a = a + ?, b = concat(b,?) '; -execute stmt1 using @1000, @x1000_2, @1000, @x1000_3, @100, @updated ; -select a,b from t1 where a >= 1000 order by a ; -a b -1000 x1000_3 -1100 x1000_1updated -delete from t1 where a >= 1000 ; -insert into t1 values(1000,'x1000_1') ; -execute stmt1 using @1000, @x1000_2, @1100, @x1000_3, @100, @updated ; -select a,b from t1 where a >= 1000 order by a ; -a b -1200 x1000_1updatedupdated -delete from t1 where a >= 1000 ; -prepare stmt1 from ' replace into t1 (a,b) select 100, ''hundred'' '; -execute stmt1; -execute stmt1; -execute stmt1; -test_sequence ------- multi table tests ------ -delete from t1 ; -delete from t9 ; -insert into t1(a,b) values (1, 'one'), (2, 'two'), (3, 'three') ; -insert into t9 (c1,c21) -values (1, 'one'), (2, 'two'), (3, 'three') ; -prepare stmt_delete from " delete t1, t9 - from t1, t9 where t1.a=t9.c1 and t1.b='updated' "; -prepare stmt_update from " update t1, t9 - set t1.b='updated', t9.c21='updated' - where t1.a=t9.c1 and t1.a=? "; -prepare stmt_select1 from " select a, b from t1 order by a" ; -prepare stmt_select2 from " select c1, c21 from t9 order by c1" ; -set @arg00= 1 ; -execute stmt_update using @arg00 ; -execute stmt_delete ; -execute stmt_select1 ; -a b -2 two -3 three -execute stmt_select2 ; -c1 c21 -2 two -3 three -set @arg00= @arg00 + 1 ; -execute stmt_update using @arg00 ; -execute stmt_delete ; -execute stmt_select1 ; -a b -3 three -execute stmt_select2 ; -c1 c21 -3 three -set @arg00= @arg00 + 1 ; -execute stmt_update using @arg00 ; -execute stmt_delete ; -execute stmt_select1 ; -a b -execute stmt_select2 ; -c1 c21 -set @arg00= @arg00 + 1 ; -drop table if exists t5 ; -set @arg01= 8; -set @arg02= 8.0; -set @arg03= 80.00000000000e-1; -set @arg04= 'abc' ; -set @arg05= CAST('abc' as binary) ; -set @arg06= '1991-08-05' ; -set @arg07= CAST('1991-08-05' as date); -set @arg08= '1991-08-05 01:01:01' ; -set @arg09= CAST('1991-08-05 01:01:01' as datetime) ; -set @arg10= unix_timestamp('1991-01-01 01:01:01'); -set @arg11= YEAR('1991-01-01 01:01:01'); -set @arg12= 8 ; -set @arg12= NULL ; -set @arg13= 8.0 ; -set @arg13= NULL ; -set @arg14= 'abc'; -set @arg14= NULL ; -set @arg15= CAST('abc' as binary) ; -set @arg15= NULL ; -create table t5 as select -8 as const01, @arg01 as param01, -8.0 as const02, @arg02 as param02, -80.00000000000e-1 as const03, @arg03 as param03, -'abc' as const04, @arg04 as param04, -CAST('abc' as binary) as const05, @arg05 as param05, -'1991-08-05' as const06, @arg06 as param06, -CAST('1991-08-05' as date) as const07, @arg07 as param07, -'1991-08-05 01:01:01' as const08, @arg08 as param08, -CAST('1991-08-05 01:01:01' as datetime) as const09, @arg09 as param09, -unix_timestamp('1991-01-01 01:01:01') as const10, @arg10 as param10, -YEAR('1991-01-01 01:01:01') as const11, @arg11 as param11, -NULL as const12, @arg12 as param12, -@arg13 as param13, -@arg14 as param14, -@arg15 as param15; -show create table t5 ; -Table Create Table -t5 CREATE TABLE `t5` ( - `const01` bigint(1) NOT NULL default '0', - `param01` bigint(20) default NULL, - `const02` double(3,1) NOT NULL default '0.0', - `param02` double default NULL, - `const03` double NOT NULL default '0', - `param03` double default NULL, - `const04` char(3) NOT NULL default '', - `param04` longtext, - `const05` binary(3) NOT NULL default '', - `param05` longblob, - `const06` varchar(10) NOT NULL default '', - `param06` longtext, - `const07` date default NULL, - `param07` longblob, - `const08` varchar(19) NOT NULL default '', - `param08` longtext, - `const09` datetime default NULL, - `param09` longblob, - `const10` int(10) NOT NULL default '0', - `param10` bigint(20) default NULL, - `const11` int(4) default NULL, - `param11` bigint(20) default NULL, - `const12` binary(0) default NULL, - `param12` bigint(20) default NULL, - `param13` double default NULL, - `param14` longtext, - `param15` longblob -) ENGINE=MyISAM DEFAULT CHARSET=latin1 -select * from t5 ; -Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr -def test t5 t5 const01 const01 8 1 1 N 32769 0 63 -def test t5 t5 param01 param01 8 20 1 Y 32768 0 63 -def test t5 t5 const02 const02 5 3 3 N 32769 1 63 -def test t5 t5 param02 param02 5 20 1 Y 32768 31 63 -def test t5 t5 const03 const03 5 23 1 N 32769 31 63 -def test t5 t5 param03 param03 5 20 1 Y 32768 31 63 -def test t5 t5 const04 const04 254 3 3 N 1 0 8 -def test t5 t5 param04 param04 252 16777215 3 Y 16 0 8 -def test t5 t5 const05 const05 254 3 3 N 129 0 63 -def test t5 t5 param05 param05 252 16777215 3 Y 144 0 63 -def test t5 t5 const06 const06 253 10 10 N 1 0 8 -def test t5 t5 param06 param06 252 16777215 10 Y 16 0 8 -def test t5 t5 const07 const07 10 10 10 Y 128 0 63 -def test t5 t5 param07 param07 252 16777215 10 Y 144 0 63 -def test t5 t5 const08 const08 253 19 19 N 1 0 8 -def test t5 t5 param08 param08 252 16777215 19 Y 16 0 8 -def test t5 t5 const09 const09 12 19 19 Y 128 0 63 -def test t5 t5 param09 param09 252 16777215 19 Y 144 0 63 -def test t5 t5 const10 const10 3 10 9 N 32769 0 63 -def test t5 t5 param10 param10 8 20 9 Y 32768 0 63 -def test t5 t5 const11 const11 3 4 4 Y 32768 0 63 -def test t5 t5 param11 param11 8 20 4 Y 32768 0 63 -def test t5 t5 const12 const12 254 0 0 Y 128 0 63 -def test t5 t5 param12 param12 8 20 0 Y 32768 0 63 -def test t5 t5 param13 param13 5 20 0 Y 32768 31 63 -def test t5 t5 param14 param14 252 16777215 0 Y 16 0 8 -def test t5 t5 param15 param15 252 16777215 0 Y 144 0 63 -const01 8 -param01 8 -const02 8.0 -param02 8 -const03 8 -param03 8 -const04 abc -param04 abc -const05 abc -param05 abc -const06 1991-08-05 -param06 1991-08-05 -const07 1991-08-05 -param07 1991-08-05 -const08 1991-08-05 01:01:01 -param08 1991-08-05 01:01:01 -const09 1991-08-05 01:01:01 -param09 1991-08-05 01:01:01 -const10 662680861 -param10 662680861 -const11 1991 -param11 1991 -const12 NULL -param12 NULL -param13 NULL -param14 NULL -param15 NULL -drop table t5 ; -test_sequence ------- data type conversion tests ------ -delete from t1 ; -insert into t1 values (1,'one'); -insert into t1 values (2,'two'); -insert into t1 values (3,'three'); -insert into t1 values (4,'four'); -commit ; -delete from t9 ; -insert into t9 -set c1= 1, c2= 1, c3= 1, c4= 1, c5= 1, c6= 1, c7= 1, c8= 1, c9= 1, -c10= 1, c11= 1, c12 = 1, -c13= '2004-02-29', c14= '2004-02-29 11:11:11', c15= '2004-02-29 11:11:11', -c16= '11:11:11', c17= '2004', -c18= 1, c19=true, c20= 'a', c21= '123456789a', -c22= '123456789a123456789b123456789c', c23= 'tinyblob', c24= 'tinytext', -c25= 'blob', c26= 'text', c27= 'mediumblob', c28= 'mediumtext', -c29= 'longblob', c30= 'longtext', c31='one', c32= 'monday'; -insert into t9 -set c1= 9, c2= 9, c3= 9, c4= 9, c5= 9, c6= 9, c7= 9, c8= 9, c9= 9, -c10= 9, c11= 9, c12 = 9, -c13= '2004-02-29', c14= '2004-02-29 11:11:11', c15= '2004-02-29 11:11:11', -c16= '11:11:11', c17= '2004', -c18= 1, c19=false, c20= 'a', c21= '123456789a', -c22= '123456789a123456789b123456789c', c23= 'tinyblob', c24= 'tinytext', -c25= 'blob', c26= 'text', c27= 'mediumblob', c28= 'mediumtext', -c29= 'longblob', c30= 'longtext', c31='two', c32= 'tuesday'; -commit ; -insert into t9 set c1= 0, c15= '1991-01-01 01:01:01' ; -select * from t9 order by c1 ; -c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 c13 c14 c15 c16 c17 c18 c19 c20 c21 c22 c23 c24 c25 c26 c27 c28 c29 c30 c31 c32 -0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday -9 9 9 9 9 9 9 9 9 9 9.0000 9.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 0 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext two tuesday -test_sequence ------- select @parameter:= column ------ -prepare full_info from "select @arg01, @arg02, @arg03, @arg04, - @arg05, @arg06, @arg07, @arg08, - @arg09, @arg10, @arg11, @arg12, - @arg13, @arg14, @arg15, @arg16, - @arg17, @arg18, @arg19, @arg20, - @arg21, @arg22, @arg23, @arg24, - @arg25, @arg26, @arg27, @arg28, - @arg29, @arg30, @arg31, @arg32" ; -select @arg01:= c1, @arg02:= c2, @arg03:= c3, @arg04:= c4, -@arg05:= c5, @arg06:= c6, @arg07:= c7, @arg08:= c8, -@arg09:= c9, @arg10:= c10, @arg11:= c11, @arg12:= c12, -@arg13:= c13, @arg14:= c14, @arg15:= c15, @arg16:= c16, -@arg17:= c17, @arg18:= c18, @arg19:= c19, @arg20:= c20, -@arg21:= c21, @arg22:= c22, @arg23:= c23, @arg24:= c24, -@arg25:= c25, @arg26:= c26, @arg27:= c27, @arg28:= c28, -@arg29:= c29, @arg30:= c30, @arg31:= c31, @arg32:= c32 -from t9 where c1= 1 ; -@arg01:= c1 @arg02:= c2 @arg03:= c3 @arg04:= c4 @arg05:= c5 @arg06:= c6 @arg07:= c7 @arg08:= c8 @arg09:= c9 @arg10:= c10 @arg11:= c11 @arg12:= c12 @arg13:= c13 @arg14:= c14 @arg15:= c15 @arg16:= c16 @arg17:= c17 @arg18:= c18 @arg19:= c19 @arg20:= c20 @arg21:= c21 @arg22:= c22 @arg23:= c23 @arg24:= c24 @arg25:= c25 @arg26:= c26 @arg27:= c27 @arg28:= c28 @arg29:= c29 @arg30:= c30 @arg31:= c31 @arg32:= c32 -1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday -execute full_info ; -Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr -def @arg01 254 20 1 Y 128 31 63 -def @arg02 254 20 1 Y 128 31 63 -def @arg03 254 20 1 Y 128 31 63 -def @arg04 254 20 1 Y 128 31 63 -def @arg05 254 20 1 Y 128 31 63 -def @arg06 254 20 1 Y 128 31 63 -def @arg07 254 20 1 Y 128 31 63 -def @arg08 254 20 1 Y 128 31 63 -def @arg09 254 20 1 Y 128 31 63 -def @arg10 254 20 1 Y 128 31 63 -def @arg11 254 20 1 Y 128 31 63 -def @arg12 254 20 1 Y 128 31 63 -def @arg13 254 8192 10 Y 128 31 63 -def @arg14 254 8192 19 Y 128 31 63 -def @arg15 254 8192 19 Y 128 31 63 -def @arg16 254 8192 8 Y 128 31 63 -def @arg17 254 20 4 Y 128 31 63 -def @arg18 254 20 1 Y 128 31 63 -def @arg19 254 20 1 Y 128 31 63 -def @arg20 254 8192 1 Y 0 31 8 -def @arg21 254 8192 10 Y 0 31 8 -def @arg22 254 8192 30 Y 0 31 8 -def @arg23 254 8192 8 Y 128 31 63 -def @arg24 254 8192 8 Y 0 31 8 -def @arg25 254 8192 4 Y 128 31 63 -def @arg26 254 8192 4 Y 0 31 8 -def @arg27 254 8192 10 Y 128 31 63 -def @arg28 254 8192 10 Y 0 31 8 -def @arg29 254 8192 8 Y 128 31 63 -def @arg30 254 8192 8 Y 0 31 8 -def @arg31 254 8192 3 Y 0 31 8 -def @arg32 254 8192 6 Y 128 31 63 -@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32 -1 1 1 1 1 1 1 1 1 1 1 1 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday -select @arg01:= c1, @arg02:= c2, @arg03:= c3, @arg04:= c4, -@arg05:= c5, @arg06:= c6, @arg07:= c7, @arg08:= c8, -@arg09:= c9, @arg10:= c10, @arg11:= c11, @arg12:= c12, -@arg13:= c13, @arg14:= c14, @arg15:= c15, @arg16:= c16, -@arg17:= c17, @arg18:= c18, @arg19:= c19, @arg20:= c20, -@arg21:= c21, @arg22:= c22, @arg23:= c23, @arg24:= c24, -@arg25:= c25, @arg26:= c26, @arg27:= c27, @arg28:= c28, -@arg29:= c29, @arg30:= c30, @arg31:= c31, @arg32:= c32 -from t9 where c1= 0 ; -@arg01:= c1 @arg02:= c2 @arg03:= c3 @arg04:= c4 @arg05:= c5 @arg06:= c6 @arg07:= c7 @arg08:= c8 @arg09:= c9 @arg10:= c10 @arg11:= c11 @arg12:= c12 @arg13:= c13 @arg14:= c14 @arg15:= c15 @arg16:= c16 @arg17:= c17 @arg18:= c18 @arg19:= c19 @arg20:= c20 @arg21:= c21 @arg22:= c22 @arg23:= c23 @arg24:= c24 @arg25:= c25 @arg26:= c26 @arg27:= c27 @arg28:= c28 @arg29:= c29 @arg30:= c30 @arg31:= c31 @arg32:= c32 -0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -execute full_info ; -Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr -def @arg01 254 20 1 Y 128 31 63 -def @arg02 254 20 0 Y 128 31 63 -def @arg03 254 20 0 Y 128 31 63 -def @arg04 254 20 0 Y 128 31 63 -def @arg05 254 20 0 Y 128 31 63 -def @arg06 254 20 0 Y 128 31 63 -def @arg07 254 20 0 Y 128 31 63 -def @arg08 254 20 0 Y 128 31 63 -def @arg09 254 20 0 Y 128 31 63 -def @arg10 254 20 0 Y 128 31 63 -def @arg11 254 20 0 Y 128 31 63 -def @arg12 254 20 0 Y 128 31 63 -def @arg13 254 8192 0 Y 128 31 63 -def @arg14 254 8192 0 Y 128 31 63 -def @arg15 254 8192 19 Y 128 31 63 -def @arg16 254 8192 0 Y 128 31 63 -def @arg17 254 20 0 Y 128 31 63 -def @arg18 254 20 0 Y 128 31 63 -def @arg19 254 20 0 Y 128 31 63 -def @arg20 254 8192 0 Y 0 31 8 -def @arg21 254 8192 0 Y 0 31 8 -def @arg22 254 8192 0 Y 0 31 8 -def @arg23 254 8192 0 Y 128 31 63 -def @arg24 254 8192 0 Y 0 31 8 -def @arg25 254 8192 0 Y 128 31 63 -def @arg26 254 8192 0 Y 0 31 8 -def @arg27 254 8192 0 Y 128 31 63 -def @arg28 254 8192 0 Y 0 31 8 -def @arg29 254 8192 0 Y 128 31 63 -def @arg30 254 8192 0 Y 0 31 8 -def @arg31 254 8192 0 Y 0 31 8 -def @arg32 254 8192 0 Y 0 31 8 -@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32 -0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -prepare stmt1 from "select - @arg01:= c1, @arg02:= c2, @arg03:= c3, @arg04:= c4, - @arg05:= c5, @arg06:= c6, @arg07:= c7, @arg08:= c8, - @arg09:= c9, @arg10:= c10, @arg11:= c11, @arg12:= c12, - @arg13:= c13, @arg14:= c14, @arg15:= c15, @arg16:= c16, - @arg17:= c17, @arg18:= c18, @arg19:= c19, @arg20:= c20, - @arg21:= c21, @arg22:= c22, @arg23:= c23, @arg24:= c24, - @arg25:= c25, @arg26:= c26, @arg27:= c27, @arg28:= c28, - @arg29:= c29, @arg30:= c30, @arg31:= c31, @arg32:= c32 -from t9 where c1= ?" ; -set @my_key= 1 ; -execute stmt1 using @my_key ; -@arg01:= c1 @arg02:= c2 @arg03:= c3 @arg04:= c4 @arg05:= c5 @arg06:= c6 @arg07:= c7 @arg08:= c8 @arg09:= c9 @arg10:= c10 @arg11:= c11 @arg12:= c12 @arg13:= c13 @arg14:= c14 @arg15:= c15 @arg16:= c16 @arg17:= c17 @arg18:= c18 @arg19:= c19 @arg20:= c20 @arg21:= c21 @arg22:= c22 @arg23:= c23 @arg24:= c24 @arg25:= c25 @arg26:= c26 @arg27:= c27 @arg28:= c28 @arg29:= c29 @arg30:= c30 @arg31:= c31 @arg32:= c32 -1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday -execute full_info ; -Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr -def @arg01 254 20 1 Y 128 31 63 -def @arg02 254 20 1 Y 128 31 63 -def @arg03 254 20 1 Y 128 31 63 -def @arg04 254 20 1 Y 128 31 63 -def @arg05 254 20 1 Y 128 31 63 -def @arg06 254 20 1 Y 128 31 63 -def @arg07 254 20 1 Y 128 31 63 -def @arg08 254 20 1 Y 128 31 63 -def @arg09 254 20 1 Y 128 31 63 -def @arg10 254 20 1 Y 128 31 63 -def @arg11 254 20 1 Y 128 31 63 -def @arg12 254 20 1 Y 128 31 63 -def @arg13 254 8192 10 Y 128 31 63 -def @arg14 254 8192 19 Y 128 31 63 -def @arg15 254 8192 19 Y 128 31 63 -def @arg16 254 8192 8 Y 128 31 63 -def @arg17 254 20 4 Y 128 31 63 -def @arg18 254 20 1 Y 128 31 63 -def @arg19 254 20 1 Y 128 31 63 -def @arg20 254 8192 1 Y 0 31 8 -def @arg21 254 8192 10 Y 0 31 8 -def @arg22 254 8192 30 Y 0 31 8 -def @arg23 254 8192 8 Y 128 31 63 -def @arg24 254 8192 8 Y 0 31 8 -def @arg25 254 8192 4 Y 128 31 63 -def @arg26 254 8192 4 Y 0 31 8 -def @arg27 254 8192 10 Y 128 31 63 -def @arg28 254 8192 10 Y 0 31 8 -def @arg29 254 8192 8 Y 128 31 63 -def @arg30 254 8192 8 Y 0 31 8 -def @arg31 254 8192 3 Y 0 31 8 -def @arg32 254 8192 6 Y 128 31 63 -@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32 -1 1 1 1 1 1 1 1 1 1 1 1 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday -set @my_key= 0 ; -execute stmt1 using @my_key ; -@arg01:= c1 @arg02:= c2 @arg03:= c3 @arg04:= c4 @arg05:= c5 @arg06:= c6 @arg07:= c7 @arg08:= c8 @arg09:= c9 @arg10:= c10 @arg11:= c11 @arg12:= c12 @arg13:= c13 @arg14:= c14 @arg15:= c15 @arg16:= c16 @arg17:= c17 @arg18:= c18 @arg19:= c19 @arg20:= c20 @arg21:= c21 @arg22:= c22 @arg23:= c23 @arg24:= c24 @arg25:= c25 @arg26:= c26 @arg27:= c27 @arg28:= c28 @arg29:= c29 @arg30:= c30 @arg31:= c31 @arg32:= c32 -0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -execute full_info ; -Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr -def @arg01 254 20 1 Y 128 31 63 -def @arg02 254 20 0 Y 128 31 63 -def @arg03 254 20 0 Y 128 31 63 -def @arg04 254 20 0 Y 128 31 63 -def @arg05 254 20 0 Y 128 31 63 -def @arg06 254 20 0 Y 128 31 63 -def @arg07 254 20 0 Y 128 31 63 -def @arg08 254 20 0 Y 128 31 63 -def @arg09 254 20 0 Y 128 31 63 -def @arg10 254 20 0 Y 128 31 63 -def @arg11 254 20 0 Y 128 31 63 -def @arg12 254 20 0 Y 128 31 63 -def @arg13 254 8192 0 Y 128 31 63 -def @arg14 254 8192 0 Y 128 31 63 -def @arg15 254 8192 19 Y 128 31 63 -def @arg16 254 8192 0 Y 128 31 63 -def @arg17 254 20 0 Y 128 31 63 -def @arg18 254 20 0 Y 128 31 63 -def @arg19 254 20 0 Y 128 31 63 -def @arg20 254 8192 0 Y 0 31 8 -def @arg21 254 8192 0 Y 0 31 8 -def @arg22 254 8192 0 Y 0 31 8 -def @arg23 254 8192 0 Y 128 31 63 -def @arg24 254 8192 0 Y 0 31 8 -def @arg25 254 8192 0 Y 128 31 63 -def @arg26 254 8192 0 Y 0 31 8 -def @arg27 254 8192 0 Y 128 31 63 -def @arg28 254 8192 0 Y 0 31 8 -def @arg29 254 8192 0 Y 128 31 63 -def @arg30 254 8192 0 Y 0 31 8 -def @arg31 254 8192 0 Y 0 31 8 -def @arg32 254 8192 0 Y 0 31 8 -@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32 -0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -prepare stmt1 from "select ? := c1 from t9 where c1= 1" ; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ':= c1 from t9 where c1= 1' at line 1 -test_sequence ------- select column, .. into @parm,.. ------ -select c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12, -c13, c14, c15, c16, c17, c18, c19, c20, c21, c22, c23, c24, -c25, c26, c27, c28, c29, c30, c31, c32 -into @arg01, @arg02, @arg03, @arg04, @arg05, @arg06, @arg07, @arg08, -@arg09, @arg10, @arg11, @arg12, @arg13, @arg14, @arg15, @arg16, -@arg17, @arg18, @arg19, @arg20, @arg21, @arg22, @arg23, @arg24, -@arg25, @arg26, @arg27, @arg28, @arg29, @arg30, @arg31, @arg32 -from t9 where c1= 1 ; -execute full_info ; -Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr -def @arg01 254 20 1 Y 128 31 63 -def @arg02 254 20 1 Y 128 31 63 -def @arg03 254 20 1 Y 128 31 63 -def @arg04 254 20 1 Y 128 31 63 -def @arg05 254 20 1 Y 128 31 63 -def @arg06 254 20 1 Y 128 31 63 -def @arg07 254 20 1 Y 128 31 63 -def @arg08 254 20 1 Y 128 31 63 -def @arg09 254 20 1 Y 128 31 63 -def @arg10 254 20 1 Y 128 31 63 -def @arg11 254 20 1 Y 128 31 63 -def @arg12 254 20 1 Y 128 31 63 -def @arg13 254 8192 10 Y 128 31 63 -def @arg14 254 8192 19 Y 128 31 63 -def @arg15 254 8192 19 Y 128 31 63 -def @arg16 254 8192 8 Y 128 31 63 -def @arg17 254 20 4 Y 128 31 63 -def @arg18 254 20 1 Y 128 31 63 -def @arg19 254 20 1 Y 128 31 63 -def @arg20 254 8192 1 Y 0 31 8 -def @arg21 254 8192 10 Y 0 31 8 -def @arg22 254 8192 30 Y 0 31 8 -def @arg23 254 8192 8 Y 128 31 63 -def @arg24 254 8192 8 Y 0 31 8 -def @arg25 254 8192 4 Y 128 31 63 -def @arg26 254 8192 4 Y 0 31 8 -def @arg27 254 8192 10 Y 128 31 63 -def @arg28 254 8192 10 Y 0 31 8 -def @arg29 254 8192 8 Y 128 31 63 -def @arg30 254 8192 8 Y 0 31 8 -def @arg31 254 8192 3 Y 0 31 8 -def @arg32 254 8192 6 Y 128 31 63 -@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32 -1 1 1 1 1 1 1 1 1 1 1 1 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday -select c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12, -c13, c14, c15, c16, c17, c18, c19, c20, c21, c22, c23, c24, -c25, c26, c27, c28, c29, c30, c31, c32 -into @arg01, @arg02, @arg03, @arg04, @arg05, @arg06, @arg07, @arg08, -@arg09, @arg10, @arg11, @arg12, @arg13, @arg14, @arg15, @arg16, -@arg17, @arg18, @arg19, @arg20, @arg21, @arg22, @arg23, @arg24, -@arg25, @arg26, @arg27, @arg28, @arg29, @arg30, @arg31, @arg32 -from t9 where c1= 0 ; -execute full_info ; -Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr -def @arg01 254 20 1 Y 128 31 63 -def @arg02 254 20 0 Y 128 31 63 -def @arg03 254 20 0 Y 128 31 63 -def @arg04 254 20 0 Y 128 31 63 -def @arg05 254 20 0 Y 128 31 63 -def @arg06 254 20 0 Y 128 31 63 -def @arg07 254 20 0 Y 128 31 63 -def @arg08 254 20 0 Y 128 31 63 -def @arg09 254 20 0 Y 128 31 63 -def @arg10 254 20 0 Y 128 31 63 -def @arg11 254 20 0 Y 128 31 63 -def @arg12 254 20 0 Y 128 31 63 -def @arg13 254 8192 0 Y 128 31 63 -def @arg14 254 8192 0 Y 128 31 63 -def @arg15 254 8192 19 Y 128 31 63 -def @arg16 254 8192 0 Y 128 31 63 -def @arg17 254 20 0 Y 128 31 63 -def @arg18 254 20 0 Y 128 31 63 -def @arg19 254 20 0 Y 128 31 63 -def @arg20 254 8192 0 Y 0 31 8 -def @arg21 254 8192 0 Y 0 31 8 -def @arg22 254 8192 0 Y 0 31 8 -def @arg23 254 8192 0 Y 128 31 63 -def @arg24 254 8192 0 Y 0 31 8 -def @arg25 254 8192 0 Y 128 31 63 -def @arg26 254 8192 0 Y 0 31 8 -def @arg27 254 8192 0 Y 128 31 63 -def @arg28 254 8192 0 Y 0 31 8 -def @arg29 254 8192 0 Y 128 31 63 -def @arg30 254 8192 0 Y 0 31 8 -def @arg31 254 8192 0 Y 0 31 8 -def @arg32 254 8192 0 Y 0 31 8 -@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32 -0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -prepare stmt1 from "select c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12, - c13, c14, c15, c16, c17, c18, c19, c20, c21, c22, c23, c24, - c25, c26, c27, c28, c29, c30, c31, c32 -into @arg01, @arg02, @arg03, @arg04, @arg05, @arg06, @arg07, @arg08, - @arg09, @arg10, @arg11, @arg12, @arg13, @arg14, @arg15, @arg16, - @arg17, @arg18, @arg19, @arg20, @arg21, @arg22, @arg23, @arg24, - @arg25, @arg26, @arg27, @arg28, @arg29, @arg30, @arg31, @arg32 -from t9 where c1= ?" ; -set @my_key= 1 ; -execute stmt1 using @my_key ; -execute full_info ; -Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr -def @arg01 254 20 1 Y 128 31 63 -def @arg02 254 20 1 Y 128 31 63 -def @arg03 254 20 1 Y 128 31 63 -def @arg04 254 20 1 Y 128 31 63 -def @arg05 254 20 1 Y 128 31 63 -def @arg06 254 20 1 Y 128 31 63 -def @arg07 254 20 1 Y 128 31 63 -def @arg08 254 20 1 Y 128 31 63 -def @arg09 254 20 1 Y 128 31 63 -def @arg10 254 20 1 Y 128 31 63 -def @arg11 254 20 1 Y 128 31 63 -def @arg12 254 20 1 Y 128 31 63 -def @arg13 254 8192 10 Y 128 31 63 -def @arg14 254 8192 19 Y 128 31 63 -def @arg15 254 8192 19 Y 128 31 63 -def @arg16 254 8192 8 Y 128 31 63 -def @arg17 254 20 4 Y 128 31 63 -def @arg18 254 20 1 Y 128 31 63 -def @arg19 254 20 1 Y 128 31 63 -def @arg20 254 8192 1 Y 0 31 8 -def @arg21 254 8192 10 Y 0 31 8 -def @arg22 254 8192 30 Y 0 31 8 -def @arg23 254 8192 8 Y 128 31 63 -def @arg24 254 8192 8 Y 0 31 8 -def @arg25 254 8192 4 Y 128 31 63 -def @arg26 254 8192 4 Y 0 31 8 -def @arg27 254 8192 10 Y 128 31 63 -def @arg28 254 8192 10 Y 0 31 8 -def @arg29 254 8192 8 Y 128 31 63 -def @arg30 254 8192 8 Y 0 31 8 -def @arg31 254 8192 3 Y 0 31 8 -def @arg32 254 8192 6 Y 128 31 63 -@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32 -1 1 1 1 1 1 1 1 1 1 1 1 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday -set @my_key= 0 ; -execute stmt1 using @my_key ; -execute full_info ; -Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr -def @arg01 254 20 1 Y 128 31 63 -def @arg02 254 20 0 Y 128 31 63 -def @arg03 254 20 0 Y 128 31 63 -def @arg04 254 20 0 Y 128 31 63 -def @arg05 254 20 0 Y 128 31 63 -def @arg06 254 20 0 Y 128 31 63 -def @arg07 254 20 0 Y 128 31 63 -def @arg08 254 20 0 Y 128 31 63 -def @arg09 254 20 0 Y 128 31 63 -def @arg10 254 20 0 Y 128 31 63 -def @arg11 254 20 0 Y 128 31 63 -def @arg12 254 20 0 Y 128 31 63 -def @arg13 254 8192 0 Y 128 31 63 -def @arg14 254 8192 0 Y 128 31 63 -def @arg15 254 8192 19 Y 128 31 63 -def @arg16 254 8192 0 Y 128 31 63 -def @arg17 254 20 0 Y 128 31 63 -def @arg18 254 20 0 Y 128 31 63 -def @arg19 254 20 0 Y 128 31 63 -def @arg20 254 8192 0 Y 0 31 8 -def @arg21 254 8192 0 Y 0 31 8 -def @arg22 254 8192 0 Y 0 31 8 -def @arg23 254 8192 0 Y 128 31 63 -def @arg24 254 8192 0 Y 0 31 8 -def @arg25 254 8192 0 Y 128 31 63 -def @arg26 254 8192 0 Y 0 31 8 -def @arg27 254 8192 0 Y 128 31 63 -def @arg28 254 8192 0 Y 0 31 8 -def @arg29 254 8192 0 Y 128 31 63 -def @arg30 254 8192 0 Y 0 31 8 -def @arg31 254 8192 0 Y 0 31 8 -def @arg32 254 8192 0 Y 0 31 8 -@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32 -0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -prepare stmt1 from "select c1 into ? from t9 where c1= 1" ; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '? from t9 where c1= 1' at line 1 -test_sequence --- insert into numeric columns -- -insert into t9 -( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values -( 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20 ) ; -set @arg00= 21 ; -insert into t9 -( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values -( @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ) ; -prepare stmt1 from "insert into t9 - ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values - ( 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22 )" ; -execute stmt1 ; -set @arg00= 23; -prepare stmt2 from "insert into t9 - ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values - ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )" ; -execute stmt2 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00 ; -insert into t9 -( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values -( 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, -30.0, 30.0, 30.0 ) ; -set @arg00= 31.0 ; -insert into t9 -( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values -( @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ) ; -prepare stmt1 from "insert into t9 - ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values - ( 32.0, 32.0, 32.0, 32.0, 32.0, 32.0, 32.0, 32.0, - 32.0, 32.0, 32.0 )" ; -execute stmt1 ; -set @arg00= 33.0; -prepare stmt2 from "insert into t9 - ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values - ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )" ; -execute stmt2 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00 ; -insert into t9 -( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values -( '40', '40', '40', '40', '40', '40', '40', '40', -'40', '40', '40' ) ; -set @arg00= '41' ; -insert into t9 -( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values -( @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ) ; -prepare stmt1 from "insert into t9 - ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values - ( '42', '42', '42', '42', '42', '42', '42', '42', - '42', '42', '42' )" ; -execute stmt1 ; -set @arg00= '43'; -prepare stmt2 from "insert into t9 - ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values - ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )" ; -execute stmt2 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00 ; -insert into t9 -( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values -( CAST('50' as binary), CAST('50' as binary), -CAST('50' as binary), CAST('50' as binary), CAST('50' as binary), -CAST('50' as binary), CAST('50' as binary), CAST('50' as binary), -CAST('50' as binary), CAST('50' as binary), CAST('50' as binary) ) ; -set @arg00= CAST('51' as binary) ; -insert into t9 -( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values -( @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ) ; -prepare stmt1 from "insert into t9 - ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values - ( CAST('52' as binary), CAST('52' as binary), - CAST('52' as binary), CAST('52' as binary), CAST('52' as binary), - CAST('52' as binary), CAST('52' as binary), CAST('52' as binary), - CAST('52' as binary), CAST('52' as binary), CAST('52' as binary) )" ; -execute stmt1 ; -set @arg00= CAST('53' as binary) ; -prepare stmt2 from "insert into t9 - ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values - ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )" ; -execute stmt2 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00 ; -set @arg00= 2 ; -set @arg00= NULL ; -insert into t9 -( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values -( 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, -NULL, NULL, NULL ) ; -insert into t9 -( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values -( 61, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ) ; -prepare stmt1 from "insert into t9 - ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values - ( 62, NULL, NULL, NULL, NULL, NULL, NULL, NULL, - NULL, NULL, NULL )" ; -execute stmt1 ; -prepare stmt2 from "insert into t9 - ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values - ( 63, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )" ; -execute stmt2 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00 ; -set @arg00= 8.0 ; -set @arg00= NULL ; -insert into t9 -( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values -( 71, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ) ; -prepare stmt2 from "insert into t9 - ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values - ( 73, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )" ; -execute stmt2 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00 ; -set @arg00= 'abc' ; -set @arg00= NULL ; -insert into t9 -( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values -( 81, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ) ; -prepare stmt2 from "insert into t9 - ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values - ( 83, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )" ; -execute stmt2 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00 ; -select c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 -from t9 where c1 >= 20 -order by c1 ; -c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c12 -20 20 20 20 20 20 20 20 20 20 20.0000 -21 21 21 21 21 21 21 21 21 21 21.0000 -22 22 22 22 22 22 22 22 22 22 22.0000 -23 23 23 23 23 23 23 23 23 23 23.0000 -30 30 30 30 30 30 30 30 30 30 30.0000 -31 31 31 31 31 31 31 31 31 31 31.0000 -32 32 32 32 32 32 32 32 32 32 32.0000 -33 33 33 33 33 33 33 33 33 33 33.0000 -40 40 40 40 40 40 40 40 40 40 40.0000 -41 41 41 41 41 41 41 41 41 41 41.0000 -42 42 42 42 42 42 42 42 42 42 42.0000 -43 43 43 43 43 43 43 43 43 43 43.0000 -50 50 50 50 50 50 50 50 50 50 50.0000 -51 51 51 51 51 51 51 51 51 51 51.0000 -52 52 52 52 52 52 52 52 52 52 52.0000 -53 53 53 53 53 53 53 53 53 53 53.0000 -60 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -61 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -62 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -63 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -71 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -73 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -81 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -83 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -test_sequence --- select .. where numeric column = .. -- -set @arg00= 20; -select 'true' as found from t9 -where c1= 20 and c2= 20 and c3= 20 and c4= 20 and c5= 20 and c6= 20 and c7= 20 -and c8= 20 and c9= 20 and c10= 20 and c12= 20; -found -true -select 'true' as found from t9 -where c1= @arg00 and c2= @arg00 and c3= @arg00 and c4= @arg00 and c5= @arg00 -and c6= @arg00 and c7= @arg00 and c8= @arg00 and c9= @arg00 and c10= @arg00 -and c12= @arg00; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and c2= 20 and c3= 20 and c4= 20 and c5= 20 and c6= 20 and c7= 20 - and c8= 20 and c9= 20 and c10= 20 and c12= 20 "; -execute stmt1 ; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= ? and c2= ? and c3= ? and c4= ? and c5= ? - and c6= ? and c7= ? and c8= ? and c9= ? and c10= ? - and c12= ? "; -execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00 ; -found -true -set @arg00= 20.0; -select 'true' as found from t9 -where c1= 20.0 and c2= 20.0 and c3= 20.0 and c4= 20.0 and c5= 20.0 and c6= 20.0 -and c7= 20.0 and c8= 20.0 and c9= 20.0 and c10= 20.0 and c12= 20.0; -found -true -select 'true' as found from t9 -where c1= @arg00 and c2= @arg00 and c3= @arg00 and c4= @arg00 and c5= @arg00 -and c6= @arg00 and c7= @arg00 and c8= @arg00 and c9= @arg00 and c10= @arg00 -and c12= @arg00; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20.0 and c2= 20.0 and c3= 20.0 and c4= 20.0 and c5= 20.0 and c6= 20.0 - and c7= 20.0 and c8= 20.0 and c9= 20.0 and c10= 20.0 and c12= 20.0 "; -execute stmt1 ; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= ? and c2= ? and c3= ? and c4= ? and c5= ? - and c6= ? and c7= ? and c8= ? and c9= ? and c10= ? - and c12= ? "; -execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00 ; -found -true -select 'true' as found from t9 -where c1= '20' and c2= '20' and c3= '20' and c4= '20' and c5= '20' and c6= '20' - and c7= '20' and c8= '20' and c9= '20' and c10= '20' and c12= '20'; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= '20' and c2= '20' and c3= '20' and c4= '20' and c5= '20' and c6= '20' - and c7= '20' and c8= '20' and c9= '20' and c10= '20' and c12= '20' "; -execute stmt1 ; -found -true -set @arg00= '20'; -select 'true' as found from t9 -where c1= @arg00 and c2= @arg00 and c3= @arg00 and c4= @arg00 and c5= @arg00 -and c6= @arg00 and c7= @arg00 and c8= @arg00 and c9= @arg00 and c10= @arg00 -and c12= @arg00; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= ? and c2= ? and c3= ? and c4= ? and c5= ? - and c6= ? and c7= ? and c8= ? and c9= ? and c10= ? - and c12= ? "; -execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00 ; -found -true -select 'true' as found from t9 -where c1= CAST('20' as binary) and c2= CAST('20' as binary) and -c3= CAST('20' as binary) and c4= CAST('20' as binary) and -c5= CAST('20' as binary) and c6= CAST('20' as binary) and -c7= CAST('20' as binary) and c8= CAST('20' as binary) and -c9= CAST('20' as binary) and c10= CAST('20' as binary) and -c12= CAST('20' as binary); -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= CAST('20' as binary) and c2= CAST('20' as binary) and - c3= CAST('20' as binary) and c4= CAST('20' as binary) and - c5= CAST('20' as binary) and c6= CAST('20' as binary) and - c7= CAST('20' as binary) and c8= CAST('20' as binary) and - c9= CAST('20' as binary) and c10= CAST('20' as binary) and - c12= CAST('20' as binary) "; -execute stmt1 ; -found -true -set @arg00= CAST('20' as binary) ; -select 'true' as found from t9 -where c1= @arg00 and c2= @arg00 and c3= @arg00 and c4= @arg00 and c5= @arg00 -and c6= @arg00 and c7= @arg00 and c8= @arg00 and c9= @arg00 and c10= @arg00 -and c12= @arg00; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= ? and c2= ? and c3= ? and c4= ? and c5= ? - and c6= ? and c7= ? and c8= ? and c9= ? and c10= ? - and c12= ? "; -execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00 ; -found -true -delete from t9 ; -test_sequence --- some numeric overflow experiments -- -prepare my_insert from "insert into t9 - ( c21, c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values - ( 'O', ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )" ; -prepare my_select from "select c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 -from t9 where c21 = 'O' "; -prepare my_delete from "delete from t9 where c21 = 'O' "; -set @arg00= 9223372036854775807 ; -execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ; -Warnings: -Warning 1264 Data truncated; out of range for column 'c1' at row 1 -Warning 1264 Data truncated; out of range for column 'c2' at row 1 -Warning 1264 Data truncated; out of range for column 'c3' at row 1 -Warning 1264 Data truncated; out of range for column 'c4' at row 1 -Warning 1264 Data truncated; out of range for column 'c5' at row 1 -Warning 1264 Data truncated; out of range for column 'c12' at row 1 -execute my_select ; -c1 127 -c2 32767 -c3 8388607 -c4 2147483647 -c5 2147483647 -c6 9223372036854775807 -c7 9.22337e+18 -c8 9.22337203685478e+18 -c9 9.22337203685478e+18 -c10 9.22337203685478e+18 -c12 99999.9999 -execute my_delete ; -set @arg00= '9223372036854775807' ; -execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ; -Warnings: -Warning 1264 Data truncated; out of range for column 'c1' at row 1 -Warning 1264 Data truncated; out of range for column 'c2' at row 1 -Warning 1264 Data truncated; out of range for column 'c3' at row 1 -Warning 1265 Data truncated for column 'c4' at row 1 -Warning 1265 Data truncated for column 'c5' at row 1 -Warning 1264 Data truncated; out of range for column 'c12' at row 1 -execute my_select ; -c1 127 -c2 32767 -c3 8388607 -c4 2147483647 -c5 2147483647 -c6 9223372036854775807 -c7 9.22337e+18 -c8 9.22337203685478e+18 -c9 9.22337203685478e+18 -c10 9.22337203685478e+18 -c12 99999.9999 -execute my_delete ; -set @arg00= -9223372036854775808 ; -execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ; -Warnings: -Warning 1264 Data truncated; out of range for column 'c1' at row 1 -Warning 1264 Data truncated; out of range for column 'c2' at row 1 -Warning 1264 Data truncated; out of range for column 'c3' at row 1 -Warning 1264 Data truncated; out of range for column 'c4' at row 1 -Warning 1264 Data truncated; out of range for column 'c5' at row 1 -Warning 1264 Data truncated; out of range for column 'c12' at row 1 -execute my_select ; -c1 -128 -c2 -32768 -c3 -8388608 -c4 -2147483648 -c5 -2147483648 -c6 -9223372036854775808 -c7 -9.22337e+18 -c8 -9.22337203685478e+18 -c9 -9.22337203685478e+18 -c10 -9.22337203685478e+18 -c12 -9999.9999 -execute my_delete ; -set @arg00= '-9223372036854775808' ; -execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ; -Warnings: -Warning 1264 Data truncated; out of range for column 'c1' at row 1 -Warning 1264 Data truncated; out of range for column 'c2' at row 1 -Warning 1264 Data truncated; out of range for column 'c3' at row 1 -Warning 1265 Data truncated for column 'c4' at row 1 -Warning 1265 Data truncated for column 'c5' at row 1 -Warning 1264 Data truncated; out of range for column 'c12' at row 1 -execute my_select ; -c1 -128 -c2 -32768 -c3 -8388608 -c4 -2147483648 -c5 -2147483648 -c6 -9223372036854775808 -c7 -9.22337e+18 -c8 -9.22337203685478e+18 -c9 -9.22337203685478e+18 -c10 -9.22337203685478e+18 -c12 -9999.9999 -execute my_delete ; -set @arg00= 1.11111111111111111111e+50 ; -execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ; -Warnings: -Warning 1264 Data truncated; out of range for column 'c1' at row 1 -Warning 1264 Data truncated; out of range for column 'c2' at row 1 -Warning 1264 Data truncated; out of range for column 'c3' at row 1 -Warning 1264 Data truncated; out of range for column 'c4' at row 1 -Warning 1264 Data truncated; out of range for column 'c5' at row 1 -Warning 1264 Data truncated; out of range for column 'c6' at row 1 -Warning 1264 Data truncated; out of range for column 'c7' at row 1 -Warning 1264 Data truncated; out of range for column 'c12' at row 1 -execute my_select ; -c1 127 -c2 32767 -c3 8388607 -c4 2147483647 -c5 2147483647 -c6 9223372036854775807 -c7 3.40282e+38 -c8 1.11111111111111e+50 -c9 1.11111111111111e+50 -c10 1.11111111111111e+50 -c12 99999.9999 -execute my_delete ; -set @arg00= '1.11111111111111111111e+50' ; -execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ; -Warnings: -Warning 1265 Data truncated for column 'c1' at row 1 -Warning 1265 Data truncated for column 'c2' at row 1 -Warning 1265 Data truncated for column 'c3' at row 1 -Warning 1265 Data truncated for column 'c4' at row 1 -Warning 1265 Data truncated for column 'c5' at row 1 -Warning 1265 Data truncated for column 'c6' at row 1 -Warning 1264 Data truncated; out of range for column 'c7' at row 1 -Warning 1264 Data truncated; out of range for column 'c12' at row 1 -execute my_select ; -c1 1 -c2 1 -c3 1 -c4 1 -c5 1 -c6 1 -c7 3.40282e+38 -c8 1.11111111111111e+50 -c9 1.11111111111111e+50 -c10 1.11111111111111e+50 -c12 99999.9999 -execute my_delete ; -set @arg00= -1.11111111111111111111e+50 ; -execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ; -Warnings: -Warning 1264 Data truncated; out of range for column 'c1' at row 1 -Warning 1264 Data truncated; out of range for column 'c2' at row 1 -Warning 1264 Data truncated; out of range for column 'c3' at row 1 -Warning 1264 Data truncated; out of range for column 'c4' at row 1 -Warning 1264 Data truncated; out of range for column 'c5' at row 1 -Warning 1264 Data truncated; out of range for column 'c6' at row 1 -Warning 1264 Data truncated; out of range for column 'c7' at row 1 -Warning 1264 Data truncated; out of range for column 'c12' at row 1 -execute my_select ; -c1 -128 -c2 -32768 -c3 -8388608 -c4 -2147483648 -c5 -2147483648 -c6 -9223372036854775808 -c7 -3.40282e+38 -c8 -1.11111111111111e+50 -c9 -1.11111111111111e+50 -c10 -1.11111111111111e+50 -c12 -9999.9999 -execute my_delete ; -set @arg00= '-1.11111111111111111111e+50' ; -execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ; -Warnings: -Warning 1265 Data truncated for column 'c1' at row 1 -Warning 1265 Data truncated for column 'c2' at row 1 -Warning 1265 Data truncated for column 'c3' at row 1 -Warning 1265 Data truncated for column 'c4' at row 1 -Warning 1265 Data truncated for column 'c5' at row 1 -Warning 1265 Data truncated for column 'c6' at row 1 -Warning 1264 Data truncated; out of range for column 'c7' at row 1 -Warning 1264 Data truncated; out of range for column 'c12' at row 1 -execute my_select ; -c1 -1 -c2 -1 -c3 -1 -c4 -1 -c5 -1 -c6 -1 -c7 -3.40282e+38 -c8 -1.11111111111111e+50 -c9 -1.11111111111111e+50 -c10 -1.11111111111111e+50 -c12 -9999.9999 -execute my_delete ; -test_sequence --- insert into string columns -- -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -select c1, c20, c21, c22, c23, c24, c25, c26, c27, c28, c29, c30 -from t9 where c1 >= 20 -order by c1 ; -c1 c20 c21 c22 c23 c24 c25 c26 c27 c28 c29 c30 -20 2 20 20 20 20 20 20 20 20 20 20 -21 2 21 21 21 21 21 21 21 21 21 21 -22 2 22 22 22 22 22 22 22 22 22 22 -23 2 23 23 23 23 23 23 23 23 23 23 -30 3 30 30 30 30 30 30 30 30 30 30 -31 3 31 31 31 31 31 31 31 31 31 31 -32 3 32 32 32 32 32 32 32 32 32 32 -33 3 33 33 33 33 33 33 33 33 33 33 -40 4 40 40 40 40 40 40 40 40 40 40 -41 4 41 41 41 41 41 41 41 41 41 41 -42 4 42 42 42 42 42 42 42 42 42 42 -43 4 43 43 43 43 43 43 43 43 43 43 -50 5 50 50 50.00 50.00 50.00 50.00 50.00 50.00 50.00 50.00 -51 5 51 51 51 51 51 51 51 51 51 51 -52 5 52 52 52.00 52.00 52.00 52.00 52.00 52.00 52.00 52.00 -53 5 53 53 53.00 53.00 53.00 53.00 53.00 53.00 53.00 53.00 -54 5 54 54 54.00 54.00 54.00 54.00 54.00 54.00 54.00 54.00 -55 5 55 55 55 55 55 55 55 55 55 55 -56 6 56 56 56.00 56.00 56.00 56.00 56.00 56.00 56.00 56.00 -57 6 57 57 57.00 57.00 57.00 57.00 57.00 57.00 57.00 57.00 -60 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -61 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -62 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -63 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -71 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -73 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -81 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -83 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -test_sequence --- select .. where string column = .. -- -set @arg00= '20'; -select 'true' as found from t9 -where c1= 20 and concat(c20,substr('20',1+length(c20)))= '20' and c21= '20' and -c22= '20' and c23= '20' and c24= '20' and c25= '20' and c26= '20' and -c27= '20' and c28= '20' and c29= '20' and c30= '20' ; -found -true -select 'true' as found from t9 -where c1= 20 and concat(c20,substr(@arg00,1+length(c20)))= @arg00 and -c21= @arg00 and c22= @arg00 and c23= @arg00 and c25= @arg00 and -c26= @arg00 and c27= @arg00 and c28= @arg00 and c29= @arg00 and c30= @arg00; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and concat(c20,substr('20',1+length(c20)))= '20' and c21= '20' and - c22= '20' and c23= '20' and c24= '20' and c25= '20' and c26= '20' and - c27= '20' and c28= '20' and c29= '20' and c30= '20'" ; -execute stmt1 ; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and concat(c20,substr(?,1+length(c20)))= ? and - c21= ? and c22= ? and c23= ? and c25= ? and - c26= ? and c27= ? and c28= ? and c29= ? and c30= ?" ; -execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ; -found -true -set @arg00= CAST('20' as binary); -select 'true' as found from t9 -where c1= 20 and concat(c20,substr(CAST('20' as binary),1+length(c20))) -= CAST('20' as binary) and c21= CAST('20' as binary) -and c22= CAST('20' as binary) and c23= CAST('20' as binary) and -c24= CAST('20' as binary) and c25= CAST('20' as binary) and -c26= CAST('20' as binary) and c27= CAST('20' as binary) and -c28= CAST('20' as binary) and c29= CAST('20' as binary) and -c30= CAST('20' as binary) ; -found -true -select 'true' as found from t9 -where c1= 20 and concat(c20,substr(@arg00,1+length(c20))) = @arg00 and -c21= @arg00 and c22= @arg00 and c23= @arg00 and c25= @arg00 and -c26= @arg00 and c27= @arg00 and c28= @arg00 and c29= @arg00 and -c30= @arg00; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and concat(c20,substr(CAST('20' as binary),1+length(c20))) - = CAST('20' as binary) and c21= CAST('20' as binary) - and c22= CAST('20' as binary) and c23= CAST('20' as binary) and - c24= CAST('20' as binary) and c25= CAST('20' as binary) and - c26= CAST('20' as binary) and c27= CAST('20' as binary) and - c28= CAST('20' as binary) and c29= CAST('20' as binary) and - c30= CAST('20' as binary)" ; -execute stmt1 ; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and concat(c20,substr(?,1+length(c20))) = ? and c21= ? and - c22= ? and c23= ? and c25= ? and c26= ? and c27= ? and c28= ? and - c29= ? and c30= ?"; -execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ; -found -true -set @arg00= 20; -select 'true' as found from t9 -where c1= 20 and concat(c20,substr(20,1+length(c20)))= 20 and c21= 20 and -c22= 20 and c23= 20 and c24= 20 and c25= 20 and c26= 20 and -c27= 20 and c28= 20 and c29= 20 and c30= 20 ; -found -true -select 'true' as found from t9 -where c1= 20 and concat(c20,substr(@arg00,1+length(c20)))= @arg00 and -c21= @arg00 and c22= @arg00 and c23= @arg00 and c25= @arg00 and -c26= @arg00 and c27= @arg00 and c28= @arg00 and c29= @arg00 and c30= @arg00; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and concat(c20,substr(20,1+length(c20)))= 20 and c21= 20 and - c22= 20 and c23= 20 and c24= 20 and c25= 20 and c26= 20 and - c27= 20 and c28= 20 and c29= 20 and c30= 20" ; -execute stmt1 ; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and concat(c20,substr(?,1+length(c20)))= ? and - c21= ? and c22= ? and c23= ? and c25= ? and - c26= ? and c27= ? and c28= ? and c29= ? and c30= ?" ; -execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ; -found -true -set @arg00= 20.0; -select 'true' as found from t9 -where c1= 20 and concat(c20,substr(20.0,1+length(c20)))= 20.0 and c21= 20.0 and -c22= 20.0 and c23= 20.0 and c24= 20.0 and c25= 20.0 and c26= 20.0 and -c27= 20.0 and c28= 20.0 and c29= 20.0 and c30= 20.0 ; -found -true -select 'true' as found from t9 -where c1= 20 and concat(c20,substr(@arg00,1+length(c20)))= @arg00 and -c21= @arg00 and c22= @arg00 and c23= @arg00 and c25= @arg00 and -c26= @arg00 and c27= @arg00 and c28= @arg00 and c29= @arg00 and c30= @arg00; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and concat(c20,substr(20.0,1+length(c20)))= 20.0 and c21= 20.0 and - c22= 20.0 and c23= 20.0 and c24= 20.0 and c25= 20.0 and c26= 20.0 and - c27= 20.0 and c28= 20.0 and c29= 20.0 and c30= 20.0" ; -execute stmt1 ; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and concat(c20,substr(?,1+length(c20)))= ? and - c21= ? and c22= ? and c23= ? and c25= ? and - c26= ? and c27= ? and c28= ? and c29= ? and c30= ?" ; -execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ; -found -true -delete from t9 ; -test_sequence --- insert into date/time columns -- -Warnings: -Warning 1265 Data truncated for column 'c17' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c17' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c17' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c17' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c17' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c17' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c17' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c17' at row 1 -Warnings: -Warning 1264 Data truncated; out of range for column 'c13' at row 1 -Warning 1265 Data truncated for column 'c14' at row 1 -Warning 1265 Data truncated for column 'c15' at row 1 -Warning 1264 Data truncated; out of range for column 'c16' at row 1 -Warning 1264 Data truncated; out of range for column 'c17' at row 1 -Warnings: -Warning 1264 Data truncated; out of range for column 'c13' at row 1 -Warning 1265 Data truncated for column 'c14' at row 1 -Warning 1265 Data truncated for column 'c15' at row 1 -Warning 1264 Data truncated; out of range for column 'c16' at row 1 -Warning 1264 Data truncated; out of range for column 'c17' at row 1 -Warnings: -Warning 1264 Data truncated; out of range for column 'c13' at row 1 -Warning 1265 Data truncated for column 'c14' at row 1 -Warning 1265 Data truncated for column 'c15' at row 1 -Warning 1264 Data truncated; out of range for column 'c16' at row 1 -Warning 1264 Data truncated; out of range for column 'c17' at row 1 -Warnings: -Warning 1264 Data truncated; out of range for column 'c13' at row 1 -Warning 1265 Data truncated for column 'c14' at row 1 -Warning 1265 Data truncated for column 'c15' at row 1 -Warning 1264 Data truncated; out of range for column 'c16' at row 1 -Warning 1264 Data truncated; out of range for column 'c17' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c15' at row 1 -Warning 1264 Data truncated; out of range for column 'c16' at row 1 -Warning 1264 Data truncated; out of range for column 'c17' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c15' at row 1 -Warning 1264 Data truncated; out of range for column 'c16' at row 1 -Warning 1264 Data truncated; out of range for column 'c17' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c15' at row 1 -Warning 1264 Data truncated; out of range for column 'c16' at row 1 -Warning 1264 Data truncated; out of range for column 'c17' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c15' at row 1 -Warning 1264 Data truncated; out of range for column 'c16' at row 1 -Warning 1264 Data truncated; out of range for column 'c17' at row 1 -select c1, c13, c14, c15, c16, c17 from t9 order by c1 ; -c1 c13 c14 c15 c16 c17 -20 1991-01-01 1991-01-01 01:01:01 1991-01-01 01:01:01 01:01:01 1991 -21 1991-01-01 1991-01-01 01:01:01 1991-01-01 01:01:01 01:01:01 1991 -22 1991-01-01 1991-01-01 01:01:01 1991-01-01 01:01:01 01:01:01 1991 -23 1991-01-01 1991-01-01 01:01:01 1991-01-01 01:01:01 01:01:01 1991 -30 1991-01-01 1991-01-01 01:01:01 1991-01-01 01:01:01 01:01:01 1991 -31 1991-01-01 1991-01-01 01:01:01 1991-01-01 01:01:01 01:01:01 1991 -32 1991-01-01 1991-01-01 01:01:01 1991-01-01 01:01:01 01:01:01 1991 -33 1991-01-01 1991-01-01 01:01:01 1991-01-01 01:01:01 01:01:01 1991 -40 0000-00-00 0000-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 -41 0000-00-00 0000-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 -42 0000-00-00 0000-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 -43 0000-00-00 0000-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 -50 2001-00-00 2001-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 -51 0010-00-00 0010-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 -52 2001-00-00 2001-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 -53 2001-00-00 2001-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 -60 NULL NULL 1991-01-01 01:01:01 NULL NULL -61 NULL NULL 1991-01-01 01:01:01 NULL NULL -62 NULL NULL 1991-01-01 01:01:01 NULL NULL -63 NULL NULL 1991-01-01 01:01:01 NULL NULL -71 NULL NULL 1991-01-01 01:01:01 NULL NULL -73 NULL NULL 1991-01-01 01:01:01 NULL NULL -81 NULL NULL 1991-01-01 01:01:01 NULL NULL -83 NULL NULL 1991-01-01 01:01:01 NULL NULL -test_sequence --- select .. where date/time column = .. -- -set @arg00= '1991-01-01 01:01:01' ; -select 'true' as found from t9 -where c1= 20 and c13= '1991-01-01 01:01:01' and c14= '1991-01-01 01:01:01' and -c15= '1991-01-01 01:01:01' and c16= '1991-01-01 01:01:01' and -c17= '1991-01-01 01:01:01' ; -found -true -select 'true' as found from t9 -where c1= 20 and c13= @arg00 and c14= @arg00 and c15= @arg00 and c16= @arg00 -and c17= @arg00 ; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and c13= '1991-01-01 01:01:01' and c14= '1991-01-01 01:01:01' and - c15= '1991-01-01 01:01:01' and c16= '1991-01-01 01:01:01' and - c17= '1991-01-01 01:01:01'" ; -execute stmt1 ; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and c13= ? and c14= ? and c15= ? and c16= ? and c17= ?" ; -execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00 ; -found -true -set @arg00= CAST('1991-01-01 01:01:01' as datetime) ; -select 'true' as found from t9 -where c1= 20 and c13= CAST('1991-01-01 01:01:01' as datetime) and -c14= CAST('1991-01-01 01:01:01' as datetime) and -c15= CAST('1991-01-01 01:01:01' as datetime) and -c16= CAST('1991-01-01 01:01:01' as datetime) and -c17= CAST('1991-01-01 01:01:01' as datetime) ; -found -true -select 'true' as found from t9 -where c1= 20 and c13= @arg00 and c14= @arg00 and c15= @arg00 and c16= @arg00 -and c17= @arg00 ; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and c13= CAST('1991-01-01 01:01:01' as datetime) and - c14= CAST('1991-01-01 01:01:01' as datetime) and - c15= CAST('1991-01-01 01:01:01' as datetime) and - c16= CAST('1991-01-01 01:01:01' as datetime) and - c17= CAST('1991-01-01 01:01:01' as datetime)" ; -execute stmt1 ; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and c13= ? and c14= ? and c15= ? and c16= ? and c17= ?" ; -execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00 ; -found -true -set @arg00= 1991 ; -select 'true' as found from t9 -where c1= 20 and c17= 1991 ; -found -true -select 'true' as found from t9 -where c1= 20 and c17= @arg00 ; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and c17= 1991" ; -execute stmt1 ; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and c17= ?" ; -execute stmt1 using @arg00 ; -found -true -set @arg00= 1.991e+3 ; -select 'true' as found from t9 -where c1= 20 and abs(c17 - 1.991e+3) < 0.01 ; -found -true -select 'true' as found from t9 -where c1= 20 and abs(c17 - @arg00) < 0.01 ; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and abs(c17 - 1.991e+3) < 0.01" ; -execute stmt1 ; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and abs(c17 - ?) < 0.01" ; -execute stmt1 using @arg00 ; -found -true -drop table t1, t1_1, t1_2, -t9_1, t9_2, t9; diff --git a/mysql-test/r/ps_6bdb.result.es b/mysql-test/r/ps_6bdb.result.es deleted file mode 100644 index 7b7f7e23bbf..00000000000 --- a/mysql-test/r/ps_6bdb.result.es +++ /dev/null @@ -1,3113 +0,0 @@ -use test; -drop table if exists t1, t9 ; -create table t1 -( -a int, b varchar(30), -primary key(a) -) engine = 'BDB' ; -create table t9 -( -c1 tinyint, c2 smallint, c3 mediumint, c4 int, -c5 integer, c6 bigint, c7 float, c8 double, -c9 double precision, c10 real, c11 decimal(7, 4), c12 numeric(8, 4), -c13 date, c14 datetime, c15 timestamp(14), c16 time, -c17 year, c18 bit, c19 bool, c20 char, -c21 char(10), c22 varchar(30), c23 tinyblob, c24 tinytext, -c25 blob, c26 text, c27 mediumblob, c28 mediumtext, -c29 longblob, c30 longtext, c31 enum('one', 'two', 'three'), -c32 set('monday', 'tuesday', 'wednesday'), -primary key(c1) -) engine = 'BDB' ; -delete from t1 ; -insert into t1 values (1,'one'); -insert into t1 values (2,'two'); -insert into t1 values (3,'three'); -insert into t1 values (4,'four'); -commit ; -delete from t9 ; -insert into t9 -set c1= 1, c2= 1, c3= 1, c4= 1, c5= 1, c6= 1, c7= 1, c8= 1, c9= 1, -c10= 1, c11= 1, c12 = 1, -c13= '2004-02-29', c14= '2004-02-29 11:11:11', c15= '2004-02-29 11:11:11', -c16= '11:11:11', c17= '2004', -c18= 1, c19=true, c20= 'a', c21= '123456789a', -c22= '123456789a123456789b123456789c', c23= 'tinyblob', c24= 'tinytext', -c25= 'blob', c26= 'text', c27= 'mediumblob', c28= 'mediumtext', -c29= 'longblob', c30= 'longtext', c31='one', c32= 'monday'; -insert into t9 -set c1= 9, c2= 9, c3= 9, c4= 9, c5= 9, c6= 9, c7= 9, c8= 9, c9= 9, -c10= 9, c11= 9, c12 = 9, -c13= '2004-02-29', c14= '2004-02-29 11:11:11', c15= '2004-02-29 11:11:11', -c16= '11:11:11', c17= '2004', -c18= 1, c19=false, c20= 'a', c21= '123456789a', -c22= '123456789a123456789b123456789c', c23= 'tinyblob', c24= 'tinytext', -c25= 'blob', c26= 'text', c27= 'mediumblob', c28= 'mediumtext', -c29= 'longblob', c30= 'longtext', c31='two', c32= 'tuesday'; -commit ; -test_sequence ------- simple select tests ------ -prepare stmt1 from ' select * from t9 order by c1 ' ; -execute stmt1; -Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr -def test t9 t9 c1 c1 1 4 1 N 49155 0 63 -def test t9 t9 c2 c2 2 6 1 Y 32768 0 63 -def test t9 t9 c3 c3 9 9 1 Y 32768 0 63 -def test t9 t9 c4 c4 3 11 1 Y 32768 0 63 -def test t9 t9 c5 c5 3 11 1 Y 32768 0 63 -def test t9 t9 c6 c6 8 20 1 Y 32768 0 63 -def test t9 t9 c7 c7 4 12 1 Y 32768 31 63 -def test t9 t9 c8 c8 5 22 1 Y 32768 31 63 -def test t9 t9 c9 c9 5 22 1 Y 32768 31 63 -def test t9 t9 c10 c10 5 22 1 Y 32768 31 63 -def test t9 t9 c11 c11 0 9 6 Y 32768 4 63 -def test t9 t9 c12 c12 0 10 6 Y 32768 4 63 -def test t9 t9 c13 c13 10 10 10 Y 128 0 63 -def test t9 t9 c14 c14 12 19 19 Y 128 0 63 -def test t9 t9 c15 c15 7 19 19 N 1249 0 63 -def test t9 t9 c16 c16 11 8 8 Y 128 0 63 -def test t9 t9 c17 c17 13 4 4 Y 32864 0 63 -def test t9 t9 c18 c18 1 1 1 Y 32768 0 63 -def test t9 t9 c19 c19 1 1 1 Y 32768 0 63 -def test t9 t9 c20 c20 254 1 1 Y 0 0 8 -def test t9 t9 c21 c21 253 10 10 Y 0 0 8 -def test t9 t9 c22 c22 253 30 30 Y 0 0 8 -def test t9 t9 c23 c23 252 255 8 Y 144 0 63 -def test t9 t9 c24 c24 252 255 8 Y 16 0 8 -def test t9 t9 c25 c25 252 65535 4 Y 144 0 63 -def test t9 t9 c26 c26 252 65535 4 Y 16 0 8 -def test t9 t9 c27 c27 252 16777215 10 Y 144 0 63 -def test t9 t9 c28 c28 252 16777215 10 Y 16 0 8 -def test t9 t9 c29 c29 252 16777215 8 Y 144 0 63 -def test t9 t9 c30 c30 252 16777215 8 Y 16 0 8 -def test t9 t9 c31 c31 254 5 3 Y 256 0 8 -def test t9 t9 c32 c32 254 24 7 Y 2048 0 8 -c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 c13 c14 c15 c16 c17 c18 c19 c20 c21 c22 c23 c24 c25 c26 c27 c28 c29 c30 c31 c32 -1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday -9 9 9 9 9 9 9 9 9 9 9.0000 9.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 0 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext two tuesday -set @arg00='SELECT' ; -prepare stmt1 from ' ? a from t1 where a=1 '; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '? a from t1 where a=1' at line 1 -set @arg00=1 ; -select @arg00, b from t1 where a=1 ; -@arg00 b -1 one -prepare stmt1 from ' select ?, b from t1 where a=1 ' ; -execute stmt1 using @arg00 ; -? b -1 one -set @arg00='lion' ; -select @arg00, b from t1 where a=1 ; -@arg00 b -lion one -prepare stmt1 from ' select ?, b from t1 where a=1 ' ; -execute stmt1 using @arg00 ; -? b -lion one -set @arg00=NULL ; -select @arg00, b from t1 where a=1 ; -@arg00 b -NULL one -prepare stmt1 from ' select ?, b from t1 where a=1 ' ; -execute stmt1 using @arg00 ; -? b -NULL one -set @arg00=1 ; -select b, a - @arg00 from t1 where a=1 ; -b a - @arg00 -one 0 -prepare stmt1 from ' select b, a - ? from t1 where a=1 ' ; -execute stmt1 using @arg00 ; -b a - ? -one 0 -set @arg00=null ; -select @arg00 as my_col ; -my_col -NULL -prepare stmt1 from ' select ? as my_col'; -execute stmt1 using @arg00 ; -my_col -NULL -select @arg00 + 1 as my_col ; -my_col -NULL -prepare stmt1 from ' select ? + 1 as my_col'; -execute stmt1 using @arg00 ; -my_col -NULL -select 1 + @arg00 as my_col ; -my_col -NULL -prepare stmt1 from ' select 1 + ? as my_col'; -execute stmt1 using @arg00 ; -my_col -NULL -set @arg00='MySQL' ; -select substr(@arg00,1,2) from t1 where a=1 ; -substr(@arg00,1,2) -My -prepare stmt1 from ' select substr(?,1,2) from t1 where a=1 ' ; -execute stmt1 using @arg00 ; -substr(?,1,2) -My -set @arg00=3 ; -select substr('MySQL',@arg00,5) from t1 where a=1 ; -substr('MySQL',@arg00,5) -SQL -prepare stmt1 from ' select substr(''MySQL'',?,5) from t1 where a=1 ' ; -execute stmt1 using @arg00 ; -substr('MySQL',?,5) -SQL -select substr('MySQL',1,@arg00) from t1 where a=1 ; -substr('MySQL',1,@arg00) -MyS -prepare stmt1 from ' select substr(''MySQL'',1,?) from t1 where a=1 ' ; -execute stmt1 using @arg00 ; -substr('MySQL',1,?) -MyS -set @arg00='MySQL' ; -select a , concat(@arg00,b) from t1 order by a; -a concat(@arg00,b) -1 MySQLone -2 MySQLtwo -3 MySQLthree -4 MySQLfour -prepare stmt1 from ' select a , concat(?,b) from t1 order by a ' ; -execute stmt1 using @arg00; -a concat(?,b) -1 MySQLone -2 MySQLtwo -3 MySQLthree -4 MySQLfour -select a , concat(b,@arg00) from t1 order by a ; -a concat(b,@arg00) -1 oneMySQL -2 twoMySQL -3 threeMySQL -4 fourMySQL -prepare stmt1 from ' select a , concat(b,?) from t1 order by a ' ; -execute stmt1 using @arg00; -a concat(b,?) -1 oneMySQL -2 twoMySQL -3 threeMySQL -4 fourMySQL -set @arg00='MySQL' ; -select group_concat(@arg00,b order by a) from t1 -group by 'a' ; -group_concat(@arg00,b order by a) -MySQLone,MySQLtwo,MySQLthree,MySQLfour -prepare stmt1 from ' select group_concat(?,b order by a) from t1 -group by ''a'' ' ; -execute stmt1 using @arg00; -group_concat(?,b order by a) -MySQLone,MySQLtwo,MySQLthree,MySQLfour -select group_concat(b,@arg00 order by a) from t1 -group by 'a' ; -group_concat(b,@arg00 order by a) -oneMySQL,twoMySQL,threeMySQL,fourMySQL -prepare stmt1 from ' select group_concat(b,? order by a) from t1 -group by ''a'' ' ; -execute stmt1 using @arg00; -group_concat(b,? order by a) -oneMySQL,twoMySQL,threeMySQL,fourMySQL -set @arg00='first' ; -set @arg01='second' ; -set @arg02=NULL; -select @arg00, @arg01 from t1 where a=1 ; -@arg00 @arg01 -first second -prepare stmt1 from ' select ?, ? from t1 where a=1 ' ; -execute stmt1 using @arg00, @arg01 ; -? ? -first second -execute stmt1 using @arg02, @arg01 ; -? ? -NULL second -execute stmt1 using @arg00, @arg02 ; -? ? -first NULL -execute stmt1 using @arg02, @arg02 ; -? ? -NULL NULL -drop table if exists t5 ; -create table t5 (id1 int(11) not null default '0', -value2 varchar(100), value1 varchar(100)) ; -insert into t5 values (1,'hh','hh'),(2,'hh','hh'), -(1,'ii','ii'),(2,'ii','ii') ; -prepare stmt1 from ' select id1,value1 from t5 where id1=? or value1=? order by id1,value1 ' ; -set @arg00=1 ; -set @arg01='hh' ; -execute stmt1 using @arg00, @arg01 ; -id1 value1 -1 hh -1 ii -2 hh -drop table t5 ; -drop table if exists t5 ; -create table t5(session_id char(9) not null) ; -insert into t5 values ('abc') ; -prepare stmt1 from ' select * from t5 -where ?=''1111'' and session_id = ''abc'' ' ; -set @arg00='abc' ; -execute stmt1 using @arg00 ; -session_id -set @arg00='1111' ; -execute stmt1 using @arg00 ; -session_id -abc -set @arg00='abc' ; -execute stmt1 using @arg00 ; -session_id -drop table t5 ; -set @arg00='FROM' ; -select a @arg00 t1 where a=1 ; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@arg00 t1 where a=1' at line 1 -prepare stmt1 from ' select a ? t1 where a=1 ' ; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '? t1 where a=1' at line 1 -set @arg00='t1' ; -select a from @arg00 where a=1 ; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@arg00 where a=1' at line 1 -prepare stmt1 from ' select a from ? where a=1 ' ; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '? where a=1' at line 1 -set @arg00='WHERE' ; -select a from t1 @arg00 a=1 ; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@arg00 a=1' at line 1 -prepare stmt1 from ' select a from t1 ? a=1 ' ; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '? a=1' at line 1 -set @arg00=1 ; -select a FROM t1 where a=@arg00 ; -a -1 -prepare stmt1 from ' select a FROM t1 where a=? ' ; -execute stmt1 using @arg00 ; -a -1 -set @arg00=1000 ; -execute stmt1 using @arg00 ; -a -set @arg00=NULL ; -select a FROM t1 where a=@arg00 ; -a -prepare stmt1 from ' select a FROM t1 where a=? ' ; -execute stmt1 using @arg00 ; -a -set @arg00=4 ; -select a FROM t1 where a=sqrt(@arg00) ; -a -2 -prepare stmt1 from ' select a FROM t1 where a=sqrt(?) ' ; -execute stmt1 using @arg00 ; -a -2 -set @arg00=NULL ; -select a FROM t1 where a=sqrt(@arg00) ; -a -prepare stmt1 from ' select a FROM t1 where a=sqrt(?) ' ; -execute stmt1 using @arg00 ; -a -set @arg00=2 ; -set @arg01=3 ; -select a FROM t1 where a in (@arg00,@arg01) order by a; -a -2 -3 -prepare stmt1 from ' select a FROM t1 where a in (?,?) order by a '; -execute stmt1 using @arg00, @arg01; -a -2 -3 -set @arg00= 'one' ; -set @arg01= 'two' ; -set @arg02= 'five' ; -prepare stmt1 from ' select b FROM t1 where b in (?,?,?) order by b ' ; -execute stmt1 using @arg00, @arg01, @arg02 ; -b -one -two -prepare stmt1 from ' select b FROM t1 where b like ? '; -set @arg00='two' ; -execute stmt1 using @arg00 ; -b -two -set @arg00='tw%' ; -execute stmt1 using @arg00 ; -b -two -set @arg00='%wo' ; -execute stmt1 using @arg00 ; -b -two -set @arg00=null ; -insert into t9 set c1= 0, c5 = NULL ; -select c5 from t9 where c5 > NULL ; -c5 -prepare stmt1 from ' select c5 from t9 where c5 > ? '; -execute stmt1 using @arg00 ; -c5 -select c5 from t9 where c5 < NULL ; -c5 -prepare stmt1 from ' select c5 from t9 where c5 < ? '; -execute stmt1 using @arg00 ; -c5 -select c5 from t9 where c5 = NULL ; -c5 -prepare stmt1 from ' select c5 from t9 where c5 = ? '; -execute stmt1 using @arg00 ; -c5 -select c5 from t9 where c5 <=> NULL ; -c5 -NULL -prepare stmt1 from ' select c5 from t9 where c5 <=> ? '; -execute stmt1 using @arg00 ; -c5 -NULL -delete from t9 where c1= 0 ; -set @arg00='>' ; -select a FROM t1 where a @arg00 1 ; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@arg00 1' at line 1 -prepare stmt1 from ' select a FROM t1 where a ? 1 ' ; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '? 1' at line 1 -set @arg00=1 ; -select a,b FROM t1 where a is not NULL -AND b is not NULL group by a - @arg00 ; -a b -1 one -2 two -3 three -4 four -prepare stmt1 from ' select a,b FROM t1 where a is not NULL -AND b is not NULL group by a - ? ' ; -execute stmt1 using @arg00 ; -a b -1 one -2 two -3 three -4 four -set @arg00='two' ; -select a,b FROM t1 where a is not NULL -AND b is not NULL having b <> @arg00 order by a ; -a b -1 one -3 three -4 four -prepare stmt1 from ' select a,b FROM t1 where a is not NULL -AND b is not NULL having b <> ? order by a ' ; -execute stmt1 using @arg00 ; -a b -1 one -3 three -4 four -set @arg00=1 ; -select a,b FROM t1 where a is not NULL -AND b is not NULL order by a - @arg00 ; -a b -1 one -2 two -3 three -4 four -prepare stmt1 from ' select a,b FROM t1 where a is not NULL -AND b is not NULL order by a - ? ' ; -execute stmt1 using @arg00 ; -a b -1 one -2 two -3 three -4 four -set @arg00=2 ; -select a,b from t1 order by 2 ; -a b -4 four -1 one -3 three -2 two -prepare stmt1 from ' select a,b from t1 -order by ? '; -execute stmt1 using @arg00; -a b -4 four -1 one -3 three -2 two -set @arg00=1 ; -execute stmt1 using @arg00; -a b -1 one -2 two -3 three -4 four -set @arg00=0 ; -execute stmt1 using @arg00; -ERROR 42S22: Unknown column '?' in 'order clause' -set @arg00=1; -prepare stmt1 from ' select a,b from t1 order by a -limit 1 '; -execute stmt1 ; -a b -1 one -prepare stmt1 from ' select a,b from t1 -limit ? '; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '?' at line 2 -set @arg00='b' ; -set @arg01=0 ; -set @arg02=2 ; -set @arg03=2 ; -select sum(a), @arg00 from t1 where a > @arg01 -and b is not null group by substr(b,@arg02) -having sum(a) <> @arg03 ; -sum(a) @arg00 -3 b -1 b -4 b -prepare stmt1 from ' select sum(a), ? from t1 where a > ? -and b is not null group by substr(b,?) -having sum(a) <> ? '; -execute stmt1 using @arg00, @arg01, @arg02, @arg03; -sum(a) ? -3 b -1 b -4 b -test_sequence ------- join tests ------ -select first.a as a1, second.a as a2 -from t1 first, t1 second -where first.a = second.a order by a1 ; -a1 a2 -1 1 -2 2 -3 3 -4 4 -prepare stmt1 from ' select first.a as a1, second.a as a2 - from t1 first, t1 second - where first.a = second.a order by a1 '; -execute stmt1 ; -a1 a2 -1 1 -2 2 -3 3 -4 4 -set @arg00='ABC'; -set @arg01='two'; -set @arg02='one'; -select first.a, @arg00, second.a FROM t1 first, t1 second -where @arg01 = first.b or first.a = second.a or second.b = @arg02 -order by second.a, first.a; -a @arg00 a -1 ABC 1 -2 ABC 1 -3 ABC 1 -4 ABC 1 -2 ABC 2 -2 ABC 3 -3 ABC 3 -2 ABC 4 -4 ABC 4 -prepare stmt1 from ' select first.a, ?, second.a FROM t1 first, t1 second - where ? = first.b or first.a = second.a or second.b = ? - order by second.a, first.a'; -execute stmt1 using @arg00, @arg01, @arg02; -a ? a -1 ABC 1 -2 ABC 1 -3 ABC 1 -4 ABC 1 -2 ABC 2 -2 ABC 3 -3 ABC 3 -2 ABC 4 -4 ABC 4 -drop table if exists t2 ; -create table t2 as select * from t1 ; -set @query1= 'SELECT * FROM t2 join t1 on (t1.a=t2.a) order by t2.a ' ; -set @query2= 'SELECT * FROM t2 natural join t1 order by t2.a ' ; -set @query3= 'SELECT * FROM t2 join t1 using(a) order by t2.a ' ; -set @query4= 'SELECT * FROM t2 left join t1 on(t1.a=t2.a) order by t2.a ' ; -set @query5= 'SELECT * FROM t2 natural left join t1 order by t2.a ' ; -set @query6= 'SELECT * FROM t2 left join t1 using(a) order by t2.a ' ; -set @query7= 'SELECT * FROM t2 right join t1 on(t1.a=t2.a) order by t2.a ' ; -set @query8= 'SELECT * FROM t2 natural right join t1 order by t2.a ' ; -set @query9= 'SELECT * FROM t2 right join t1 using(a) order by t2.a ' ; -the join statement is: -SELECT * FROM t2 right join t1 using(a) order by t2.a -prepare stmt1 from @query9 ; -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -the join statement is: -SELECT * FROM t2 natural right join t1 order by t2.a -prepare stmt1 from @query8 ; -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -the join statement is: -SELECT * FROM t2 right join t1 on(t1.a=t2.a) order by t2.a -prepare stmt1 from @query7 ; -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -the join statement is: -SELECT * FROM t2 left join t1 using(a) order by t2.a -prepare stmt1 from @query6 ; -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -the join statement is: -SELECT * FROM t2 natural left join t1 order by t2.a -prepare stmt1 from @query5 ; -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -the join statement is: -SELECT * FROM t2 left join t1 on(t1.a=t2.a) order by t2.a -prepare stmt1 from @query4 ; -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -the join statement is: -SELECT * FROM t2 join t1 using(a) order by t2.a -prepare stmt1 from @query3 ; -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -the join statement is: -SELECT * FROM t2 natural join t1 order by t2.a -prepare stmt1 from @query2 ; -execute stmt1 ; -a b -1 one -2 two -3 three -4 four -execute stmt1 ; -a b -1 one -2 two -3 three -4 four -execute stmt1 ; -a b -1 one -2 two -3 three -4 four -the join statement is: -SELECT * FROM t2 join t1 on (t1.a=t2.a) order by t2.a -prepare stmt1 from @query1 ; -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -execute stmt1 ; -a b a b -1 one 1 one -2 two 2 two -3 three 3 three -4 four 4 four -drop table t2 ; -test_sequence ------- subquery tests ------ -prepare stmt1 from ' select a, b FROM t1 outer_table where - a = (select a from t1 where b = ''two'') '; -execute stmt1 ; -a b -2 two -set @arg00='two' ; -select a, b FROM t1 outer_table where -a = (select a from t1 where b = 'two' ) and b=@arg00 ; -a b -2 two -prepare stmt1 from ' select a, b FROM t1 outer_table where - a = (select a from t1 where b = ''two'') and b=? '; -execute stmt1 using @arg00; -a b -2 two -set @arg00='two' ; -select a, b FROM t1 outer_table where -a = (select a from t1 where b = @arg00 ) and b='two' ; -a b -2 two -prepare stmt1 from ' select a, b FROM t1 outer_table where - a = (select a from t1 where b = ? ) and b=''two'' ' ; -execute stmt1 using @arg00; -a b -2 two -set @arg00=3 ; -set @arg01='three' ; -select a,b FROM t1 where (a,b) in (select 3, 'three'); -a b -3 three -select a FROM t1 where (a,b) in (select @arg00,@arg01); -a -3 -prepare stmt1 from ' select a FROM t1 where (a,b) in (select ?, ?) '; -execute stmt1 using @arg00, @arg01; -a -3 -set @arg00=1 ; -set @arg01='two' ; -set @arg02=2 ; -set @arg03='two' ; -select a, @arg00, b FROM t1 outer_table where -b=@arg01 and a = (select @arg02 from t1 where b = @arg03 ) ; -a @arg00 b -2 1 two -prepare stmt1 from ' select a, ?, b FROM t1 outer_table where - b=? and a = (select ? from t1 where b = ? ) ' ; -execute stmt1 using @arg00, @arg01, @arg02, @arg03 ; -a ? b -2 1 two -prepare stmt1 from ' select a, b FROM t1 outer_table where - a = (select a from t1 where b = outer_table.b ) order by a '; -execute stmt1 ; -a b -1 one -2 two -3 three -4 four -prepare stmt1 from ' SELECT a as ccc from t1 where a+1= - (SELECT 1+ccc from t1 where ccc+1=a+1 and a=1) '; -execute stmt1 ; -ccc -1 -deallocate prepare stmt1 ; -prepare stmt1 from ' SELECT a as ccc from t1 where a+1= - (SELECT 1+ccc from t1 where ccc+1=a+1 and a=1) '; -execute stmt1 ; -ccc -1 -deallocate prepare stmt1 ; -prepare stmt1 from ' SELECT a as ccc from t1 where a+1= - (SELECT 1+ccc from t1 where ccc+1=a+1 and a=1) '; -execute stmt1 ; -ccc -1 -deallocate prepare stmt1 ; -set @arg00='two' ; -select a, b FROM t1 outer_table where -a = (select a from t1 where b = outer_table.b ) and b=@arg00 ; -a b -2 two -prepare stmt1 from ' select a, b FROM t1 outer_table where - a = (select a from t1 where b = outer_table.b) and b=? '; -execute stmt1 using @arg00; -a b -2 two -set @arg00=2 ; -select a, b FROM t1 outer_table where -a = (select a from t1 where a = @arg00 and b = outer_table.b) and b='two' ; -a b -2 two -prepare stmt1 from ' select a, b FROM t1 outer_table where - a = (select a from t1 where a = ? and b = outer_table.b) and b=''two'' ' ; -execute stmt1 using @arg00; -a b -2 two -set @arg00=2 ; -select a, b FROM t1 outer_table where -a = (select a from t1 where outer_table.a = @arg00 and a=2) and b='two' ; -a b -2 two -prepare stmt1 from ' select a, b FROM t1 outer_table where - a = (select a from t1 where outer_table.a = ? and a=2) and b=''two'' ' ; -execute stmt1 using @arg00; -a b -2 two -set @arg00=1 ; -set @arg01='two' ; -set @arg02=2 ; -set @arg03='two' ; -select a, @arg00, b FROM t1 outer_table where -b=@arg01 and a = (select @arg02 from t1 where outer_table.b = @arg03 -and outer_table.a=a ) ; -a @arg00 b -2 1 two -prepare stmt1 from ' select a, ?, b FROM t1 outer_table where - b=? and a = (select ? from t1 where outer_table.b = ? - and outer_table.a=a ) ' ; -execute stmt1 using @arg00, @arg01, @arg02, @arg03 ; -a ? b -2 1 two -set @arg00=1 ; -set @arg01=0 ; -select a, @arg00 -from ( select a - @arg00 as a from t1 where a=@arg00 ) as t2 -where a=@arg01; -a @arg00 -0 1 -prepare stmt1 from ' select a, ? - from ( select a - ? as a from t1 where a=? ) as t2 - where a=? '; -execute stmt1 using @arg00, @arg00, @arg00, @arg01 ; -a ? -0 1 -drop table if exists t2 ; -create table t2 as select * from t1; -prepare stmt1 from ' select a in (select a from t2) from t1 ' ; -execute stmt1 ; -a in (select a from t2) -1 -1 -1 -1 -drop table if exists t5, t6, t7 ; -create table t5 (a int , b int) ; -create table t6 like t5 ; -create table t7 like t5 ; -insert into t5 values (0, 100), (1, 2), (1, 3), (2, 2), (2, 7), -(2, -1), (3, 10) ; -insert into t6 values (0, 0), (1, 1), (2, 1), (3, 1), (4, 1) ; -insert into t7 values (3, 3), (2, 2), (1, 1) ; -prepare stmt1 from ' select a, (select count(distinct t5.b) as sum from t5, t6 - where t5.a=t6.a and t6.b > 0 and t5.a <= t7.b - group by t5.a order by sum limit 1) from t7 ' ; -execute stmt1 ; -a (select count(distinct t5.b) as sum from t5, t6 - where t5.a=t6.a and t6.b > 0 and t5.a <= t7.b - group by t5.a order by sum limit 1) -3 1 -2 2 -1 2 -execute stmt1 ; -a (select count(distinct t5.b) as sum from t5, t6 - where t5.a=t6.a and t6.b > 0 and t5.a <= t7.b - group by t5.a order by sum limit 1) -3 1 -2 2 -1 2 -execute stmt1 ; -a (select count(distinct t5.b) as sum from t5, t6 - where t5.a=t6.a and t6.b > 0 and t5.a <= t7.b - group by t5.a order by sum limit 1) -3 1 -2 2 -1 2 -drop table t5, t6, t7 ; -drop table if exists t2 ; -create table t2 as select * from t9; -set @stmt= ' SELECT - (SELECT SUM(c1 + c12 + 0.0) FROM t2 - where (t9.c2 - 0e-3) = t2.c2 - GROUP BY t9.c15 LIMIT 1) as scalar_s, - exists (select 1.0e+0 from t2 - where t2.c3 * 9.0000000000 = t9.c4) as exists_s, - c5 * 4 in (select c6 + 0.3e+1 from t2) as in_s, - (c7 - 4, c8 - 4) in (select c9 + 4.0, c10 + 40e-1 from t2) as in_row_s -FROM t9, -(select c25 x, c32 y from t2) tt WHERE x = c25 ' ; -prepare stmt1 from @stmt ; -execute stmt1 ; -execute stmt1 ; -set @stmt= concat('explain ',@stmt); -prepare stmt1 from @stmt ; -execute stmt1 ; -execute stmt1 ; -set @stmt= ' SELECT - (SELECT SUM(c1+c12+?) FROM t2 where (t9.c2-?)=t2.c2 - GROUP BY t9.c15 LIMIT 1) as scalar_s, - exists (select ? from t2 - where t2.c3*?=t9.c4) as exists_s, - c5*? in (select c6+? from t2) as in_s, - (c7-?, c8-?) in (select c9+?, c10+? from t2) as in_row_s -FROM t9, -(select c25 x, c32 y from t2) tt WHERE x =c25 ' ; -set @arg00= 0.0 ; -set @arg01= 0e-3 ; -set @arg02= 1.0e+0 ; -set @arg03= 9.0000000000 ; -set @arg04= 4 ; -set @arg05= 0.3e+1 ; -set @arg06= 4 ; -set @arg07= 4 ; -set @arg08= 4.0 ; -set @arg09= 40e-1 ; -prepare stmt1 from @stmt ; -execute stmt1 using @arg00, @arg01, @arg02, @arg03, @arg04, @arg05, @arg06, -@arg07, @arg08, @arg09 ; -execute stmt1 using @arg00, @arg01, @arg02, @arg03, @arg04, @arg05, @arg06, -@arg07, @arg08, @arg09 ; -set @stmt= concat('explain ',@stmt); -prepare stmt1 from @stmt ; -execute stmt1 using @arg00, @arg01, @arg02, @arg03, @arg04, @arg05, @arg06, -@arg07, @arg08, @arg09 ; -execute stmt1 using @arg00, @arg01, @arg02, @arg03, @arg04, @arg05, @arg06, -@arg07, @arg08, @arg09 ; -drop table t2 ; -select 1 < (select a from t1) ; -ERROR 21000: Subquery returns more than 1 row -prepare stmt1 from ' select 1 < (select a from t1) ' ; -execute stmt1 ; -ERROR 21000: Subquery returns more than 1 row -select 1 as my_col ; -my_col -1 -test_sequence ------- union tests ------ -prepare stmt1 from ' select a FROM t1 where a=1 - union distinct - select a FROM t1 where a=1 '; -execute stmt1 ; -a -1 -execute stmt1 ; -a -1 -prepare stmt1 from ' select a FROM t1 where a=1 - union all - select a FROM t1 where a=1 '; -execute stmt1 ; -a -1 -1 -prepare stmt1 from ' SELECT 1, 2 union SELECT 1 ' ; -ERROR 21000: The used SELECT statements have a different number of columns -prepare stmt1 from ' SELECT 1 union SELECT 1, 2 ' ; -ERROR 21000: The used SELECT statements have a different number of columns -prepare stmt1 from ' SELECT * from t1 union SELECT 1 ' ; -ERROR 21000: The used SELECT statements have a different number of columns -prepare stmt1 from ' SELECT 1 union SELECT * from t1 ' ; -ERROR 21000: The used SELECT statements have a different number of columns -set @arg00=1 ; -select @arg00 FROM t1 where a=1 -union distinct -select 1 FROM t1 where a=1; -@arg00 -1 -prepare stmt1 from ' select ? FROM t1 where a=1 - union distinct - select 1 FROM t1 where a=1 ' ; -execute stmt1 using @arg00; -? -1 -set @arg00=1 ; -select 1 FROM t1 where a=1 -union distinct -select @arg00 FROM t1 where a=1; -1 -1 -prepare stmt1 from ' select 1 FROM t1 where a=1 - union distinct - select ? FROM t1 where a=1 ' ; -execute stmt1 using @arg00; -1 -1 -set @arg00='a' ; -select @arg00 FROM t1 where a=1 -union distinct -select @arg00 FROM t1 where a=1; -@arg00 -a -prepare stmt1 from ' select ? FROM t1 where a=1 - union distinct - select ? FROM t1 where a=1 '; -execute stmt1 using @arg00, @arg00; -? -a -prepare stmt1 from ' select ? - union distinct - select ? '; -execute stmt1 using @arg00, @arg00; -? -a -set @arg00='a' ; -set @arg01=1 ; -set @arg02='a' ; -set @arg03=2 ; -select @arg00 FROM t1 where a=@arg01 -union distinct -select @arg02 FROM t1 where a=@arg03; -@arg00 -a -prepare stmt1 from ' select ? FROM t1 where a=? - union distinct - select ? FROM t1 where a=? ' ; -execute stmt1 using @arg00, @arg01, @arg02, @arg03; -? -a -set @arg00=1 ; -prepare stmt1 from ' select sum(a) + 200, ? from t1 -union distinct -select sum(a) + 200, 1 from t1 -group by b ' ; -execute stmt1 using @arg00; -sum(a) + 200 ? -210 1 -204 1 -201 1 -203 1 -202 1 -set @Oporto='Oporto' ; -set @Lisboa='Lisboa' ; -set @0=0 ; -set @1=1 ; -set @2=2 ; -set @3=3 ; -set @4=4 ; -select @Oporto,@Lisboa,@0,@1,@2,@3,@4 ; -@Oporto @Lisboa @0 @1 @2 @3 @4 -Oporto Lisboa 0 1 2 3 4 -select sum(a) + 200 as the_sum, @Oporto as the_town from t1 -group by b -union distinct -select sum(a) + 200, @Lisboa from t1 -group by b ; -the_sum the_town -204 Oporto -201 Oporto -203 Oporto -202 Oporto -204 Lisboa -201 Lisboa -203 Lisboa -202 Lisboa -prepare stmt1 from ' select sum(a) + 200 as the_sum, ? as the_town from t1 - group by b - union distinct - select sum(a) + 200, ? from t1 - group by b ' ; -execute stmt1 using @Oporto, @Lisboa; -the_sum the_town -204 Oporto -201 Oporto -203 Oporto -202 Oporto -204 Lisboa -201 Lisboa -203 Lisboa -202 Lisboa -select sum(a) + 200 as the_sum, @Oporto as the_town from t1 -where a > @1 -group by b -union distinct -select sum(a) + 200, @Lisboa from t1 -where a > @2 -group by b ; -the_sum the_town -204 Oporto -203 Oporto -202 Oporto -204 Lisboa -203 Lisboa -prepare stmt1 from ' select sum(a) + 200 as the_sum, ? as the_town from t1 - where a > ? - group by b - union distinct - select sum(a) + 200, ? from t1 - where a > ? - group by b ' ; -execute stmt1 using @Oporto, @1, @Lisboa, @2; -the_sum the_town -204 Oporto -203 Oporto -202 Oporto -204 Lisboa -203 Lisboa -select sum(a) + 200 as the_sum, @Oporto as the_town from t1 -where a > @1 -group by b -having avg(a) > @2 -union distinct -select sum(a) + 200, @Lisboa from t1 -where a > @2 -group by b -having avg(a) > @3; -the_sum the_town -204 Oporto -203 Oporto -204 Lisboa -prepare stmt1 from ' select sum(a) + 200 as the_sum, ? as the_town from t1 - where a > ? - group by b - having avg(a) > ? - union distinct - select sum(a) + 200, ? from t1 - where a > ? - group by b - having avg(a) > ? '; -execute stmt1 using @Oporto, @1, @2, @Lisboa, @2, @3; -the_sum the_town -204 Oporto -203 Oporto -204 Lisboa -test_sequence ------- explain select tests ------ -prepare stmt1 from ' explain select * from t9 ' ; -execute stmt1; -Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr -def id 8 3 1 N 32801 0 8 -def select_type 253 19 6 N 1 31 33 -def table 253 64 2 N 1 31 33 -def type 253 10 3 N 1 31 33 -def possible_keys 253 4096 0 Y 0 31 33 -def key 253 64 0 Y 0 31 33 -def key_len 8 3 0 Y 32800 0 8 -def ref 253 1024 0 Y 0 31 33 -def rows 8 10 1 N 32801 0 8 -def Extra 253 255 0 N 1 31 33 -id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t9 ALL NULL NULL NULL NULL 3 -test_sequence ------- delete tests ------ -delete from t1 ; -insert into t1 values (1,'one'); -insert into t1 values (2,'two'); -insert into t1 values (3,'three'); -insert into t1 values (4,'four'); -commit ; -delete from t9 ; -insert into t9 -set c1= 1, c2= 1, c3= 1, c4= 1, c5= 1, c6= 1, c7= 1, c8= 1, c9= 1, -c10= 1, c11= 1, c12 = 1, -c13= '2004-02-29', c14= '2004-02-29 11:11:11', c15= '2004-02-29 11:11:11', -c16= '11:11:11', c17= '2004', -c18= 1, c19=true, c20= 'a', c21= '123456789a', -c22= '123456789a123456789b123456789c', c23= 'tinyblob', c24= 'tinytext', -c25= 'blob', c26= 'text', c27= 'mediumblob', c28= 'mediumtext', -c29= 'longblob', c30= 'longtext', c31='one', c32= 'monday'; -insert into t9 -set c1= 9, c2= 9, c3= 9, c4= 9, c5= 9, c6= 9, c7= 9, c8= 9, c9= 9, -c10= 9, c11= 9, c12 = 9, -c13= '2004-02-29', c14= '2004-02-29 11:11:11', c15= '2004-02-29 11:11:11', -c16= '11:11:11', c17= '2004', -c18= 1, c19=false, c20= 'a', c21= '123456789a', -c22= '123456789a123456789b123456789c', c23= 'tinyblob', c24= 'tinytext', -c25= 'blob', c26= 'text', c27= 'mediumblob', c28= 'mediumtext', -c29= 'longblob', c30= 'longtext', c31='two', c32= 'tuesday'; -commit ; -prepare stmt1 from 'delete from t1 where a=2' ; -execute stmt1; -select a,b from t1 where a=2; -a b -execute stmt1; -insert into t1 values(0,NULL); -set @arg00=NULL; -prepare stmt1 from 'delete from t1 where b=?' ; -execute stmt1 using @arg00; -select a,b from t1 where b is NULL ; -a b -0 NULL -set @arg00='one'; -execute stmt1 using @arg00; -select a,b from t1 where b=@arg00; -a b -prepare stmt1 from 'truncate table t1' ; -ERROR HY000: This command is not supported in the prepared statement protocol yet -test_sequence ------- update tests ------ -delete from t1 ; -insert into t1 values (1,'one'); -insert into t1 values (2,'two'); -insert into t1 values (3,'three'); -insert into t1 values (4,'four'); -commit ; -delete from t9 ; -insert into t9 -set c1= 1, c2= 1, c3= 1, c4= 1, c5= 1, c6= 1, c7= 1, c8= 1, c9= 1, -c10= 1, c11= 1, c12 = 1, -c13= '2004-02-29', c14= '2004-02-29 11:11:11', c15= '2004-02-29 11:11:11', -c16= '11:11:11', c17= '2004', -c18= 1, c19=true, c20= 'a', c21= '123456789a', -c22= '123456789a123456789b123456789c', c23= 'tinyblob', c24= 'tinytext', -c25= 'blob', c26= 'text', c27= 'mediumblob', c28= 'mediumtext', -c29= 'longblob', c30= 'longtext', c31='one', c32= 'monday'; -insert into t9 -set c1= 9, c2= 9, c3= 9, c4= 9, c5= 9, c6= 9, c7= 9, c8= 9, c9= 9, -c10= 9, c11= 9, c12 = 9, -c13= '2004-02-29', c14= '2004-02-29 11:11:11', c15= '2004-02-29 11:11:11', -c16= '11:11:11', c17= '2004', -c18= 1, c19=false, c20= 'a', c21= '123456789a', -c22= '123456789a123456789b123456789c', c23= 'tinyblob', c24= 'tinytext', -c25= 'blob', c26= 'text', c27= 'mediumblob', c28= 'mediumtext', -c29= 'longblob', c30= 'longtext', c31='two', c32= 'tuesday'; -commit ; -prepare stmt1 from 'update t1 set b=''a=two'' where a=2' ; -execute stmt1; -select a,b from t1 where a=2; -a b -2 a=two -execute stmt1; -select a,b from t1 where a=2; -a b -2 a=two -set @arg00=NULL; -prepare stmt1 from 'update t1 set b=? where a=2' ; -execute stmt1 using @arg00; -select a,b from t1 where a=2; -a b -2 NULL -set @arg00='two'; -execute stmt1 using @arg00; -select a,b from t1 where a=2; -a b -2 two -set @arg00=2; -prepare stmt1 from 'update t1 set b=NULL where a=?' ; -execute stmt1 using @arg00; -select a,b from t1 where a=@arg00; -a b -2 NULL -update t1 set b='two' where a=@arg00; -set @arg00=2000; -execute stmt1 using @arg00; -select a,b from t1 where a=@arg00; -a b -set @arg00=2; -set @arg01=22; -prepare stmt1 from 'update t1 set a=? where a=?' ; -execute stmt1 using @arg00, @arg00; -select a,b from t1 where a=@arg00; -a b -2 two -execute stmt1 using @arg01, @arg00; -select a,b from t1 where a=@arg01; -a b -22 two -execute stmt1 using @arg00, @arg01; -select a,b from t1 where a=@arg00; -a b -2 two -set @arg00=NULL; -set @arg01=2; -execute stmt1 using @arg00, @arg01; -Warnings: -Warning 1263 Data truncated; NULL supplied to NOT NULL column 'a' at row 1 -select a,b from t1 order by a; -a b -0 two -1 one -3 three -4 four -set @arg00=0; -execute stmt1 using @arg01, @arg00; -select a,b from t1 order by a; -a b -1 one -2 two -3 three -4 four -set @arg00=23; -set @arg01='two'; -set @arg02=2; -set @arg03='two'; -set @arg04=2; -drop table if exists t2; -create table t2 as select a,b from t1 ; -prepare stmt1 from 'update t1 set a=? where b=? - and a in (select ? from t2 - where b = ? or a = ?)'; -execute stmt1 using @arg00, @arg01, @arg02, @arg03, @arg04 ; -affected rows: 1 -info: Rows matched: 1 Changed: 1 Warnings: 0 -select a,b from t1 where a = @arg00 ; -a b -23 two -prepare stmt1 from 'update t1 set a=? where b=? - and a not in (select ? from t2 - where b = ? or a = ?)'; -execute stmt1 using @arg04, @arg01, @arg02, @arg03, @arg00 ; -affected rows: 1 -info: Rows matched: 1 Changed: 1 Warnings: 0 -select a,b from t1 order by a ; -a b -1 one -2 two -3 three -4 four -drop table t2 ; -create table t2 -( -a int, b varchar(30), -primary key(a) -) engine = 'BDB' ; -insert into t2(a,b) select a, b from t1 ; -prepare stmt1 from 'update t1 set a=? where b=? - and a in (select ? from t2 - where b = ? or a = ?)'; -execute stmt1 using @arg00, @arg01, @arg02, @arg03, @arg04 ; -affected rows: 1 -info: Rows matched: 1 Changed: 1 Warnings: 0 -select a,b from t1 where a = @arg00 ; -a b -23 two -prepare stmt1 from 'update t1 set a=? where b=? - and a not in (select ? from t2 - where b = ? or a = ?)'; -execute stmt1 using @arg04, @arg01, @arg02, @arg03, @arg00 ; -affected rows: 1 -info: Rows matched: 1 Changed: 1 Warnings: 0 -select a,b from t1 order by a ; -a b -1 one -2 two -3 three -4 four -drop table t2 ; -set @arg00=1; -prepare stmt1 from 'update t1 set b=''bla'' -where a=2 -limit 1'; -execute stmt1 ; -select a,b from t1 where b = 'bla' ; -a b -2 bla -prepare stmt1 from 'update t1 set b=''bla'' -where a=2 -limit ?'; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '?' at line 3 -test_sequence ------- insert tests ------ -delete from t1 ; -insert into t1 values (1,'one'); -insert into t1 values (2,'two'); -insert into t1 values (3,'three'); -insert into t1 values (4,'four'); -commit ; -delete from t9 ; -insert into t9 -set c1= 1, c2= 1, c3= 1, c4= 1, c5= 1, c6= 1, c7= 1, c8= 1, c9= 1, -c10= 1, c11= 1, c12 = 1, -c13= '2004-02-29', c14= '2004-02-29 11:11:11', c15= '2004-02-29 11:11:11', -c16= '11:11:11', c17= '2004', -c18= 1, c19=true, c20= 'a', c21= '123456789a', -c22= '123456789a123456789b123456789c', c23= 'tinyblob', c24= 'tinytext', -c25= 'blob', c26= 'text', c27= 'mediumblob', c28= 'mediumtext', -c29= 'longblob', c30= 'longtext', c31='one', c32= 'monday'; -insert into t9 -set c1= 9, c2= 9, c3= 9, c4= 9, c5= 9, c6= 9, c7= 9, c8= 9, c9= 9, -c10= 9, c11= 9, c12 = 9, -c13= '2004-02-29', c14= '2004-02-29 11:11:11', c15= '2004-02-29 11:11:11', -c16= '11:11:11', c17= '2004', -c18= 1, c19=false, c20= 'a', c21= '123456789a', -c22= '123456789a123456789b123456789c', c23= 'tinyblob', c24= 'tinytext', -c25= 'blob', c26= 'text', c27= 'mediumblob', c28= 'mediumtext', -c29= 'longblob', c30= 'longtext', c31='two', c32= 'tuesday'; -commit ; -prepare stmt1 from 'insert into t1 values(5, ''five'' )'; -execute stmt1; -select a,b from t1 where a = 5; -a b -5 five -set @arg00='six' ; -prepare stmt1 from 'insert into t1 values(6, ? )'; -execute stmt1 using @arg00; -select a,b from t1 where b = @arg00; -a b -6 six -execute stmt1 using @arg00; -ERROR 23000: Duplicate entry '6' for key 1 -set @arg00=NULL ; -prepare stmt1 from 'insert into t1 values(0, ? )'; -execute stmt1 using @arg00; -select a,b from t1 where b is NULL; -a b -0 NULL -set @arg00=8 ; -set @arg01='eight' ; -prepare stmt1 from 'insert into t1 values(?, ? )'; -execute stmt1 using @arg00, @arg01 ; -select a,b from t1 where b = @arg01; -a b -8 eight -set @NULL= null ; -set @arg00= 'abc' ; -execute stmt1 using @NULL, @NULL ; -ERROR 23000: Column 'a' cannot be null -execute stmt1 using @NULL, @NULL ; -ERROR 23000: Column 'a' cannot be null -execute stmt1 using @NULL, @arg00 ; -ERROR 23000: Column 'a' cannot be null -execute stmt1 using @NULL, @arg00 ; -ERROR 23000: Column 'a' cannot be null -set @arg01= 10000 + 2 ; -execute stmt1 using @arg01, @arg00 ; -set @arg01= 10000 + 1 ; -execute stmt1 using @arg01, @arg00 ; -select * from t1 where a > 10000 order by a ; -a b -10001 abc -10002 abc -delete from t1 where a > 10000 ; -set @arg01= 10000 + 2 ; -execute stmt1 using @arg01, @NULL ; -set @arg01= 10000 + 1 ; -execute stmt1 using @arg01, @NULL ; -select * from t1 where a > 10000 order by a ; -a b -10001 NULL -10002 NULL -delete from t1 where a > 10000 ; -set @arg01= 10000 + 10 ; -execute stmt1 using @arg01, @arg01 ; -set @arg01= 10000 + 9 ; -execute stmt1 using @arg01, @arg01 ; -set @arg01= 10000 + 8 ; -execute stmt1 using @arg01, @arg01 ; -set @arg01= 10000 + 7 ; -execute stmt1 using @arg01, @arg01 ; -set @arg01= 10000 + 6 ; -execute stmt1 using @arg01, @arg01 ; -set @arg01= 10000 + 5 ; -execute stmt1 using @arg01, @arg01 ; -set @arg01= 10000 + 4 ; -execute stmt1 using @arg01, @arg01 ; -set @arg01= 10000 + 3 ; -execute stmt1 using @arg01, @arg01 ; -set @arg01= 10000 + 2 ; -execute stmt1 using @arg01, @arg01 ; -set @arg01= 10000 + 1 ; -execute stmt1 using @arg01, @arg01 ; -select * from t1 where a > 10000 order by a ; -a b -10001 10001 -10002 10002 -10003 10003 -10004 10004 -10005 10005 -10006 10006 -10007 10007 -10008 10008 -10009 10009 -10010 10010 -delete from t1 where a > 10000 ; -set @arg00=81 ; -set @arg01='8-1' ; -set @arg02=82 ; -set @arg03='8-2' ; -prepare stmt1 from 'insert into t1 values(?,?),(?,?)'; -execute stmt1 using @arg00, @arg01, @arg02, @arg03 ; -select a,b from t1 where a in (@arg00,@arg02) ; -a b -81 8-1 -82 8-2 -set @arg00=9 ; -set @arg01='nine' ; -prepare stmt1 from 'insert into t1 set a=?, b=? '; -execute stmt1 using @arg00, @arg01 ; -select a,b from t1 where a = @arg00 ; -a b -9 nine -set @arg00=6 ; -set @arg01=1 ; -prepare stmt1 from 'insert into t1 set a=?, b=''sechs'' - on duplicate key update a=a + ?, b=concat(b,''modified'') '; -execute stmt1 using @arg00, @arg01; -select * from t1 order by a; -a b -0 NULL -1 one -2 two -3 three -4 four -5 five -7 sixmodified -8 eight -9 nine -81 8-1 -82 8-2 -set @arg00=81 ; -set @arg01=1 ; -execute stmt1 using @arg00, @arg01; -ERROR 23000: Duplicate entry '82' for key 1 -drop table if exists t2 ; -create table t2 (id int auto_increment primary key) -ENGINE= 'BDB' ; -prepare stmt1 from ' select last_insert_id() ' ; -insert into t2 values (NULL) ; -execute stmt1 ; -last_insert_id() -1 -insert into t2 values (NULL) ; -execute stmt1 ; -last_insert_id() -2 -drop table t2 ; -set @1000=1000 ; -set @x1000_2="x1000_2" ; -set @x1000_3="x1000_3" ; -set @x1000="x1000" ; -set @1100=1100 ; -set @x1100="x1100" ; -set @100=100 ; -set @updated="updated" ; -insert into t1 values(1000,'x1000_1') ; -insert into t1 values(@1000,@x1000_2),(@1000,@x1000_3) -on duplicate key update a = a + @100, b = concat(b,@updated) ; -select a,b from t1 where a >= 1000 order by a ; -a b -1000 x1000_3 -1100 x1000_1updated -delete from t1 where a >= 1000 ; -insert into t1 values(1000,'x1000_1') ; -prepare stmt1 from ' insert into t1 values(?,?),(?,?) - on duplicate key update a = a + ?, b = concat(b,?) '; -execute stmt1 using @1000, @x1000_2, @1000, @x1000_3, @100, @updated ; -select a,b from t1 where a >= 1000 order by a ; -a b -1000 x1000_3 -1100 x1000_1updated -delete from t1 where a >= 1000 ; -insert into t1 values(1000,'x1000_1') ; -execute stmt1 using @1000, @x1000_2, @1100, @x1000_3, @100, @updated ; -select a,b from t1 where a >= 1000 order by a ; -a b -1200 x1000_1updatedupdated -delete from t1 where a >= 1000 ; -prepare stmt1 from ' replace into t1 (a,b) select 100, ''hundred'' '; -execute stmt1; -execute stmt1; -execute stmt1; -test_sequence ------- multi table tests ------ -delete from t1 ; -delete from t9 ; -insert into t1(a,b) values (1, 'one'), (2, 'two'), (3, 'three') ; -insert into t9 (c1,c21) -values (1, 'one'), (2, 'two'), (3, 'three') ; -prepare stmt_delete from " delete t1, t9 - from t1, t9 where t1.a=t9.c1 and t1.b='updated' "; -prepare stmt_update from " update t1, t9 - set t1.b='updated', t9.c21='updated' - where t1.a=t9.c1 and t1.a=? "; -prepare stmt_select1 from " select a, b from t1 order by a" ; -prepare stmt_select2 from " select c1, c21 from t9 order by c1" ; -set @arg00= 1 ; -execute stmt_update using @arg00 ; -execute stmt_delete ; -execute stmt_select1 ; -a b -2 two -3 three -execute stmt_select2 ; -c1 c21 -2 two -3 three -set @arg00= @arg00 + 1 ; -execute stmt_update using @arg00 ; -execute stmt_delete ; -execute stmt_select1 ; -a b -3 three -execute stmt_select2 ; -c1 c21 -3 three -set @arg00= @arg00 + 1 ; -execute stmt_update using @arg00 ; -execute stmt_delete ; -execute stmt_select1 ; -a b -execute stmt_select2 ; -c1 c21 -set @arg00= @arg00 + 1 ; -delete from t1 ; -insert into t1 values (1,'one'); -insert into t1 values (2,'two'); -insert into t1 values (3,'three'); -insert into t1 values (4,'four'); -commit ; -delete from t9 ; -insert into t9 -set c1= 1, c2= 1, c3= 1, c4= 1, c5= 1, c6= 1, c7= 1, c8= 1, c9= 1, -c10= 1, c11= 1, c12 = 1, -c13= '2004-02-29', c14= '2004-02-29 11:11:11', c15= '2004-02-29 11:11:11', -c16= '11:11:11', c17= '2004', -c18= 1, c19=true, c20= 'a', c21= '123456789a', -c22= '123456789a123456789b123456789c', c23= 'tinyblob', c24= 'tinytext', -c25= 'blob', c26= 'text', c27= 'mediumblob', c28= 'mediumtext', -c29= 'longblob', c30= 'longtext', c31='one', c32= 'monday'; -insert into t9 -set c1= 9, c2= 9, c3= 9, c4= 9, c5= 9, c6= 9, c7= 9, c8= 9, c9= 9, -c10= 9, c11= 9, c12 = 9, -c13= '2004-02-29', c14= '2004-02-29 11:11:11', c15= '2004-02-29 11:11:11', -c16= '11:11:11', c17= '2004', -c18= 1, c19=false, c20= 'a', c21= '123456789a', -c22= '123456789a123456789b123456789c', c23= 'tinyblob', c24= 'tinytext', -c25= 'blob', c26= 'text', c27= 'mediumblob', c28= 'mediumtext', -c29= 'longblob', c30= 'longtext', c31='two', c32= 'tuesday'; -commit ; -insert into t1 values(0,NULL) ; -set @duplicate='duplicate ' ; -set @1000=1000 ; -set @5=5 ; -select a,b from t1 where a < 5 order by a ; -a b -0 NULL -1 one -2 two -3 three -4 four -insert into t1 select a + @1000, concat(@duplicate,b) from t1 -where a < @5 ; -affected rows: 5 -info: Records: 5 Duplicates: 0 Warnings: 0 -select a,b from t1 where a >= 1000 order by a ; -a b -1000 NULL -1001 duplicate one -1002 duplicate two -1003 duplicate three -1004 duplicate four -delete from t1 where a >= 1000 ; -prepare stmt1 from ' insert into t1 select a + ?, concat(?,b) from t1 -where a < ? ' ; -execute stmt1 using @1000, @duplicate, @5; -affected rows: 5 -info: Records: 5 Duplicates: 0 Warnings: 0 -select a,b from t1 where a >= 1000 order by a ; -a b -1000 NULL -1001 duplicate one -1002 duplicate two -1003 duplicate three -1004 duplicate four -delete from t1 where a >= 1000 ; -set @float=1.00; -set @five='five' ; -drop table if exists t2; -create table t2 like t1 ; -insert into t2 (b,a) -select @duplicate, sum(first.a) from t1 first, t1 second -where first.a <> @5 and second.b = first.b -and second.b <> @five -group by second.b -having sum(second.a) > @2 -union -select b, a + @100 from t1 -where (a,b) in ( select sqrt(a+@1)+CAST(@float AS signed),b -from t1); -affected rows: 3 -info: Records: 3 Duplicates: 0 Warnings: 0 -select a,b from t2 order by a ; -a b -3 duplicate -4 duplicate -103 three -delete from t2 ; -prepare stmt1 from ' insert into t2 (b,a) -select ?, sum(first.a) - from t1 first, t1 second - where first.a <> ? and second.b = first.b and second.b <> ? - group by second.b - having sum(second.a) > ? -union -select b, a + ? from t1 - where (a,b) in ( select sqrt(a+?)+CAST(? AS signed),b - from t1 ) ' ; -execute stmt1 using @duplicate, @5, @five, @2, @100, @1, @float ; -affected rows: 3 -info: Records: 3 Duplicates: 0 Warnings: 0 -select a,b from t2 order by a ; -a b -3 duplicate -4 duplicate -103 three -drop table t2; -drop table if exists t5 ; -set @arg01= 8; -set @arg02= 8.0; -set @arg03= 80.00000000000e-1; -set @arg04= 'abc' ; -set @arg05= CAST('abc' as binary) ; -set @arg06= '1991-08-05' ; -set @arg07= CAST('1991-08-05' as date); -set @arg08= '1991-08-05 01:01:01' ; -set @arg09= CAST('1991-08-05 01:01:01' as datetime) ; -set @arg10= unix_timestamp('1991-01-01 01:01:01'); -set @arg11= YEAR('1991-01-01 01:01:01'); -set @arg12= 8 ; -set @arg12= NULL ; -set @arg13= 8.0 ; -set @arg13= NULL ; -set @arg14= 'abc'; -set @arg14= NULL ; -set @arg15= CAST('abc' as binary) ; -set @arg15= NULL ; -create table t5 as select -8 as const01, @arg01 as param01, -8.0 as const02, @arg02 as param02, -80.00000000000e-1 as const03, @arg03 as param03, -'abc' as const04, @arg04 as param04, -CAST('abc' as binary) as const05, @arg05 as param05, -'1991-08-05' as const06, @arg06 as param06, -CAST('1991-08-05' as date) as const07, @arg07 as param07, -'1991-08-05 01:01:01' as const08, @arg08 as param08, -CAST('1991-08-05 01:01:01' as datetime) as const09, @arg09 as param09, -unix_timestamp('1991-01-01 01:01:01') as const10, @arg10 as param10, -YEAR('1991-01-01 01:01:01') as const11, @arg11 as param11, -NULL as const12, @arg12 as param12, -@arg13 as param13, -@arg14 as param14, -@arg15 as param15; -show create table t5 ; -Table Create Table -t5 CREATE TABLE `t5` ( - `const01` bigint(1) NOT NULL default '0', - `param01` bigint(20) default NULL, - `const02` double(3,1) NOT NULL default '0.0', - `param02` double default NULL, - `const03` double NOT NULL default '0', - `param03` double default NULL, - `const04` char(3) NOT NULL default '', - `param04` longtext, - `const05` binary(3) NOT NULL default '', - `param05` longblob, - `const06` varchar(10) NOT NULL default '', - `param06` longtext, - `const07` date default NULL, - `param07` longblob, - `const08` varchar(19) NOT NULL default '', - `param08` longtext, - `const09` datetime default NULL, - `param09` longblob, - `const10` int(10) NOT NULL default '0', - `param10` bigint(20) default NULL, - `const11` int(4) default NULL, - `param11` bigint(20) default NULL, - `const12` binary(0) default NULL, - `param12` bigint(20) default NULL, - `param13` double default NULL, - `param14` longtext, - `param15` longblob -) ENGINE=MyISAM DEFAULT CHARSET=latin1 -select * from t5 ; -Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr -def test t5 t5 const01 const01 8 1 1 N 32769 0 63 -def test t5 t5 param01 param01 8 20 1 Y 32768 0 63 -def test t5 t5 const02 const02 5 3 3 N 32769 1 63 -def test t5 t5 param02 param02 5 20 1 Y 32768 31 63 -def test t5 t5 const03 const03 5 23 1 N 32769 31 63 -def test t5 t5 param03 param03 5 20 1 Y 32768 31 63 -def test t5 t5 const04 const04 254 3 3 N 1 0 8 -def test t5 t5 param04 param04 252 16777215 3 Y 16 0 8 -def test t5 t5 const05 const05 254 3 3 N 129 0 63 -def test t5 t5 param05 param05 252 16777215 3 Y 144 0 63 -def test t5 t5 const06 const06 253 10 10 N 1 0 8 -def test t5 t5 param06 param06 252 16777215 10 Y 16 0 8 -def test t5 t5 const07 const07 10 10 10 Y 128 0 63 -def test t5 t5 param07 param07 252 16777215 10 Y 144 0 63 -def test t5 t5 const08 const08 253 19 19 N 1 0 8 -def test t5 t5 param08 param08 252 16777215 19 Y 16 0 8 -def test t5 t5 const09 const09 12 19 19 Y 128 0 63 -def test t5 t5 param09 param09 252 16777215 19 Y 144 0 63 -def test t5 t5 const10 const10 3 10 9 N 32769 0 63 -def test t5 t5 param10 param10 8 20 9 Y 32768 0 63 -def test t5 t5 const11 const11 3 4 4 Y 32768 0 63 -def test t5 t5 param11 param11 8 20 4 Y 32768 0 63 -def test t5 t5 const12 const12 254 0 0 Y 128 0 63 -def test t5 t5 param12 param12 8 20 0 Y 32768 0 63 -def test t5 t5 param13 param13 5 20 0 Y 32768 31 63 -def test t5 t5 param14 param14 252 16777215 0 Y 16 0 8 -def test t5 t5 param15 param15 252 16777215 0 Y 144 0 63 -const01 8 -param01 8 -const02 8.0 -param02 8 -const03 8 -param03 8 -const04 abc -param04 abc -const05 abc -param05 abc -const06 1991-08-05 -param06 1991-08-05 -const07 1991-08-05 -param07 1991-08-05 -const08 1991-08-05 01:01:01 -param08 1991-08-05 01:01:01 -const09 1991-08-05 01:01:01 -param09 1991-08-05 01:01:01 -const10 662680861 -param10 662680861 -const11 1991 -param11 1991 -const12 NULL -param12 NULL -param13 NULL -param14 NULL -param15 NULL -drop table t5 ; -test_sequence ------- data type conversion tests ------ -delete from t1 ; -insert into t1 values (1,'one'); -insert into t1 values (2,'two'); -insert into t1 values (3,'three'); -insert into t1 values (4,'four'); -commit ; -delete from t9 ; -insert into t9 -set c1= 1, c2= 1, c3= 1, c4= 1, c5= 1, c6= 1, c7= 1, c8= 1, c9= 1, -c10= 1, c11= 1, c12 = 1, -c13= '2004-02-29', c14= '2004-02-29 11:11:11', c15= '2004-02-29 11:11:11', -c16= '11:11:11', c17= '2004', -c18= 1, c19=true, c20= 'a', c21= '123456789a', -c22= '123456789a123456789b123456789c', c23= 'tinyblob', c24= 'tinytext', -c25= 'blob', c26= 'text', c27= 'mediumblob', c28= 'mediumtext', -c29= 'longblob', c30= 'longtext', c31='one', c32= 'monday'; -insert into t9 -set c1= 9, c2= 9, c3= 9, c4= 9, c5= 9, c6= 9, c7= 9, c8= 9, c9= 9, -c10= 9, c11= 9, c12 = 9, -c13= '2004-02-29', c14= '2004-02-29 11:11:11', c15= '2004-02-29 11:11:11', -c16= '11:11:11', c17= '2004', -c18= 1, c19=false, c20= 'a', c21= '123456789a', -c22= '123456789a123456789b123456789c', c23= 'tinyblob', c24= 'tinytext', -c25= 'blob', c26= 'text', c27= 'mediumblob', c28= 'mediumtext', -c29= 'longblob', c30= 'longtext', c31='two', c32= 'tuesday'; -commit ; -insert into t9 set c1= 0, c15= '1991-01-01 01:01:01' ; -select * from t9 order by c1 ; -c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 c13 c14 c15 c16 c17 c18 c19 c20 c21 c22 c23 c24 c25 c26 c27 c28 c29 c30 c31 c32 -0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday -9 9 9 9 9 9 9 9 9 9 9.0000 9.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 0 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext two tuesday -test_sequence ------- select @parameter:= column ------ -prepare full_info from "select @arg01, @arg02, @arg03, @arg04, - @arg05, @arg06, @arg07, @arg08, - @arg09, @arg10, @arg11, @arg12, - @arg13, @arg14, @arg15, @arg16, - @arg17, @arg18, @arg19, @arg20, - @arg21, @arg22, @arg23, @arg24, - @arg25, @arg26, @arg27, @arg28, - @arg29, @arg30, @arg31, @arg32" ; -select @arg01:= c1, @arg02:= c2, @arg03:= c3, @arg04:= c4, -@arg05:= c5, @arg06:= c6, @arg07:= c7, @arg08:= c8, -@arg09:= c9, @arg10:= c10, @arg11:= c11, @arg12:= c12, -@arg13:= c13, @arg14:= c14, @arg15:= c15, @arg16:= c16, -@arg17:= c17, @arg18:= c18, @arg19:= c19, @arg20:= c20, -@arg21:= c21, @arg22:= c22, @arg23:= c23, @arg24:= c24, -@arg25:= c25, @arg26:= c26, @arg27:= c27, @arg28:= c28, -@arg29:= c29, @arg30:= c30, @arg31:= c31, @arg32:= c32 -from t9 where c1= 1 ; -@arg01:= c1 @arg02:= c2 @arg03:= c3 @arg04:= c4 @arg05:= c5 @arg06:= c6 @arg07:= c7 @arg08:= c8 @arg09:= c9 @arg10:= c10 @arg11:= c11 @arg12:= c12 @arg13:= c13 @arg14:= c14 @arg15:= c15 @arg16:= c16 @arg17:= c17 @arg18:= c18 @arg19:= c19 @arg20:= c20 @arg21:= c21 @arg22:= c22 @arg23:= c23 @arg24:= c24 @arg25:= c25 @arg26:= c26 @arg27:= c27 @arg28:= c28 @arg29:= c29 @arg30:= c30 @arg31:= c31 @arg32:= c32 -1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday -execute full_info ; -Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr -def @arg01 254 20 1 Y 128 31 63 -def @arg02 254 20 1 Y 128 31 63 -def @arg03 254 20 1 Y 128 31 63 -def @arg04 254 20 1 Y 128 31 63 -def @arg05 254 20 1 Y 128 31 63 -def @arg06 254 20 1 Y 128 31 63 -def @arg07 254 20 1 Y 128 31 63 -def @arg08 254 20 1 Y 128 31 63 -def @arg09 254 20 1 Y 128 31 63 -def @arg10 254 20 1 Y 128 31 63 -def @arg11 254 20 1 Y 128 31 63 -def @arg12 254 20 1 Y 128 31 63 -def @arg13 254 8192 10 Y 128 31 63 -def @arg14 254 8192 19 Y 128 31 63 -def @arg15 254 8192 19 Y 128 31 63 -def @arg16 254 8192 8 Y 128 31 63 -def @arg17 254 20 4 Y 128 31 63 -def @arg18 254 20 1 Y 128 31 63 -def @arg19 254 20 1 Y 128 31 63 -def @arg20 254 8192 1 Y 0 31 8 -def @arg21 254 8192 10 Y 0 31 8 -def @arg22 254 8192 30 Y 0 31 8 -def @arg23 254 8192 8 Y 128 31 63 -def @arg24 254 8192 8 Y 0 31 8 -def @arg25 254 8192 4 Y 128 31 63 -def @arg26 254 8192 4 Y 0 31 8 -def @arg27 254 8192 10 Y 128 31 63 -def @arg28 254 8192 10 Y 0 31 8 -def @arg29 254 8192 8 Y 128 31 63 -def @arg30 254 8192 8 Y 0 31 8 -def @arg31 254 8192 3 Y 0 31 8 -def @arg32 254 8192 6 Y 128 31 63 -@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32 -1 1 1 1 1 1 1 1 1 1 1 1 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday -select @arg01:= c1, @arg02:= c2, @arg03:= c3, @arg04:= c4, -@arg05:= c5, @arg06:= c6, @arg07:= c7, @arg08:= c8, -@arg09:= c9, @arg10:= c10, @arg11:= c11, @arg12:= c12, -@arg13:= c13, @arg14:= c14, @arg15:= c15, @arg16:= c16, -@arg17:= c17, @arg18:= c18, @arg19:= c19, @arg20:= c20, -@arg21:= c21, @arg22:= c22, @arg23:= c23, @arg24:= c24, -@arg25:= c25, @arg26:= c26, @arg27:= c27, @arg28:= c28, -@arg29:= c29, @arg30:= c30, @arg31:= c31, @arg32:= c32 -from t9 where c1= 0 ; -@arg01:= c1 @arg02:= c2 @arg03:= c3 @arg04:= c4 @arg05:= c5 @arg06:= c6 @arg07:= c7 @arg08:= c8 @arg09:= c9 @arg10:= c10 @arg11:= c11 @arg12:= c12 @arg13:= c13 @arg14:= c14 @arg15:= c15 @arg16:= c16 @arg17:= c17 @arg18:= c18 @arg19:= c19 @arg20:= c20 @arg21:= c21 @arg22:= c22 @arg23:= c23 @arg24:= c24 @arg25:= c25 @arg26:= c26 @arg27:= c27 @arg28:= c28 @arg29:= c29 @arg30:= c30 @arg31:= c31 @arg32:= c32 -0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -execute full_info ; -Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr -def @arg01 254 20 1 Y 128 31 63 -def @arg02 254 20 0 Y 128 31 63 -def @arg03 254 20 0 Y 128 31 63 -def @arg04 254 20 0 Y 128 31 63 -def @arg05 254 20 0 Y 128 31 63 -def @arg06 254 20 0 Y 128 31 63 -def @arg07 254 20 0 Y 128 31 63 -def @arg08 254 20 0 Y 128 31 63 -def @arg09 254 20 0 Y 128 31 63 -def @arg10 254 20 0 Y 128 31 63 -def @arg11 254 20 0 Y 128 31 63 -def @arg12 254 20 0 Y 128 31 63 -def @arg13 254 8192 0 Y 128 31 63 -def @arg14 254 8192 0 Y 128 31 63 -def @arg15 254 8192 19 Y 128 31 63 -def @arg16 254 8192 0 Y 128 31 63 -def @arg17 254 20 0 Y 128 31 63 -def @arg18 254 20 0 Y 128 31 63 -def @arg19 254 20 0 Y 128 31 63 -def @arg20 254 8192 0 Y 0 31 8 -def @arg21 254 8192 0 Y 0 31 8 -def @arg22 254 8192 0 Y 0 31 8 -def @arg23 254 8192 0 Y 128 31 63 -def @arg24 254 8192 0 Y 0 31 8 -def @arg25 254 8192 0 Y 128 31 63 -def @arg26 254 8192 0 Y 0 31 8 -def @arg27 254 8192 0 Y 128 31 63 -def @arg28 254 8192 0 Y 0 31 8 -def @arg29 254 8192 0 Y 128 31 63 -def @arg30 254 8192 0 Y 0 31 8 -def @arg31 254 8192 0 Y 0 31 8 -def @arg32 254 8192 0 Y 0 31 8 -@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32 -0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -prepare stmt1 from "select - @arg01:= c1, @arg02:= c2, @arg03:= c3, @arg04:= c4, - @arg05:= c5, @arg06:= c6, @arg07:= c7, @arg08:= c8, - @arg09:= c9, @arg10:= c10, @arg11:= c11, @arg12:= c12, - @arg13:= c13, @arg14:= c14, @arg15:= c15, @arg16:= c16, - @arg17:= c17, @arg18:= c18, @arg19:= c19, @arg20:= c20, - @arg21:= c21, @arg22:= c22, @arg23:= c23, @arg24:= c24, - @arg25:= c25, @arg26:= c26, @arg27:= c27, @arg28:= c28, - @arg29:= c29, @arg30:= c30, @arg31:= c31, @arg32:= c32 -from t9 where c1= ?" ; -set @my_key= 1 ; -execute stmt1 using @my_key ; -@arg01:= c1 @arg02:= c2 @arg03:= c3 @arg04:= c4 @arg05:= c5 @arg06:= c6 @arg07:= c7 @arg08:= c8 @arg09:= c9 @arg10:= c10 @arg11:= c11 @arg12:= c12 @arg13:= c13 @arg14:= c14 @arg15:= c15 @arg16:= c16 @arg17:= c17 @arg18:= c18 @arg19:= c19 @arg20:= c20 @arg21:= c21 @arg22:= c22 @arg23:= c23 @arg24:= c24 @arg25:= c25 @arg26:= c26 @arg27:= c27 @arg28:= c28 @arg29:= c29 @arg30:= c30 @arg31:= c31 @arg32:= c32 -1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday -execute full_info ; -Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr -def @arg01 254 20 1 Y 128 31 63 -def @arg02 254 20 1 Y 128 31 63 -def @arg03 254 20 1 Y 128 31 63 -def @arg04 254 20 1 Y 128 31 63 -def @arg05 254 20 1 Y 128 31 63 -def @arg06 254 20 1 Y 128 31 63 -def @arg07 254 20 1 Y 128 31 63 -def @arg08 254 20 1 Y 128 31 63 -def @arg09 254 20 1 Y 128 31 63 -def @arg10 254 20 1 Y 128 31 63 -def @arg11 254 20 1 Y 128 31 63 -def @arg12 254 20 1 Y 128 31 63 -def @arg13 254 8192 10 Y 128 31 63 -def @arg14 254 8192 19 Y 128 31 63 -def @arg15 254 8192 19 Y 128 31 63 -def @arg16 254 8192 8 Y 128 31 63 -def @arg17 254 20 4 Y 128 31 63 -def @arg18 254 20 1 Y 128 31 63 -def @arg19 254 20 1 Y 128 31 63 -def @arg20 254 8192 1 Y 0 31 8 -def @arg21 254 8192 10 Y 0 31 8 -def @arg22 254 8192 30 Y 0 31 8 -def @arg23 254 8192 8 Y 128 31 63 -def @arg24 254 8192 8 Y 0 31 8 -def @arg25 254 8192 4 Y 128 31 63 -def @arg26 254 8192 4 Y 0 31 8 -def @arg27 254 8192 10 Y 128 31 63 -def @arg28 254 8192 10 Y 0 31 8 -def @arg29 254 8192 8 Y 128 31 63 -def @arg30 254 8192 8 Y 0 31 8 -def @arg31 254 8192 3 Y 0 31 8 -def @arg32 254 8192 6 Y 128 31 63 -@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32 -1 1 1 1 1 1 1 1 1 1 1 1 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday -set @my_key= 0 ; -execute stmt1 using @my_key ; -@arg01:= c1 @arg02:= c2 @arg03:= c3 @arg04:= c4 @arg05:= c5 @arg06:= c6 @arg07:= c7 @arg08:= c8 @arg09:= c9 @arg10:= c10 @arg11:= c11 @arg12:= c12 @arg13:= c13 @arg14:= c14 @arg15:= c15 @arg16:= c16 @arg17:= c17 @arg18:= c18 @arg19:= c19 @arg20:= c20 @arg21:= c21 @arg22:= c22 @arg23:= c23 @arg24:= c24 @arg25:= c25 @arg26:= c26 @arg27:= c27 @arg28:= c28 @arg29:= c29 @arg30:= c30 @arg31:= c31 @arg32:= c32 -0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -execute full_info ; -Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr -def @arg01 254 20 1 Y 128 31 63 -def @arg02 254 20 0 Y 128 31 63 -def @arg03 254 20 0 Y 128 31 63 -def @arg04 254 20 0 Y 128 31 63 -def @arg05 254 20 0 Y 128 31 63 -def @arg06 254 20 0 Y 128 31 63 -def @arg07 254 20 0 Y 128 31 63 -def @arg08 254 20 0 Y 128 31 63 -def @arg09 254 20 0 Y 128 31 63 -def @arg10 254 20 0 Y 128 31 63 -def @arg11 254 20 0 Y 128 31 63 -def @arg12 254 20 0 Y 128 31 63 -def @arg13 254 8192 0 Y 128 31 63 -def @arg14 254 8192 0 Y 128 31 63 -def @arg15 254 8192 19 Y 128 31 63 -def @arg16 254 8192 0 Y 128 31 63 -def @arg17 254 20 0 Y 128 31 63 -def @arg18 254 20 0 Y 128 31 63 -def @arg19 254 20 0 Y 128 31 63 -def @arg20 254 8192 0 Y 0 31 8 -def @arg21 254 8192 0 Y 0 31 8 -def @arg22 254 8192 0 Y 0 31 8 -def @arg23 254 8192 0 Y 128 31 63 -def @arg24 254 8192 0 Y 0 31 8 -def @arg25 254 8192 0 Y 128 31 63 -def @arg26 254 8192 0 Y 0 31 8 -def @arg27 254 8192 0 Y 128 31 63 -def @arg28 254 8192 0 Y 0 31 8 -def @arg29 254 8192 0 Y 128 31 63 -def @arg30 254 8192 0 Y 0 31 8 -def @arg31 254 8192 0 Y 0 31 8 -def @arg32 254 8192 0 Y 0 31 8 -@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32 -0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -prepare stmt1 from "select ? := c1 from t9 where c1= 1" ; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ':= c1 from t9 where c1= 1' at line 1 -test_sequence ------- select column, .. into @parm,.. ------ -select c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12, -c13, c14, c15, c16, c17, c18, c19, c20, c21, c22, c23, c24, -c25, c26, c27, c28, c29, c30, c31, c32 -into @arg01, @arg02, @arg03, @arg04, @arg05, @arg06, @arg07, @arg08, -@arg09, @arg10, @arg11, @arg12, @arg13, @arg14, @arg15, @arg16, -@arg17, @arg18, @arg19, @arg20, @arg21, @arg22, @arg23, @arg24, -@arg25, @arg26, @arg27, @arg28, @arg29, @arg30, @arg31, @arg32 -from t9 where c1= 1 ; -execute full_info ; -Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr -def @arg01 254 20 1 Y 128 31 63 -def @arg02 254 20 1 Y 128 31 63 -def @arg03 254 20 1 Y 128 31 63 -def @arg04 254 20 1 Y 128 31 63 -def @arg05 254 20 1 Y 128 31 63 -def @arg06 254 20 1 Y 128 31 63 -def @arg07 254 20 1 Y 128 31 63 -def @arg08 254 20 1 Y 128 31 63 -def @arg09 254 20 1 Y 128 31 63 -def @arg10 254 20 1 Y 128 31 63 -def @arg11 254 20 1 Y 128 31 63 -def @arg12 254 20 1 Y 128 31 63 -def @arg13 254 8192 10 Y 128 31 63 -def @arg14 254 8192 19 Y 128 31 63 -def @arg15 254 8192 19 Y 128 31 63 -def @arg16 254 8192 8 Y 128 31 63 -def @arg17 254 20 4 Y 128 31 63 -def @arg18 254 20 1 Y 128 31 63 -def @arg19 254 20 1 Y 128 31 63 -def @arg20 254 8192 1 Y 0 31 8 -def @arg21 254 8192 10 Y 0 31 8 -def @arg22 254 8192 30 Y 0 31 8 -def @arg23 254 8192 8 Y 128 31 63 -def @arg24 254 8192 8 Y 0 31 8 -def @arg25 254 8192 4 Y 128 31 63 -def @arg26 254 8192 4 Y 0 31 8 -def @arg27 254 8192 10 Y 128 31 63 -def @arg28 254 8192 10 Y 0 31 8 -def @arg29 254 8192 8 Y 128 31 63 -def @arg30 254 8192 8 Y 0 31 8 -def @arg31 254 8192 3 Y 0 31 8 -def @arg32 254 8192 6 Y 128 31 63 -@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32 -1 1 1 1 1 1 1 1 1 1 1 1 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday -select c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12, -c13, c14, c15, c16, c17, c18, c19, c20, c21, c22, c23, c24, -c25, c26, c27, c28, c29, c30, c31, c32 -into @arg01, @arg02, @arg03, @arg04, @arg05, @arg06, @arg07, @arg08, -@arg09, @arg10, @arg11, @arg12, @arg13, @arg14, @arg15, @arg16, -@arg17, @arg18, @arg19, @arg20, @arg21, @arg22, @arg23, @arg24, -@arg25, @arg26, @arg27, @arg28, @arg29, @arg30, @arg31, @arg32 -from t9 where c1= 0 ; -execute full_info ; -Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr -def @arg01 254 20 1 Y 128 31 63 -def @arg02 254 20 0 Y 128 31 63 -def @arg03 254 20 0 Y 128 31 63 -def @arg04 254 20 0 Y 128 31 63 -def @arg05 254 20 0 Y 128 31 63 -def @arg06 254 20 0 Y 128 31 63 -def @arg07 254 20 0 Y 128 31 63 -def @arg08 254 20 0 Y 128 31 63 -def @arg09 254 20 0 Y 128 31 63 -def @arg10 254 20 0 Y 128 31 63 -def @arg11 254 20 0 Y 128 31 63 -def @arg12 254 20 0 Y 128 31 63 -def @arg13 254 8192 0 Y 128 31 63 -def @arg14 254 8192 0 Y 128 31 63 -def @arg15 254 8192 19 Y 128 31 63 -def @arg16 254 8192 0 Y 128 31 63 -def @arg17 254 20 0 Y 128 31 63 -def @arg18 254 20 0 Y 128 31 63 -def @arg19 254 20 0 Y 128 31 63 -def @arg20 254 8192 0 Y 0 31 8 -def @arg21 254 8192 0 Y 0 31 8 -def @arg22 254 8192 0 Y 0 31 8 -def @arg23 254 8192 0 Y 128 31 63 -def @arg24 254 8192 0 Y 0 31 8 -def @arg25 254 8192 0 Y 128 31 63 -def @arg26 254 8192 0 Y 0 31 8 -def @arg27 254 8192 0 Y 128 31 63 -def @arg28 254 8192 0 Y 0 31 8 -def @arg29 254 8192 0 Y 128 31 63 -def @arg30 254 8192 0 Y 0 31 8 -def @arg31 254 8192 0 Y 0 31 8 -def @arg32 254 8192 0 Y 0 31 8 -@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32 -0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -prepare stmt1 from "select c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12, - c13, c14, c15, c16, c17, c18, c19, c20, c21, c22, c23, c24, - c25, c26, c27, c28, c29, c30, c31, c32 -into @arg01, @arg02, @arg03, @arg04, @arg05, @arg06, @arg07, @arg08, - @arg09, @arg10, @arg11, @arg12, @arg13, @arg14, @arg15, @arg16, - @arg17, @arg18, @arg19, @arg20, @arg21, @arg22, @arg23, @arg24, - @arg25, @arg26, @arg27, @arg28, @arg29, @arg30, @arg31, @arg32 -from t9 where c1= ?" ; -set @my_key= 1 ; -execute stmt1 using @my_key ; -execute full_info ; -Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr -def @arg01 254 20 1 Y 128 31 63 -def @arg02 254 20 1 Y 128 31 63 -def @arg03 254 20 1 Y 128 31 63 -def @arg04 254 20 1 Y 128 31 63 -def @arg05 254 20 1 Y 128 31 63 -def @arg06 254 20 1 Y 128 31 63 -def @arg07 254 20 1 Y 128 31 63 -def @arg08 254 20 1 Y 128 31 63 -def @arg09 254 20 1 Y 128 31 63 -def @arg10 254 20 1 Y 128 31 63 -def @arg11 254 20 1 Y 128 31 63 -def @arg12 254 20 1 Y 128 31 63 -def @arg13 254 8192 10 Y 128 31 63 -def @arg14 254 8192 19 Y 128 31 63 -def @arg15 254 8192 19 Y 128 31 63 -def @arg16 254 8192 8 Y 128 31 63 -def @arg17 254 20 4 Y 128 31 63 -def @arg18 254 20 1 Y 128 31 63 -def @arg19 254 20 1 Y 128 31 63 -def @arg20 254 8192 1 Y 0 31 8 -def @arg21 254 8192 10 Y 0 31 8 -def @arg22 254 8192 30 Y 0 31 8 -def @arg23 254 8192 8 Y 128 31 63 -def @arg24 254 8192 8 Y 0 31 8 -def @arg25 254 8192 4 Y 128 31 63 -def @arg26 254 8192 4 Y 0 31 8 -def @arg27 254 8192 10 Y 128 31 63 -def @arg28 254 8192 10 Y 0 31 8 -def @arg29 254 8192 8 Y 128 31 63 -def @arg30 254 8192 8 Y 0 31 8 -def @arg31 254 8192 3 Y 0 31 8 -def @arg32 254 8192 6 Y 128 31 63 -@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32 -1 1 1 1 1 1 1 1 1 1 1 1 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday -set @my_key= 0 ; -execute stmt1 using @my_key ; -execute full_info ; -Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr -def @arg01 254 20 1 Y 128 31 63 -def @arg02 254 20 0 Y 128 31 63 -def @arg03 254 20 0 Y 128 31 63 -def @arg04 254 20 0 Y 128 31 63 -def @arg05 254 20 0 Y 128 31 63 -def @arg06 254 20 0 Y 128 31 63 -def @arg07 254 20 0 Y 128 31 63 -def @arg08 254 20 0 Y 128 31 63 -def @arg09 254 20 0 Y 128 31 63 -def @arg10 254 20 0 Y 128 31 63 -def @arg11 254 20 0 Y 128 31 63 -def @arg12 254 20 0 Y 128 31 63 -def @arg13 254 8192 0 Y 128 31 63 -def @arg14 254 8192 0 Y 128 31 63 -def @arg15 254 8192 19 Y 128 31 63 -def @arg16 254 8192 0 Y 128 31 63 -def @arg17 254 20 0 Y 128 31 63 -def @arg18 254 20 0 Y 128 31 63 -def @arg19 254 20 0 Y 128 31 63 -def @arg20 254 8192 0 Y 0 31 8 -def @arg21 254 8192 0 Y 0 31 8 -def @arg22 254 8192 0 Y 0 31 8 -def @arg23 254 8192 0 Y 128 31 63 -def @arg24 254 8192 0 Y 0 31 8 -def @arg25 254 8192 0 Y 128 31 63 -def @arg26 254 8192 0 Y 0 31 8 -def @arg27 254 8192 0 Y 128 31 63 -def @arg28 254 8192 0 Y 0 31 8 -def @arg29 254 8192 0 Y 128 31 63 -def @arg30 254 8192 0 Y 0 31 8 -def @arg31 254 8192 0 Y 0 31 8 -def @arg32 254 8192 0 Y 0 31 8 -@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32 -0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -prepare stmt1 from "select c1 into ? from t9 where c1= 1" ; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '? from t9 where c1= 1' at line 1 -test_sequence --- insert into numeric columns -- -insert into t9 -( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values -( 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20 ) ; -set @arg00= 21 ; -insert into t9 -( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values -( @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ) ; -prepare stmt1 from "insert into t9 - ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values - ( 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22 )" ; -execute stmt1 ; -set @arg00= 23; -prepare stmt2 from "insert into t9 - ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values - ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )" ; -execute stmt2 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00 ; -insert into t9 -( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values -( 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, -30.0, 30.0, 30.0 ) ; -set @arg00= 31.0 ; -insert into t9 -( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values -( @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ) ; -prepare stmt1 from "insert into t9 - ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values - ( 32.0, 32.0, 32.0, 32.0, 32.0, 32.0, 32.0, 32.0, - 32.0, 32.0, 32.0 )" ; -execute stmt1 ; -set @arg00= 33.0; -prepare stmt2 from "insert into t9 - ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values - ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )" ; -execute stmt2 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00 ; -insert into t9 -( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values -( '40', '40', '40', '40', '40', '40', '40', '40', -'40', '40', '40' ) ; -set @arg00= '41' ; -insert into t9 -( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values -( @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ) ; -prepare stmt1 from "insert into t9 - ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values - ( '42', '42', '42', '42', '42', '42', '42', '42', - '42', '42', '42' )" ; -execute stmt1 ; -set @arg00= '43'; -prepare stmt2 from "insert into t9 - ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values - ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )" ; -execute stmt2 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00 ; -insert into t9 -( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values -( CAST('50' as binary), CAST('50' as binary), -CAST('50' as binary), CAST('50' as binary), CAST('50' as binary), -CAST('50' as binary), CAST('50' as binary), CAST('50' as binary), -CAST('50' as binary), CAST('50' as binary), CAST('50' as binary) ) ; -set @arg00= CAST('51' as binary) ; -insert into t9 -( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values -( @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ) ; -prepare stmt1 from "insert into t9 - ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values - ( CAST('52' as binary), CAST('52' as binary), - CAST('52' as binary), CAST('52' as binary), CAST('52' as binary), - CAST('52' as binary), CAST('52' as binary), CAST('52' as binary), - CAST('52' as binary), CAST('52' as binary), CAST('52' as binary) )" ; -execute stmt1 ; -set @arg00= CAST('53' as binary) ; -prepare stmt2 from "insert into t9 - ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values - ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )" ; -execute stmt2 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00 ; -set @arg00= 2 ; -set @arg00= NULL ; -insert into t9 -( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values -( 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, -NULL, NULL, NULL ) ; -insert into t9 -( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values -( 61, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ) ; -prepare stmt1 from "insert into t9 - ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values - ( 62, NULL, NULL, NULL, NULL, NULL, NULL, NULL, - NULL, NULL, NULL )" ; -execute stmt1 ; -prepare stmt2 from "insert into t9 - ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values - ( 63, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )" ; -execute stmt2 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00 ; -set @arg00= 8.0 ; -set @arg00= NULL ; -insert into t9 -( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values -( 71, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ) ; -prepare stmt2 from "insert into t9 - ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values - ( 73, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )" ; -execute stmt2 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00 ; -set @arg00= 'abc' ; -set @arg00= NULL ; -insert into t9 -( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values -( 81, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ) ; -prepare stmt2 from "insert into t9 - ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values - ( 83, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )" ; -execute stmt2 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00 ; -select c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 -from t9 where c1 >= 20 -order by c1 ; -c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c12 -20 20 20 20 20 20 20 20 20 20 20.0000 -21 21 21 21 21 21 21 21 21 21 21.0000 -22 22 22 22 22 22 22 22 22 22 22.0000 -23 23 23 23 23 23 23 23 23 23 23.0000 -30 30 30 30 30 30 30 30 30 30 30.0000 -31 31 31 31 31 31 31 31 31 31 31.0000 -32 32 32 32 32 32 32 32 32 32 32.0000 -33 33 33 33 33 33 33 33 33 33 33.0000 -40 40 40 40 40 40 40 40 40 40 40.0000 -41 41 41 41 41 41 41 41 41 41 41.0000 -42 42 42 42 42 42 42 42 42 42 42.0000 -43 43 43 43 43 43 43 43 43 43 43.0000 -50 50 50 50 50 50 50 50 50 50 50.0000 -51 51 51 51 51 51 51 51 51 51 51.0000 -52 52 52 52 52 52 52 52 52 52 52.0000 -53 53 53 53 53 53 53 53 53 53 53.0000 -60 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -61 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -62 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -63 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -71 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -73 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -81 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -83 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -test_sequence --- select .. where numeric column = .. -- -set @arg00= 20; -select 'true' as found from t9 -where c1= 20 and c2= 20 and c3= 20 and c4= 20 and c5= 20 and c6= 20 and c7= 20 -and c8= 20 and c9= 20 and c10= 20 and c12= 20; -found -true -select 'true' as found from t9 -where c1= @arg00 and c2= @arg00 and c3= @arg00 and c4= @arg00 and c5= @arg00 -and c6= @arg00 and c7= @arg00 and c8= @arg00 and c9= @arg00 and c10= @arg00 -and c12= @arg00; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and c2= 20 and c3= 20 and c4= 20 and c5= 20 and c6= 20 and c7= 20 - and c8= 20 and c9= 20 and c10= 20 and c12= 20 "; -execute stmt1 ; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= ? and c2= ? and c3= ? and c4= ? and c5= ? - and c6= ? and c7= ? and c8= ? and c9= ? and c10= ? - and c12= ? "; -execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00 ; -found -true -set @arg00= 20.0; -select 'true' as found from t9 -where c1= 20.0 and c2= 20.0 and c3= 20.0 and c4= 20.0 and c5= 20.0 and c6= 20.0 -and c7= 20.0 and c8= 20.0 and c9= 20.0 and c10= 20.0 and c12= 20.0; -found -true -select 'true' as found from t9 -where c1= @arg00 and c2= @arg00 and c3= @arg00 and c4= @arg00 and c5= @arg00 -and c6= @arg00 and c7= @arg00 and c8= @arg00 and c9= @arg00 and c10= @arg00 -and c12= @arg00; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20.0 and c2= 20.0 and c3= 20.0 and c4= 20.0 and c5= 20.0 and c6= 20.0 - and c7= 20.0 and c8= 20.0 and c9= 20.0 and c10= 20.0 and c12= 20.0 "; -execute stmt1 ; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= ? and c2= ? and c3= ? and c4= ? and c5= ? - and c6= ? and c7= ? and c8= ? and c9= ? and c10= ? - and c12= ? "; -execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00 ; -found -true -select 'true' as found from t9 -where c1= '20' and c2= '20' and c3= '20' and c4= '20' and c5= '20' and c6= '20' - and c7= '20' and c8= '20' and c9= '20' and c10= '20' and c12= '20'; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= '20' and c2= '20' and c3= '20' and c4= '20' and c5= '20' and c6= '20' - and c7= '20' and c8= '20' and c9= '20' and c10= '20' and c12= '20' "; -execute stmt1 ; -found -true -set @arg00= '20'; -select 'true' as found from t9 -where c1= @arg00 and c2= @arg00 and c3= @arg00 and c4= @arg00 and c5= @arg00 -and c6= @arg00 and c7= @arg00 and c8= @arg00 and c9= @arg00 and c10= @arg00 -and c12= @arg00; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= ? and c2= ? and c3= ? and c4= ? and c5= ? - and c6= ? and c7= ? and c8= ? and c9= ? and c10= ? - and c12= ? "; -execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00 ; -found -true -select 'true' as found from t9 -where c1= CAST('20' as binary) and c2= CAST('20' as binary) and -c3= CAST('20' as binary) and c4= CAST('20' as binary) and -c5= CAST('20' as binary) and c6= CAST('20' as binary) and -c7= CAST('20' as binary) and c8= CAST('20' as binary) and -c9= CAST('20' as binary) and c10= CAST('20' as binary) and -c12= CAST('20' as binary); -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= CAST('20' as binary) and c2= CAST('20' as binary) and - c3= CAST('20' as binary) and c4= CAST('20' as binary) and - c5= CAST('20' as binary) and c6= CAST('20' as binary) and - c7= CAST('20' as binary) and c8= CAST('20' as binary) and - c9= CAST('20' as binary) and c10= CAST('20' as binary) and - c12= CAST('20' as binary) "; -execute stmt1 ; -found -true -set @arg00= CAST('20' as binary) ; -select 'true' as found from t9 -where c1= @arg00 and c2= @arg00 and c3= @arg00 and c4= @arg00 and c5= @arg00 -and c6= @arg00 and c7= @arg00 and c8= @arg00 and c9= @arg00 and c10= @arg00 -and c12= @arg00; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= ? and c2= ? and c3= ? and c4= ? and c5= ? - and c6= ? and c7= ? and c8= ? and c9= ? and c10= ? - and c12= ? "; -execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00 ; -found -true -delete from t9 ; -test_sequence --- some numeric overflow experiments -- -prepare my_insert from "insert into t9 - ( c21, c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) -values - ( 'O', ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )" ; -prepare my_select from "select c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 -from t9 where c21 = 'O' "; -prepare my_delete from "delete from t9 where c21 = 'O' "; -set @arg00= 9223372036854775807 ; -execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ; -Warnings: -Warning 1264 Data truncated; out of range for column 'c1' at row 1 -Warning 1264 Data truncated; out of range for column 'c2' at row 1 -Warning 1264 Data truncated; out of range for column 'c3' at row 1 -Warning 1264 Data truncated; out of range for column 'c4' at row 1 -Warning 1264 Data truncated; out of range for column 'c5' at row 1 -Warning 1264 Data truncated; out of range for column 'c12' at row 1 -execute my_select ; -c1 127 -c2 32767 -c3 8388607 -c4 2147483647 -c5 2147483647 -c6 9223372036854775807 -c7 9.22337e+18 -c8 9.22337203685478e+18 -c9 9.22337203685478e+18 -c10 9.22337203685478e+18 -c12 99999.9999 -execute my_delete ; -set @arg00= '9223372036854775807' ; -execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ; -Warnings: -Warning 1264 Data truncated; out of range for column 'c1' at row 1 -Warning 1264 Data truncated; out of range for column 'c2' at row 1 -Warning 1264 Data truncated; out of range for column 'c3' at row 1 -Warning 1265 Data truncated for column 'c4' at row 1 -Warning 1265 Data truncated for column 'c5' at row 1 -Warning 1264 Data truncated; out of range for column 'c12' at row 1 -execute my_select ; -c1 127 -c2 32767 -c3 8388607 -c4 2147483647 -c5 2147483647 -c6 9223372036854775807 -c7 9.22337e+18 -c8 9.22337203685478e+18 -c9 9.22337203685478e+18 -c10 9.22337203685478e+18 -c12 99999.9999 -execute my_delete ; -set @arg00= -9223372036854775808 ; -execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ; -Warnings: -Warning 1264 Data truncated; out of range for column 'c1' at row 1 -Warning 1264 Data truncated; out of range for column 'c2' at row 1 -Warning 1264 Data truncated; out of range for column 'c3' at row 1 -Warning 1264 Data truncated; out of range for column 'c4' at row 1 -Warning 1264 Data truncated; out of range for column 'c5' at row 1 -Warning 1264 Data truncated; out of range for column 'c12' at row 1 -execute my_select ; -c1 -128 -c2 -32768 -c3 -8388608 -c4 -2147483648 -c5 -2147483648 -c6 -9223372036854775808 -c7 -9.22337e+18 -c8 -9.22337203685478e+18 -c9 -9.22337203685478e+18 -c10 -9.22337203685478e+18 -c12 -9999.9999 -execute my_delete ; -set @arg00= '-9223372036854775808' ; -execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ; -Warnings: -Warning 1264 Data truncated; out of range for column 'c1' at row 1 -Warning 1264 Data truncated; out of range for column 'c2' at row 1 -Warning 1264 Data truncated; out of range for column 'c3' at row 1 -Warning 1265 Data truncated for column 'c4' at row 1 -Warning 1265 Data truncated for column 'c5' at row 1 -Warning 1264 Data truncated; out of range for column 'c12' at row 1 -execute my_select ; -c1 -128 -c2 -32768 -c3 -8388608 -c4 -2147483648 -c5 -2147483648 -c6 -9223372036854775808 -c7 -9.22337e+18 -c8 -9.22337203685478e+18 -c9 -9.22337203685478e+18 -c10 -9.22337203685478e+18 -c12 -9999.9999 -execute my_delete ; -set @arg00= 1.11111111111111111111e+50 ; -execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ; -Warnings: -Warning 1264 Data truncated; out of range for column 'c1' at row 1 -Warning 1264 Data truncated; out of range for column 'c2' at row 1 -Warning 1264 Data truncated; out of range for column 'c3' at row 1 -Warning 1264 Data truncated; out of range for column 'c4' at row 1 -Warning 1264 Data truncated; out of range for column 'c5' at row 1 -Warning 1264 Data truncated; out of range for column 'c6' at row 1 -Warning 1264 Data truncated; out of range for column 'c7' at row 1 -Warning 1264 Data truncated; out of range for column 'c12' at row 1 -execute my_select ; -c1 127 -c2 32767 -c3 8388607 -c4 2147483647 -c5 2147483647 -c6 9223372036854775807 -c7 3.40282e+38 -c8 1.11111111111111e+50 -c9 1.11111111111111e+50 -c10 1.11111111111111e+50 -c12 99999.9999 -execute my_delete ; -set @arg00= '1.11111111111111111111e+50' ; -execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ; -Warnings: -Warning 1265 Data truncated for column 'c1' at row 1 -Warning 1265 Data truncated for column 'c2' at row 1 -Warning 1265 Data truncated for column 'c3' at row 1 -Warning 1265 Data truncated for column 'c4' at row 1 -Warning 1265 Data truncated for column 'c5' at row 1 -Warning 1265 Data truncated for column 'c6' at row 1 -Warning 1264 Data truncated; out of range for column 'c7' at row 1 -Warning 1264 Data truncated; out of range for column 'c12' at row 1 -execute my_select ; -c1 1 -c2 1 -c3 1 -c4 1 -c5 1 -c6 1 -c7 3.40282e+38 -c8 1.11111111111111e+50 -c9 1.11111111111111e+50 -c10 1.11111111111111e+50 -c12 99999.9999 -execute my_delete ; -set @arg00= -1.11111111111111111111e+50 ; -execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ; -Warnings: -Warning 1264 Data truncated; out of range for column 'c1' at row 1 -Warning 1264 Data truncated; out of range for column 'c2' at row 1 -Warning 1264 Data truncated; out of range for column 'c3' at row 1 -Warning 1264 Data truncated; out of range for column 'c4' at row 1 -Warning 1264 Data truncated; out of range for column 'c5' at row 1 -Warning 1264 Data truncated; out of range for column 'c6' at row 1 -Warning 1264 Data truncated; out of range for column 'c7' at row 1 -Warning 1264 Data truncated; out of range for column 'c12' at row 1 -execute my_select ; -c1 -128 -c2 -32768 -c3 -8388608 -c4 -2147483648 -c5 -2147483648 -c6 -9223372036854775808 -c7 -3.40282e+38 -c8 -1.11111111111111e+50 -c9 -1.11111111111111e+50 -c10 -1.11111111111111e+50 -c12 -9999.9999 -execute my_delete ; -set @arg00= '-1.11111111111111111111e+50' ; -execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ; -Warnings: -Warning 1265 Data truncated for column 'c1' at row 1 -Warning 1265 Data truncated for column 'c2' at row 1 -Warning 1265 Data truncated for column 'c3' at row 1 -Warning 1265 Data truncated for column 'c4' at row 1 -Warning 1265 Data truncated for column 'c5' at row 1 -Warning 1265 Data truncated for column 'c6' at row 1 -Warning 1264 Data truncated; out of range for column 'c7' at row 1 -Warning 1264 Data truncated; out of range for column 'c12' at row 1 -execute my_select ; -c1 -1 -c2 -1 -c3 -1 -c4 -1 -c5 -1 -c6 -1 -c7 -3.40282e+38 -c8 -1.11111111111111e+50 -c9 -1.11111111111111e+50 -c10 -1.11111111111111e+50 -c12 -9999.9999 -execute my_delete ; -test_sequence --- insert into string columns -- -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c20' at row 1 -select c1, c20, c21, c22, c23, c24, c25, c26, c27, c28, c29, c30 -from t9 where c1 >= 20 -order by c1 ; -c1 c20 c21 c22 c23 c24 c25 c26 c27 c28 c29 c30 -20 2 20 20 20 20 20 20 20 20 20 20 -21 2 21 21 21 21 21 21 21 21 21 21 -22 2 22 22 22 22 22 22 22 22 22 22 -23 2 23 23 23 23 23 23 23 23 23 23 -30 3 30 30 30 30 30 30 30 30 30 30 -31 3 31 31 31 31 31 31 31 31 31 31 -32 3 32 32 32 32 32 32 32 32 32 32 -33 3 33 33 33 33 33 33 33 33 33 33 -40 4 40 40 40 40 40 40 40 40 40 40 -41 4 41 41 41 41 41 41 41 41 41 41 -42 4 42 42 42 42 42 42 42 42 42 42 -43 4 43 43 43 43 43 43 43 43 43 43 -50 5 50 50 50.00 50.00 50.00 50.00 50.00 50.00 50.00 50.00 -51 5 51 51 51 51 51 51 51 51 51 51 -52 5 52 52 52.00 52.00 52.00 52.00 52.00 52.00 52.00 52.00 -53 5 53 53 53.00 53.00 53.00 53.00 53.00 53.00 53.00 53.00 -54 5 54 54 54.00 54.00 54.00 54.00 54.00 54.00 54.00 54.00 -55 5 55 55 55 55 55 55 55 55 55 55 -56 6 56 56 56.00 56.00 56.00 56.00 56.00 56.00 56.00 56.00 -57 6 57 57 57.00 57.00 57.00 57.00 57.00 57.00 57.00 57.00 -60 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -61 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -62 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -63 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -71 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -73 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -81 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -83 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL -test_sequence --- select .. where string column = .. -- -set @arg00= '20'; -select 'true' as found from t9 -where c1= 20 and concat(c20,substr('20',1+length(c20)))= '20' and c21= '20' and -c22= '20' and c23= '20' and c24= '20' and c25= '20' and c26= '20' and -c27= '20' and c28= '20' and c29= '20' and c30= '20' ; -found -true -select 'true' as found from t9 -where c1= 20 and concat(c20,substr(@arg00,1+length(c20)))= @arg00 and -c21= @arg00 and c22= @arg00 and c23= @arg00 and c25= @arg00 and -c26= @arg00 and c27= @arg00 and c28= @arg00 and c29= @arg00 and c30= @arg00; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and concat(c20,substr('20',1+length(c20)))= '20' and c21= '20' and - c22= '20' and c23= '20' and c24= '20' and c25= '20' and c26= '20' and - c27= '20' and c28= '20' and c29= '20' and c30= '20'" ; -execute stmt1 ; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and concat(c20,substr(?,1+length(c20)))= ? and - c21= ? and c22= ? and c23= ? and c25= ? and - c26= ? and c27= ? and c28= ? and c29= ? and c30= ?" ; -execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ; -found -true -set @arg00= CAST('20' as binary); -select 'true' as found from t9 -where c1= 20 and concat(c20,substr(CAST('20' as binary),1+length(c20))) -= CAST('20' as binary) and c21= CAST('20' as binary) -and c22= CAST('20' as binary) and c23= CAST('20' as binary) and -c24= CAST('20' as binary) and c25= CAST('20' as binary) and -c26= CAST('20' as binary) and c27= CAST('20' as binary) and -c28= CAST('20' as binary) and c29= CAST('20' as binary) and -c30= CAST('20' as binary) ; -found -true -select 'true' as found from t9 -where c1= 20 and concat(c20,substr(@arg00,1+length(c20))) = @arg00 and -c21= @arg00 and c22= @arg00 and c23= @arg00 and c25= @arg00 and -c26= @arg00 and c27= @arg00 and c28= @arg00 and c29= @arg00 and -c30= @arg00; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and concat(c20,substr(CAST('20' as binary),1+length(c20))) - = CAST('20' as binary) and c21= CAST('20' as binary) - and c22= CAST('20' as binary) and c23= CAST('20' as binary) and - c24= CAST('20' as binary) and c25= CAST('20' as binary) and - c26= CAST('20' as binary) and c27= CAST('20' as binary) and - c28= CAST('20' as binary) and c29= CAST('20' as binary) and - c30= CAST('20' as binary)" ; -execute stmt1 ; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and concat(c20,substr(?,1+length(c20))) = ? and c21= ? and - c22= ? and c23= ? and c25= ? and c26= ? and c27= ? and c28= ? and - c29= ? and c30= ?"; -execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ; -found -true -set @arg00= 20; -select 'true' as found from t9 -where c1= 20 and concat(c20,substr(20,1+length(c20)))= 20 and c21= 20 and -c22= 20 and c23= 20 and c24= 20 and c25= 20 and c26= 20 and -c27= 20 and c28= 20 and c29= 20 and c30= 20 ; -found -true -select 'true' as found from t9 -where c1= 20 and concat(c20,substr(@arg00,1+length(c20)))= @arg00 and -c21= @arg00 and c22= @arg00 and c23= @arg00 and c25= @arg00 and -c26= @arg00 and c27= @arg00 and c28= @arg00 and c29= @arg00 and c30= @arg00; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and concat(c20,substr(20,1+length(c20)))= 20 and c21= 20 and - c22= 20 and c23= 20 and c24= 20 and c25= 20 and c26= 20 and - c27= 20 and c28= 20 and c29= 20 and c30= 20" ; -execute stmt1 ; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and concat(c20,substr(?,1+length(c20)))= ? and - c21= ? and c22= ? and c23= ? and c25= ? and - c26= ? and c27= ? and c28= ? and c29= ? and c30= ?" ; -execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ; -found -true -set @arg00= 20.0; -select 'true' as found from t9 -where c1= 20 and concat(c20,substr(20.0,1+length(c20)))= 20.0 and c21= 20.0 and -c22= 20.0 and c23= 20.0 and c24= 20.0 and c25= 20.0 and c26= 20.0 and -c27= 20.0 and c28= 20.0 and c29= 20.0 and c30= 20.0 ; -found -true -select 'true' as found from t9 -where c1= 20 and concat(c20,substr(@arg00,1+length(c20)))= @arg00 and -c21= @arg00 and c22= @arg00 and c23= @arg00 and c25= @arg00 and -c26= @arg00 and c27= @arg00 and c28= @arg00 and c29= @arg00 and c30= @arg00; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and concat(c20,substr(20.0,1+length(c20)))= 20.0 and c21= 20.0 and - c22= 20.0 and c23= 20.0 and c24= 20.0 and c25= 20.0 and c26= 20.0 and - c27= 20.0 and c28= 20.0 and c29= 20.0 and c30= 20.0" ; -execute stmt1 ; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and concat(c20,substr(?,1+length(c20)))= ? and - c21= ? and c22= ? and c23= ? and c25= ? and - c26= ? and c27= ? and c28= ? and c29= ? and c30= ?" ; -execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, -@arg00, @arg00, @arg00, @arg00, @arg00 ; -found -true -delete from t9 ; -test_sequence --- insert into date/time columns -- -Warnings: -Warning 1265 Data truncated for column 'c17' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c17' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c17' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c17' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c17' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c17' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c17' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c17' at row 1 -Warnings: -Warning 1264 Data truncated; out of range for column 'c13' at row 1 -Warning 1265 Data truncated for column 'c14' at row 1 -Warning 1265 Data truncated for column 'c15' at row 1 -Warning 1264 Data truncated; out of range for column 'c16' at row 1 -Warning 1264 Data truncated; out of range for column 'c17' at row 1 -Warnings: -Warning 1264 Data truncated; out of range for column 'c13' at row 1 -Warning 1265 Data truncated for column 'c14' at row 1 -Warning 1265 Data truncated for column 'c15' at row 1 -Warning 1264 Data truncated; out of range for column 'c16' at row 1 -Warning 1264 Data truncated; out of range for column 'c17' at row 1 -Warnings: -Warning 1264 Data truncated; out of range for column 'c13' at row 1 -Warning 1265 Data truncated for column 'c14' at row 1 -Warning 1265 Data truncated for column 'c15' at row 1 -Warning 1264 Data truncated; out of range for column 'c16' at row 1 -Warning 1264 Data truncated; out of range for column 'c17' at row 1 -Warnings: -Warning 1264 Data truncated; out of range for column 'c13' at row 1 -Warning 1265 Data truncated for column 'c14' at row 1 -Warning 1265 Data truncated for column 'c15' at row 1 -Warning 1264 Data truncated; out of range for column 'c16' at row 1 -Warning 1264 Data truncated; out of range for column 'c17' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c15' at row 1 -Warning 1264 Data truncated; out of range for column 'c16' at row 1 -Warning 1264 Data truncated; out of range for column 'c17' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c15' at row 1 -Warning 1264 Data truncated; out of range for column 'c16' at row 1 -Warning 1264 Data truncated; out of range for column 'c17' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c15' at row 1 -Warning 1264 Data truncated; out of range for column 'c16' at row 1 -Warning 1264 Data truncated; out of range for column 'c17' at row 1 -Warnings: -Warning 1265 Data truncated for column 'c15' at row 1 -Warning 1264 Data truncated; out of range for column 'c16' at row 1 -Warning 1264 Data truncated; out of range for column 'c17' at row 1 -select c1, c13, c14, c15, c16, c17 from t9 order by c1 ; -c1 c13 c14 c15 c16 c17 -20 1991-01-01 1991-01-01 01:01:01 1991-01-01 01:01:01 01:01:01 1991 -21 1991-01-01 1991-01-01 01:01:01 1991-01-01 01:01:01 01:01:01 1991 -22 1991-01-01 1991-01-01 01:01:01 1991-01-01 01:01:01 01:01:01 1991 -23 1991-01-01 1991-01-01 01:01:01 1991-01-01 01:01:01 01:01:01 1991 -30 1991-01-01 1991-01-01 01:01:01 1991-01-01 01:01:01 01:01:01 1991 -31 1991-01-01 1991-01-01 01:01:01 1991-01-01 01:01:01 01:01:01 1991 -32 1991-01-01 1991-01-01 01:01:01 1991-01-01 01:01:01 01:01:01 1991 -33 1991-01-01 1991-01-01 01:01:01 1991-01-01 01:01:01 01:01:01 1991 -40 0000-00-00 0000-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 -41 0000-00-00 0000-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 -42 0000-00-00 0000-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 -43 0000-00-00 0000-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 -50 2001-00-00 2001-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 -51 0010-00-00 0010-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 -52 2001-00-00 2001-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 -53 2001-00-00 2001-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 -60 NULL NULL 1991-01-01 01:01:01 NULL NULL -61 NULL NULL 1991-01-01 01:01:01 NULL NULL -62 NULL NULL 1991-01-01 01:01:01 NULL NULL -63 NULL NULL 1991-01-01 01:01:01 NULL NULL -71 NULL NULL 1991-01-01 01:01:01 NULL NULL -73 NULL NULL 1991-01-01 01:01:01 NULL NULL -81 NULL NULL 1991-01-01 01:01:01 NULL NULL -83 NULL NULL 1991-01-01 01:01:01 NULL NULL -test_sequence --- select .. where date/time column = .. -- -set @arg00= '1991-01-01 01:01:01' ; -select 'true' as found from t9 -where c1= 20 and c13= '1991-01-01 01:01:01' and c14= '1991-01-01 01:01:01' and -c15= '1991-01-01 01:01:01' and c16= '1991-01-01 01:01:01' and -c17= '1991-01-01 01:01:01' ; -found -true -select 'true' as found from t9 -where c1= 20 and c13= @arg00 and c14= @arg00 and c15= @arg00 and c16= @arg00 -and c17= @arg00 ; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and c13= '1991-01-01 01:01:01' and c14= '1991-01-01 01:01:01' and - c15= '1991-01-01 01:01:01' and c16= '1991-01-01 01:01:01' and - c17= '1991-01-01 01:01:01'" ; -execute stmt1 ; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and c13= ? and c14= ? and c15= ? and c16= ? and c17= ?" ; -execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00 ; -found -true -set @arg00= CAST('1991-01-01 01:01:01' as datetime) ; -select 'true' as found from t9 -where c1= 20 and c13= CAST('1991-01-01 01:01:01' as datetime) and -c14= CAST('1991-01-01 01:01:01' as datetime) and -c15= CAST('1991-01-01 01:01:01' as datetime) and -c16= CAST('1991-01-01 01:01:01' as datetime) and -c17= CAST('1991-01-01 01:01:01' as datetime) ; -found -true -select 'true' as found from t9 -where c1= 20 and c13= @arg00 and c14= @arg00 and c15= @arg00 and c16= @arg00 -and c17= @arg00 ; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and c13= CAST('1991-01-01 01:01:01' as datetime) and - c14= CAST('1991-01-01 01:01:01' as datetime) and - c15= CAST('1991-01-01 01:01:01' as datetime) and - c16= CAST('1991-01-01 01:01:01' as datetime) and - c17= CAST('1991-01-01 01:01:01' as datetime)" ; -execute stmt1 ; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and c13= ? and c14= ? and c15= ? and c16= ? and c17= ?" ; -execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00 ; -found -true -set @arg00= 1991 ; -select 'true' as found from t9 -where c1= 20 and c17= 1991 ; -found -true -select 'true' as found from t9 -where c1= 20 and c17= @arg00 ; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and c17= 1991" ; -execute stmt1 ; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and c17= ?" ; -execute stmt1 using @arg00 ; -found -true -set @arg00= 1.991e+3 ; -select 'true' as found from t9 -where c1= 20 and abs(c17 - 1.991e+3) < 0.01 ; -found -true -select 'true' as found from t9 -where c1= 20 and abs(c17 - @arg00) < 0.01 ; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and abs(c17 - 1.991e+3) < 0.01" ; -execute stmt1 ; -found -true -prepare stmt1 from "select 'true' as found from t9 -where c1= 20 and abs(c17 - ?) < 0.01" ; -execute stmt1 using @arg00 ; -found -true -drop table t1, t9; diff --git a/mysql-test/r/query_cache.result.es b/mysql-test/r/query_cache.result.es index 1e16354d87d..7e75a3cee4c 100644 --- a/mysql-test/r/query_cache.result.es +++ b/mysql-test/r/query_cache.result.es @@ -808,7 +808,7 @@ SET NAMES koi8r; CREATE TABLE t1 (a char(1) character set koi8r); INSERT INTO t1 VALUES (_koi8r''),(_koi8r''); SELECT a,'',''='' FROM t1; -a б 'Б'='б' +a ''='' 1 1 show status like "Qcache_hits"; @@ -819,7 +819,7 @@ Variable_name Value Qcache_queries_in_cache 1 set collation_connection=koi8r_bin; SELECT a,'',''='' FROM t1; -a б 'Б'='б' +a ''='' 0 0 show status like "Qcache_hits"; @@ -830,7 +830,7 @@ Variable_name Value Qcache_queries_in_cache 2 set character_set_client=cp1251; SELECT a,'',''='' FROM t1; -a В 'в'='В' +a ''='' 0 0 show status like "Qcache_hits"; @@ -841,7 +841,7 @@ Variable_name Value Qcache_queries_in_cache 3 set character_set_results=cp1251; SELECT a,'',''='' FROM t1; -a В 'в'='В' +a ''='' 0 0 show status like "Qcache_hits"; diff --git a/tests/client_test.c b/tests/client_test.c index 0575b355b05..dc18929341c 100644 --- a/tests/client_test.c +++ b/tests/client_test.c @@ -683,9 +683,7 @@ static void verify_prepare_field(MYSQL_RES *result, as utf8. Field length is calculated as number of characters * maximum number of bytes a character can occupy. */ -#ifndef EMBEDDED_LIBRARY DIE_UNLESS(field->length == length * cs->mbmaxlen); -#endif if (def) DIE_UNLESS(strcmp(field->def, def) == 0); } From ca756fa5a59b235456794e2ed075ce7d6e044c18 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 21 Dec 2004 12:31:38 +0400 Subject: [PATCH 008/157] Tabs removed --- libmysqld/lib_sql.cc | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/libmysqld/lib_sql.cc b/libmysqld/lib_sql.cc index e866c801337..26d97fa03c8 100644 --- a/libmysqld/lib_sql.cc +++ b/libmysqld/lib_sql.cc @@ -604,7 +604,7 @@ static char *dup_str_aux(MEM_ROOT *root, const char *from, uint length, uint new_len= (tocs->mbmaxlen * length) / fromcs->mbminlen + 1; result= (char *)alloc_root(root, new_len); length= copy_and_convert(result, new_len, - tocs, from, length, fromcs, &dummy_err); + tocs, from, length, fromcs, &dummy_err); } else { @@ -645,15 +645,15 @@ bool Protocol::send_fields(List *list, uint flag) item->make_field(&server_field); client_field->db= dup_str_aux(field_alloc, server_field.db_name, - strlen(server_field.db_name), cs, thd_cs); + strlen(server_field.db_name), cs, thd_cs); client_field->table= dup_str_aux(field_alloc, server_field.table_name, - strlen(server_field.table_name), cs, thd_cs); + strlen(server_field.table_name), cs, thd_cs); client_field->name= dup_str_aux(field_alloc, server_field.col_name, - strlen(server_field.col_name), cs, thd_cs); + strlen(server_field.col_name), cs, thd_cs); client_field->org_table= dup_str_aux(field_alloc, server_field.org_table_name, - strlen(server_field.org_table_name), cs, thd_cs); + strlen(server_field.org_table_name), cs, thd_cs); client_field->org_name= dup_str_aux(field_alloc, server_field.org_col_name, - strlen(server_field.org_col_name), cs, thd_cs); + strlen(server_field.org_col_name), cs, thd_cs); if (item->collation.collation == &my_charset_bin || thd_cs == NULL) { /* No conversion */ From 78e8e7949e9e657d266e1b8f0d9fc9a3050e8a56 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 21 Dec 2004 10:37:12 +0100 Subject: [PATCH 009/157] added ndb_init.h to distribution added missing copyright text moved ndb_init things to separate header file removed ndb_global include documented cluster connection class moved internal constants to NdbImpl.hpp class changed wait_until_ready behaviour somewhat ndb/config/type_ndbapitest.mk.am: corrected -I flag ndb/include/Makefile.am: added ndb_init.h to distribution ndb/include/ndb_global.h.in: added copyright text moved ndb_init things to separate header file ndb/include/ndbapi/NdbBlob.hpp: moved error codes and internal constants to NdbBlobImpl.hpp ndb/include/ndbapi/NdbReceiver.hpp: removed ndb_global include ndb/include/ndbapi/ndb_cluster_connection.hpp: documented cluster connection class changed wait_until_ready behaviour somewhat ndb/src/ndbapi/Ndb.cpp: documented cluster connection class changed wait_until_ready behaviour somewhat ndb/src/ndbapi/NdbBlob.cpp: moved internal constants to NdbImpl.hpp class ndb/src/ndbapi/NdbDictionaryImpl.cpp: moved internal constants to NdbImpl.hpp class ndb/src/ndbapi/NdbOperationInt.cpp: changed includes ndb/src/ndbapi/ndb_cluster_connection.cpp: changed wait_until_ready behaviour somewhat ndb/test/ndbapi/testBlobs.cpp: use impl class to get constants --- ndb/config/type_ndbapitest.mk.am | 2 +- ndb/include/Makefile.am | 1 + ndb/include/ndb_global.h.in | 22 +++++-- ndb/include/ndb_init.h | 32 ++++++++++ ndb/include/ndbapi/NdbBlob.hpp | 15 ----- ndb/include/ndbapi/NdbReceiver.hpp | 3 +- ndb/include/ndbapi/ndb_cluster_connection.hpp | 60 +++++++++++++++--- ndb/src/ndbapi/Ndb.cpp | 2 +- ndb/src/ndbapi/NdbBlob.cpp | 63 ++++++++++--------- ndb/src/ndbapi/NdbBlobImpl.hpp | 39 ++++++++++++ ndb/src/ndbapi/NdbDictionaryImpl.cpp | 7 ++- ndb/src/ndbapi/NdbOperationInt.cpp | 18 ++---- ndb/src/ndbapi/ndb_cluster_connection.cpp | 14 +---- ndb/test/ndbapi/testBlobs.cpp | 3 +- 14 files changed, 190 insertions(+), 91 deletions(-) create mode 100644 ndb/include/ndb_init.h create mode 100644 ndb/src/ndbapi/NdbBlobImpl.hpp diff --git a/ndb/config/type_ndbapitest.mk.am b/ndb/config/type_ndbapitest.mk.am index f1fd8286337..392c4e9fc70 100644 --- a/ndb/config/type_ndbapitest.mk.am +++ b/ndb/config/type_ndbapitest.mk.am @@ -5,7 +5,7 @@ LDADD += $(top_builddir)/ndb/test/src/libNDBT.a \ $(top_builddir)/mysys/libmysys.a \ $(top_builddir)/strings/libmystrings.a @NDB_SCI_LIBS@ -INCLUDES += -I$(srcdir) -I$(top_srcdir)/include \ +INCLUDES += -I$(top_srcdir) -I$(top_srcdir)/include \ -I$(top_srcdir)/ndb/include \ -I$(top_srcdir)/ndb/include/ndbapi \ -I$(top_srcdir)/ndb/include/util \ diff --git a/ndb/include/Makefile.am b/ndb/include/Makefile.am index b29433a59b7..38b9d870fbc 100644 --- a/ndb/include/Makefile.am +++ b/ndb/include/Makefile.am @@ -2,6 +2,7 @@ include $(top_srcdir)/ndb/config/common.mk.am ndbinclude_HEADERS = \ +ndb_init.h \ ndb_types.h \ ndb_version.h diff --git a/ndb/include/ndb_global.h.in b/ndb/include/ndb_global.h.in index aefb319730c..aca67239719 100644 --- a/ndb/include/ndb_global.h.in +++ b/ndb/include/ndb_global.h.in @@ -1,3 +1,18 @@ +/* Copyright (C) 2003 MySQL AB + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #ifndef NDBGLOBAL_H #define NDBGLOBAL_H @@ -96,15 +111,12 @@ extern "C" { #include -/* call in main() - does not return on error */ -extern int ndb_init(void); -extern void ndb_end(int); -#define NDB_INIT(prog_name) {my_progname=(prog_name); ndb_init();} - #ifdef __cplusplus } #endif +#include "ndb_init.h" + #ifdef SCO #ifndef PATH_MAX diff --git a/ndb/include/ndb_init.h b/ndb/include/ndb_init.h new file mode 100644 index 00000000000..0ff53e6a2af --- /dev/null +++ b/ndb/include/ndb_init.h @@ -0,0 +1,32 @@ +/* Copyright (C) 2003 MySQL AB + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ + + +#ifndef NDB_INIT_H +#define NDB_INIT_H + +#ifdef __cplusplus +extern "C" { +#endif +/* call in main() - does not return on error */ +extern int ndb_init(void); +extern void ndb_end(int); +#define NDB_INIT(prog_name) {my_progname=(prog_name); ndb_init();} +#ifdef __cplusplus +} +#endif + +#endif diff --git a/ndb/include/ndbapi/NdbBlob.hpp b/ndb/include/ndbapi/NdbBlob.hpp index 0fb63015da2..b145c69b04b 100644 --- a/ndb/include/ndbapi/NdbBlob.hpp +++ b/ndb/include/ndbapi/NdbBlob.hpp @@ -182,27 +182,12 @@ public: /** * Get blob parts table name. Useful only to test programs. */ - STATIC_CONST( BlobTableNameSize = 40 ); static int getBlobTableName(char* btname, Ndb* anNdb, const char* tableName, const char* columnName); /** * Return error object. The error may be blob specific (below) or may * be copied from a failed implicit operation. */ const NdbError& getNdbError() const; - // "Invalid blob attributes or invalid blob parts table" - STATIC_CONST( ErrTable = 4263 ); - // "Invalid usage of blob attribute" - STATIC_CONST( ErrUsage = 4264 ); - // "Method is not valid in current blob state" - STATIC_CONST( ErrState = 4265 ); - // "Invalid blob seek position" - STATIC_CONST( ErrSeek = 4266 ); - // "Corrupted blob value" - STATIC_CONST( ErrCorrupt = 4267 ); - // "Error in blob head update forced rollback of transaction" - STATIC_CONST( ErrAbort = 4268 ); - // "Unknown blob error" - STATIC_CONST( ErrUnknown = 4269 ); /** * Return info about all blobs in this operation. */ diff --git a/ndb/include/ndbapi/NdbReceiver.hpp b/ndb/include/ndbapi/NdbReceiver.hpp index b95313db274..af624f69bd3 100644 --- a/ndb/include/ndbapi/NdbReceiver.hpp +++ b/ndb/include/ndbapi/NdbReceiver.hpp @@ -19,7 +19,6 @@ #ifndef DOXYGEN_SHOULD_SKIP_INTERNAL // Not part of public interface #include -#include class Ndb; class NdbConnection; @@ -131,7 +130,9 @@ int NdbReceiver::execTCOPCONF(Uint32 len){ Uint32 tmp = m_received_result_length; m_expected_result_length = len; +#ifdef assert assert(!(tmp && !len)); +#endif return ((bool)len ^ (bool)tmp ? 0 : 1); } diff --git a/ndb/include/ndbapi/ndb_cluster_connection.hpp b/ndb/include/ndbapi/ndb_cluster_connection.hpp index 1b1c8575656..a98dcaaf5a4 100644 --- a/ndb/include/ndbapi/ndb_cluster_connection.hpp +++ b/ndb/include/ndbapi/ndb_cluster_connection.hpp @@ -18,28 +18,72 @@ #ifndef CLUSTER_CONNECTION_HPP #define CLUSTER_CONNECTION_HPP -struct Ndb_cluster_connection_node_iter; - +/** + * @class Ndb_cluster_connection + * @brief Represents a connection to a cluster of storage nodes + * + * Always start your application program by creating a + * Ndb_cluster_connection object. Your application should contain + * only one Ndb_cluster_connection. Your application connects to + * a cluster management server when method connect() is called. + * With the method wait_until_ready() it is possible to wait + * for the connection to one or several storage nodes. + */ class Ndb_cluster_connection { public: + /** + * Create a connection to a cluster of storage nodes + * + * @param specify the connectstring for where to find the + * management server + */ Ndb_cluster_connection(const char * connect_string = 0); ~Ndb_cluster_connection(); - int connect(int no_retries, int retry_delay_in_seconds, int verbose); - int start_connect_thread(int (*connect_callback)(void)= 0); - // add check coupled to init state of cluster connection - // timeout_after_first_alive negative - ok only if all alive - // timeout_after_first_alive positive - ok if some alive + /** + * Connect to a cluster management server + * + * @param no_retries specifies the number of retries to perform + * if the connect fails, negative number results in infinite + * number of retries + * @param retry_delay_in_seconds specifies how often retries should + * be performed + * @param verbose specifies if the method should print progess + * + * @return 0 if success, + * 1 if retriable error, + * -1 if non-retriable error + */ + int connect(int no_retries=0, int retry_delay_in_seconds=1, int verbose=0); + +#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL + int start_connect_thread(int (*connect_callback)(void)= 0); +#endif + + /** + * Wait until one or several storage nodes are connected + * + * @param time_out_for_first_alive number of seconds to wait until + * first alive node is detected + * @param timeout_after_first_alive number of seconds to wait after + * first alive node is detected + * + * @return 0 all nodes alive, + * > 0 at least one node alive, + * < 0 error + */ int wait_until_ready(int timeout_for_first_alive, int timeout_after_first_alive); +#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL const char *get_connectstring(char *buf, int buf_sz) const; int get_connected_port() const; const char *get_connected_host() const; void set_optimized_node_selection(int val); - Uint32 no_db_nodes(); + int no_db_nodes(); +#endif private: friend class Ndb; diff --git a/ndb/src/ndbapi/Ndb.cpp b/ndb/src/ndbapi/Ndb.cpp index e9a125922c6..b5493622b70 100644 --- a/ndb/src/ndbapi/Ndb.cpp +++ b/ndb/src/ndbapi/Ndb.cpp @@ -282,7 +282,7 @@ Ndb::waitUntilReady(int timeout) } if (theImpl->m_ndb_cluster_connection.wait_until_ready - (timeout-secondsCounter,30)) + (timeout-secondsCounter,30) < 0) { theError.code = 4009; DBUG_RETURN(-1); diff --git a/ndb/src/ndbapi/NdbBlob.cpp b/ndb/src/ndbapi/NdbBlob.cpp index da0a4f73c3e..f72361b86ac 100644 --- a/ndb/src/ndbapi/NdbBlob.cpp +++ b/ndb/src/ndbapi/NdbBlob.cpp @@ -21,6 +21,7 @@ #include #include #include +#include "NdbBlobImpl.hpp" #include #ifdef NDB_BLOB_DEBUG @@ -85,14 +86,14 @@ void NdbBlob::getBlobTableName(char* btname, const NdbTableImpl* t, const NdbColumnImpl* c) { assert(t != 0 && c != 0 && c->getBlobType()); - memset(btname, 0, BlobTableNameSize); + memset(btname, 0, NdbBlobImpl::BlobTableNameSize); sprintf(btname, "NDB$BLOB_%d_%d", (int)t->m_tableId, (int)c->m_attrId); } void NdbBlob::getBlobTable(NdbTableImpl& bt, const NdbTableImpl* t, const NdbColumnImpl* c) { - char btname[BlobTableNameSize]; + char btname[NdbBlobImpl::BlobTableNameSize]; getBlobTableName(btname, t, c); bt.setName(btname); bt.setLogging(t->getLogging()); @@ -450,15 +451,15 @@ NdbBlob::getValue(void* data, Uint32 bytes) { DBG("getValue data=" << hex << data << " bytes=" << dec << bytes); if (theGetFlag || theState != Prepared) { - setErrorCode(ErrState); + setErrorCode(NdbBlobImpl::ErrState); return -1; } if (! isReadOp() && ! isScanOp()) { - setErrorCode(ErrUsage); + setErrorCode(NdbBlobImpl::ErrUsage); return -1; } if (data == NULL && bytes != 0) { - setErrorCode(ErrUsage); + setErrorCode(NdbBlobImpl::ErrUsage); return -1; } theGetFlag = true; @@ -472,15 +473,15 @@ NdbBlob::setValue(const void* data, Uint32 bytes) { DBG("setValue data=" << hex << data << " bytes=" << dec << bytes); if (theSetFlag || theState != Prepared) { - setErrorCode(ErrState); + setErrorCode(NdbBlobImpl::ErrState); return -1; } if (! isInsertOp() && ! isUpdateOp() && ! isWriteOp()) { - setErrorCode(ErrUsage); + setErrorCode(NdbBlobImpl::ErrUsage); return -1; } if (data == NULL && bytes != 0) { - setErrorCode(ErrUsage); + setErrorCode(NdbBlobImpl::ErrUsage); return -1; } theSetFlag = true; @@ -512,7 +513,7 @@ NdbBlob::setActiveHook(ActiveHook activeHook, void* arg) { DBG("setActiveHook hook=" << hex << (void*)activeHook << " arg=" << hex << arg); if (theState != Prepared) { - setErrorCode(ErrState); + setErrorCode(NdbBlobImpl::ErrState); return -1; } theActiveHook = activeHook; @@ -531,7 +532,7 @@ NdbBlob::getNull(bool& isNull) return 0; } if (theNullFlag == -1) { - setErrorCode(ErrState); + setErrorCode(NdbBlobImpl::ErrState); return -1; } isNull = theNullFlag; @@ -546,7 +547,7 @@ NdbBlob::setNull() if (theState == Prepared) { return setValue(0, 0); } - setErrorCode(ErrState); + setErrorCode(NdbBlobImpl::ErrState); return -1; } if (theNullFlag) @@ -568,7 +569,7 @@ NdbBlob::getLength(Uint64& len) return 0; } if (theNullFlag == -1) { - setErrorCode(ErrState); + setErrorCode(NdbBlobImpl::ErrState); return -1; } len = theLength; @@ -580,7 +581,7 @@ NdbBlob::truncate(Uint64 length) { DBG("truncate [in] length=" << length); if (theNullFlag == -1) { - setErrorCode(ErrState); + setErrorCode(NdbBlobImpl::ErrState); return -1; } if (theLength > length) { @@ -608,7 +609,7 @@ NdbBlob::getPos(Uint64& pos) { DBG("getPos"); if (theNullFlag == -1) { - setErrorCode(ErrState); + setErrorCode(NdbBlobImpl::ErrState); return -1; } pos = thePos; @@ -620,11 +621,11 @@ NdbBlob::setPos(Uint64 pos) { DBG("setPos pos=" << pos); if (theNullFlag == -1) { - setErrorCode(ErrState); + setErrorCode(NdbBlobImpl::ErrState); return -1; } if (pos > theLength) { - setErrorCode(ErrSeek); + setErrorCode(NdbBlobImpl::ErrSeek); return -1; } thePos = pos; @@ -637,7 +638,7 @@ int NdbBlob::readData(void* data, Uint32& bytes) { if (theState != Active) { - setErrorCode(ErrState); + setErrorCode(NdbBlobImpl::ErrState); return -1; } char* buf = static_cast(data); @@ -666,7 +667,7 @@ NdbBlob::readDataPrivate(char* buf, Uint32& bytes) } } if (len > 0 && thePartSize == 0) { - setErrorCode(ErrSeek); + setErrorCode(NdbBlobImpl::ErrSeek); return -1; } if (len > 0) { @@ -731,7 +732,7 @@ int NdbBlob::writeData(const void* data, Uint32 bytes) { if (theState != Active) { - setErrorCode(ErrState); + setErrorCode(NdbBlobImpl::ErrState); return -1; } const char* buf = static_cast(data); @@ -764,7 +765,7 @@ NdbBlob::writeDataPrivate(const char* buf, Uint32 bytes) } } if (len > 0 && thePartSize == 0) { - setErrorCode(ErrSeek); + setErrorCode(NdbBlobImpl::ErrSeek); return -1; } if (len > 0) { @@ -1081,7 +1082,7 @@ NdbBlob::atPrepare(NdbConnection* aCon, NdbOperation* anOp, const NdbColumnImpl* theFillChar = 0x20; break; default: - setErrorCode(ErrUsage); + setErrorCode(NdbBlobImpl::ErrUsage); return -1; } // sizes @@ -1099,7 +1100,7 @@ NdbBlob::atPrepare(NdbConnection* aCon, NdbOperation* anOp, const NdbColumnImpl* (bc = bt->getColumn("DATA")) == NULL || bc->getType() != partType || bc->getLength() != (int)thePartSize) { - setErrorCode(ErrTable); + setErrorCode(NdbBlobImpl::ErrTable); return -1; } theBlobTable = &NdbTableImpl::getImpl(*bt); @@ -1120,7 +1121,7 @@ NdbBlob::atPrepare(NdbConnection* aCon, NdbOperation* anOp, const NdbColumnImpl* Uint32* data = (Uint32*)theKeyBuf.data; unsigned size = theTable->m_sizeOfKeysInWords; if (theNdbOp->getKeyFromTCREQ(data, size) == -1) { - setErrorCode(ErrUsage); + setErrorCode(NdbBlobImpl::ErrUsage); return -1; } } @@ -1129,7 +1130,7 @@ NdbBlob::atPrepare(NdbConnection* aCon, NdbOperation* anOp, const NdbColumnImpl* Uint32* data = (Uint32*)theAccessKeyBuf.data; unsigned size = theAccessTable->m_sizeOfKeysInWords; if (theNdbOp->getKeyFromTCREQ(data, size) == -1) { - setErrorCode(ErrUsage); + setErrorCode(NdbBlobImpl::ErrUsage); return -1; } } @@ -1158,7 +1159,7 @@ NdbBlob::atPrepare(NdbConnection* aCon, NdbOperation* anOp, const NdbColumnImpl* supportedOp = true; } if (! supportedOp) { - setErrorCode(ErrUsage); + setErrorCode(NdbBlobImpl::ErrUsage); return -1; } setState(Prepared); @@ -1204,7 +1205,7 @@ NdbBlob::preExecute(ExecType anExecType, bool& batch) tOp->updateTuple() == -1 || setTableKeyValue(tOp) == -1 || setHeadInlineValue(tOp) == -1) { - setErrorCode(ErrAbort); + setErrorCode(NdbBlobImpl::ErrAbort); return -1; } DBG("add op to update head+inline"); @@ -1434,7 +1435,7 @@ NdbBlob::postExecute(ExecType anExecType) tOp->updateTuple() == -1 || setTableKeyValue(tOp) == -1 || setHeadInlineValue(tOp) == -1) { - setErrorCode(ErrAbort); + setErrorCode(NdbBlobImpl::ErrAbort); return -1; } tOp->m_abortOption = AbortOnError; @@ -1464,7 +1465,7 @@ NdbBlob::preCommit() tOp->updateTuple() == -1 || setTableKeyValue(tOp) == -1 || setHeadInlineValue(tOp) == -1) { - setErrorCode(ErrAbort); + setErrorCode(NdbBlobImpl::ErrAbort); return -1; } tOp->m_abortOption = AbortOnError; @@ -1489,7 +1490,7 @@ NdbBlob::atNextResult() { Uint32* data = (Uint32*)theKeyBuf.data; unsigned size = theTable->m_sizeOfKeysInWords; if (((NdbScanOperation*)theNdbOp)->getKeyFromKEYINFO20(data, size) == -1) { - setErrorCode(ErrUsage); + setErrorCode(NdbBlobImpl::ErrUsage); return -1; } } @@ -1545,7 +1546,7 @@ NdbBlob::setErrorCode(NdbOperation* anOp, bool invalidFlag) else if ((code = theNdb->theError.code) != 0) ; else - code = ErrUnknown; + code = NdbBlobImpl::ErrUnknown; setErrorCode(code, invalidFlag); } @@ -1558,7 +1559,7 @@ NdbBlob::setErrorCode(NdbConnection* aCon, bool invalidFlag) else if ((code = theNdb->theError.code) != 0) ; else - code = ErrUnknown; + code = NdbBlobImpl::ErrUnknown; setErrorCode(code, invalidFlag); } diff --git a/ndb/src/ndbapi/NdbBlobImpl.hpp b/ndb/src/ndbapi/NdbBlobImpl.hpp new file mode 100644 index 00000000000..0030e910c52 --- /dev/null +++ b/ndb/src/ndbapi/NdbBlobImpl.hpp @@ -0,0 +1,39 @@ +/* Copyright (C) 2003 MySQL AB + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ + +#ifndef NdbBlobImpl_H +#define NdbBlobImpl_H + +class NdbBlobImpl { +public: + STATIC_CONST( BlobTableNameSize = 40 ); + // "Invalid blob attributes or invalid blob parts table" + STATIC_CONST( ErrTable = 4263 ); + // "Invalid usage of blob attribute" + STATIC_CONST( ErrUsage = 4264 ); + // "Method is not valid in current blob state" + STATIC_CONST( ErrState = 4265 ); + // "Invalid blob seek position" + STATIC_CONST( ErrSeek = 4266 ); + // "Corrupted blob value" + STATIC_CONST( ErrCorrupt = 4267 ); + // "Error in blob head update forced rollback of transaction" + STATIC_CONST( ErrAbort = 4268 ); + // "Unknown blob error" + STATIC_CONST( ErrUnknown = 4269 ); +}; + +#endif diff --git a/ndb/src/ndbapi/NdbDictionaryImpl.cpp b/ndb/src/ndbapi/NdbDictionaryImpl.cpp index 5319e678441..7a293463c94 100644 --- a/ndb/src/ndbapi/NdbDictionaryImpl.cpp +++ b/ndb/src/ndbapi/NdbDictionaryImpl.cpp @@ -34,7 +34,8 @@ #include #include #include "NdbEventOperationImpl.hpp" -#include "NdbBlob.hpp" +#include +#include "NdbBlobImpl.hpp" #include #include @@ -1385,7 +1386,7 @@ NdbDictionaryImpl::addBlobTables(NdbTableImpl &t) if (! c.getBlobType() || c.getPartSize() == 0) continue; n--; - char btname[NdbBlob::BlobTableNameSize]; + char btname[NdbBlobImpl::BlobTableNameSize]; NdbBlob::getBlobTableName(btname, &t, &c); // Save BLOB table handle NdbTableImpl * cachedBlobTable = getTable(btname); @@ -1793,7 +1794,7 @@ NdbDictionaryImpl::dropBlobTables(NdbTableImpl & t) NdbColumnImpl & c = *t.m_columns[i]; if (! c.getBlobType() || c.getPartSize() == 0) continue; - char btname[NdbBlob::BlobTableNameSize]; + char btname[NdbBlobImpl::BlobTableNameSize]; NdbBlob::getBlobTableName(btname, &t, &c); if (dropTable(btname) != 0) { if (m_error.code != 709){ diff --git a/ndb/src/ndbapi/NdbOperationInt.cpp b/ndb/src/ndbapi/NdbOperationInt.cpp index ee7b8132cd1..ace90e35ca4 100644 --- a/ndb/src/ndbapi/NdbOperationInt.cpp +++ b/ndb/src/ndbapi/NdbOperationInt.cpp @@ -15,21 +15,11 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -/************************************************************************************************ -Name: NdbOperationInt.C -Include: -Link: -Author: UABRONM Mikael Ronstrm UAB/M/MT -Date: 991029 -Version: 0.1 -Description: Interpreted operations in NDB API -Documentation: -Adjust: 991029 UABRONM First version. -************************************************************************************************/ -#include "NdbOperation.hpp" +#include +#include #include "NdbApiSignal.hpp" -#include "NdbConnection.hpp" -#include "Ndb.hpp" +#include +#include #include "NdbRecAttr.hpp" #include "NdbUtil.hpp" #include "Interpreter.hpp" diff --git a/ndb/src/ndbapi/ndb_cluster_connection.cpp b/ndb/src/ndbapi/ndb_cluster_connection.cpp index 98a52786aab..f754ec8b40a 100644 --- a/ndb/src/ndbapi/ndb_cluster_connection.cpp +++ b/ndb/src/ndbapi/ndb_cluster_connection.cpp @@ -174,7 +174,7 @@ Ndb_cluster_connection_impl::get_next_node(Ndb_cluster_connection_node_iter &ite return node.id; } -Uint32 +int Ndb_cluster_connection::no_db_nodes() { return m_impl.m_all_nodes.size(); @@ -219,16 +219,8 @@ Ndb_cluster_connection::wait_until_ready(int timeout, else if (foundAliveNode > 0) { noChecksSinceFirstAliveFound++; - if (timeout_after_first_alive >= 0) - { - if (noChecksSinceFirstAliveFound > timeout_after_first_alive) - DBUG_RETURN(0); - } - else // timeout_after_first_alive < 0 - { - if (noChecksSinceFirstAliveFound > -timeout_after_first_alive) - DBUG_RETURN(-1); - } + if (noChecksSinceFirstAliveFound > timeout_after_first_alive) + DBUG_RETURN(1); } else if (secondsCounter >= timeout) { // no alive nodes and timed out diff --git a/ndb/test/ndbapi/testBlobs.cpp b/ndb/test/ndbapi/testBlobs.cpp index 4b532856709..b2cc5636e45 100644 --- a/ndb/test/ndbapi/testBlobs.cpp +++ b/ndb/test/ndbapi/testBlobs.cpp @@ -23,13 +23,14 @@ #include #include #include +#include struct Bcol { bool m_nullable; unsigned m_inline; unsigned m_partsize; unsigned m_stripe; - char m_btname[NdbBlob::BlobTableNameSize]; + char m_btname[NdbBlobImpl::BlobTableNameSize]; Bcol(bool a, unsigned b, unsigned c, unsigned d) : m_nullable(a), m_inline(b), From c6b6977b9ee65258eef6f55a17fea8c68dcf1a0d Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 21 Dec 2004 11:09:48 +0000 Subject: [PATCH 010/157] Bug#6481 - storage_engine system variable allows nonsensical value Check that the requested storage engine is enabled. --- sql/set_var.cc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sql/set_var.cc b/sql/set_var.cc index d10ea3e11c1..e39d9934278 100644 --- a/sql/set_var.cc +++ b/sql/set_var.cc @@ -2945,9 +2945,11 @@ bool sys_var_thd_storage_engine::check(THD *thd, set_var *var) if (var->value->result_type() == STRING_RESULT) { + enum db_type db_type; if (!(res=var->value->val_str(&str)) || !(var->save_result.ulong_value= - (ulong) ha_resolve_by_name(res->ptr(), res->length()))) + (ulong) db_type= ha_resolve_by_name(res->ptr(), res->length())) || + ha_checktype(db_type) != db_type) { value= res ? res->c_ptr() : "NULL"; goto err; From 2ba7c517a48a670cad22c1282f6a74903db80e99 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 21 Dec 2004 17:12:27 +0400 Subject: [PATCH 011/157] Bug#7302: UCS2 data in ENUM field get truncated when new column is added --- mysql-test/r/ctype_ucs.result | 11 +++++++++++ mysql-test/t/ctype_ucs.test | 10 ++++++++++ sql/mysql_priv.h | 1 + sql/strfunc.cc | 37 +++++++++++++++++++++++++++++++++++ sql/table.cc | 20 +------------------ sql/unireg.cc | 11 +++++++++++ 6 files changed, 71 insertions(+), 19 deletions(-) diff --git a/mysql-test/r/ctype_ucs.result b/mysql-test/r/ctype_ucs.result index ef3682c1cfc..b1b83eb8b6c 100644 --- a/mysql-test/r/ctype_ucs.result +++ b/mysql-test/r/ctype_ucs.result @@ -581,3 +581,14 @@ x,y 0078002C0079 z 007A x,y,z,,, 0078002C0079002C007A002C00E4002C00F6002C00FC drop table t1; +create table t1(a enum('a','b','c')) default character set ucs2; +insert into t1 values('a'),('b'),('c'); +alter table t1 add b char(1); +show warnings; +Level Code Message +select * from t1 order by a; +a b +a NULL +b NULL +c NULL +drop table t1; diff --git a/mysql-test/t/ctype_ucs.test b/mysql-test/t/ctype_ucs.test index b8f58ab028b..b9f77505446 100644 --- a/mysql-test/t/ctype_ucs.test +++ b/mysql-test/t/ctype_ucs.test @@ -374,3 +374,13 @@ insert into t1 values ('x,y'); insert into t1 values ('x,y,z,,,'); select a, hex(a) from t1 order by a; drop table t1; + +# +# Bug#7302 UCS2 data in ENUM fields get truncated when new column is added +# +create table t1(a enum('a','b','c')) default character set ucs2; +insert into t1 values('a'),('b'),('c'); +alter table t1 add b char(1); +show warnings; +select * from t1 order by a; +drop table t1; diff --git a/sql/mysql_priv.h b/sql/mysql_priv.h index c90935f4cf9..c300ea2885e 100644 --- a/sql/mysql_priv.h +++ b/sql/mysql_priv.h @@ -815,6 +815,7 @@ ulonglong find_set(TYPELIB *lib, const char *x, uint length, CHARSET_INFO *cs, char **err_pos, uint *err_len, bool *set_warning); uint find_type(TYPELIB *lib, const char *find, uint length, bool part_match); uint find_type2(TYPELIB *lib, const char *find, uint length, CHARSET_INFO *cs); +void unhex_type2(TYPELIB *lib); uint check_word(TYPELIB *lib, const char *val, const char *end, const char **end_of_word); diff --git a/sql/strfunc.cc b/sql/strfunc.cc index 8ab6992a63a..3ad6b1155d1 100644 --- a/sql/strfunc.cc +++ b/sql/strfunc.cc @@ -169,6 +169,43 @@ uint find_type2(TYPELIB *typelib, const char *x, uint length, CHARSET_INFO *cs) } /* find_type */ +/* + Un-hex all elements in a typelib + + SYNOPSIS + unhex_type2() + interval TYPELIB (struct of pointer to values + lengths + count) + + NOTES + + RETURN + N/A +*/ + +void unhex_type2(TYPELIB *interval) +{ + for (uint pos= 0; pos < interval->count; pos++) + { + char *from, *to; + for (from= to= (char*) interval->type_names[pos]; *from; ) + { + /* + Note, hexchar_to_int(*from++) doesn't work + one some compilers, e.g. IRIX. Looks like a compiler + bug in inline functions in combination with arguments + that have a side effect. So, let's use from[0] and from[1] + and increment 'from' by two later. + */ + + *to++= (char) (hexchar_to_int(from[0]) << 4) + + hexchar_to_int(from[1]); + from+= 2; + } + interval->type_lengths[pos] /= 2; + } +} + + /* Check if the first word in a string is one of the ones in TYPELIB diff --git a/sql/table.cc b/sql/table.cc index 992f6df0401..7adca2a5ab0 100644 --- a/sql/table.cc +++ b/sql/table.cc @@ -490,25 +490,7 @@ int openfrm(const char *name, const char *alias, uint db_stat, uint prgflag, { /* Unescape UCS2 intervals from HEX notation */ TYPELIB *interval= outparam->intervals + interval_nr - 1; - for (uint pos= 0; pos < interval->count; pos++) - { - char *from, *to; - for (from= to= (char*) interval->type_names[pos]; *from; ) - { - /* - Note, hexchar_to_int(*from++) doesn't work - one some compilers, e.g. IRIX. Looks like a compiler - bug in inline functions in combination with arguments - that have a side effect. So, let's use from[0] and from[1] - and increment 'from' by two later. - */ - - *to++= (char) (hexchar_to_int(from[0]) << 4) + - hexchar_to_int(from[1]); - from+= 2; - } - interval->type_lengths[pos] /= 2; - } + unhex_type2(interval); } *field_ptr=reg_field= diff --git a/sql/unireg.cc b/sql/unireg.cc index 6d72c6af135..a550b06a466 100644 --- a/sql/unireg.cc +++ b/sql/unireg.cc @@ -174,6 +174,17 @@ bool mysql_create_frm(THD *thd, my_string file_name, goto err2; if (my_close(file,MYF(MY_WME))) goto err3; + + { + /* Unescape all UCS2 intervals: were escaped in pack_headers */ + List_iterator it(create_fields); + create_field *field; + while ((field=it++)) + { + if (field->interval && field->charset->mbminlen > 1) + unhex_type2(field->interval); + } + } DBUG_RETURN(0); err: From 68d85f701a9b2b3c2563129e894142f6927235df Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 21 Dec 2004 15:57:36 +0100 Subject: [PATCH 012/157] NdbApi.hpp: NdbApi.hpp to include ndb_inti.h and ndb_cluster_connecion.hpp ndb/include/ndbapi/NdbApi.hpp: NdbApi.hpp to include ndb_inti.h and ndb_cluster_connecion.hpp --- ndb/include/ndbapi/NdbApi.hpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ndb/include/ndbapi/NdbApi.hpp b/ndb/include/ndbapi/NdbApi.hpp index add733cccd7..ae7025f560a 100644 --- a/ndb/include/ndbapi/NdbApi.hpp +++ b/ndb/include/ndbapi/NdbApi.hpp @@ -17,6 +17,8 @@ #ifndef NdbApi_H #define NdbApi_H +#include "ndb_init.h" +#include "ndb_cluster_connection.hpp" #include "ndbapi_limits.h" #include "Ndb.hpp" #include "NdbConnection.hpp" From b0d26c26424e7761b5805d41c0dee54c11194a32 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 21 Dec 2004 18:21:17 +0200 Subject: [PATCH 013/157] os0file.c: Fix InnoDB bug: on HP-UX, with a 32-bit binary, InnoDB was only able to read or write <= 2 GB files; the reason was that InnoDB treated the return value of lseek() as a 32-bit integer; lseek was used on HP-UX-11 as a replacement for pread() and pwrite() because HAVE_BROKEN_PREAD was defined on that platform innobase/os/os0file.c: Fix InnoDB bug: on HP-UX, with a 32-bit binary, InnoDB was only able to read or write <= 2 GB files; the reason was that InnoDB treated the return value of lseek() as a 32-bit integer; lseek was used on HP-UX-11 as a replacement for pread() and pwrite() because HAVE_BROKEN_PREAD was defined on that platform --- innobase/os/os0file.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/innobase/os/os0file.c b/innobase/os/os0file.c index 6ed3720cc84..bab043fc746 100644 --- a/innobase/os/os0file.c +++ b/innobase/os/os0file.c @@ -6,6 +6,8 @@ The interface to the operating system file i/o primitives Created 10/21/1995 Heikki Tuuri *******************************************************/ +#define HAVE_BROKEN_PREAD + #include "os0file.h" #include "os0sync.h" #include "os0thread.h" @@ -14,8 +16,6 @@ Created 10/21/1995 Heikki Tuuri #include "fil0fil.h" #include "buf0buf.h" -#undef HAVE_FDATASYNC - #ifdef POSIX_ASYNC_IO /* We assume in this case that the OS has standard Posix aio (at least SunOS 2.6, HP-UX 11i and AIX 4.3 have) */ @@ -1195,6 +1195,7 @@ os_file_pread( return(n_bytes); #else { + off_t ret_offset; ssize_t ret; ulint i; @@ -1203,12 +1204,12 @@ os_file_pread( os_mutex_enter(os_file_seek_mutexes[i]); - ret = lseek(file, offs, 0); + ret_offset = lseek(file, offs, SEEK_SET); - if (ret < 0) { + if (ret_offset < 0) { os_mutex_exit(os_file_seek_mutexes[i]); - return(ret); + return(-1); } ret = read(file, buf, (ssize_t)n); @@ -1281,6 +1282,7 @@ os_file_pwrite( return(ret); #else { + off_t ret_offset; ulint i; /* Protect the seek / write operation with a mutex */ @@ -1288,12 +1290,12 @@ os_file_pwrite( os_mutex_enter(os_file_seek_mutexes[i]); - ret = lseek(file, offs, 0); + ret_offset = lseek(file, offs, SEEK_SET); - if (ret < 0) { + if (ret_offset < 0) { os_mutex_exit(os_file_seek_mutexes[i]); - return(ret); + return(-1); } ret = write(file, buf, (ssize_t)n); From fed35d922a07592eb167b447536ecc39bd322b6a Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 21 Dec 2004 18:33:53 +0200 Subject: [PATCH 014/157] os0file.c: Put back accidentally removed undef and remove a debug def innobase/os/os0file.c: Put back accidentally removed undef and remove a debug def --- innobase/os/os0file.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/innobase/os/os0file.c b/innobase/os/os0file.c index bab043fc746..b8339134fb1 100644 --- a/innobase/os/os0file.c +++ b/innobase/os/os0file.c @@ -6,8 +6,6 @@ The interface to the operating system file i/o primitives Created 10/21/1995 Heikki Tuuri *******************************************************/ -#define HAVE_BROKEN_PREAD - #include "os0file.h" #include "os0sync.h" #include "os0thread.h" @@ -16,6 +14,8 @@ Created 10/21/1995 Heikki Tuuri #include "fil0fil.h" #include "buf0buf.h" +#undef HAVE_FDATASYNC + #ifdef POSIX_ASYNC_IO /* We assume in this case that the OS has standard Posix aio (at least SunOS 2.6, HP-UX 11i and AIX 4.3 have) */ From ba9ca889123ce3e496965c2ca71851fe957bb32f Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 21 Dec 2004 18:33:41 +0100 Subject: [PATCH 015/157] main.cpp: ifdef on version prior to 5.0 ndb/src/mgmsrv/main.cpp: ifdef on version prior to 5.0 --- ndb/src/mgmsrv/main.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ndb/src/mgmsrv/main.cpp b/ndb/src/mgmsrv/main.cpp index 04c95117214..015e2de022d 100644 --- a/ndb/src/mgmsrv/main.cpp +++ b/ndb/src/mgmsrv/main.cpp @@ -161,9 +161,11 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)), case 'V': print_version(); exit(0); +#if NDB_VERSION_MAJOR <= 4 case 'c': printf("Warning: -c will be removed in 5.0, use -f instead\n"); break; +#endif case OPT_NDB_SHM: #ifndef NDB_SHM_TRANSPORTER printf("Warning: binary not compiled with shared memory support,\n" From 375d7e014b6615b072b0d3564deb5fd94424b198 Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 22 Dec 2004 07:20:01 +0100 Subject: [PATCH 016/157] added configuration hostnames to SHM config struct use configured hostnames for SHM transporter setup ndb/include/transporter/TransporterDefinitions.hpp: added configuration hostnames to SHM config struct ndb/src/common/mgmcommon/IPCConfig.cpp: added configuration hostnames to SHM config struct ndb/src/common/transporter/TransporterRegistry.cpp: added configuration hostnames to SHM config struct use configured hostnames for SHM transporter setup --- ndb/include/transporter/TransporterDefinitions.hpp | 2 ++ ndb/src/common/mgmcommon/IPCConfig.cpp | 2 ++ ndb/src/common/transporter/TransporterRegistry.cpp | 4 ++-- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/ndb/include/transporter/TransporterDefinitions.hpp b/ndb/include/transporter/TransporterDefinitions.hpp index a8da8068552..4ff6b2073eb 100644 --- a/ndb/include/transporter/TransporterDefinitions.hpp +++ b/ndb/include/transporter/TransporterDefinitions.hpp @@ -68,6 +68,8 @@ struct TCP_TransporterConfiguration { */ struct SHM_TransporterConfiguration { Uint32 port; + const char *remoteHostName; + const char *localHostName; NodeId remoteNodeId; NodeId localNodeId; bool checksum; diff --git a/ndb/src/common/mgmcommon/IPCConfig.cpp b/ndb/src/common/mgmcommon/IPCConfig.cpp index 780504d2c62..1da03e3eaf2 100644 --- a/ndb/src/common/mgmcommon/IPCConfig.cpp +++ b/ndb/src/common/mgmcommon/IPCConfig.cpp @@ -383,6 +383,8 @@ IPCConfig::configureTransporters(Uint32 nodeId, if(iter.get(CFG_SHM_BUFFER_MEM, &conf.shmSize)) break; conf.port= server_port; + conf.localHostName = localHostName; + conf.remoteHostName = remoteHostName; if(!tr.createTransporter(&conf)){ DBUG_PRINT("error", ("Failed to create SHM Transporter from %d to %d", diff --git a/ndb/src/common/transporter/TransporterRegistry.cpp b/ndb/src/common/transporter/TransporterRegistry.cpp index be51e9223ba..394c7cd490d 100644 --- a/ndb/src/common/transporter/TransporterRegistry.cpp +++ b/ndb/src/common/transporter/TransporterRegistry.cpp @@ -358,8 +358,8 @@ TransporterRegistry::createTransporter(SHM_TransporterConfiguration *config) { return false; SHM_Transporter * t = new SHM_Transporter(*this, - "localhost", - "localhost", + config->localHostName, + config->remoteHostName, config->port, localNodeId, config->remoteNodeId, From b7a3d9e84d51cd17c13bf7ef5986f7b757f0d082 Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 22 Dec 2004 07:50:44 +0100 Subject: [PATCH 017/157] added some debug printouts --- ndb/src/common/transporter/Transporter.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/ndb/src/common/transporter/Transporter.cpp b/ndb/src/common/transporter/Transporter.cpp index ee25d97feef..3fe10cb2fe8 100644 --- a/ndb/src/common/transporter/Transporter.cpp +++ b/ndb/src/common/transporter/Transporter.cpp @@ -37,6 +37,7 @@ Transporter::Transporter(TransporterRegistry &t_reg, m_packer(_signalId, _checksum), m_transporter_registry(t_reg) { + DBUG_ENTER("Transporter::Transporter"); if (rHostName && strlen(rHostName) > 0){ strncpy(remoteHostName, rHostName, sizeof(remoteHostName)); Ndb_getInAddr(&remoteHostAddress, rHostName); @@ -55,6 +56,11 @@ Transporter::Transporter(TransporterRegistry &t_reg, if (strlen(lHostName) > 0) Ndb_getInAddr(&localHostAddress, lHostName); + DBUG_PRINT("info",("rId=%d lId=%d isServer=%d rHost=%s lHost=%s r_port=%d", + remoteNodeId, localNodeId, isServer, + remoteHostName, localHostName, + r_port)); + byteOrder = _byteorder; compressionUsed = _compression; checksumUsed = _checksum; @@ -68,6 +74,7 @@ Transporter::Transporter(TransporterRegistry &t_reg, else m_socket_client= new SocketClient(remoteHostName, r_port, new SocketAuthSimple("ndbd", "ndbd passwd")); + DBUG_VOID_RETURN; } Transporter::~Transporter(){ @@ -77,8 +84,11 @@ Transporter::~Transporter(){ bool Transporter::connect_server(NDB_SOCKET_TYPE sockfd) { + DBUG_ENTER("Transporter::connect_server"); if(m_connected) - return true; // TODO assert(0); + { + DBUG_RETURN(true); // TODO assert(0); + } bool res = connect_server_impl(sockfd); if(res){ @@ -86,7 +96,7 @@ Transporter::connect_server(NDB_SOCKET_TYPE sockfd) { m_errorCount = 0; } - return res; + DBUG_RETURN(res); } bool From e6dfed9f4cb88406dec37ffb5ca1fa0b0f2b3e75 Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 22 Dec 2004 11:01:25 +0200 Subject: [PATCH 018/157] ha_innodb.cc: If AUTOCOMMIT=1, do not acquire an InnoDB table lock in LOCK TABLES; this makes porting of old MyISAM applications to InnoDB easier, since in that mode InnoDB table locks caused deadlocks very easily sql/ha_innodb.cc: If AUTOCOMMIT=1, do not acquire an InnoDB table lock in LOCK TABLES; this makes porting of old MyISAM applications to InnoDB easier, since in that mode InnoDB table locks caused deadlocks very easily --- sql/ha_innodb.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sql/ha_innodb.cc b/sql/ha_innodb.cc index c36075207ed..69d9d885b8e 100644 --- a/sql/ha_innodb.cc +++ b/sql/ha_innodb.cc @@ -4702,7 +4702,8 @@ ha_innobase::external_lock( if (prebuilt->select_lock_type != LOCK_NONE) { if (thd->in_lock_tables && - thd->variables.innodb_table_locks) { + thd->variables.innodb_table_locks && + (thd->options & OPTION_NOT_AUTOCOMMIT)) { ulint error; error = row_lock_table_for_mysql(prebuilt); From bb15aa8420fc645b0ff18abb991ef1ac138bd82b Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 22 Dec 2004 10:01:31 +0100 Subject: [PATCH 019/157] wl1292 - ndb autotest - adapt to changes in Logger ndb/test/run-test/main.cpp: adapt to changes in Logger --- ndb/test/run-test/main.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/ndb/test/run-test/main.cpp b/ndb/test/run-test/main.cpp index ac7710d9546..fb6754dae7a 100644 --- a/ndb/test/run-test/main.cpp +++ b/ndb/test/run-test/main.cpp @@ -275,6 +275,7 @@ parse_args(int argc, const char** argv){ int tmp = Logger::LL_WARNING - g_verbosity; tmp = (tmp < Logger::LL_DEBUG ? Logger::LL_DEBUG : tmp); g_logger.disable(Logger::LL_ALL); + g_logger.enable(Logger::LL_ON); g_logger.enable((Logger::LoggerLevel)tmp, Logger::LL_ALERT); } From ef1971ecb153e3a5e26e20018fdccdc8220780dd Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 22 Dec 2004 11:11:16 +0200 Subject: [PATCH 020/157] ha_innodb.cc: Add a comment that no InnoDB table lock is now acquired in LOCK TABLES if AUTOCOMMIT=1. This helps to avoid deadlocks when porting old MyISAM applications to InnoDB. sql/ha_innodb.cc: Add a comment that no InnoDB table lock is now acquired in LOCK TABLES if AUTOCOMMIT=1. This helps to avoid deadlocks when porting old MyISAM applications to InnoDB. --- sql/ha_innodb.cc | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/sql/ha_innodb.cc b/sql/ha_innodb.cc index 20837e2172d..552f2676bdd 100644 --- a/sql/ha_innodb.cc +++ b/sql/ha_innodb.cc @@ -5049,10 +5049,18 @@ ha_innobase::external_lock( prebuilt->select_lock_type = LOCK_S; } + /* Starting from 4.1.9, no InnoDB table lock is taken in LOCK + TABLES if AUTOCOMMIT=1. It does not make much sense to acquire + an InnoDB table lock if it is released immediately at the end + of LOCK TABLES, and InnoDB's table locks in that case cause + VERY easily deadlocks. */ + if (prebuilt->select_lock_type != LOCK_NONE) { + if (thd->in_lock_tables && thd->variables.innodb_table_locks && (thd->options & OPTION_NOT_AUTOCOMMIT)) { + ulint error; error = row_lock_table_for_mysql(prebuilt, NULL, LOCK_TABLE_EXP); From cce8d0456ddcb17f9a8a471488a25936a2398b16 Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 22 Dec 2004 16:02:27 +0400 Subject: [PATCH 021/157] Bug#7020: mysqldump --compatible=mysql40 still dumps in UTF8 See mysqldump.test comments for more details --- client/mysqldump.c | 6 ++ mysql-test/r/mysqldump.result | 106 ++++++++++++++++++++++++++++++++++ mysql-test/t/mysqldump.test | 16 +++++ 3 files changed, 128 insertions(+) diff --git a/client/mysqldump.c b/client/mysqldump.c index c36f9d3e23e..be2abd19822 100644 --- a/client/mysqldump.c +++ b/client/mysqldump.c @@ -613,6 +613,12 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)), } if (end!=compatible_mode_normal_str) end[-1]= 0; + /* + Set charset to the default compiled value if it hasn't + been reset yet by --default-character-set=xxx. + */ + if (default_charset == (char*) MYSQL_UNIVERSAL_CLIENT_CHARSET) + default_charset= (char*) MYSQL_DEFAULT_CHARSET_NAME; break; } case (int) OPT_MYSQL_PROTOCOL: diff --git a/mysql-test/r/mysqldump.result b/mysql-test/r/mysqldump.result index 239418733ba..57e04d38fc1 100644 --- a/mysql-test/r/mysqldump.result +++ b/mysql-test/r/mysqldump.result @@ -374,3 +374,109 @@ USE `mysqldump_test_db`; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; drop database mysqldump_test_db; +CREATE TABLE t1 (a CHAR(10)); +INSERT INTO t1 VALUES (_latin1 ''); + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8 */; +/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE="NO_AUTO_VALUE_ON_ZERO" */; +DROP TABLE IF EXISTS `t1`; +CREATE TABLE `t1` ( + `a` char(10) default NULL +) ENGINE=MyISAM DEFAULT CHARSET=latin1; + + +/*!40000 ALTER TABLE `t1` DISABLE KEYS */; +LOCK TABLES `t1` WRITE; +INSERT INTO `t1` VALUES ('ÄÖÜß'); +UNLOCK TABLES; +/*!40000 ALTER TABLE `t1` ENABLE KEYS */; + +/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; +/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; +/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; + +/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE="NO_AUTO_VALUE_ON_ZERO,MYSQL323" */; +DROP TABLE IF EXISTS `t1`; +CREATE TABLE `t1` ( + `a` char(10) default NULL +) TYPE=MyISAM; + + +/*!40000 ALTER TABLE `t1` DISABLE KEYS */; +LOCK TABLES `t1` WRITE; +INSERT INTO `t1` VALUES (''); +UNLOCK TABLES; +/*!40000 ALTER TABLE `t1` ENABLE KEYS */; + +/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; +/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; +/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; + +/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE="NO_AUTO_VALUE_ON_ZERO,MYSQL323" */; +DROP TABLE IF EXISTS `t1`; +CREATE TABLE `t1` ( + `a` char(10) default NULL +) TYPE=MyISAM; + + +/*!40000 ALTER TABLE `t1` DISABLE KEYS */; +LOCK TABLES `t1` WRITE; +INSERT INTO `t1` VALUES (''); +UNLOCK TABLES; +/*!40000 ALTER TABLE `t1` ENABLE KEYS */; + +/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; +/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; +/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; + +/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE="NO_AUTO_VALUE_ON_ZERO,MYSQL323" */; +DROP TABLE IF EXISTS `t1`; +CREATE TABLE `t1` ( + `a` char(10) default NULL +) TYPE=MyISAM; + + +/*!40000 ALTER TABLE `t1` DISABLE KEYS */; +LOCK TABLES `t1` WRITE; +INSERT INTO `t1` VALUES (''); +UNLOCK TABLES; +/*!40000 ALTER TABLE `t1` ENABLE KEYS */; + +/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; +/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; +/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; + +/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE="NO_AUTO_VALUE_ON_ZERO,MYSQL323" */; +DROP TABLE IF EXISTS `t1`; +CREATE TABLE `t1` ( + `a` char(10) default NULL +) TYPE=MyISAM; + + +/*!40000 ALTER TABLE `t1` DISABLE KEYS */; +LOCK TABLES `t1` WRITE; +INSERT INTO `t1` VALUES ('ÄÖÜß'); +UNLOCK TABLES; +/*!40000 ALTER TABLE `t1` ENABLE KEYS */; + +/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; +/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; +/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; + +DROP TABLE t1; diff --git a/mysql-test/t/mysqldump.test b/mysql-test/t/mysqldump.test index 295658f21a8..7a6c1564e94 100644 --- a/mysql-test/t/mysqldump.test +++ b/mysql-test/t/mysqldump.test @@ -137,3 +137,19 @@ drop table t1; create database mysqldump_test_db character set latin2 collate latin2_bin; --exec $MYSQL_DUMP --skip-comments --databases mysqldump_test_db; drop database mysqldump_test_db; + +# +# Bug #7020 +# Check that we don't dump in UTF8 in compatible mode by default, +# but use the default compiled values, or the values given in +# --default-character-set=xxx. However, we should dump in UTF8 +# if it is explicitely set. + +CREATE TABLE t1 (a CHAR(10)); +INSERT INTO t1 VALUES (_latin1 ''); +--exec $MYSQL_DUMP --skip-comments test t1 +--exec $MYSQL_DUMP --skip-comments --compatible=mysql323 test t1 +--exec $MYSQL_DUMP --skip-comments --compatible=mysql323 --default-character-set=cp850 test t1 +--exec $MYSQL_DUMP --skip-comments --default-character-set=cp850 --compatible=mysql323 test t1 +--exec $MYSQL_DUMP --skip-comments --default-character-set=utf8 --compatible=mysql323 test t1 +DROP TABLE t1; From 2eb5ae4c3b7ff8923373d49db9eacaa0f5959c7b Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 22 Dec 2004 13:38:15 +0100 Subject: [PATCH 022/157] ndb: bug#7340 fix mysql-test/r/ndb_blob.result: bug#7340 fix mysql-test/t/ndb_blob.test: bug#7340 fix ndb/src/ndbapi/NdbConnection.cpp: bug#7340 fix ndb/src/ndbapi/NdbOperationDefine.cpp: bug#7340 fix --- mysql-test/r/ndb_blob.result | 18 ++++++++++++++++++ mysql-test/t/ndb_blob.test | 14 ++++++++++++++ ndb/src/ndbapi/NdbConnection.cpp | 7 +++---- ndb/src/ndbapi/NdbOperationDefine.cpp | 4 +++- 4 files changed, 38 insertions(+), 5 deletions(-) diff --git a/mysql-test/r/ndb_blob.result b/mysql-test/r/ndb_blob.result index 156c2d570a4..6f25ec95c80 100644 --- a/mysql-test/r/ndb_blob.result +++ b/mysql-test/r/ndb_blob.result @@ -467,3 +467,21 @@ a b 1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 2 BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB drop table t1; +create table t1 ( +id int(11) unsigned primary key NOT NULL auto_increment, +msg text NOT NULL +) engine=ndbcluster default charset=utf8; +insert into t1 (msg) values( +'Tries to validate (8 byte length + inline bytes) as UTF8 :( +Fast fix: removed validation for Text. It is not yet indexable +so bad data will not crash kernel. +Proper fix: Set inline bytes to multiple of mbmaxlen and +validate it (after the 8 byte length).'); +select * from t1; +id msg +1 Tries to validate (8 byte length + inline bytes) as UTF8 :( +Fast fix: removed validation for Text. It is not yet indexable +so bad data will not crash kernel. +Proper fix: Set inline bytes to multiple of mbmaxlen and +validate it (after the 8 byte length). +drop table t1; diff --git a/mysql-test/t/ndb_blob.test b/mysql-test/t/ndb_blob.test index 06ecbc66d97..96e38bfb58e 100644 --- a/mysql-test/t/ndb_blob.test +++ b/mysql-test/t/ndb_blob.test @@ -389,3 +389,17 @@ set autocommit=1; alter table t1 engine=myisam; select * from t1 order by a; drop table t1; + +# -- bug #7340 -- +create table t1 ( + id int(11) unsigned primary key NOT NULL auto_increment, + msg text NOT NULL +) engine=ndbcluster default charset=utf8; +insert into t1 (msg) values( +'Tries to validate (8 byte length + inline bytes) as UTF8 :( +Fast fix: removed validation for Text. It is not yet indexable +so bad data will not crash kernel. +Proper fix: Set inline bytes to multiple of mbmaxlen and +validate it (after the 8 byte length).'); +select * from t1; +drop table t1; diff --git a/ndb/src/ndbapi/NdbConnection.cpp b/ndb/src/ndbapi/NdbConnection.cpp index f4bb000300a..83715dbfca0 100644 --- a/ndb/src/ndbapi/NdbConnection.cpp +++ b/ndb/src/ndbapi/NdbConnection.cpp @@ -361,11 +361,10 @@ NdbConnection::execute(ExecType aTypeOfExec, if (executeNoBlobs(tExecType, abortOption, forceSend) == -1) ret = -1; -#ifndef VM_TRACE - // can happen in complex abort cases - theFirstOpInList = theLastOpInList = NULL; -#else +#ifdef ndb_api_crash_on_complex_blob_abort assert(theFirstOpInList == NULL && theLastOpInList == NULL); +#else + theFirstOpInList = theLastOpInList = NULL; #endif { diff --git a/ndb/src/ndbapi/NdbOperationDefine.cpp b/ndb/src/ndbapi/NdbOperationDefine.cpp index 35abb15b00d..c4aaffb3119 100644 --- a/ndb/src/ndbapi/NdbOperationDefine.cpp +++ b/ndb/src/ndbapi/NdbOperationDefine.cpp @@ -528,7 +528,9 @@ NdbOperation::setValue( const NdbColumnImpl* tAttrInfo, CHARSET_INFO* cs = tAttrInfo->m_cs; // invalid data can crash kernel if (cs != NULL && - (*cs->cset->well_formed_len)(cs, + // fast fix bug#7340 + tAttrInfo->m_type != NdbDictionary::Column::Text && + (*cs->cset->well_formed_len)(cs, aValue, aValue + sizeInBytes, sizeInBytes) != sizeInBytes) { From 17ec146c6c124d91a3c749da538b55bbd119c956 Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 22 Dec 2004 14:58:57 +0100 Subject: [PATCH 023/157] ndb - Fix bug in backward compatility code (for our test programs) ndb/src/ndbapi/Ndbinit.cpp: Fix bug in backward compatility code (for our test programs) --- ndb/src/ndbapi/Ndbinit.cpp | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/ndb/src/ndbapi/Ndbinit.cpp b/ndb/src/ndbapi/Ndbinit.cpp index e1af7bd4cc5..a11dd842495 100644 --- a/ndb/src/ndbapi/Ndbinit.cpp +++ b/ndb/src/ndbapi/Ndbinit.cpp @@ -204,14 +204,6 @@ Ndb::~Ndb() TransporterFacade::instance()->close(theNdbBlockNumber, theFirstTransId); } - if (global_ndb_cluster_connection != 0) { - theNoOfNdbObjects--; - if(theNoOfNdbObjects == 0){ - delete global_ndb_cluster_connection; - global_ndb_cluster_connection= 0; - } - }//if - // if (theSchemaConToNdbList != NULL) // closeSchemaTransaction(theSchemaConToNdbList); while ( theConIdleList != NULL ) @@ -249,6 +241,19 @@ Ndb::~Ndb() delete theImpl; + /** + * This needs to be put after delete theImpl + * as TransporterFacade::instance is delete by global_ndb_cluster_connection + * and used by theImpl + */ + if (global_ndb_cluster_connection != 0) { + theNoOfNdbObjects--; + if(theNoOfNdbObjects == 0){ + delete global_ndb_cluster_connection; + global_ndb_cluster_connection= 0; + } + }//if + /** * This sleep is to make sure that the transporter * send thread will come in and send any From f20ac5cab0b2af74c739860f4adc00d57243d435 Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 22 Dec 2004 15:08:22 +0100 Subject: [PATCH 024/157] ndb: use Ndb_cluster_connection in test* ndb/test/ndbapi/testBlobs.cpp: use Ndb_cluster_connection ndb/test/ndbapi/testOIBasic.cpp: use Ndb_cluster_connection --- ndb/test/ndbapi/testBlobs.cpp | 10 +++++++--- ndb/test/ndbapi/testOIBasic.cpp | 11 ++++++++--- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/ndb/test/ndbapi/testBlobs.cpp b/ndb/test/ndbapi/testBlobs.cpp index b2cc5636e45..7b30777456f 100644 --- a/ndb/test/ndbapi/testBlobs.cpp +++ b/ndb/test/ndbapi/testBlobs.cpp @@ -154,6 +154,7 @@ testcase(char x) (g_opt.m_skip == 0 || strchr(g_opt.m_skip, x) == 0); } +static Ndb_cluster_connection* g_ncc = 0; static Ndb* g_ndb = 0; static NdbDictionary::Dictionary* g_dic = 0; static NdbConnection* g_con = 0; @@ -1259,7 +1260,7 @@ deleteScan(bool idx) static int testmain() { - g_ndb = new Ndb("TEST_DB"); + g_ndb = new Ndb(g_ncc, "TEST_DB"); CHK(g_ndb->init() == 0); CHK(g_ndb->waitUntilReady() == 0); g_dic = g_ndb->getDictionary(); @@ -1448,7 +1449,7 @@ testperf() if (! testcase('p')) return 0; DBG("=== perf test ==="); - g_ndb = new Ndb("TEST_DB"); + g_ndb = new Ndb(g_ncc, "TEST_DB"); CHK(g_ndb->init() == 0); CHK(g_ndb->waitUntilReady() == 0); g_dic = g_ndb->getDictionary(); @@ -1860,10 +1861,13 @@ NDB_COMMAND(testOdbcDriver, "testBlobs", "testBlobs", "testBlobs", 65535) strcat(b, "r"); g_opt.m_skip = strdup(b); } - if (testmain() == -1 || testperf() == -1) { + g_ncc = new Ndb_cluster_connection(); + if (g_ncc->connect(30) != 0 || testmain() == -1 || testperf() == -1) { ndbout << "line " << __LINE__ << " FAIL loop=" << g_loop << endl; return NDBT_ProgramExit(NDBT_FAILED); } + delete g_ncc; + g_ncc = 0; return NDBT_ProgramExit(NDBT_OK); } diff --git a/ndb/test/ndbapi/testOIBasic.cpp b/ndb/test/ndbapi/testOIBasic.cpp index 41f0686e63b..e6d3844d18e 100644 --- a/ndb/test/ndbapi/testOIBasic.cpp +++ b/ndb/test/ndbapi/testOIBasic.cpp @@ -59,7 +59,7 @@ struct Opt { unsigned m_subloop; const char* m_table; unsigned m_threads; - unsigned m_v; + int m_v; Opt() : m_batch(32), m_bound("01234"), @@ -672,6 +672,8 @@ tabcount = sizeof(tablist) / sizeof(tablist[0]); // connections +static Ndb_cluster_connection* g_ncc = 0; + struct Con { Ndb* m_ndb; NdbDictionary::Dictionary* m_dic; @@ -720,7 +722,7 @@ int Con::connect() { assert(m_ndb == 0); - m_ndb = new Ndb("TEST_DB"); + m_ndb = new Ndb(g_ncc, "TEST_DB"); CHKCON(m_ndb->init() == 0, *this); CHKCON(m_ndb->waitUntilReady(30) == 0, *this); m_tx = 0, m_op = 0; @@ -3514,8 +3516,11 @@ NDB_COMMAND(testOIBasic, "testOIBasic", "testOIBasic", "testOIBasic", 65535) } { Par par(g_opt); - if (runtest(par) < 0) + g_ncc = new Ndb_cluster_connection(); + if (g_ncc->connect(30) != 0 || runtest(par) < 0) goto failed; + delete g_ncc; + g_ncc = 0; } // always exit with NDBT code ok: From 0ebbd72640bb719ae922d502f22a98acfa2c9aee Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 22 Dec 2004 18:56:57 +0400 Subject: [PATCH 025/157] Bugs#7278: Don't open a table if it contains columns with non-supported charsets --- sql/table.cc | 37 +++++++++++++++++++++++++++++-------- 1 file changed, 29 insertions(+), 8 deletions(-) diff --git a/sql/table.cc b/sql/table.cc index 7adca2a5ab0..5ede9c1e43d 100644 --- a/sql/table.cc +++ b/sql/table.cc @@ -24,7 +24,8 @@ /* Functions defined in this file */ -static void frm_error(int error,TABLE *form,const char *name,int errortype); +static void frm_error(int error,TABLE *form,const char *name, + int errortype, int errarg); static void fix_type_pointers(const char ***array, TYPELIB *point_to_type, uint types, char **names); static uint find_field(TABLE *form,uint start,uint length); @@ -57,6 +58,7 @@ static byte* get_field_name(Field **buff,uint *length, 2 Error (see frm_error) 3 Wrong data in .frm file 4 Error (see frm_error) + 5 Error (see frm_error: charset unavailable) */ int openfrm(const char *name, const char *alias, uint db_stat, uint prgflag, @@ -64,7 +66,7 @@ int openfrm(const char *name, const char *alias, uint db_stat, uint prgflag, { reg1 uint i; reg2 uchar *strpos; - int j,error; + int j,error, errarg= 0; uint rec_buff_length,n_length,int_length,records,key_parts,keys, interval_count,interval_parts,read_length,db_create_options; uint key_info_length, com_length; @@ -436,10 +438,14 @@ int openfrm(const char *name, const char *alias, uint db_stat, uint prgflag, } else { - if (!strpos[14]) - charset= &my_charset_bin; - else if (!(charset=get_charset((uint) strpos[14], MYF(0)))) - charset= outparam->table_charset; + if (!strpos[14]) + charset= &my_charset_bin; + else if (!(charset=get_charset((uint) strpos[14], MYF(0)))) + { + error= 5; // Unknown or unavailable charset + errarg= (int) strpos[14]; + goto err_not_open; + } } if (!comment_length) { @@ -781,7 +787,7 @@ int openfrm(const char *name, const char *alias, uint db_stat, uint prgflag, err_end: /* Here when no file */ delete crypted; *root_ptr= old_root; - frm_error(error,outparam,name,ME_ERROR+ME_WAITTANG); + frm_error(error, outparam, name, ME_ERROR + ME_WAITTANG, errarg); delete outparam->file; outparam->file=0; // For easyer errorchecking outparam->db_stat=0; @@ -966,7 +972,8 @@ ulong make_new_entry(File file, uchar *fileinfo, TYPELIB *formnames, /* error message when opening a form file */ -static void frm_error(int error, TABLE *form, const char *name, myf errortype) +static void frm_error(int error, TABLE *form, const char *name, + myf errortype, int errarg) { int err_no; char buff[FN_REFLEN]; @@ -997,6 +1004,20 @@ static void frm_error(int error, TABLE *form, const char *name, myf errortype) fn_format(buff,form->real_name,form_dev,datext,2),my_errno); break; } + case 5: + { + const char *csname= get_charset_name((uint) errarg); + char tmp[10]; + if (!csname || csname[0] =='?') + { + my_snprintf(tmp, sizeof(tmp), "#%d", errarg); + csname= tmp; + } + my_printf_error(ER_UNKNOWN_COLLATION, + "Unknown collation '%s' in table '%-.64s' definition", + MYF(0), csname, form->real_name); + break; + } default: /* Better wrong error than none */ case 4: my_error(ER_NOT_FORM_FILE,errortype, From 8dcfad68e2f2a26ad2508762e2b6a9a6afac925a Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 22 Dec 2004 16:29:01 +0100 Subject: [PATCH 026/157] changed name of g_eventLogger so it can be used in TransporterRegistry and is the same as in the kernel ndb/include/ndbapi/ndb_cluster_connection.hpp: changed return type of no_ndb_nodes ndb/include/transporter/TransporterRegistry.hpp: added connect_server method to TransporterRegistry ndb/include/util/ndb_opts.h: set shared memory usage as _no_ default in 4.1 ndb/src/common/transporter/Makefile.am: added -I flags for EventLogger.hpp ndb/src/common/transporter/SCI_Transporter.cpp: setting transporter type ndb/src/common/transporter/SHM_Transporter.cpp: setting transporter type ndb/src/common/transporter/TCP_Transporter.cpp: setting transporter type ndb/src/common/transporter/Transporter.cpp: added event logger added type handling in transporter added verification of transporter type compatability ndb/src/common/transporter/Transporter.hpp: setting transporter type ndb/src/common/transporter/TransporterRegistry.cpp: moved server-client transporter negotiation to own method connect_server() added verification of transporter compatability ndb/src/kernel/main.cpp: changed which events are logged ndb/src/ndbapi/ndb_cluster_connection.cpp: added g_eventLogger sql/mysqld.cc: set shared memory usage as _no_ default in 4.1 --- ndb/include/ndbapi/ndb_cluster_connection.hpp | 2 +- .../transporter/TransporterRegistry.hpp | 7 +- ndb/include/util/ndb_opts.h | 2 +- ndb/src/common/transporter/Makefile.am | 2 +- .../common/transporter/SCI_Transporter.cpp | 3 +- .../common/transporter/SHM_Transporter.cpp | 6 +- .../common/transporter/TCP_Transporter.cpp | 3 +- ndb/src/common/transporter/Transporter.cpp | 57 ++++++-- ndb/src/common/transporter/Transporter.hpp | 2 + .../transporter/TransporterRegistry.cpp | 133 ++++++++++++------ ndb/src/kernel/main.cpp | 2 +- ndb/src/mgmsrv/MgmtSrvr.cpp | 37 +++-- ndb/src/mgmsrv/main.cpp | 10 +- ndb/src/ndbapi/ndb_cluster_connection.cpp | 10 +- sql/mysqld.cc | 2 +- 15 files changed, 194 insertions(+), 84 deletions(-) diff --git a/ndb/include/ndbapi/ndb_cluster_connection.hpp b/ndb/include/ndbapi/ndb_cluster_connection.hpp index a98dcaaf5a4..0e559700716 100644 --- a/ndb/include/ndbapi/ndb_cluster_connection.hpp +++ b/ndb/include/ndbapi/ndb_cluster_connection.hpp @@ -82,7 +82,7 @@ public: void set_optimized_node_selection(int val); - int no_db_nodes(); + unsigned no_db_nodes(); #endif private: diff --git a/ndb/include/transporter/TransporterRegistry.hpp b/ndb/include/transporter/TransporterRegistry.hpp index 96da7eef2cb..7487d6b1e80 100644 --- a/ndb/include/transporter/TransporterRegistry.hpp +++ b/ndb/include/transporter/TransporterRegistry.hpp @@ -99,7 +99,12 @@ public: unsigned sizeOfLongSignalMemory = 100); bool init(NodeId localNodeId); - + + /** + * after a connect from client, perform connection using correct transporter + */ + bool connect_server(NDB_SOCKET_TYPE sockfd); + /** * Remove all transporters */ diff --git a/ndb/include/util/ndb_opts.h b/ndb/include/util/ndb_opts.h index 4bac36f5e5e..dc95149f706 100644 --- a/ndb/include/util/ndb_opts.h +++ b/ndb/include/util/ndb_opts.h @@ -34,7 +34,7 @@ OPT_NDB_OPTIMIZED_NODE_SELECTION #define OPT_NDB_CONNECTSTRING 'c' -#ifdef NDB_SHM_TRANSPORTER +#if defined(NDB_SHM_TRANSPORTER) && MYSQL_VERSION_ID >= 50000 #define OPT_NDB_SHM_DEFAULT 1 #else #define OPT_NDB_SHM_DEFAULT 0 diff --git a/ndb/src/common/transporter/Makefile.am b/ndb/src/common/transporter/Makefile.am index d76b1b6048b..b902012e56d 100644 --- a/ndb/src/common/transporter/Makefile.am +++ b/ndb/src/common/transporter/Makefile.am @@ -13,7 +13,7 @@ EXTRA_libtransporter_la_SOURCES = SHM_Transporter.cpp SHM_Transporter.unix.cpp S libtransporter_la_LIBADD = @ndb_transporter_opt_objs@ libtransporter_la_DEPENDENCIES = @ndb_transporter_opt_objs@ -INCLUDES_LOC = -I$(top_srcdir)/ndb/include/kernel -I$(top_srcdir)/ndb/include/transporter @NDB_SCI_INCLUDES@ +INCLUDES_LOC = -I$(top_srcdir)/ndb/include/mgmapi -I$(top_srcdir)/ndb/include/debugger -I$(top_srcdir)/ndb/include/kernel -I$(top_srcdir)/ndb/include/transporter @NDB_SCI_INCLUDES@ include $(top_srcdir)/ndb/config/common.mk.am include $(top_srcdir)/ndb/config/type_util.mk.am diff --git a/ndb/src/common/transporter/SCI_Transporter.cpp b/ndb/src/common/transporter/SCI_Transporter.cpp index 73fbb064599..e7807c972b1 100644 --- a/ndb/src/common/transporter/SCI_Transporter.cpp +++ b/ndb/src/common/transporter/SCI_Transporter.cpp @@ -44,7 +44,8 @@ SCI_Transporter::SCI_Transporter(TransporterRegistry &t_reg, bool chksm, bool signalId, Uint32 reportFreq) : - Transporter(t_reg, lHostName, rHostName, r_port, _localNodeId, + Transporter(t_reg, tt_SCI_TRANSPORTER, + lHostName, rHostName, r_port, _localNodeId, _remoteNodeId, 0, false, chksm, signalId) { DBUG_ENTER("SCI_Transporter::SCI_Transporter"); diff --git a/ndb/src/common/transporter/SHM_Transporter.cpp b/ndb/src/common/transporter/SHM_Transporter.cpp index e4051519b86..ffb51bf1326 100644 --- a/ndb/src/common/transporter/SHM_Transporter.cpp +++ b/ndb/src/common/transporter/SHM_Transporter.cpp @@ -38,7 +38,8 @@ SHM_Transporter::SHM_Transporter(TransporterRegistry &t_reg, bool signalId, key_t _shmKey, Uint32 _shmSize) : - Transporter(t_reg, lHostName, rHostName, r_port, lNodeId, rNodeId, + Transporter(t_reg, tt_SHM_TRANSPORTER, + lHostName, rHostName, r_port, lNodeId, rNodeId, 0, false, checksum, signalId), shmKey(_shmKey), shmSize(_shmSize) @@ -256,6 +257,9 @@ SHM_Transporter::connect_client_impl(NDB_SOCKET_TYPE sockfd) SocketOutputStream s_output(sockfd); char buf[256]; +#if 1 +#endif + // Wait for server to create and attach if (s_input.gets(buf, 256) == 0) { NDB_CLOSE_SOCKET(sockfd); diff --git a/ndb/src/common/transporter/TCP_Transporter.cpp b/ndb/src/common/transporter/TCP_Transporter.cpp index 524ecd653e0..a629b620157 100644 --- a/ndb/src/common/transporter/TCP_Transporter.cpp +++ b/ndb/src/common/transporter/TCP_Transporter.cpp @@ -72,7 +72,8 @@ TCP_Transporter::TCP_Transporter(TransporterRegistry &t_reg, NodeId rNodeId, bool chksm, bool signalId, Uint32 _reportFreq) : - Transporter(t_reg, lHostName, rHostName, r_port, lNodeId, rNodeId, + Transporter(t_reg, tt_TCP_TRANSPORTER, + lHostName, rHostName, r_port, lNodeId, rNodeId, 0, false, chksm, signalId), m_sendBuffer(sendBufSize) { diff --git a/ndb/src/common/transporter/Transporter.cpp b/ndb/src/common/transporter/Transporter.cpp index 3fe10cb2fe8..b84f8f6fb5e 100644 --- a/ndb/src/common/transporter/Transporter.cpp +++ b/ndb/src/common/transporter/Transporter.cpp @@ -24,7 +24,11 @@ #include #include +#include +extern EventLogger g_eventLogger; + Transporter::Transporter(TransporterRegistry &t_reg, + TransporterType _type, const char *lHostName, const char *rHostName, int r_port, @@ -35,6 +39,7 @@ Transporter::Transporter(TransporterRegistry &t_reg, : m_r_port(r_port), remoteNodeId(rNodeId), localNodeId(lNodeId), isServer(lNodeId < rNodeId), m_packer(_signalId, _checksum), + m_type(_type), m_transporter_registry(t_reg) { DBUG_ENTER("Transporter::Transporter"); @@ -73,7 +78,8 @@ Transporter::Transporter(TransporterRegistry &t_reg, m_socket_client= 0; else m_socket_client= new SocketClient(remoteHostName, r_port, - new SocketAuthSimple("ndbd", "ndbd passwd")); + new SocketAuthSimple("ndbd", + "ndbd passwd")); DBUG_VOID_RETURN; } @@ -84,7 +90,9 @@ Transporter::~Transporter(){ bool Transporter::connect_server(NDB_SOCKET_TYPE sockfd) { + // all initial negotiation is done in TransporterRegistry::connect_server DBUG_ENTER("Transporter::connect_server"); + if(m_connected) { DBUG_RETURN(true); // TODO assert(0); @@ -108,27 +116,60 @@ Transporter::connect_client() { if (sockfd == NDB_INVALID_SOCKET) return false; - // send info about own id + DBUG_ENTER("Transporter::connect_client"); + + // send info about own id + // send info about own transporter type SocketOutputStream s_output(sockfd); - s_output.println("%d", localNodeId); + s_output.println("%d %d", localNodeId, m_type); // get remote id - int nodeId; + int nodeId, remote_transporter_type= -1; SocketInputStream s_input(sockfd); char buf[256]; if (s_input.gets(buf, 256) == 0) { NDB_CLOSE_SOCKET(sockfd); - return false; + DBUG_RETURN(false); } - if (sscanf(buf, "%d", &nodeId) != 1) { + + int r= sscanf(buf, "%d %d", &nodeId, &remote_transporter_type); + switch (r) { + case 2: + break; + case 1: + // we're running version prior to 4.1.9 + // ok, but with no checks on transporter configuration compatability + break; + default: NDB_CLOSE_SOCKET(sockfd); - return false; + DBUG_RETURN(false); } + + DBUG_PRINT("info", ("nodeId=%d remote_transporter_type=%d", + nodeId, remote_transporter_type)); + + if (remote_transporter_type != -1) + { + if (remote_transporter_type != m_type) + { + DBUG_PRINT("error", ("Transporter types mismatch this=%d remote=%d", + m_type, remote_transporter_type)); + NDB_CLOSE_SOCKET(sockfd); + g_eventLogger.error("Incompatible configuration: transporter type " + "mismatch with node %d", nodeId); + DBUG_RETURN(false); + } + } + else if (m_type == tt_SHM_TRANSPORTER) + { + g_eventLogger.warning("Unable to verify transporter compatability with node %d", nodeId); + } + bool res = connect_client_impl(sockfd); if(res){ m_connected = true; m_errorCount = 0; } - return res; + DBUG_RETURN(res); } void diff --git a/ndb/src/common/transporter/Transporter.hpp b/ndb/src/common/transporter/Transporter.hpp index 9a39f8788bc..10303ec71ea 100644 --- a/ndb/src/common/transporter/Transporter.hpp +++ b/ndb/src/common/transporter/Transporter.hpp @@ -71,6 +71,7 @@ public: protected: Transporter(TransporterRegistry &, + TransporterType, const char *lHostName, const char *rHostName, int r_port, @@ -127,6 +128,7 @@ protected: protected: bool m_connected; // Are we connected + TransporterType m_type; TransporterRegistry &m_transporter_registry; void *get_callback_obj() { return m_transporter_registry.callbackObj; }; diff --git a/ndb/src/common/transporter/TransporterRegistry.cpp b/ndb/src/common/transporter/TransporterRegistry.cpp index 394c7cd490d..2eb81b2b35d 100644 --- a/ndb/src/common/transporter/TransporterRegistry.cpp +++ b/ndb/src/common/transporter/TransporterRegistry.cpp @@ -47,6 +47,9 @@ #include #include +#include +extern EventLogger g_eventLogger; + int g_shm_pid = 0; SocketServer::Session * TransporterService::newSession(NDB_SOCKET_TYPE sockfd) @@ -57,49 +60,10 @@ SocketServer::Session * TransporterService::newSession(NDB_SOCKET_TYPE sockfd) DBUG_RETURN(0); } + if (!m_transporter_registry->connect_server(sockfd)) { - // read node id from client - int nodeId; - SocketInputStream s_input(sockfd); - char buf[256]; - if (s_input.gets(buf, 256) == 0) { - NDB_CLOSE_SOCKET(sockfd); - DBUG_PRINT("error", ("Could not get node id from client")); - DBUG_RETURN(0); - } - if (sscanf(buf, "%d", &nodeId) != 1) { - NDB_CLOSE_SOCKET(sockfd); - DBUG_PRINT("error", ("Error in node id from client")); - DBUG_RETURN(0); - } - - //check that nodeid is valid and that there is an allocated transporter - if ( nodeId < 0 || nodeId >= (int)m_transporter_registry->maxTransporters) { - NDB_CLOSE_SOCKET(sockfd); - DBUG_PRINT("error", ("Node id out of range from client")); - DBUG_RETURN(0); - } - if (m_transporter_registry->theTransporters[nodeId] == 0) { - NDB_CLOSE_SOCKET(sockfd); - DBUG_PRINT("error", ("No transporter for this node id from client")); - DBUG_RETURN(0); - } - - //check that the transporter should be connected - if (m_transporter_registry->performStates[nodeId] != TransporterRegistry::CONNECTING) { - NDB_CLOSE_SOCKET(sockfd); - DBUG_PRINT("error", ("Transporter in wrong state for this node id from client")); - DBUG_RETURN(0); - } - - Transporter *t= m_transporter_registry->theTransporters[nodeId]; - - // send info about own id (just as response to acknowledge connection) - SocketOutputStream s_output(sockfd); - s_output.println("%d", t->getLocalNodeId()); - - // setup transporter (transporter responsible for closing sockfd) - t->connect_server(sockfd); + NDB_CLOSE_SOCKET(sockfd); + DBUG_RETURN(0); } DBUG_RETURN(0); @@ -195,6 +159,91 @@ TransporterRegistry::init(NodeId nodeId) { return true; } +bool +TransporterRegistry::connect_server(NDB_SOCKET_TYPE sockfd) +{ + DBUG_ENTER("TransporterRegistry::connect_server"); + + // read node id from client + // read transporter type + int nodeId, remote_transporter_type= -1; + SocketInputStream s_input(sockfd); + char buf[256]; + if (s_input.gets(buf, 256) == 0) { + DBUG_PRINT("error", ("Could not get node id from client")); + DBUG_RETURN(false); + } + int r= sscanf(buf, "%d %d", &nodeId, &remote_transporter_type); + switch (r) { + case 2: + break; + case 1: + // we're running version prior to 4.1.9 + // ok, but with no checks on transporter configuration compatability + break; + default: + DBUG_PRINT("error", ("Error in node id from client")); + DBUG_RETURN(false); + } + + DBUG_PRINT("info", ("nodeId=%d remote_transporter_type=%d", + nodeId,remote_transporter_type)); + + //check that nodeid is valid and that there is an allocated transporter + if ( nodeId < 0 || nodeId >= (int)maxTransporters) { + DBUG_PRINT("error", ("Node id out of range from client")); + DBUG_RETURN(false); + } + if (theTransporters[nodeId] == 0) { + DBUG_PRINT("error", ("No transporter for this node id from client")); + DBUG_RETURN(false); + } + + //check that the transporter should be connected + if (performStates[nodeId] != TransporterRegistry::CONNECTING) { + DBUG_PRINT("error", ("Transporter in wrong state for this node id from client")); + DBUG_RETURN(false); + } + + Transporter *t= theTransporters[nodeId]; + + // send info about own id (just as response to acknowledge connection) + // send info on own transporter type + SocketOutputStream s_output(sockfd); + s_output.println("%d %d", t->getLocalNodeId(), t->m_type); + + if (remote_transporter_type != -1) + { + if (remote_transporter_type != t->m_type) + { + DBUG_PRINT("error", ("Transporter types mismatch this=%d remote=%d", + t->m_type, remote_transporter_type)); + g_eventLogger.error("Incompatible configuration: Transporter type " + "mismatch with node %d", nodeId); + + // wait for socket close for 1 second to let message arrive at client + { + fd_set a_set; + FD_ZERO(&a_set); + FD_SET(sockfd, &a_set); + struct timeval timeout; + timeout.tv_sec = 1; timeout.tv_usec = 0; + select(sockfd+1, &a_set, 0, 0, &timeout); + } + DBUG_RETURN(false); + } + } + else if (t->m_type == tt_SHM_TRANSPORTER) + { + g_eventLogger.warning("Unable to verify transporter compatability with node %d", nodeId); + } + + // setup transporter (transporter responsible for closing sockfd) + t->connect_server(sockfd); + + DBUG_RETURN(true); +} + bool TransporterRegistry::createTransporter(TCP_TransporterConfiguration *config) { #ifdef NDB_TCP_TRANSPORTER diff --git a/ndb/src/kernel/main.cpp b/ndb/src/kernel/main.cpp index 44fe1725c9e..448bdd9a1fa 100644 --- a/ndb/src/kernel/main.cpp +++ b/ndb/src/kernel/main.cpp @@ -58,7 +58,7 @@ int main(int argc, char** argv) // Print to stdout/console g_eventLogger.createConsoleHandler(); g_eventLogger.setCategory("NDB"); - g_eventLogger.enable(Logger::LL_INFO, Logger::LL_ALERT); // Log INFO to ALERT + g_eventLogger.enable(Logger::LL_ON, Logger::LL_ERROR); globalEmulatorData.create(); diff --git a/ndb/src/mgmsrv/MgmtSrvr.cpp b/ndb/src/mgmsrv/MgmtSrvr.cpp index 3fcde997cb0..f698099141a 100644 --- a/ndb/src/mgmsrv/MgmtSrvr.cpp +++ b/ndb/src/mgmsrv/MgmtSrvr.cpp @@ -133,8 +133,7 @@ MgmtSrvr::signalRecvThreadRun() } } - -EventLogger g_EventLogger; +extern EventLogger g_eventLogger; static NdbOut& operator<<(NdbOut& out, const LogLevel & ll) @@ -200,7 +199,7 @@ MgmtSrvr::logLevelThreadRun() void MgmtSrvr::startEventLog() { - g_EventLogger.setCategory("MgmSrvr"); + g_eventLogger.setCategory("MgmSrvr"); ndb_mgm_configuration_iterator * iter = ndb_mgm_create_configuration_iterator ((ndb_mgm_configuration*)_config->m_configValues, CFG_SECTION_NODE); @@ -226,7 +225,7 @@ MgmtSrvr::startEventLog() logdest.assfmt("FILE:filename=%s,maxsize=1000000,maxfiles=6", clusterLog); } - if(!g_EventLogger.addHandler(logdest)) { + if(!g_eventLogger.addHandler(logdest)) { ndbout << "Warning: could not add log destination \"" << logdest.c_str() << "\"" << endl; } @@ -250,21 +249,21 @@ MgmtSrvr::setEventLogFilter(int severity, int enable) { Logger::LoggerLevel level = (Logger::LoggerLevel)severity; if (enable > 0) { - g_EventLogger.enable(level); + g_eventLogger.enable(level); } else if (enable == 0) { - g_EventLogger.disable(level); - } else if (g_EventLogger.isEnable(level)) { - g_EventLogger.disable(level); + g_eventLogger.disable(level); + } else if (g_eventLogger.isEnable(level)) { + g_eventLogger.disable(level); } else { - g_EventLogger.enable(level); + g_eventLogger.enable(level); } - return g_EventLogger.isEnable(level); + return g_eventLogger.isEnable(level); } bool MgmtSrvr::isEventLogFilterEnabled(int severity) { - return g_EventLogger.isEnable((Logger::LoggerLevel)severity); + return g_eventLogger.isEnable((Logger::LoggerLevel)severity); } static ErrorItem errorTable[] = @@ -1990,7 +1989,7 @@ MgmtSrvr::handleReceivedSignal(NdbApiSignal* signal) } default: - g_EventLogger.error("Unknown signal received. SignalNumber: " + g_eventLogger.error("Unknown signal received. SignalNumber: " "%i from (%d, %x)", gsn, refToNode(signal->theSendersBlockRef), @@ -2066,7 +2065,7 @@ MgmtSrvr::handleStopReply(NodeId nodeId, Uint32 errCode) error: if(errCode != 0){ - g_EventLogger.error("Unexpected signal received. SignalNumber: %i from %d", + g_eventLogger.error("Unexpected signal received. SignalNumber: %i from %d", GSN_STOP_REF, nodeId); } } @@ -2286,7 +2285,7 @@ MgmtSrvr::alloc_node_id(NodeId * nodeId, m_reserved_nodes.set(id_found); char tmp_str[128]; m_reserved_nodes.getText(tmp_str); - g_EventLogger.info("Mgmt server state: nodeid %d reserved for ip %s, m_reserved_nodes %s.", + g_eventLogger.info("Mgmt server state: nodeid %d reserved for ip %s, m_reserved_nodes %s.", id_found, get_connect_address(id_found), tmp_str); DBUG_RETURN(true); } @@ -2346,7 +2345,7 @@ MgmtSrvr::alloc_node_id(NodeId * nodeId, *nodeId); } - g_EventLogger.warning("Allocate nodeid (%d) failed. Connection from ip %s. " + g_eventLogger.warning("Allocate nodeid (%d) failed. Connection from ip %s. " "Returned error string \"%s\"", *nodeId, client_addr != 0 ? inet_ntoa(((struct sockaddr_in *)(client_addr))->sin_addr) : "", @@ -2369,10 +2368,10 @@ MgmtSrvr::alloc_node_id(NodeId * nodeId, } } if (tmp_connected.length() > 0) - g_EventLogger.info("Mgmt server state: node id's %s connected but not reserved", + g_eventLogger.info("Mgmt server state: node id's %s connected but not reserved", tmp_connected.c_str()); if (tmp_not_connected.length() > 0) - g_EventLogger.info("Mgmt server state: node id's %s not connected but reserved", + g_eventLogger.info("Mgmt server state: node id's %s not connected but reserved", tmp_not_connected.c_str()); } DBUG_RETURN(false); @@ -2404,7 +2403,7 @@ MgmtSrvr::eventReport(NodeId nodeId, const Uint32 * theData) EventReport::EventType type = eventReport->getEventType(); // Log event - g_EventLogger.log(type, theData, nodeId, + g_eventLogger.log(type, theData, nodeId, &m_event_listner[0].m_logLevel); m_event_listner.log(type, theData, nodeId); } @@ -2647,7 +2646,7 @@ MgmtSrvr::Allocated_resources::~Allocated_resources() char tmp_str[128]; m_mgmsrv.m_reserved_nodes.getText(tmp_str); - g_EventLogger.info("Mgmt server state: nodeid %d freed, m_reserved_nodes %s.", + g_eventLogger.info("Mgmt server state: nodeid %d freed, m_reserved_nodes %s.", get_nodeid(), tmp_str); } } diff --git a/ndb/src/mgmsrv/main.cpp b/ndb/src/mgmsrv/main.cpp index 015e2de022d..ce79ccb732b 100644 --- a/ndb/src/mgmsrv/main.cpp +++ b/ndb/src/mgmsrv/main.cpp @@ -86,7 +86,7 @@ static MgmGlobals glob; * Global variables */ bool g_StopServer; -extern EventLogger g_EventLogger; +extern EventLogger g_eventLogger; extern int global_mgmt_server_check; @@ -303,12 +303,12 @@ int main(int argc, char** argv) BaseString::snprintf(msg, sizeof(msg), "NDB Cluster Management Server. %s", NDB_VERSION_STRING); ndbout_c(msg); - g_EventLogger.info(msg); + g_eventLogger.info(msg); BaseString::snprintf(msg, 256, "Id: %d, Command port: %d", glob.localNodeId, glob.port); ndbout_c(msg); - g_EventLogger.info(msg); + g_eventLogger.info(msg); g_StopServer = false; glob.socketServer->startServer(); @@ -324,10 +324,10 @@ int main(int argc, char** argv) NdbSleep_MilliSleep(500); } - g_EventLogger.info("Shutting down server..."); + g_eventLogger.info("Shutting down server..."); glob.socketServer->stopServer(); glob.socketServer->stopSessions(); - g_EventLogger.info("Shutdown complete"); + g_eventLogger.info("Shutdown complete"); return 0; error_end: return 1; diff --git a/ndb/src/ndbapi/ndb_cluster_connection.cpp b/ndb/src/ndbapi/ndb_cluster_connection.cpp index f754ec8b40a..5df707e211d 100644 --- a/ndb/src/ndbapi/ndb_cluster_connection.cpp +++ b/ndb/src/ndbapi/ndb_cluster_connection.cpp @@ -31,6 +31,9 @@ #include #include +#include +EventLogger g_eventLogger; + static int g_run_connect_thread= 0; #include @@ -174,7 +177,7 @@ Ndb_cluster_connection_impl::get_next_node(Ndb_cluster_connection_node_iter &ite return node.id; } -int +unsigned Ndb_cluster_connection::no_db_nodes() { return m_impl.m_all_nodes.size(); @@ -248,6 +251,11 @@ Ndb_cluster_connection_impl::Ndb_cluster_connection_impl(const char * { DBUG_ENTER("Ndb_cluster_connection"); DBUG_PRINT("enter",("Ndb_cluster_connection this=0x%x", this)); + + g_eventLogger.createConsoleHandler(); + g_eventLogger.setCategory("NdbApi"); + g_eventLogger.enable(Logger::LL_ON, Logger::LL_ERROR); + m_transporter_facade= TransporterFacade::theFacadeInstance= new TransporterFacade(); diff --git a/sql/mysqld.cc b/sql/mysqld.cc index 5cd85113641..e6e079d3deb 100644 --- a/sql/mysqld.cc +++ b/sql/mysqld.cc @@ -53,7 +53,7 @@ #endif #ifdef HAVE_NDBCLUSTER_DB #define OPT_NDBCLUSTER_DEFAULT 0 -#ifdef NDB_SHM_TRANSPORTER +#if defined(NDB_SHM_TRANSPORTER) && MYSQL_VERSION_ID >= 50000 #define OPT_NDB_SHM_DEFAULT 1 #else #define OPT_NDB_SHM_DEFAULT 0 From 0ed3eb41a0db444896a5dd26e814b8f0f630957b Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 22 Dec 2004 18:58:25 +0300 Subject: [PATCH 027/157] Fix for bug #7458 "Microseconds are gobbled from the string result of STR_TO_DATE() function if there is another format specifier after %f in format string". Also small cleanup of STR_TO_DATE() implementation. (After review version.) mysql-test/r/date_formats.result: Added test for small bug in STR_TO_DATE() implementation which caused microseconds to be gobbled from string result of this function, if there was another specifier after %f in format string. mysql-test/t/date_formats.test: Added test for small bug in STR_TO_DATE() implementation which caused microseconds to be gobbled from string result of this function, if there was another specifier after %f in format string. sql/item_timefunc.cc: Small cleanup of str_to_date() implementation. Renamed check_result_type() to less ambigous get_date_time_result_type() and made it static. Also added handling of %X,%x,%V,%v to this function. Fixed small bug in it which caused microseconds to be gobbled if there was some other specifiers after %f. Cleaned up comments a bit. --- mysql-test/r/date_formats.result | 3 ++ mysql-test/t/date_formats.test | 2 ++ sql/item_timefunc.cc | 56 +++++++++++++++++++++----------- 3 files changed, 42 insertions(+), 19 deletions(-) diff --git a/mysql-test/r/date_formats.result b/mysql-test/r/date_formats.result index 758a83defed..2db014c4a52 100644 --- a/mysql-test/r/date_formats.result +++ b/mysql-test/r/date_formats.result @@ -296,6 +296,9 @@ Tuesday 52 2001 %W %V %X 00:00:00 15-01-2001 %d-%m-%Y %H:%i:%S 00:00:00 15-01-20 %d-%m-%y 00:00:00 15-2001-1 %d-%Y-%c 00:00:00 +select concat('',str_to_date('8:11:2.123456 03-01-02','%H:%i:%S.%f %y-%m-%d')); +concat('',str_to_date('8:11:2.123456 03-01-02','%H:%i:%S.%f %y-%m-%d')) +2003-01-02 08:11:02.123456 truncate table t1; insert into t1 values ('2003-01-02 10:11:12 PM', '%Y-%m-%d %H:%i:%S %p'), diff --git a/mysql-test/t/date_formats.test b/mysql-test/t/date_formats.test index c369a9c85d5..800e5880b09 100644 --- a/mysql-test/t/date_formats.test +++ b/mysql-test/t/date_formats.test @@ -166,6 +166,8 @@ select date,format,cast(str_to_date(date, format) as datetime) as datetime from select date,format,DATE(str_to_date(date, format)) as date2 from t1; select date,format,TIME(str_to_date(date, format)) as time from t1; select date,format,concat(TIME(str_to_date(date, format))) as time2 from t1; +# Test small bug in %f handling +select concat('',str_to_date('8:11:2.123456 03-01-02','%H:%i:%S.%f %y-%m-%d')); # Test wrong dates or converion specifiers diff --git a/sql/item_timefunc.cc b/sql/item_timefunc.cc index 354c8b5c50c..84a9e01ed2a 100644 --- a/sql/item_timefunc.cc +++ b/sql/item_timefunc.cc @@ -149,6 +149,9 @@ static DATE_TIME_FORMAT time_24hrs_format= {{0}, '\0', 0, conversion specifiers that can be used in such sub-patterns is limited. Also most of checks are skipped in this case. + If one adds new format specifiers to this function he should also + consider adding them to get_date_time_result_type() function. + RETURN 0 ok 1 error @@ -2595,25 +2598,31 @@ void Item_func_get_format::print(String *str) /* - check_result_type(s, l) returns DATE/TIME type - according to format string + Get type of datetime value (DATE/TIME/...) which will be produced + according to format string. - s: DATE/TIME format string - l: length of s - Result: date_time_format_types value: - DATE_TIME_MICROSECOND, DATE_TIME, - TIME_MICROSECOND, TIME_ONLY + SYNOPSIS + get_date_time_result_type() + format - format string + length - length of format string - We don't process day format's characters('D', 'd', 'e') - because day may be a member of all date/time types. - If only day format's character and no time part present - the result type is MYSQL_TYPE_DATE + NOTE + We don't process day format's characters('D', 'd', 'e') because day + may be a member of all date/time types. + + Format specifiers supported by this function should be in sync with + specifiers supported by extract_date_time() function. + + RETURN VALUE + One of date_time_format_types values: + DATE_TIME_MICROSECOND, DATE_TIME, DATE_ONLY, TIME_MICROSECOND, TIME_ONLY */ -date_time_format_types check_result_type(const char *format, uint length) +static date_time_format_types +get_date_time_result_type(const char *format, uint length) { const char *time_part_frms= "HISThiklrs"; - const char *date_part_frms= "MUYWabcjmuyw"; + const char *date_part_frms= "MVUXYWabcjmvuxyw"; bool date_part_used= 0, time_part_used= 0, frac_second_used= 0; const char *val= format; @@ -2624,22 +2633,30 @@ date_time_format_types check_result_type(const char *format, uint length) if (*val == '%' && val+1 != end) { val++; - if ((frac_second_used= (*val == 'f')) || - (!time_part_used && strchr(time_part_frms, *val))) + if (*val == 'f') + frac_second_used= time_part_used= 1; + else if (!time_part_used && strchr(time_part_frms, *val)) time_part_used= 1; else if (!date_part_used && strchr(date_part_frms, *val)) date_part_used= 1; - if (time_part_used && date_part_used && frac_second_used) + if (date_part_used && frac_second_used) + { + /* + frac_second_used implies time_part_used, and thus we already + have all types of date-time components and can end our search. + */ return DATE_TIME_MICROSECOND; + } } } + /* We don't have all three types of date-time components */ + if (frac_second_used) + return TIME_MICROSECOND; if (time_part_used) { if (date_part_used) return DATE_TIME; - if (frac_second_used) - return TIME_MICROSECOND; return TIME_ONLY; } return DATE_ONLY; @@ -2670,7 +2687,8 @@ void Item_func_str_to_date::fix_length_and_dec() if ((const_item= args[1]->const_item())) { format= args[1]->val_str(&format_str); - cached_format_type= check_result_type(format->ptr(), format->length()); + cached_format_type= get_date_time_result_type(format->ptr(), + format->length()); switch (cached_format_type) { case DATE_ONLY: cached_timestamp_type= MYSQL_TIMESTAMP_DATE; From eebd8d7e41fbfc954b567ac6561a5b3b617a232e Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 22 Dec 2004 18:27:07 +0100 Subject: [PATCH 028/157] added handling of repeated messages ndb/src/common/transporter/Transporter.hpp: fixed small error --- ndb/include/logger/LogHandler.hpp | 10 ++++ ndb/src/common/logger/LogHandler.cpp | 59 ++++++++++++++++++++-- ndb/src/common/transporter/Transporter.hpp | 2 +- 3 files changed, 65 insertions(+), 6 deletions(-) diff --git a/ndb/include/logger/LogHandler.hpp b/ndb/include/logger/LogHandler.hpp index ca4bd4c0668..57169e7ae6a 100644 --- a/ndb/include/logger/LogHandler.hpp +++ b/ndb/include/logger/LogHandler.hpp @@ -192,6 +192,16 @@ private: const char* m_pDateTimeFormat; int m_errorCode; + + // for handling repeated messages + unsigned m_count_repeated_messages; + unsigned m_max_repeat_frequency; + time_t m_last_log_time; + char m_last_category_buf[16]; + char m_last_message_buf[256]; + char *m_last_category; + Logger::LoggerLevel m_last_level; + char *m_last_message; }; #endif diff --git a/ndb/src/common/logger/LogHandler.cpp b/ndb/src/common/logger/LogHandler.cpp index a76cb622878..5cc8de21f67 100644 --- a/ndb/src/common/logger/LogHandler.cpp +++ b/ndb/src/common/logger/LogHandler.cpp @@ -23,22 +23,71 @@ // LogHandler::LogHandler() : m_pDateTimeFormat("%d-%.2d-%.2d %.2d:%.2d:%.2d"), - m_errorCode(0) -{ + m_errorCode(0), + m_last_category(m_last_category_buf), + m_last_message(m_last_message_buf) +{ + m_max_repeat_frequency= 3; // repeat messages maximum every 3 seconds + m_last_category_buf[0]= 0; + m_last_message_buf[0]= 0; } LogHandler::~LogHandler() { + if (m_last_message != m_last_message_buf) + free(m_last_message); + if (m_last_category != m_last_category_buf) + free(m_last_category); } void LogHandler::append(const char* pCategory, Logger::LoggerLevel level, const char* pMsg) -{ +{ + time_t now; + now= ::time((time_t*)NULL); + + if (level != m_last_level || + strcmp(pCategory, m_last_category) || + strcmp(pMsg, m_last_message)) + { + if (m_last_message != m_last_message_buf) + free(m_last_message); + if (m_last_category != m_last_category_buf) + free(m_last_category); + + m_count_repeated_messages= 0; + + m_last_level= level; + BaseString::snprintf(m_last_category_buf, sizeof(m_last_category_buf), "%s", pCategory); + BaseString::snprintf(m_last_message_buf, sizeof(m_last_message_buf), "%s", pMsg); + // ToDo: handle too long messages correctly + // right now all that will happen is that too long messages + // will be repeated unneccesarily + } + else // repeated message + { + if (now < m_last_log_time+m_max_repeat_frequency) + { + m_count_repeated_messages++; + return; + } + } + writeHeader(pCategory, level); - writeMessage(pMsg); + if (m_count_repeated_messages == 0) + writeMessage(pMsg); + else + { + BaseString str(pMsg); + str.appfmt(" - repeated %d times", m_count_repeated_messages); + writeMessage(str.c_str()); + m_count_repeated_messages= 0; + } writeFooter(); -} + + m_last_log_time= now; +} const char* LogHandler::getDefaultHeader(char* pStr, const char* pCategory, diff --git a/ndb/src/common/transporter/Transporter.hpp b/ndb/src/common/transporter/Transporter.hpp index 10303ec71ea..baff6d53dd8 100644 --- a/ndb/src/common/transporter/Transporter.hpp +++ b/ndb/src/common/transporter/Transporter.hpp @@ -151,7 +151,7 @@ Transporter::getRemoteNodeId() const { inline NodeId Transporter::getLocalNodeId() const { - return remoteNodeId; + return localNodeId; } inline From 74cc635a7cae3f2548ccbbdb2c6775758e554caa Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 22 Dec 2004 21:31:17 +0200 Subject: [PATCH 029/157] A fix for the bug #7495 mysql-test/r/func_str.result: A result for test case for the bug #7495 involving either LTRIM() or TRIM() within QUOTE() function. mysql-test/t/func_str.test: A test case for the bug #7495 involving either LTRIM() or TRIM() within QUOTE() function. sql/item_strfunc.cc: Changes for LTRIM() and TRIM() functions that aleviate the bug entirely. --- mysql-test/r/func_str.result | 12 ++++++++++++ mysql-test/t/func_str.test | 12 ++++++++++++ sql/item_strfunc.cc | 4 ++-- 3 files changed, 26 insertions(+), 2 deletions(-) diff --git a/mysql-test/r/func_str.result b/mysql-test/r/func_str.result index d38a2edfa1a..2ca90653fec 100644 --- a/mysql-test/r/func_str.result +++ b/mysql-test/r/func_str.result @@ -291,3 +291,15 @@ trim(trailing 'foo' from 'foo') select trim(leading 'foo' from 'foo'); trim(leading 'foo' from 'foo') +create table t1 (a varchar(80), b varchar(80)); +insert into t1 values(NULL,"12345"); +insert into t1 values(NULL,"chm"); +select quote(ltrim(concat(' ',t1.b))) from t1; +quote(ltrim(concat(' ',t1.b))) +'12345' +'chm' +select quote(trim(concat(' ',t1.b))) from t1; +quote(trim(concat(' ',t1.b))) +'12345' +'chm' +drop table t1; diff --git a/mysql-test/t/func_str.test b/mysql-test/t/func_str.test index 1ae4db3a42a..421512c4dc4 100644 --- a/mysql-test/t/func_str.test +++ b/mysql-test/t/func_str.test @@ -185,3 +185,15 @@ drop table t1; select trim(trailing 'foo' from 'foo'); select trim(leading 'foo' from 'foo'); + +# +# crashing bug with QUOTE() and LTRIM() or TRIM() fixed +# Bug #7495 +# + +create table t1 (a varchar(80), b varchar(80)); +insert into t1 values(NULL,"12345"); +insert into t1 values(NULL,"chm"); +select quote(ltrim(concat(' ',t1.b))) from t1; +select quote(trim(concat(' ',t1.b))) from t1; +drop table t1; diff --git a/sql/item_strfunc.cc b/sql/item_strfunc.cc index 53a9d3fe219..61477753594 100644 --- a/sql/item_strfunc.cc +++ b/sql/item_strfunc.cc @@ -1141,7 +1141,7 @@ String *Item_func_ltrim::val_str(String *str) } if (ptr == res->ptr()) return res; - tmp_value.set(*res,(uint) (ptr - res->ptr()),(uint) (end-ptr)); + tmp_value.copy(res->ptr() + (ptr - res->ptr()), (uint32) (end - ptr)); return &tmp_value; } @@ -1266,7 +1266,7 @@ String *Item_func_trim::val_str(String *str) } if (ptr == res->ptr() && end == ptr+res->length()) return res; - tmp_value.set(*res,(uint) (ptr - res->ptr()),(uint) (end-ptr)); + tmp_value.copy(res->ptr() + (ptr - res->ptr()), (uint32) (end - ptr)); return &tmp_value; } From 7b0857a7d050a58c53c6b8ad6b2848959e9d5ce6 Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 22 Dec 2004 22:47:56 +0100 Subject: [PATCH 030/157] fixed so that last repeats are printed first with correct time if another message comes decided for fixed size buffers in LogHandler repeated messages mysql-test/ndb/basic.result: updated ndb test ndb/include/logger/LogHandler.hpp: decided for fixed size buffers ndb/include/logger/Logger.hpp: decided for fixed size buffers ndb/src/common/logger/LogHandler.cpp: decided for fixed size buffers ndb/src/common/logger/Logger.cpp: decided for fixed size buffers --- mysql-test/ndb/basic.result | 8 ++--- ndb/include/logger/LogHandler.hpp | 29 ++++++++-------- ndb/include/logger/Logger.hpp | 2 ++ ndb/src/common/logger/LogHandler.cpp | 51 +++++++++++++--------------- ndb/src/common/logger/Logger.cpp | 4 +-- 5 files changed, 47 insertions(+), 47 deletions(-) diff --git a/mysql-test/ndb/basic.result b/mysql-test/ndb/basic.result index 7049c02f304..5ebd20a7f83 100644 --- a/mysql-test/ndb/basic.result +++ b/mysql-test/ndb/basic.result @@ -31,12 +31,12 @@ QUIT Quit management client = ALL | Any database node id Connected to Management Server at: localhost:1186 -Node 1: started (Version 4.1.8) -Node 2: started (Version 4.1.8) +Node 1: started (Version 4.1.9) +Node 2: started (Version 4.1.9) -Node 1: started (Version 4.1.8) +Node 1: started (Version 4.1.9) -Node 2: started (Version 4.1.8) +Node 2: started (Version 4.1.9) Executing CLUSTERLOG on node 1 OK! Executing CLUSTERLOG on node 2 OK! diff --git a/ndb/include/logger/LogHandler.hpp b/ndb/include/logger/LogHandler.hpp index 57169e7ae6a..7df6ad864e5 100644 --- a/ndb/include/logger/LogHandler.hpp +++ b/ndb/include/logger/LogHandler.hpp @@ -19,7 +19,6 @@ #include "Logger.hpp" - /** * This class is the base class for all log handlers. A log handler is * responsible for formatting and writing log messages to a specific output. @@ -68,7 +67,8 @@ public: /** * Append a log message to the output stream/file whatever. * append() will call writeHeader(), writeMessage() and writeFooter() for - * a child class and in that order. + * a child class and in that order. Append checks for repeated messages. + * append_impl() does not check for repeats. * * @param pCategory the category/name to tag the log entry with. * @param level the log level. @@ -76,6 +76,8 @@ public: */ void append(const char* pCategory, Logger::LoggerLevel level, const char* pMsg); + void append_impl(const char* pCategory, Logger::LoggerLevel level, + const char* pMsg); /** * Returns a default formatted header. It currently has the @@ -111,14 +113,6 @@ public: */ void setDateTimeFormat(const char* pFormat); - /** - * Returns a string date and time string. - * - * @param pStr a string. - * @return a string with date and time. - */ - char* getTimeAsString(char* pStr) const; - /** * Returns the error code. */ @@ -185,6 +179,15 @@ protected: virtual void writeFooter() = 0; private: + /** + * Returns a string date and time string. + * @note does not update time, uses m_now as time + * @param pStr a string. + * @return a string with date and time. + */ + char* getTimeAsString(char* pStr) const; + time_t m_now; + /** Prohibit */ LogHandler(const LogHandler&); LogHandler* operator = (const LogHandler&); @@ -197,11 +200,9 @@ private: unsigned m_count_repeated_messages; unsigned m_max_repeat_frequency; time_t m_last_log_time; - char m_last_category_buf[16]; - char m_last_message_buf[256]; - char *m_last_category; + char m_last_category[MAX_HEADER_LENGTH]; + char m_last_message[MAX_LOG_MESSAGE_SIZE]; Logger::LoggerLevel m_last_level; - char *m_last_message; }; #endif diff --git a/ndb/include/logger/Logger.hpp b/ndb/include/logger/Logger.hpp index f12297023b7..ee762098fb6 100644 --- a/ndb/include/logger/Logger.hpp +++ b/ndb/include/logger/Logger.hpp @@ -20,6 +20,8 @@ #include #include +#define MAX_LOG_MESSAGE_SIZE 1024 + class LogHandler; class LogHandlerList; diff --git a/ndb/src/common/logger/LogHandler.cpp b/ndb/src/common/logger/LogHandler.cpp index 5cc8de21f67..e038b05401e 100644 --- a/ndb/src/common/logger/LogHandler.cpp +++ b/ndb/src/common/logger/LogHandler.cpp @@ -23,21 +23,18 @@ // LogHandler::LogHandler() : m_pDateTimeFormat("%d-%.2d-%.2d %.2d:%.2d:%.2d"), - m_errorCode(0), - m_last_category(m_last_category_buf), - m_last_message(m_last_message_buf) + m_errorCode(0) { m_max_repeat_frequency= 3; // repeat messages maximum every 3 seconds - m_last_category_buf[0]= 0; - m_last_message_buf[0]= 0; + m_count_repeated_messages= 0; + m_last_category[0]= 0; + m_last_message[0]= 0; + m_last_log_time= 0; + m_now= 0; } LogHandler::~LogHandler() { - if (m_last_message != m_last_message_buf) - free(m_last_message); - if (m_last_category != m_last_category_buf) - free(m_last_category); } void @@ -51,42 +48,44 @@ LogHandler::append(const char* pCategory, Logger::LoggerLevel level, strcmp(pCategory, m_last_category) || strcmp(pMsg, m_last_message)) { - if (m_last_message != m_last_message_buf) - free(m_last_message); - if (m_last_category != m_last_category_buf) - free(m_last_category); - - m_count_repeated_messages= 0; + if (m_count_repeated_messages > 0) // print that message + append_impl(m_last_category, m_last_level, m_last_message); m_last_level= level; - BaseString::snprintf(m_last_category_buf, sizeof(m_last_category_buf), "%s", pCategory); - BaseString::snprintf(m_last_message_buf, sizeof(m_last_message_buf), "%s", pMsg); - // ToDo: handle too long messages correctly - // right now all that will happen is that too long messages - // will be repeated unneccesarily + strncpy(m_last_category, pCategory, sizeof(m_last_category)); + strncpy(m_last_message, pMsg, sizeof(m_last_message)); } else // repeated message { if (now < m_last_log_time+m_max_repeat_frequency) { m_count_repeated_messages++; + m_now= now; return; } } + m_now= now; + + append_impl(pCategory, level, pMsg); + m_last_log_time= now; +} + +void +LogHandler::append_impl(const char* pCategory, Logger::LoggerLevel level, + const char* pMsg) +{ writeHeader(pCategory, level); if (m_count_repeated_messages == 0) writeMessage(pMsg); else { BaseString str(pMsg); - str.appfmt(" - repeated %d times", m_count_repeated_messages); + str.appfmt(" - Repeated %d times", m_count_repeated_messages); writeMessage(str.c_str()); m_count_repeated_messages= 0; } writeFooter(); - - m_last_log_time= now; } const char* @@ -125,12 +124,10 @@ char* LogHandler::getTimeAsString(char* pStr) const { struct tm* tm_now; - time_t now; - now = ::time((time_t*)NULL); #ifdef NDB_WIN32 - tm_now = localtime(&now); + tm_now = localtime(&m_now); #else - tm_now = ::localtime(&now); //uses the "current" timezone + tm_now = ::localtime(&m_now); //uses the "current" timezone #endif BaseString::snprintf(pStr, MAX_DATE_TIME_HEADER_LENGTH, diff --git a/ndb/src/common/logger/Logger.cpp b/ndb/src/common/logger/Logger.cpp index 4fa7b462563..7f18f5bd3ec 100644 --- a/ndb/src/common/logger/Logger.cpp +++ b/ndb/src/common/logger/Logger.cpp @@ -355,11 +355,11 @@ Logger::log(LoggerLevel logLevel, const char* pMsg, va_list ap) const LogHandler* pHandler = NULL; while ( (pHandler = m_pHandlerList->next()) != NULL) { - char buf[1024]; + char buf[MAX_LOG_MESSAGE_SIZE]; BaseString::vsnprintf(buf, sizeof(buf), pMsg, ap); pHandler->append(m_pCategory, logLevel, buf); } - } + } } // From baac3b76acb9d11061d65a9e462a6c405985f711 Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 22 Dec 2004 22:59:19 +0100 Subject: [PATCH 031/157] BitKeeper/triggers/pre-delta don't checkin for Administrator or mysqldev sql/log.cc@1.157 restored a bugfix that was lost in a merge sql/log.cc: restored a bugfix that was lost in a merge BitKeeper/triggers/pre-delta: don't commit for Administrator or mysqldev --- BitKeeper/triggers/pre-delta | 11 +++++++++++ sql/log.cc | 4 +++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/BitKeeper/triggers/pre-delta b/BitKeeper/triggers/pre-delta index e22ae9ce940..cd861703bb5 100755 --- a/BitKeeper/triggers/pre-delta +++ b/BitKeeper/triggers/pre-delta @@ -1,5 +1,16 @@ #!/bin/sh +if [ "$BK_USER" = "Administrator" -o "$BK_USER" = "mysqldev" ] +then + echo "Error: you cannot checkin as 'Administrator' or 'mysqldev' user." + echo "as a workaround set BK_USER to your nickname" + echo "e.g.: export BK_USER='bar'" + echo "" + echo "Checkin FAILED!" + echo "Set BK_USER and retry." + exit 1 +fi + if [ `tail -c1 $BK_FILE` ] then echo "File $BK_FILE does not end with a new-line character!" diff --git a/sql/log.cc b/sql/log.cc index 3a420866025..ab0cb823f15 100644 --- a/sql/log.cc +++ b/sql/log.cc @@ -2036,6 +2036,7 @@ bool flush_error_log() char err_renamed[FN_REFLEN], *end; end= strmake(err_renamed,log_error_file,FN_REFLEN-4); strmov(end, "-old"); + VOID(pthread_mutex_lock(&LOCK_error_log)); #ifdef __WIN__ char err_temp[FN_REFLEN+4]; /* @@ -2056,7 +2057,7 @@ bool flush_error_log() if ((fd = my_open(err_temp, O_RDONLY, MYF(0))) >= 0) { while ((bytes = (int) my_read(fd, (byte*) buf, IO_SIZE, MYF(0))) > 0) - my_fwrite(stderr, (byte*) buf, (uint) strlen(buf),MYF(0)); + my_fwrite(stderr, (byte*) buf, bytes, MYF(0)); my_close(fd, MYF(0)); } (void) my_delete(err_temp, MYF(0)); @@ -2070,6 +2071,7 @@ bool flush_error_log() else result= 1; #endif + VOID(pthread_mutex_unlock(&LOCK_error_log)); } return result; } From 7199d9f4d32e2a9fbe87a06e7116e199a13f185c Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 23 Dec 2004 13:52:25 +0400 Subject: [PATCH 032/157] Take charsets from the source directory rather than from the install directory. --- mysql-test/mysql-test-run.sh | 3 ++- mysql-test/t/mysqldump.test | 10 +++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/mysql-test/mysql-test-run.sh b/mysql-test/mysql-test-run.sh index 93b1360846a..4c141e75baa 100644 --- a/mysql-test/mysql-test-run.sh +++ b/mysql-test/mysql-test-run.sh @@ -596,7 +596,8 @@ MYSQL_DUMP="$MYSQL_DUMP --no-defaults -uroot --socket=$MASTER_MYSOCK --password= MYSQL_BINLOG="$MYSQL_BINLOG --no-defaults --local-load=$MYSQL_TMP_DIR $EXTRA_MYSQLBINLOG_OPT" MYSQL_FIX_SYSTEM_TABLES="$MYSQL_FIX_SYSTEM_TABLES --no-defaults --host=localhost --port=$MASTER_MYPORT --socket=$MASTER_MYSOCK --user=root --password=$DBPASSWD --basedir=$BASEDIR --bindir=$CLIENT_BINDIR --verbose" MYSQL="$MYSQL --host=localhost --port=$MASTER_MYPORT --socket=$MASTER_MYSOCK --user=root --password=$DBPASSWD" -export MYSQL MYSQL_DUMP MYSQL_BINLOG MYSQL_FIX_SYSTEM_TABLES CLIENT_BINDIR TESTS_BINDIR +export MYSQL MYSQL_DUMP MYSQL_BINLOG MYSQL_FIX_SYSTEM_TABLES +export CLIENT_BINDIR TESTS_BINDIR CHARSETSDIR export NDB_TOOLS_DIR MYSQL_TEST_ARGS="--no-defaults --socket=$MASTER_MYSOCK --database=$DB \ diff --git a/mysql-test/t/mysqldump.test b/mysql-test/t/mysqldump.test index 7a6c1564e94..07b33689196 100644 --- a/mysql-test/t/mysqldump.test +++ b/mysql-test/t/mysqldump.test @@ -147,9 +147,9 @@ drop database mysqldump_test_db; CREATE TABLE t1 (a CHAR(10)); INSERT INTO t1 VALUES (_latin1 ''); ---exec $MYSQL_DUMP --skip-comments test t1 ---exec $MYSQL_DUMP --skip-comments --compatible=mysql323 test t1 ---exec $MYSQL_DUMP --skip-comments --compatible=mysql323 --default-character-set=cp850 test t1 ---exec $MYSQL_DUMP --skip-comments --default-character-set=cp850 --compatible=mysql323 test t1 ---exec $MYSQL_DUMP --skip-comments --default-character-set=utf8 --compatible=mysql323 test t1 +--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --skip-comments test t1 +--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --skip-comments --compatible=mysql323 test t1 +--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --skip-comments --compatible=mysql323 --default-character-set=cp850 test t1 +--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --skip-comments --default-character-set=cp850 --compatible=mysql323 test t1 +--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --skip-comments --default-character-set=utf8 --compatible=mysql323 test t1 DROP TABLE t1; From 20c0434589a8353eafa81f01dc89464beee65960 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 23 Dec 2004 16:04:40 +0500 Subject: [PATCH 033/157] fix indentation add space after comma add space after equal add comments in vio_close_shared_memory() include/violite.h: fix indentation sql-common/client.c: fix identation sql/mysqld.cc: add space after comma vio/vio.c: add space after equal fix identation vio/viosocket.c: add space after comma add comments in vio_close_shared_memory() --- include/violite.h | 22 +++++++++++----------- sql-common/client.c | 4 ++-- sql/mysqld.cc | 45 ++++++++++++++++++++++++++------------------- vio/vio.c | 22 +++++++++++----------- vio/viosocket.c | 19 ++++++++++++++----- 5 files changed, 64 insertions(+), 48 deletions(-) diff --git a/include/violite.h b/include/violite.h index 64e834d6653..855d8a3d490 100644 --- a/include/violite.h +++ b/include/violite.h @@ -39,17 +39,17 @@ enum enum_vio_type Vio* vio_new(my_socket sd, enum enum_vio_type type, my_bool localhost); #ifdef __WIN__ -Vio* vio_new_win32pipe(HANDLE hPipe); -Vio* vio_new_win32shared_memory(NET *net,HANDLE handle_file_map, - HANDLE handle_map, - HANDLE event_server_wrote, - HANDLE event_server_read, - HANDLE event_client_wrote, - HANDLE event_client_read, - HANDLE event_conn_closed); -int vio_read_pipe(Vio *vio, gptr buf, int size); -int vio_write_pipe(Vio *vio, const gptr buf, int size); -int vio_close_pipe(Vio * vio); +Vio* vio_new_win32pipe(HANDLE hPipe); +Vio* vio_new_win32shared_memory(NET *net,HANDLE handle_file_map, + HANDLE handle_map, + HANDLE event_server_wrote, + HANDLE event_server_read, + HANDLE event_client_wrote, + HANDLE event_client_read, + HANDLE event_conn_closed); +int vio_read_pipe(Vio *vio, gptr buf, int size); +int vio_write_pipe(Vio *vio, const gptr buf, int size); +int vio_close_pipe(Vio * vio); #else #define HANDLE void * #endif /* __WIN__ */ diff --git a/sql-common/client.c b/sql-common/client.c index 0714ca4291f..87a781e0a0d 100644 --- a/sql-common/client.c +++ b/sql-common/client.c @@ -525,9 +525,9 @@ err2: if (error_allow == 0) { net->vio= vio_new_win32shared_memory(net,handle_file_map,handle_map, - event_server_wrote, + event_server_wrote, event_server_read,event_client_wrote, - event_client_read,event_conn_closed); + event_client_read,event_conn_closed); } else { diff --git a/sql/mysqld.cc b/sql/mysqld.cc index 2bf9e898920..bebecb394e9 100644 --- a/sql/mysqld.cc +++ b/sql/mysqld.cc @@ -3853,31 +3853,31 @@ pthread_handler_decl(handle_connections_shared_memory,arg) goto errorconn; } strmov(suffix_pos, "CLIENT_WROTE"); - if ((event_client_wrote= CreateEvent(0,FALSE,FALSE,tmp)) == 0) + if ((event_client_wrote= CreateEvent(0, FALSE, FALSE, tmp)) == 0) { errmsg= "Could not create client write event"; goto errorconn; } strmov(suffix_pos, "CLIENT_READ"); - if ((event_client_read= CreateEvent(0,FALSE,FALSE,tmp)) == 0) + if ((event_client_read= CreateEvent(0, FALSE, FALSE, tmp)) == 0) { errmsg= "Could not create client read event"; goto errorconn; } strmov(suffix_pos, "SERVER_READ"); - if ((event_server_read= CreateEvent(0,FALSE,FALSE,tmp)) == 0) + if ((event_server_read= CreateEvent(0, FALSE, FALSE, tmp)) == 0) { errmsg= "Could not create server read event"; goto errorconn; } strmov(suffix_pos, "SERVER_WROTE"); - if ((event_server_wrote= CreateEvent(0,FALSE,FALSE,tmp)) == 0) + if ((event_server_wrote= CreateEvent(0, FALSE, FALSE, tmp)) == 0) { errmsg= "Could not create server write event"; goto errorconn; } strmov(suffix_pos, "CONNECTION_CLOSED"); - if ((event_conn_closed= CreateEvent(0,TRUE,FALSE,tmp)) == 0) + if ((event_conn_closed= CreateEvent(0, TRUE , FALSE, tmp)) == 0) { errmsg= "Could not create closed connection event"; goto errorconn; @@ -3900,14 +3900,14 @@ pthread_handler_decl(handle_connections_shared_memory,arg) goto errorconn; } if (!(thd->net.vio= vio_new_win32shared_memory(&thd->net, - handle_client_file_map, - handle_client_map, - event_client_wrote, - event_client_read, - event_server_wrote, - event_server_read, + handle_client_file_map, + handle_client_map, + event_client_wrote, + event_client_read, + event_server_wrote, + event_server_read, event_conn_closed)) || - my_net_init(&thd->net, thd->net.vio)) + my_net_init(&thd->net, thd->net.vio)) { close_connection(thd, ER_OUT_OF_RESOURCES, 1); errmsg= 0; @@ -3927,13 +3927,20 @@ errorconn: NullS); sql_perror(buff); } - if (handle_client_file_map) CloseHandle(handle_client_file_map); - if (handle_client_map) UnmapViewOfFile(handle_client_map); - if (event_server_wrote) CloseHandle(event_server_wrote); - if (event_server_read) CloseHandle(event_server_read); - if (event_client_wrote) CloseHandle(event_client_wrote); - if (event_client_read) CloseHandle(event_client_read); - if (event_conn_closed) CloseHandle(event_conn_closed); + if (handle_client_file_map) + CloseHandle(handle_client_file_map); + if (handle_client_map) + UnmapViewOfFile(handle_client_map); + if (event_server_wrote) + CloseHandle(event_server_wrote); + if (event_server_read) + CloseHandle(event_server_read); + if (event_client_wrote) + CloseHandle(event_client_wrote); + if (event_client_read) + CloseHandle(event_client_read); + if (event_conn_closed) + CloseHandle(event_conn_closed); delete thd; } diff --git a/vio/vio.c b/vio/vio.c index 92d69dc5148..978780d2632 100644 --- a/vio/vio.c +++ b/vio/vio.c @@ -172,23 +172,23 @@ Vio *vio_new_win32pipe(HANDLE hPipe) Vio *vio_new_win32shared_memory(NET *net,HANDLE handle_file_map, HANDLE handle_map, HANDLE event_server_wrote, HANDLE event_server_read, HANDLE event_client_wrote, HANDLE event_client_read, - HANDLE event_conn_closed) + HANDLE event_conn_closed) { Vio *vio; DBUG_ENTER("vio_new_win32shared_memory"); if ((vio = (Vio*) my_malloc(sizeof(Vio),MYF(MY_WME)))) { vio_reset(vio, VIO_TYPE_SHARED_MEMORY, 0, 0, TRUE); - vio->handle_file_map = handle_file_map; - vio->handle_map = handle_map; - vio->event_server_wrote = event_server_wrote; - vio->event_server_read = event_server_read; - vio->event_client_wrote = event_client_wrote; - vio->event_client_read = event_client_read; - vio->event_conn_closed = event_conn_closed; - vio->shared_memory_remain = 0; - vio->shared_memory_pos = handle_map; - vio->net = net; + vio->handle_file_map= handle_file_map; + vio->handle_map= handle_map; + vio->event_server_wrote= event_server_wrote; + vio->event_server_read= event_server_read; + vio->event_client_wrote= event_client_wrote; + vio->event_client_read= event_client_read; + vio->event_conn_closed= event_conn_closed; + vio->shared_memory_remain= 0; + vio->shared_memory_pos= handle_map; + vio->net= net; strmov(vio->desc, "shared memory"); } DBUG_RETURN(vio); diff --git a/vio/viosocket.c b/vio/viosocket.c index caf9451df7a..bcba05beef1 100644 --- a/vio/viosocket.c +++ b/vio/viosocket.c @@ -390,7 +390,7 @@ int vio_read_shared_memory(Vio * vio, gptr buf, int size) WAIT_OBJECT_0+1 - event from vio->event_conn_closed. We can't read anything WAIT_ABANDONED_0 and WAIT_TIMEOUT - fail. We can't read anything */ - if (WaitForMultipleObjects(2,(HANDLE*)&events,FALSE, + if (WaitForMultipleObjects(2, (HANDLE*)&events,FALSE, vio->net->read_timeout*1000) != WAIT_OBJECT_0) { DBUG_RETURN(-1); @@ -440,7 +440,8 @@ int vio_write_shared_memory(Vio * vio, const gptr buf, int size) current_postion = buf; while (remain != 0) { - if (WaitForSingleObject(vio->event_server_read,vio->net->write_timeout*1000) != WAIT_OBJECT_0) + if (WaitForSingleObject(vio->event_server_read, vio->net->write_timeout*1000) + != WAIT_OBJECT_0) { DBUG_RETURN(-1); }; @@ -467,10 +468,18 @@ int vio_close_shared_memory(Vio * vio) DBUG_ENTER("vio_close_shared_memory"); if (vio->type != VIO_CLOSED) { + /* + Set event_conn_closed for notification of both client and server that + connection is closed + */ SetEvent(vio->event_conn_closed); - r=UnmapViewOfFile(vio->handle_map) || CloseHandle(vio->event_server_wrote) || - CloseHandle(vio->event_server_read) || CloseHandle(vio->event_client_wrote) || - CloseHandle(vio->event_client_read) || CloseHandle(vio->handle_file_map); + /* + Close all handlers. UnmapViewOfFile and CloseHandle return non-zero + result if they are success. + */ + r= UnmapViewOfFile(vio->handle_map) || CloseHandle(vio->event_server_wrote) || + CloseHandle(vio->event_server_read) || CloseHandle(vio->event_client_wrote) || + CloseHandle(vio->event_client_read) || CloseHandle(vio->handle_file_map); if (!r) { DBUG_PRINT("vio_error", ("close() failed, error: %d",r)); From 665f6b6875ddc0ad50e4d09001db617bfab62bd4 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 23 Dec 2004 17:32:29 +0100 Subject: [PATCH 034/157] incorrect result fixed --- mysql-test/r/func_concat.result | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mysql-test/r/func_concat.result b/mysql-test/r/func_concat.result index 419413e4156..0bd53b32dd7 100644 --- a/mysql-test/r/func_concat.result +++ b/mysql-test/r/func_concat.result @@ -63,8 +63,8 @@ a0 select 'a' union select concat('a', -0.0); a a -a-0.0 +a0.0 select 'a' union select concat('a', -0.0000); a a -a-0.0000 +a0.0000 From 4a5ca0bc638b2e09bca1fc0b9b8bee02590c6e08 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 23 Dec 2004 21:59:36 +0300 Subject: [PATCH 035/157] Make GRANTs, which change SSL attributes and/or user limits, to behave well on 5.0 tables (well now you can't use tables from 4.1 and 5.0 with 4.0 because former use utf8, but still it is nice to have similar code in acl_init() and replace_user_table()). This also will make such GRANTs working in 5.0 (they are broken now). mysql-test/r/grant.result: Added test for GRANT which manipulates user limits. mysql-test/t/grant.test: Added test for GRANT which manipulates user limits. --- mysql-test/r/grant.result | 22 +++++++++++++++ mysql-test/t/grant.test | 17 ++++++++++++ sql/sql_acl.cc | 56 +++++++++++++++++++++------------------ 3 files changed, 69 insertions(+), 26 deletions(-) diff --git a/mysql-test/r/grant.result b/mysql-test/r/grant.result index 2a433e3d5db..19d83a95c5e 100644 --- a/mysql-test/r/grant.result +++ b/mysql-test/r/grant.result @@ -36,6 +36,28 @@ Grants for mysqltest_1@localhost GRANT USAGE ON *.* TO 'mysqltest_1'@'localhost' REQUIRE ISSUER 'MySQL AB' SUBJECT 'testsubject' CIPHER 'EDH-RSA-DES-CBC3-SHA' delete from mysql.user where user='mysqltest_1'; flush privileges; +delete from mysql.user where user='mysqltest_1'; +flush privileges; +grant usage on *.* to mysqltest_1@localhost with max_queries_per_hour 10; +select * from mysql.user where user="mysqltest_1"; +Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections +localhost mysqltest_1 N N N N N N N N N N N N N N N N N N N N N 10 0 0 +show grants for mysqltest_1@localhost; +Grants for mysqltest_1@localhost +GRANT USAGE ON *.* TO 'mysqltest_1'@'localhost' WITH MAX_QUERIES_PER_HOUR 10 +grant usage on *.* to mysqltest_1@localhost with max_updates_per_hour 20 max_connections_per_hour 30; +select * from mysql.user where user="mysqltest_1"; +Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections +localhost mysqltest_1 N N N N N N N N N N N N N N N N N N N N N 10 20 30 +show grants for mysqltest_1@localhost; +Grants for mysqltest_1@localhost +GRANT USAGE ON *.* TO 'mysqltest_1'@'localhost' WITH MAX_QUERIES_PER_HOUR 10 MAX_UPDATES_PER_HOUR 20 MAX_CONNECTIONS_PER_HOUR 30 +flush privileges; +show grants for mysqltest_1@localhost; +Grants for mysqltest_1@localhost +GRANT USAGE ON *.* TO 'mysqltest_1'@'localhost' WITH MAX_QUERIES_PER_HOUR 10 MAX_UPDATES_PER_HOUR 20 MAX_CONNECTIONS_PER_HOUR 30 +delete from mysql.user where user='mysqltest_1'; +flush privileges; grant CREATE TEMPORARY TABLES, LOCK TABLES on mysqltest.* to mysqltest_1@localhost; show grants for mysqltest_1@localhost; Grants for mysqltest_1@localhost diff --git a/mysql-test/t/grant.test b/mysql-test/t/grant.test index d9b4be04de3..960c55065fe 100644 --- a/mysql-test/t/grant.test +++ b/mysql-test/t/grant.test @@ -27,6 +27,23 @@ show grants for mysqltest_1@localhost; delete from mysql.user where user='mysqltest_1'; flush privileges; +# +# Test of GRANTS specifying user limits +# +delete from mysql.user where user='mysqltest_1'; +flush privileges; +grant usage on *.* to mysqltest_1@localhost with max_queries_per_hour 10; +select * from mysql.user where user="mysqltest_1"; +show grants for mysqltest_1@localhost; +grant usage on *.* to mysqltest_1@localhost with max_updates_per_hour 20 max_connections_per_hour 30; +select * from mysql.user where user="mysqltest_1"; +show grants for mysqltest_1@localhost; +# This is just to double check that one won't ignore results of selects +flush privileges; +show grants for mysqltest_1@localhost; +delete from mysql.user where user='mysqltest_1'; +flush privileges; + # # Test that the new db privileges are stored/retrieved correctly # diff --git a/sql/sql_acl.cc b/sql/sql_acl.cc index 67ca62357ec..1b55168695b 100644 --- a/sql/sql_acl.cc +++ b/sql/sql_acl.cc @@ -1403,6 +1403,7 @@ static int replace_user_table(THD *thd, TABLE *table, const LEX_USER &combo, Field **tmp_field; ulong priv; + uint next_field; for (tmp_field= table->field+3, priv = SELECT_ACL; *tmp_field && (*tmp_field)->real_type() == FIELD_TYPE_ENUM && ((Field_enum*) (*tmp_field))->typelib->count == 2 ; @@ -1411,56 +1412,59 @@ static int replace_user_table(THD *thd, TABLE *table, const LEX_USER &combo, if (priv & rights) // set requested privileges (*tmp_field)->store(&what,1); } - rights=get_access(table,3,0); + rights= get_access(table, 3, &next_field); DBUG_PRINT("info",("table->fields: %d",table->fields)); if (table->fields >= 31) /* From 4.0.0 we have more fields */ { /* We write down SSL related ACL stuff */ switch (thd->lex.ssl_type) { case SSL_TYPE_ANY: - table->field[24]->store("ANY",3); - table->field[25]->store("",0); - table->field[26]->store("",0); - table->field[27]->store("",0); + table->field[next_field]->store("ANY", 3); + table->field[next_field+1]->store("", 0); + table->field[next_field+2]->store("", 0); + table->field[next_field+3]->store("", 0); break; case SSL_TYPE_X509: - table->field[24]->store("X509",4); - table->field[25]->store("",0); - table->field[26]->store("",0); - table->field[27]->store("",0); + table->field[next_field]->store("X509", 4); + table->field[next_field+1]->store("", 0); + table->field[next_field+2]->store("", 0); + table->field[next_field+3]->store("", 0); break; case SSL_TYPE_SPECIFIED: - table->field[24]->store("SPECIFIED",9); - table->field[25]->store("",0); - table->field[26]->store("",0); - table->field[27]->store("",0); + table->field[next_field]->store("SPECIFIED", 9); + table->field[next_field+1]->store("", 0); + table->field[next_field+2]->store("", 0); + table->field[next_field+3]->store("", 0); if (thd->lex.ssl_cipher) - table->field[25]->store(thd->lex.ssl_cipher, - strlen(thd->lex.ssl_cipher)); + table->field[next_field+1]->store(thd->lex.ssl_cipher, + strlen(thd->lex.ssl_cipher)); if (thd->lex.x509_issuer) - table->field[26]->store(thd->lex.x509_issuer, - strlen(thd->lex.x509_issuer)); + table->field[next_field+2]->store(thd->lex.x509_issuer, + strlen(thd->lex.x509_issuer)); if (thd->lex.x509_subject) - table->field[27]->store(thd->lex.x509_subject, - strlen(thd->lex.x509_subject)); + table->field[next_field+3]->store(thd->lex.x509_subject, + strlen(thd->lex.x509_subject)); break; case SSL_TYPE_NOT_SPECIFIED: break; case SSL_TYPE_NONE: - table->field[24]->store("",0); - table->field[25]->store("",0); - table->field[26]->store("",0); - table->field[27]->store("",0); + table->field[next_field]->store("", 0); + table->field[next_field+1]->store("", 0); + table->field[next_field+2]->store("", 0); + table->field[next_field+3]->store("", 0); break; } + /* Skip over SSL related fields to first user limits related field */ + next_field+= 4; + USER_RESOURCES mqh = thd->lex.mqh; if (mqh.bits & 1) - table->field[28]->store((longlong) mqh.questions); + table->field[next_field]->store((longlong) mqh.questions); if (mqh.bits & 2) - table->field[29]->store((longlong) mqh.updates); + table->field[next_field+1]->store((longlong) mqh.updates); if (mqh.bits & 4) - table->field[30]->store((longlong) mqh.connections); + table->field[next_field+2]->store((longlong) mqh.connections); mqh_used = mqh_used || mqh.questions || mqh.updates || mqh.connections; } if (old_row_exists) From 8ccfad7636811347b57d9e14e20a3b52b8941664 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 23 Dec 2004 21:08:54 +0200 Subject: [PATCH 036/157] Fix for a bug #7495 mysql-test/r/func_str.result: result for test case for a bug in QUOTE() (Bug #7495) mysql-test/t/func_str.test: test case for a bug in QUOTE() (Bug #7495) sql/item_strfunc.cc: a better fix for a QUOTE() bug (Bug #7495) --- mysql-test/r/func_str.result | 18 ++++++------------ mysql-test/t/func_str.test | 8 ++------ sql/item_strfunc.cc | 14 +++++++------- 3 files changed, 15 insertions(+), 25 deletions(-) diff --git a/mysql-test/r/func_str.result b/mysql-test/r/func_str.result index 2ca90653fec..278cd4dd935 100644 --- a/mysql-test/r/func_str.result +++ b/mysql-test/r/func_str.result @@ -291,15 +291,9 @@ trim(trailing 'foo' from 'foo') select trim(leading 'foo' from 'foo'); trim(leading 'foo' from 'foo') -create table t1 (a varchar(80), b varchar(80)); -insert into t1 values(NULL,"12345"); -insert into t1 values(NULL,"chm"); -select quote(ltrim(concat(' ',t1.b))) from t1; -quote(ltrim(concat(' ',t1.b))) -'12345' -'chm' -select quote(trim(concat(' ',t1.b))) from t1; -quote(trim(concat(' ',t1.b))) -'12345' -'chm' -drop table t1; +select quote(ltrim(concat(' ', 'a'))); +quote(ltrim(concat(' ', 'a'))) +'a' +select quote(trim(concat(' ', 'a'))); +quote(trim(concat(' ', 'a'))) +'a' diff --git a/mysql-test/t/func_str.test b/mysql-test/t/func_str.test index 421512c4dc4..79a996e7e78 100644 --- a/mysql-test/t/func_str.test +++ b/mysql-test/t/func_str.test @@ -191,9 +191,5 @@ select trim(leading 'foo' from 'foo'); # Bug #7495 # -create table t1 (a varchar(80), b varchar(80)); -insert into t1 values(NULL,"12345"); -insert into t1 values(NULL,"chm"); -select quote(ltrim(concat(' ',t1.b))) from t1; -select quote(trim(concat(' ',t1.b))) from t1; -drop table t1; +select quote(ltrim(concat(' ', 'a'))); +select quote(trim(concat(' ', 'a'))); diff --git a/sql/item_strfunc.cc b/sql/item_strfunc.cc index 61477753594..a852906ee2c 100644 --- a/sql/item_strfunc.cc +++ b/sql/item_strfunc.cc @@ -1141,7 +1141,7 @@ String *Item_func_ltrim::val_str(String *str) } if (ptr == res->ptr()) return res; - tmp_value.copy(res->ptr() + (ptr - res->ptr()), (uint32) (end - ptr)); + tmp_value.set(*res,(uint) (ptr - res->ptr()),(uint) (end-ptr)); return &tmp_value; } @@ -1266,7 +1266,7 @@ String *Item_func_trim::val_str(String *str) } if (ptr == res->ptr() && end == ptr+res->length()) return res; - tmp_value.copy(res->ptr() + (ptr - res->ptr()), (uint32) (end - ptr)); + tmp_value.set(*res,(uint) (ptr - res->ptr()),(uint) (end-ptr)); return &tmp_value; } @@ -2185,16 +2185,16 @@ String *Item_func_quote::val_str(String *str) /* We have to use realloc() instead of alloc() as we want to keep the - old result in str + old result in arg */ - if (str->realloc(new_length)) + if (arg->realloc(new_length)) goto null; /* As 'arg' and 'str' may be the same string, we must replace characters from the end to the beginning */ - to= (char*) str->ptr() + new_length - 1; + to= (char*) arg->ptr() + new_length - 1; *to--= '\''; for (start= (char*) arg->ptr(),end= start + arg_length; end-- != start; to--) { @@ -2222,9 +2222,9 @@ String *Item_func_quote::val_str(String *str) } } *to= '\''; - str->length(new_length); + arg->length(new_length); null_value= 0; - return str; + return arg; null: null_value= 1; From 50bd606d06ed549e0dbd5bbb2d35663fe7641421 Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 24 Dec 2004 18:52:24 +0400 Subject: [PATCH 037/157] A fix (bug #5652: [patch] tcpwrapper support is broken on systems using an unmodified tcpwrapper). sql/mysqld.cc: A fix (bug #5652: [patch] tcpwrapper support is broken on systems using an unmodified tcpwrapper). Wrapper for fromhost, hosts_access, eval_client has been removed. --- sql/mysqld.cc | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/sql/mysqld.cc b/sql/mysqld.cc index 768acd77c27..eae63c5deb3 100644 --- a/sql/mysqld.cc +++ b/sql/mysqld.cc @@ -107,15 +107,6 @@ extern "C" { // Because of SCO 3.2V4.2 int allow_severity = LOG_INFO; int deny_severity = LOG_WARNING; -#ifdef __STDC__ -#define my_fromhost(A) fromhost(A) -#define my_hosts_access(A) hosts_access(A) -#define my_eval_client(A) eval_client(A) -#else -#define my_fromhost(A) fromhost() -#define my_hosts_access(A) hosts_access() -#define my_eval_client(A) eval_client() -#endif #endif /* HAVE_LIBWRAP */ #ifdef HAVE_SYS_MMAN_H @@ -3240,8 +3231,8 @@ extern "C" pthread_handler_decl(handle_connections_sockets, struct request_info req; signal(SIGCHLD, SIG_DFL); request_init(&req, RQ_DAEMON, libwrapName, RQ_FILE, new_sock, NULL); - my_fromhost(&req); - if (!my_hosts_access(&req)) + fromhost(&req); + if (!hosts_access(&req)) { /* This may be stupid but refuse() includes an exit(0) @@ -3249,7 +3240,7 @@ extern "C" pthread_handler_decl(handle_connections_sockets, clean_exit() - same stupid thing ... */ syslog(deny_severity, "refused connect from %s", - my_eval_client(&req)); + eval_client(&req)); /* C++ sucks (the gibberish in front just translates the supplied From cb8ffea15e0a6bdd8cf78eb63112cc6a6ab4448b Mon Sep 17 00:00:00 2001 From: unknown Date: Sat, 25 Dec 2004 00:07:22 +0200 Subject: [PATCH 038/157] additional 4.0 -> 4.1 merge !! mysql-test/r/func_str.result: a little, very little mistake in the merge process --- mysql-test/r/func_str.result | 1 - 1 file changed, 1 deletion(-) diff --git a/mysql-test/r/func_str.result b/mysql-test/r/func_str.result index f4185ad93de..1c560dfa8b4 100644 --- a/mysql-test/r/func_str.result +++ b/mysql-test/r/func_str.result @@ -691,7 +691,6 @@ select count(*) as total, left(c,10) as reg from t1 group by reg order by reg de total reg 10 2004-12-10 drop table t1; - select quote(ltrim(concat(' ', 'a'))); quote(ltrim(concat(' ', 'a'))) 'a' From a1110e7069c66bce51b9afeb7aaec536d3a0d0d4 Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 24 Dec 2004 23:30:40 +0100 Subject: [PATCH 039/157] better fix for bug#7242 (crash in prepared INSERT ... UPDATE) sql/sql_insert.cc: cleanup --- sql/sql_insert.cc | 9 ++++----- sql/sql_prepare.cc | 30 ++++-------------------------- 2 files changed, 8 insertions(+), 31 deletions(-) diff --git a/sql/sql_insert.cc b/sql/sql_insert.cc index ce64890523a..622176e22cc 100644 --- a/sql/sql_insert.cc +++ b/sql/sql_insert.cc @@ -427,6 +427,7 @@ abort: thd - thread handler table_list - global table list insert_table_list - local table list of INSERT SELECT_LEX + values - values to insert. NULL for INSERT ... SELECT RETURN VALUE 0 - OK @@ -442,7 +443,7 @@ int mysql_prepare_insert(THD *thd, TABLE_LIST *table_list, if (duplic == DUP_UPDATE && !table->insert_values) { /* it should be allocated before Item::fix_fields() */ - table->insert_values= + table->insert_values= (byte *)alloc_root(thd->mem_root, table->rec_buff_length); if (!table->insert_values) DBUG_RETURN(-1); @@ -454,10 +455,8 @@ int mysql_prepare_insert(THD *thd, TABLE_LIST *table_list, (setup_fields(thd, 0, insert_table_list, update_fields, 1, 0, 0) || setup_fields(thd, 0, insert_table_list, update_values, 1, 0, 0)))) DBUG_RETURN(-1); - if ((thd->lex->sql_command==SQLCOM_INSERT || - thd->lex->sql_command==SQLCOM_REPLACE) && - find_real_table_in_list(table_list->next, - table_list->db, table_list->real_name)) + if (values && find_real_table_in_list(table_list->next, table_list->db, + table_list->real_name)) { my_error(ER_UPDATE_TABLE_USED, MYF(0), table_list->real_name); DBUG_RETURN(-1); diff --git a/sql/sql_prepare.cc b/sql/sql_prepare.cc index 6d2ddf03b50..20ebc23e240 100644 --- a/sql/sql_prepare.cc +++ b/sql/sql_prepare.cc @@ -908,14 +908,15 @@ static int mysql_test_insert(Prepared_statement *stmt, uint value_count; ulong counter= 0; + table_list->table->insert_values=(byte *)1; // don't allocate insert_values if ((res= mysql_prepare_insert(thd, table_list, insert_table_list, table_list->table, fields, values, update_fields, update_values, duplic))) goto error; - + value_count= values->elements; its.rewind(); - + while ((values= its++)) { counter++; @@ -934,6 +935,7 @@ static int mysql_test_insert(Prepared_statement *stmt, res= 0; error: lex->unit.cleanup(); + table_list->table->insert_values=0; DBUG_RETURN(res); } @@ -1513,28 +1515,6 @@ static bool init_param_array(Prepared_statement *stmt) return 0; } - -/* Init statement before execution */ - -static void cleanup_stmt_for_execute(Prepared_statement *stmt) -{ - THD *thd= stmt->thd; - LEX *lex= stmt->lex; - SELECT_LEX *sl= lex->all_selects_list; - - for (; sl; sl= sl->next_select_in_list()) - { - for (TABLE_LIST *tables= (TABLE_LIST*) sl->table_list.first; - tables; - tables= tables->next) - { - if (tables->table) - tables->table->insert_values= 0; - } - } -} - - /* Given a query string with parameter markers, create a Prepared Statement from it and send PS info back to the client. @@ -1635,7 +1615,6 @@ int mysql_stmt_prepare(THD *thd, char *packet, uint packet_length, if (!error) error= send_prepare_results(stmt, test(name)); - cleanup_stmt_for_execute(stmt); /* restore to WAIT_PRIOR: QUERY_PRIOR is set inside alloc_query */ if (!(specialflag & SPECIAL_NO_PRIOR)) @@ -1926,7 +1905,6 @@ static void execute_stmt(THD *thd, Prepared_statement *stmt, reset_stmt_params(stmt); close_thread_tables(thd); // to close derived tables thd->set_statement(&thd->stmt_backup); - cleanup_stmt_for_execute(stmt); DBUG_VOID_RETURN; } From a4d840a09c09ca0c17bcc6776dda3d8f4ebec07d Mon Sep 17 00:00:00 2001 From: unknown Date: Sat, 25 Dec 2004 19:17:57 -0800 Subject: [PATCH 040/157] subselect.result, subselect.test: Added test cases for bug #7351. item_cmpfunc.cc: Fixed bug #7351: incorrect result for a query with a subquery returning empty set. If in the predicate v IN (SELECT a FROM t WHERE cond) v is null, then the result of the predicate is either INKNOWN or FALSE. It is FALSE if the subquery returns an empty set. item_subselect.cc: Fixed bug #7351: incorrect result for a query with a subquery returning empty set. The problem was due to not a quite legal transformation for 'IN' subqueries. A subquery containing a predicate of the form v IN (SELECT a FROM t WHERE cond) was transformed into EXISTS(SELECT a FROM t WHERE cond AND (a=v OR a IS NULL)). Yet, this transformation is valid only if v is not null. If v is null, then, in the case when (SELECT a FROM t WHERE cond) returns an empty set the value of the predicate is FALSE, otherwise the result of the predicate is INKNOWN. The fix resolves this problem by changing the result of the transformation to EXISTS(SELECT a FROM t WHERE cond AND (v IS NULL OR (a=v OR a IS NULL))) in the case when v is nullable. The new transformation prevents applying the lookup optimization for IN subqueries. To make it still applicable we have to introduce guarded access methods. sql/item_subselect.cc: Fixed bug #7351: incorrect result for a query with a subquery returning empty set. The problem was due to not a quite legal transformation for 'IN' subqueries. A subquery containing a predicate of the form v IN (SELECT a FROM t WHERE cond) was transformed into EXISTS(SELECT a FROM t WHERE cond AND (a=v OR a IS NULL)). Yet, this transformation is valid only if v is not null. If v is null, then, in the case when (SELECT a FROM t WHERE cond) returns an empty set the value of the predicate is FALSE, otherwise the result of the predicate is INKNOWN. The fix resolves this problem by changing the result of the transformation to EXISTS(SELECT a FROM t WHERE cond AND (v IS NULL OR (a=v OR a IS NULL))) in the case when v is nullable. The new transformation prevents applying the lookup optimization for IN subqueries. To make it still applicable we have to introduce guarded access methods. sql/item_cmpfunc.cc: Fixed bug #7351: incorrect result for a query with a subquery returning empty set. If in the predicate v IN (SELECT a FROM t WHERE cond) v is null, then the result of the predicate is either INKNOWN or FALSE. It is FALSE if the subquery returns an empty set. mysql-test/t/subselect.test: Added test cases for bug #7351. mysql-test/r/subselect.result: Added test cases for bug #7351. --- mysql-test/r/subselect.result | 25 ++++++++++++++++++++----- mysql-test/t/subselect.test | 21 ++++++++++++++++++++- sql/item_cmpfunc.cc | 5 +++-- sql/item_subselect.cc | 13 +++++++++---- 4 files changed, 52 insertions(+), 12 deletions(-) diff --git a/mysql-test/r/subselect.result b/mysql-test/r/subselect.result index 0735f133e6f..b264018866c 100644 --- a/mysql-test/r/subselect.result +++ b/mysql-test/r/subselect.result @@ -1425,7 +1425,7 @@ Note 1003 (select test.t1.s1 AS `s1` from test.t1) s1 tttt drop table t1; -create table t1 (s1 char(5), index s1(s1)); +create table t1 (s1 char(5) not null, index s1(s1)); create table t2 (s1 char(5), index s1(s1)); insert into t1 values ('a1'),('a2'),('a3'); insert into t2 values ('a1'),('a2'); @@ -1451,25 +1451,25 @@ a2 1 a3 1 explain extended select s1, s1 NOT IN (SELECT s1 FROM t2) from t1; id select_type table type possible_keys key key_len ref rows Extra -1 PRIMARY t1 index NULL s1 6 NULL 3 Using index +1 PRIMARY t1 index NULL s1 5 NULL 3 Using index 2 DEPENDENT SUBQUERY t2 index_subquery s1 s1 6 func 2 Using index Warnings: Note 1003 select test.t1.s1 AS `s1`,not((test.t1.s1,(((test.t1.s1) in t2 on s1 chicking NULL)))) AS `s1 NOT IN (SELECT s1 FROM t2)` from test.t1 explain extended select s1, s1 = ANY (SELECT s1 FROM t2) from t1; id select_type table type possible_keys key key_len ref rows Extra -1 PRIMARY t1 index NULL s1 6 NULL 3 Using index +1 PRIMARY t1 index NULL s1 5 NULL 3 Using index 2 DEPENDENT SUBQUERY t2 index_subquery s1 s1 6 func 2 Using index Warnings: Note 1003 select test.t1.s1 AS `s1`,(test.t1.s1,(((test.t1.s1) in t2 on s1 chicking NULL))) AS `s1 = ANY (SELECT s1 FROM t2)` from test.t1 explain extended select s1, s1 <> ALL (SELECT s1 FROM t2) from t1; id select_type table type possible_keys key key_len ref rows Extra -1 PRIMARY t1 index NULL s1 6 NULL 3 Using index +1 PRIMARY t1 index NULL s1 5 NULL 3 Using index 2 DEPENDENT SUBQUERY t2 index_subquery s1 s1 6 func 2 Using index Warnings: Note 1003 select test.t1.s1 AS `s1`,not((test.t1.s1,(((test.t1.s1) in t2 on s1 chicking NULL)))) AS `s1 <> ALL (SELECT s1 FROM t2)` from test.t1 explain extended select s1, s1 NOT IN (SELECT s1 FROM t2 WHERE s1 < 'a2') from t1; id select_type table type possible_keys key key_len ref rows Extra -1 PRIMARY t1 index NULL s1 6 NULL 3 Using index +1 PRIMARY t1 index NULL s1 5 NULL 3 Using index 2 DEPENDENT SUBQUERY t2 index_subquery s1 s1 6 func 1 Using index; Using where Warnings: Note 1003 select test.t1.s1 AS `s1`,not((test.t1.s1,(((test.t1.s1) in t2 on s1 chicking NULL where (test.t2.s1 < _latin1'a2'))))) AS `s1 NOT IN (SELECT s1 FROM t2 WHERE s1 < 'a2')` from test.t1 @@ -2125,3 +2125,18 @@ SELECT DISTINCT Continent AS c FROM t1 WHERE Code <> SOME ( SELECT Code FROM t1 c Oceania drop table t1; +CREATE TABLE t1 ( f1 BIGINT ); +INSERT INTO t1 SET f1= NULL; +INSERT INTO t1 SET f1= 1; +CREATE TABLE t2 ( f1 BIGINT ); +SELECT f1 FROM t1 +WHERE f1 <> ALL ( SELECT f1 FROM t2 ); +f1 +NULL +1 +INSERT INTO t2 VALUES (1), (2); +SELECT f1 FROM t1 +WHERE f1 <> ALL ( SELECT f1 FROM t2 WHERE f1 > 2 ); +f1 +NULL +1 diff --git a/mysql-test/t/subselect.test b/mysql-test/t/subselect.test index f59851fa722..6f7daa66897 100644 --- a/mysql-test/t/subselect.test +++ b/mysql-test/t/subselect.test @@ -889,7 +889,7 @@ drop table t1; # # IN optimisation test results # -create table t1 (s1 char(5), index s1(s1)); +create table t1 (s1 char(5) not null, index s1(s1)); create table t2 (s1 char(5), index s1(s1)); insert into t1 values ('a1'),('a2'),('a3'); insert into t2 values ('a1'),('a2'); @@ -1386,3 +1386,22 @@ INSERT INTO t1 VALUES ('UMI','United States Minor Outlying Islands','Oceania','M /*!40000 ALTER TABLE t1 ENABLE KEYS */; SELECT DISTINCT Continent AS c FROM t1 WHERE Code <> SOME ( SELECT Code FROM t1 WHERE Continent = c AND Population < 200); drop table t1; + +# +# Test cases for bug #7351: +# quantified predicate with subquery returning empty result set +# + +CREATE TABLE t1 ( f1 BIGINT ); +INSERT INTO t1 SET f1= NULL; +INSERT INTO t1 SET f1= 1; +CREATE TABLE t2 ( f1 BIGINT ); + +SELECT f1 FROM t1 + WHERE f1 <> ALL ( SELECT f1 FROM t2 ); + +INSERT INTO t2 VALUES (1), (2); + +SELECT f1 FROM t1 + WHERE f1 <> ALL ( SELECT f1 FROM t2 WHERE f1 > 2 ); + diff --git a/sql/item_cmpfunc.cc b/sql/item_cmpfunc.cc index a135f08ae45..3d79c16b5d0 100644 --- a/sql/item_cmpfunc.cc +++ b/sql/item_cmpfunc.cc @@ -636,12 +636,13 @@ longlong Item_in_optimizer::val_int() { DBUG_ASSERT(fixed == 1); cache->store(args[0]); + longlong tmp= args[1]->val_int_result(); if (cache->null_value) { - null_value= 1; + if (tmp) + null_value= 1; return 0; } - longlong tmp= args[1]->val_int_result(); null_value= args[1]->null_value; return tmp; } diff --git a/sql/item_subselect.cc b/sql/item_subselect.cc index 1d0f46fd196..e1a80941a52 100644 --- a/sql/item_subselect.cc +++ b/sql/item_subselect.cc @@ -824,6 +824,8 @@ Item_in_subselect::single_value_transformer(JOIN *join, select_lex->ref_pointer_array, (char *)"", this->full_name())); + if (!abort_on_null && left_expr->maybe_null) + item= new Item_cond_or(new Item_func_isnull(left_expr), item); /* AND and comparison functions can't be changed during fix_fields() we can assign select_lex->having here, and pass 0 as last @@ -869,6 +871,8 @@ Item_in_subselect::single_value_transformer(JOIN *join, select_lex->having_fix_field= 0; item= new Item_cond_or(item, new Item_func_isnull(orig_item)); + if (left_expr->maybe_null) + item= new Item_cond_or(new Item_func_isnull(left_expr), item); } item->name= (char *)in_additional_cond; /* @@ -889,12 +893,13 @@ Item_in_subselect::single_value_transformer(JOIN *join, we can assign select_lex->having here, and pass 0 as last argument (reference) to fix_fields() */ - select_lex->having= - join->having= - func->create(expr, - new Item_null_helper(this, item, + item= func->create(expr, + new Item_null_helper(this, item, (char *)"", (char *)"")); + if (!abort_on_null && left_expr->maybe_null) + item= new Item_cond_or(new Item_func_isnull(left_expr), item); + select_lex->having= join->having= item; select_lex->having_fix_field= 1; if (join->having->fix_fields(thd, join->tables_list, 0)) From a9eef185c64ff73f72a612a3724223318795d64d Mon Sep 17 00:00:00 2001 From: unknown Date: Sun, 26 Dec 2004 02:04:40 -0800 Subject: [PATCH 041/157] subselect.result, subselect.test: Added a couple of new test cases for bug #7351. mysql-test/t/subselect.test: Added a couple of new test cases for bug #7351. mysql-test/r/subselect.result: Added a couple of new test cases for bug #7351. --- mysql-test/r/subselect.result | 12 ++++++++++++ mysql-test/t/subselect.test | 7 +++++++ 2 files changed, 19 insertions(+) diff --git a/mysql-test/r/subselect.result b/mysql-test/r/subselect.result index b264018866c..9c442d8e3cb 100644 --- a/mysql-test/r/subselect.result +++ b/mysql-test/r/subselect.result @@ -2140,3 +2140,15 @@ WHERE f1 <> ALL ( SELECT f1 FROM t2 WHERE f1 > 2 ); f1 NULL 1 +SELECT f1 FROM t1 +WHERE f1 <> ALL ( SELECT f1 FROM t2 WHERE f1 > 2 +UNION +SELECT f1 FROM t2 WHERE f1 > 3); +f1 +NULL +1 +SELECT f1 FROM t1 +WHERE f1 <> ALL ( SELECT SUM(f1) AS sf1 FROM t2 HAVING sf1 > 10000); +f1 +NULL +1 diff --git a/mysql-test/t/subselect.test b/mysql-test/t/subselect.test index 6f7daa66897..6e4c3a5d604 100644 --- a/mysql-test/t/subselect.test +++ b/mysql-test/t/subselect.test @@ -1405,3 +1405,10 @@ INSERT INTO t2 VALUES (1), (2); SELECT f1 FROM t1 WHERE f1 <> ALL ( SELECT f1 FROM t2 WHERE f1 > 2 ); +SELECT f1 FROM t1 + WHERE f1 <> ALL ( SELECT f1 FROM t2 WHERE f1 > 2 + UNION + SELECT f1 FROM t2 WHERE f1 > 3); + +SELECT f1 FROM t1 + WHERE f1 <> ALL ( SELECT SUM(f1) AS sf1 FROM t2 HAVING sf1 > 10000); From 708eebea8aec579f71e086057063b1f8a7695df1 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 27 Dec 2004 04:10:25 +0200 Subject: [PATCH 042/157] Many files: Fix InnoDB critical bug #7496; we scan the InnoDB data dictionary also at a normal mysqld startup, and create the spaces, so that we know the mapping space id -> .ibd file name; fix an infinite loop if DISCARD TABLESPACE coincides with INSERT or some other table operation; fix a potential crash if DISCARD TABLESPACE coincides with a cascaded FOREIGN KEY operation in the same table; do not allow DISCARD TABLESPACE of a referenced table if FOREIGN_KEY_CHECKS=1 innobase/buf/buf0rea.c: Fix InnoDB critical bug #7496; we scan the InnoDB data dictionary also at a normal mysqld startup, and create the spaces, so that we know the mapping space id -> .ibd file name; fix an infinite loop if DISCARD TABLESPACE coincides with INSERT or some other table operation; fix a potential crash if DISCARD TABLESPACE coincides with a cascaded FOREIGN KEY operation in the same table; do not allow DISCARD TABLESPACE of a referenced table if FOREIGN_KEY_CHECKS=1 innobase/include/dict0load.h: Fix InnoDB critical bug #7496; we scan the InnoDB data dictionary also at a normal mysqld startup, and create the spaces, so that we know the mapping space id -> .ibd file name; fix an infinite loop if DISCARD TABLESPACE coincides with INSERT or some other table operation; fix a potential crash if DISCARD TABLESPACE coincides with a cascaded FOREIGN KEY operation in the same table; do not allow DISCARD TABLESPACE of a referenced table if FOREIGN_KEY_CHECKS=1 innobase/include/fil0fil.h: Fix InnoDB critical bug #7496; we scan the InnoDB data dictionary also at a normal mysqld startup, and create the spaces, so that we know the mapping space id -> .ibd file name; fix an infinite loop if DISCARD TABLESPACE coincides with INSERT or some other table operation; fix a potential crash if DISCARD TABLESPACE coincides with a cascaded FOREIGN KEY operation in the same table; do not allow DISCARD TABLESPACE of a referenced table if FOREIGN_KEY_CHECKS=1 innobase/include/row0mysql.h: Fix InnoDB critical bug #7496; we scan the InnoDB data dictionary also at a normal mysqld startup, and create the spaces, so that we know the mapping space id -> .ibd file name; fix an infinite loop if DISCARD TABLESPACE coincides with INSERT or some other table operation; fix a potential crash if DISCARD TABLESPACE coincides with a cascaded FOREIGN KEY operation in the same table; do not allow DISCARD TABLESPACE of a referenced table if FOREIGN_KEY_CHECKS=1 innobase/include/trx0trx.h: Fix InnoDB critical bug #7496; we scan the InnoDB data dictionary also at a normal mysqld startup, and create the spaces, so that we know the mapping space id -> .ibd file name; fix an infinite loop if DISCARD TABLESPACE coincides with INSERT or some other table operation; fix a potential crash if DISCARD TABLESPACE coincides with a cascaded FOREIGN KEY operation in the same table; do not allow DISCARD TABLESPACE of a referenced table if FOREIGN_KEY_CHECKS=1 innobase/dict/dict0load.c: Fix InnoDB critical bug #7496; we scan the InnoDB data dictionary also at a normal mysqld startup, and create the spaces, so that we know the mapping space id -> .ibd file name; fix an infinite loop if DISCARD TABLESPACE coincides with INSERT or some other table operation; fix a potential crash if DISCARD TABLESPACE coincides with a cascaded FOREIGN KEY operation in the same table; do not allow DISCARD TABLESPACE of a referenced table if FOREIGN_KEY_CHECKS=1 innobase/fil/fil0fil.c: Fix InnoDB critical bug #7496; we scan the InnoDB data dictionary also at a normal mysqld startup, and create the spaces, so that we know the mapping space id -> .ibd file name; fix an infinite loop if DISCARD TABLESPACE coincides with INSERT or some other table operation; fix a potential crash if DISCARD TABLESPACE coincides with a cascaded FOREIGN KEY operation in the same table; do not allow DISCARD TABLESPACE of a referenced table if FOREIGN_KEY_CHECKS=1 innobase/row/row0ins.c: Fix InnoDB critical bug #7496; we scan the InnoDB data dictionary also at a normal mysqld startup, and create the spaces, so that we know the mapping space id -> .ibd file name; fix an infinite loop if DISCARD TABLESPACE coincides with INSERT or some other table operation; fix a potential crash if DISCARD TABLESPACE coincides with a cascaded FOREIGN KEY operation in the same table; do not allow DISCARD TABLESPACE of a referenced table if FOREIGN_KEY_CHECKS=1 innobase/row/row0mysql.c: Fix InnoDB critical bug #7496; we scan the InnoDB data dictionary also at a normal mysqld startup, and create the spaces, so that we know the mapping space id -> .ibd file name; fix an infinite loop if DISCARD TABLESPACE coincides with INSERT or some other table operation; fix a potential crash if DISCARD TABLESPACE coincides with a cascaded FOREIGN KEY operation in the same table; do not allow DISCARD TABLESPACE of a referenced table if FOREIGN_KEY_CHECKS=1 innobase/row/row0sel.c: Fix InnoDB critical bug #7496; we scan the InnoDB data dictionary also at a normal mysqld startup, and create the spaces, so that we know the mapping space id -> .ibd file name; fix an infinite loop if DISCARD TABLESPACE coincides with INSERT or some other table operation; fix a potential crash if DISCARD TABLESPACE coincides with a cascaded FOREIGN KEY operation in the same table; do not allow DISCARD TABLESPACE of a referenced table if FOREIGN_KEY_CHECKS=1 innobase/srv/srv0start.c: Fix InnoDB critical bug #7496; we scan the InnoDB data dictionary also at a normal mysqld startup, and create the spaces, so that we know the mapping space id -> .ibd file name; fix an infinite loop if DISCARD TABLESPACE coincides with INSERT or some other table operation; fix a potential crash if DISCARD TABLESPACE coincides with a cascaded FOREIGN KEY operation in the same table; do not allow DISCARD TABLESPACE of a referenced table if FOREIGN_KEY_CHECKS=1 innobase/trx/trx0trx.c: Fix InnoDB critical bug #7496; we scan the InnoDB data dictionary also at a normal mysqld startup, and create the spaces, so that we know the mapping space id -> .ibd file name; fix an infinite loop if DISCARD TABLESPACE coincides with INSERT or some other table operation; fix a potential crash if DISCARD TABLESPACE coincides with a cascaded FOREIGN KEY operation in the same table; do not allow DISCARD TABLESPACE of a referenced table if FOREIGN_KEY_CHECKS=1 sql/ha_innodb.cc: Fix InnoDB critical bug #7496; we scan the InnoDB data dictionary also at a normal mysqld startup, and create the spaces, so that we know the mapping space id -> .ibd file name; fix an infinite loop if DISCARD TABLESPACE coincides with INSERT or some other table operation; fix a potential crash if DISCARD TABLESPACE coincides with a cascaded FOREIGN KEY operation in the same table; do not allow DISCARD TABLESPACE of a referenced table if FOREIGN_KEY_CHECKS=1 --- innobase/buf/buf0rea.c | 2 +- innobase/dict/dict0load.c | 30 ++++++-- innobase/fil/fil0fil.c | 93 +++++++++++++++++++---- innobase/include/dict0load.h | 10 ++- innobase/include/fil0fil.h | 28 ++++--- innobase/include/row0mysql.h | 20 +---- innobase/include/trx0trx.h | 13 ++++ innobase/row/row0ins.c | 4 +- innobase/row/row0mysql.c | 141 +++++++++++++++++++++++++++++------ innobase/row/row0sel.c | 18 ++++- innobase/srv/srv0start.c | 43 ++++++++--- innobase/trx/trx0trx.c | 8 ++ sql/ha_innodb.cc | 15 +--- 13 files changed, 321 insertions(+), 104 deletions(-) diff --git a/innobase/buf/buf0rea.c b/innobase/buf/buf0rea.c index 11107d777c8..58287d37387 100644 --- a/innobase/buf/buf0rea.c +++ b/innobase/buf/buf0rea.c @@ -326,7 +326,7 @@ buf_read_page( if (err == DB_TABLESPACE_DELETED) { ut_print_timestamp(stderr); fprintf(stderr, -" InnoDB: error: trying to access tablespace %lu page no. %lu,\n" +" InnoDB: Error: trying to access tablespace %lu page no. %lu,\n" "InnoDB: but the tablespace does not exist or is just being dropped.\n", (ulong) space, (ulong) offset); } diff --git a/innobase/dict/dict0load.c b/innobase/dict/dict0load.c index 7890ebd2b47..61facc8818d 100644 --- a/innobase/dict/dict0load.c +++ b/innobase/dict/dict0load.c @@ -205,12 +205,14 @@ loop: In a crash recovery we already have all the tablespace objects created. This function compares the space id information in the InnoDB data dictionary to what we already read with fil_load_single_table_tablespaces(). -In a normal startup we just scan the biggest space id, and store it to -fil_system. */ + +In a normal startup, we create the tablespace objects for every table in +InnoDB's data dictionary, if the corresponding .ibd file exists. +We also scan the biggest space id, and store it to fil_system. */ void -dict_check_tablespaces_or_store_max_id( -/*===================================*/ +dict_check_tablespaces_and_store_max_id( +/*====================================*/ ibool in_crash_recovery) /* in: are we doing a crash recovery */ { dict_table_t* sys_tables; @@ -280,6 +282,14 @@ loop: FALSE, TRUE, TRUE); } + if (space_id != 0 && !in_crash_recovery) { + /* It is a normal database startup: create the space + object and check that the .ibd file exists. */ + + fil_open_single_table_tablespace(FALSE, space_id, + name); + } + mem_free(name); if (space_id > max_space_id) { @@ -796,8 +806,18 @@ dict_load_table( /* Ok; (if we did a crash recovery then the tablespace can already be in the memory cache) */ } else { + /* In >= 4.1.9, InnoDB scans the data dictionary also + at a normal mysqld startup. It is an error if the + space object does not exist in memory. */ + + ut_print_timestamp(stderr); + fprintf(stderr, +" InnoDB: error: space object of table %s,\n" +"InnoDB: space id %lu did not exist in memory. Retrying an open.\n", + name, (ulong)space); /* Try to open the tablespace */ - if (!fil_open_single_table_tablespace(space, name)) { + if (!fil_open_single_table_tablespace(TRUE, + space, name)) { /* We failed to find a sensible tablespace file */ diff --git a/innobase/fil/fil0fil.c b/innobase/fil/fil0fil.c index de528355182..89648b3feca 100644 --- a/innobase/fil/fil0fil.c +++ b/innobase/fil/fil0fil.c @@ -466,6 +466,10 @@ fil_node_open_file( ulint size_low; ulint size_high; ibool ret; + byte* buf2; + byte* page; + ibool success; + ulint space_id; #ifdef UNIV_SYNC_DEBUG ut_ad(mutex_own(&(system->mutex))); @@ -494,6 +498,8 @@ fil_node_open_file( system->n_open++; if (node->size == 0) { + ut_a(space->purpose != FIL_LOG); + os_file_get_size(node->handle, &size_low, &size_high); size_bytes = (((ib_longlong)size_high) << 32) @@ -507,6 +513,46 @@ fil_node_open_file( ut_a(space->id != 0); + if (size_bytes < FIL_IBD_FILE_INITIAL_SIZE * UNIV_PAGE_SIZE) { + fprintf(stderr, +"InnoDB: Error: the size of single-table tablespace file %s\n" +"InnoDB: is only %lu %lu, should be at least %lu!", node->name, + (ulong) size_high, + (ulong) size_low, (ulong) (4 * UNIV_PAGE_SIZE)); + + ut_a(0); + } + + /* Read the first page of the tablespace */ + + buf2 = ut_malloc(2 * UNIV_PAGE_SIZE); + /* Align the memory for file i/o if we might have O_DIRECT + set */ + page = ut_align(buf2, UNIV_PAGE_SIZE); + + success = os_file_read(node->handle, page, 0, 0, + UNIV_PAGE_SIZE); + space_id = fsp_header_get_space_id(page); + + ut_free(buf2); + + if (space_id == ULINT_UNDEFINED || space_id == 0) { + fprintf(stderr, +"InnoDB: Error: tablespace id %lu in file %s is not sensible\n", + (ulong) space_id, + node->name); + + ut_a(0); + } + + if (space_id != space->id) { + fprintf(stderr, +"InnoDB: Error: tablespace id is %lu in the data dictionary\n" +"InnoDB: but in file %s it is %lu!\n", space->id, node->name, space_id); + + ut_a(0); + } + if (size_bytes >= FSP_EXTENT_SIZE * UNIV_PAGE_SIZE) { node->size = (ulint) ((size_bytes / (1024 * 1024)) * ((1024 * 1024) / UNIV_PAGE_SIZE)); @@ -2487,21 +2533,29 @@ func_exit: } /************************************************************************ -Tries to open a single-table tablespace and checks the space id is right in -it. If does not succeed, prints an error message to the .err log. This -function is used to open the tablespace when we load a table definition -to the dictionary cache. NOTE that we assume this operation is used under the -protection of the dictionary mutex, so that two users cannot race here. This -operation does not leave the file associated with the tablespace open, but -closes it after we have looked at the space id in it. */ +Tries to open a single-table tablespace and optionally checks the space id is +right in it. If does not succeed, prints an error message to the .err log. This +function is used to open a tablespace when we start up mysqld, and also in +IMPORT TABLESPACE. +NOTE that we assume this operation is used either at the database startup +or under the protection of the dictionary mutex, so that two users cannot +race here. This operation does not leave the file associated with the +tablespace open, but closes it after we have looked at the space id in it. */ ibool fil_open_single_table_tablespace( /*=============================*/ - /* out: TRUE if success */ - ulint id, /* in: space id */ - const char* name) /* in: table name in the - databasename/tablename format */ + /* out: TRUE if success */ + ibool check_space_id, /* in: should we check that the space + id in the file is right; we assume + that this function runs much faster + if no check is made, since accessing + the file inode probably is much + faster (the OS caches them) than + accessing the first page of the file */ + ulint id, /* in: space id */ + const char* name) /* in: table name in the + databasename/tablename format */ { os_file_t file; char* filepath; @@ -2540,6 +2594,12 @@ fil_open_single_table_tablespace( return(FALSE); } + if (!check_space_id) { + space_id = id; + + goto skip_check; + } + /* Read the first page of the tablespace */ buf2 = ut_malloc(2 * UNIV_PAGE_SIZE); @@ -2552,6 +2612,8 @@ fil_open_single_table_tablespace( space_id = fsp_header_get_space_id(page); + ut_free(buf2); + if (space_id != id) { ut_print_timestamp(stderr); @@ -2572,6 +2634,7 @@ fil_open_single_table_tablespace( goto func_exit; } +skip_check: success = fil_space_create(filepath, space_id, FIL_TABLESPACE); if (!success) { @@ -2584,7 +2647,6 @@ fil_open_single_table_tablespace( fil_node_create(filepath, 0, space_id, FALSE); func_exit: os_file_close(file); - ut_free(buf2); mem_free(filepath); return(ret); @@ -2651,7 +2713,7 @@ fil_load_single_table_tablespace( fprintf(stderr, "InnoDB: Error: could not open single-table tablespace file\n" "InnoDB: %s!\n" -"InnoDB: We do not continue crash recovery, because the table will become\n" +"InnoDB: We do not continue the crash recovery, because the table may become\n" "InnoDB: corrupt if we cannot apply the log records in the InnoDB log to it.\n" "InnoDB: To fix the problem and start mysqld:\n" "InnoDB: 1) If there is a permission problem in the file and mysqld cannot\n" @@ -2822,8 +2884,9 @@ fil_load_single_table_tablespace( goto func_exit; } - /* We do not measure the size of the file, that is why we pass the 0 - below */ + /* We do not use the size information we have about the file, because + the rounding formulat for extents and pages is somewhat complex; we + let fil_node_open() do that task. */ fil_node_create(filepath, 0, space_id, FALSE); func_exit: diff --git a/innobase/include/dict0load.h b/innobase/include/dict0load.h index d4dccb33373..1f0a5407140 100644 --- a/innobase/include/dict0load.h +++ b/innobase/include/dict0load.h @@ -18,12 +18,14 @@ Created 4/24/1996 Heikki Tuuri In a crash recovery we already have all the tablespace objects created. This function compares the space id information in the InnoDB data dictionary to what we already read with fil_load_single_table_tablespaces(). -In a normal startup we just scan the biggest space id, and store it to -fil_system. */ + +In a normal startup, we create the tablespace objects for every table in +InnoDB's data dictionary, if the corresponding .ibd file exists. +We also scan the biggest space id, and store it to fil_system. */ void -dict_check_tablespaces_or_store_max_id( -/*===================================*/ +dict_check_tablespaces_and_store_max_id( +/*====================================*/ ibool in_crash_recovery); /* in: are we doing a crash recovery */ /************************************************************************ Finds the first table name in the given database. */ diff --git a/innobase/include/fil0fil.h b/innobase/include/fil0fil.h index 43327aab9d2..c1a127aadca 100644 --- a/innobase/include/fil0fil.h +++ b/innobase/include/fil0fil.h @@ -364,19 +364,29 @@ fil_create_new_single_table_tablespace( tablespace file in pages, must be >= FIL_IBD_FILE_INITIAL_SIZE */ /************************************************************************ -Tries to open a single-table tablespace and checks the space id is right in -it. If does not succeed, prints an error message to the .err log. This -function is used to open the tablespace when we load a table definition -to the dictionary cache. NOTE that we assume this operation is used under the -protection of the dictionary mutex, so that two users cannot race here. */ +Tries to open a single-table tablespace and optionally checks the space id is +right in it. If does not succeed, prints an error message to the .err log. This +function is used to open a tablespace when we start up mysqld, and also in +IMPORT TABLESPACE. +NOTE that we assume this operation is used either at the database startup +or under the protection of the dictionary mutex, so that two users cannot +race here. This operation does not leave the file associated with the +tablespace open, but closes it after we have looked at the space id in it. */ ibool fil_open_single_table_tablespace( /*=============================*/ - /* out: TRUE if success */ - ulint id, /* in: space id */ - const char* name); /* in: table name in the - databasename/tablename format */ + /* out: TRUE if success */ + ibool check_space_id, /* in: should we check that the space + id in the file is right; we assume + that this function runs much faster + if no check is made, since accessing + the file inode probably is much + faster (the OS caches them) than + accessing the first page of the file */ + ulint id, /* in: space id */ + const char* name); /* in: table name in the + databasename/tablename format */ /************************************************************************ It is possible, though very improbable, that the lsn's in the tablespace to be imported have risen above the current system lsn, if a lengthy purge, ibuf diff --git a/innobase/include/row0mysql.h b/innobase/include/row0mysql.h index f47ce74ce37..19007069e28 100644 --- a/innobase/include/row0mysql.h +++ b/innobase/include/row0mysql.h @@ -367,25 +367,7 @@ row_drop_table_for_mysql( /************************************************************************* Discards the tablespace of a table which stored in an .ibd file. Discarding means that this function deletes the .ibd file and assigns a new table id for -the table. Also the flag table->ibd_file_missing is set TRUE. - -How do we prevent crashes caused by ongoing operations on the table? Old -operations could try to access non-existent pages. - -1) SQL queries, INSERT, SELECT, ...: we must get an exclusive MySQL table lock -on the table before we can do DISCARD TABLESPACE. Then there are no running -queries on the table. -2) Purge and rollback: we assign a new table id for the table. Since purge and -rollback look for the table based on the table id, they see the table as -'dropped' and discard their operations. -3) Insert buffer: we remove all entries for the tablespace in the insert -buffer tree; as long as the tablespace mem object does not exist, ongoing -insert buffer page merges are discarded in buf0rea.c. If we recreate the -tablespace mem object with IMPORT TABLESPACE later, then the tablespace will -have the same id, but the tablespace_version field in the mem object is -different, and ongoing old insert buffer page merges get discarded. -4) Linear readahead and random readahead: we use the same method as in 3) to -discard ongoing operations. */ +the table. Also the flag table->ibd_file_missing is set TRUE. */ int row_discard_tablespace_for_mysql( diff --git a/innobase/include/trx0trx.h b/innobase/include/trx0trx.h index 7eb91048684..8336e05bdb0 100644 --- a/innobase/include/trx0trx.h +++ b/innobase/include/trx0trx.h @@ -378,6 +378,19 @@ struct trx_struct{ replication slave, this is the position in the log file up to which replication has processed */ + /* A MySQL variable mysql_thd->synchronous_repl tells if we have + to use synchronous replication. See ha_innodb.cc. */ + char* repl_wait_binlog_name;/* NULL, or if synchronous MySQL + replication is used, the binlog name + up to which we must communicate the + binlog to the slave, before returning + from a commit; this is the same as + mysql_log_file_name, but we allocate + and copy the name to a separate buffer + here */ + ib_longlong repl_wait_binlog_pos;/* see above at + repl_wait_binlog_name */ + os_thread_id_t mysql_thread_id;/* id of the MySQL thread associated with this transaction object */ ulint mysql_process_no;/* since in Linux, 'top' reports diff --git a/innobase/row/row0ins.c b/innobase/row/row0ins.c index 6d1482b6720..f596bd3d473 100644 --- a/innobase/row/row0ins.c +++ b/innobase/row/row0ins.c @@ -1173,7 +1173,7 @@ run_again: check_index = foreign->foreign_index; } - if (check_table == NULL) { + if (check_table == NULL || check_table->ibd_file_missing) { if (check_ref) { FILE* ef = dict_foreign_err_file; mutex_enter(&dict_foreign_err_mutex); @@ -1192,7 +1192,7 @@ run_again: dtuple_print(ef, entry); fputs("\nBut the parent table ", ef); ut_print_name(ef, trx, foreign->referenced_table_name); - fputs(" does not currently exist!\n", ef); + fputs("\nor its .ind file does not currently exist!\n", ef); mutex_exit(&dict_foreign_err_mutex); return(DB_NO_REFERENCED_ROW); diff --git a/innobase/row/row0mysql.c b/innobase/row/row0mysql.c index dec2b19559c..3be3d3e6396 100644 --- a/innobase/row/row0mysql.c +++ b/innobase/row/row0mysql.c @@ -869,7 +869,21 @@ row_insert_for_mysql( ut_ad(trx); ut_ad(trx->mysql_thread_id == os_thread_get_curr_id()); - + + if (prebuilt->table->ibd_file_missing) { + ut_print_timestamp(stderr); + fprintf(stderr, " InnoDB: Error:\n" +"InnoDB: MySQL is trying to use a table handle but the .ibd file for\n" +"InnoDB: table %s does not exist.\n" +"InnoDB: Have you deleted the .ibd file from the database directory under\n" +"InnoDB: the MySQL datadir, or have you used DISCARD TABLESPACE?\n" +"InnoDB: Look from\n" +"http://dev.mysql.com/doc/mysql/en/InnoDB_troubleshooting_datadict.html\n" +"InnoDB: how you can resolve the problem.\n", + prebuilt->table->name); + return(DB_ERROR); + } + if (prebuilt->magic_n != ROW_PREBUILT_ALLOCATED) { fprintf(stderr, "InnoDB: Error: trying to free a corrupt\n" @@ -1087,6 +1101,20 @@ row_update_for_mysql( ut_ad(trx->mysql_thread_id == os_thread_get_curr_id()); UT_NOT_USED(mysql_rec); + if (prebuilt->table->ibd_file_missing) { + ut_print_timestamp(stderr); + fprintf(stderr, " InnoDB: Error:\n" +"InnoDB: MySQL is trying to use a table handle but the .ibd file for\n" +"InnoDB: table %s does not exist.\n" +"InnoDB: Have you deleted the .ibd file from the database directory under\n" +"InnoDB: the MySQL datadir, or have you used DISCARD TABLESPACE?\n" +"InnoDB: Look from\n" +"http://dev.mysql.com/doc/mysql/en/InnoDB_troubleshooting_datadict.html\n" +"InnoDB: how you can resolve the problem.\n", + prebuilt->table->name); + return(DB_ERROR); + } + if (prebuilt->magic_n != ROW_PREBUILT_ALLOCATED) { fprintf(stderr, "InnoDB: Error: trying to free a corrupt\n" @@ -1966,9 +1994,25 @@ row_add_table_to_background_drop_list( /************************************************************************* Discards the tablespace of a table which stored in an .ibd file. Discarding means that this function deletes the .ibd file and assigns a new table id for -the table. Also the flag table->ibd_file_missing is set TRUE. +the table. Also the flag table->ibd_file_missing is set TRUE. */ -How do we prevent crashes caused by ongoing operations on the table? Old +int +row_discard_tablespace_for_mysql( +/*=============================*/ + /* out: error code or DB_SUCCESS */ + const char* name, /* in: table name */ + trx_t* trx) /* in: transaction handle */ +{ + dict_foreign_t* foreign; + dulint new_id; + dict_table_t* table; + que_thr_t* thr; + que_t* graph = NULL; + ibool success; + ulint err; + char* buf; + +/* How do we prevent crashes caused by ongoing operations on the table? Old operations could try to access non-existent pages. 1) SQL queries, INSERT, SELECT, ...: we must get an exclusive MySQL table lock @@ -1984,22 +2028,9 @@ tablespace mem object with IMPORT TABLESPACE later, then the tablespace will have the same id, but the tablespace_version field in the mem object is different, and ongoing old insert buffer page merges get discarded. 4) Linear readahead and random readahead: we use the same method as in 3) to -discard ongoing operations. */ - -int -row_discard_tablespace_for_mysql( -/*=============================*/ - /* out: error code or DB_SUCCESS */ - const char* name, /* in: table name */ - trx_t* trx) /* in: transaction handle */ -{ - dulint new_id; - dict_table_t* table; - que_thr_t* thr; - que_t* graph = NULL; - ibool success; - ulint err; - char* buf; +discard ongoing operations. +5) FOREIGN KEY operations: if table->n_foreign_key_checks_running > 0, we +do not allow the discard. We also reserve the data dictionary latch. */ static const char discard_tablespace_proc1[] = "PROCEDURE DISCARD_TABLESPACE_PROC () IS\n" @@ -2060,6 +2091,54 @@ row_discard_tablespace_for_mysql( goto funct_exit; } + if (table->n_foreign_key_checks_running > 0) { + + ut_print_timestamp(stderr); + fputs(" InnoDB: You are trying to DISCARD table ", stderr); + ut_print_name(stderr, trx, table->name); + fputs("\n" + "InnoDB: though there is a foreign key check running on it.\n" + "InnoDB: Cannot discard the table.\n", + stderr); + + err = DB_ERROR; + + goto funct_exit; + } + + /* Check if the table is referenced by foreign key constraints from + some other table (not the table itself) */ + + foreign = UT_LIST_GET_FIRST(table->referenced_list); + + while (foreign && foreign->foreign_table == table) { + foreign = UT_LIST_GET_NEXT(referenced_list, foreign); + } + + if (foreign && trx->check_foreigns) { + + FILE* ef = dict_foreign_err_file; + + /* We only allow discarding a referenced table if + FOREIGN_KEY_CHECKS is set to 0 */ + + err = DB_CANNOT_DROP_CONSTRAINT; + + mutex_enter(&dict_foreign_err_mutex); + rewind(ef); + ut_print_timestamp(ef); + + fputs(" Cannot drop table ", ef); + ut_print_name(ef, trx, name); + fputs("\n" + "because it is referenced by ", ef); + ut_print_name(ef, trx, foreign->foreign_table_name); + putc('\n', ef); + mutex_exit(&dict_foreign_err_mutex); + + goto funct_exit; + } + new_id = dict_hdr_get_new_id(DICT_HDR_TABLE_ID); buf = mem_alloc((sizeof discard_tablespace_proc1) + @@ -2077,6 +2156,10 @@ row_discard_tablespace_for_mysql( ut_a(graph); + /* Remove any locks there are on the table or its records */ + + lock_reset_all_on_table(table); + graph->trx = trx; trx->graph = NULL; @@ -2227,8 +2310,8 @@ row_import_tablespace_for_mysql( ibuf_delete_for_discarded_space(table->space); - success = fil_open_single_table_tablespace(table->space, table->name); - + success = fil_open_single_table_tablespace(TRUE, table->space, + table->name); if (success) { table->ibd_file_missing = FALSE; table->tablespace_discarded = FALSE; @@ -2236,7 +2319,7 @@ row_import_tablespace_for_mysql( if (table->ibd_file_missing) { ut_print_timestamp(stderr); fputs( -" InnoDB: cannot find of open in the database directory the .ibd file of\n" +" InnoDB: cannot find or open in the database directory the .ibd file of\n" "InnoDB: table ", stderr); ut_print_name(stderr, trx, name); fputs("\n" @@ -3284,6 +3367,20 @@ row_check_table_for_mysql( ulint ret = DB_SUCCESS; ulint old_isolation_level; + if (prebuilt->table->ibd_file_missing) { + ut_print_timestamp(stderr); + fprintf(stderr, " InnoDB: Error:\n" +"InnoDB: MySQL is trying to use a table handle but the .ibd file for\n" +"InnoDB: table %s does not exist.\n" +"InnoDB: Have you deleted the .ibd file from the database directory under\n" +"InnoDB: the MySQL datadir, or have you used DISCARD TABLESPACE?\n" +"InnoDB: Look from\n" +"http://dev.mysql.com/doc/mysql/en/InnoDB_troubleshooting_datadict.html\n" +"InnoDB: how you can resolve the problem.\n", + prebuilt->table->name); + return(DB_ERROR); + } + prebuilt->trx->op_info = "checking table"; old_isolation_level = prebuilt->trx->isolation_level; diff --git a/innobase/row/row0sel.c b/innobase/row/row0sel.c index ce76f48e7a7..8cdcdd569ac 100644 --- a/innobase/row/row0sel.c +++ b/innobase/row/row0sel.c @@ -2776,7 +2776,7 @@ row_search_for_mysql( /* out: DB_SUCCESS, DB_RECORD_NOT_FOUND, DB_END_OF_INDEX, DB_DEADLOCK, - DB_LOCK_TABLE_FULL, + DB_LOCK_TABLE_FULL, DB_CORRUPTION, or DB_TOO_BIG_RECORD */ byte* buf, /* in/out: buffer for the fetched row in the MySQL format */ @@ -2828,7 +2828,21 @@ row_search_for_mysql( ut_ad(index && pcur && search_tuple); ut_ad(trx->mysql_thread_id == os_thread_get_curr_id()); - + + if (prebuilt->table->ibd_file_missing) { + ut_print_timestamp(stderr); + fprintf(stderr, " InnoDB: Error:\n" +"InnoDB: MySQL is trying to use a table handle but the .ibd file for\n" +"InnoDB: table %s does not exist.\n" +"InnoDB: Have you deleted the .ibd file from the database directory under\n" +"InnoDB: the MySQL datadir, or have you used DISCARD TABLESPACE?\n" +"InnoDB: Look from\n" +"http://dev.mysql.com/doc/mysql/en/InnoDB_troubleshooting_datadict.html\n" +"InnoDB: how you can resolve the problem.\n", + prebuilt->table->name); + return(DB_ERROR); + } + if (prebuilt->magic_n != ROW_PREBUILT_ALLOCATED) { fprintf(stderr, "InnoDB: Error: trying to free a corrupt\n" diff --git a/innobase/srv/srv0start.c b/innobase/srv/srv0start.c index 69341a1d7d1..c91db1f0dcc 100644 --- a/innobase/srv/srv0start.c +++ b/innobase/srv/srv0start.c @@ -1378,14 +1378,39 @@ NetWare. */ return(DB_ERROR); } - /* Since ibuf init is in dict_boot, and ibuf is needed - in any disk i/o, first call dict_boot */ + /* Since the insert buffer init is in dict_boot, and the + insert buffer is needed in any disk i/o, first we call + dict_boot(). Note that trx_sys_init_at_db_start() only needs + to access space 0, and the insert buffer at this stage already + works for space 0. */ dict_boot(); trx_sys_init_at_db_start(); - /* The following needs trx lists which are initialized in - trx_sys_init_at_db_start */ + if (srv_force_recovery < SRV_FORCE_NO_IBUF_MERGE) { + /* The following call is necessary for the insert + buffer to work with multiple tablespaces. We must + know the mapping between space id's and .ibd file + names. + + In a crash recovery, we check that the info in data + dictionary is consistent with what we already know + about space id's from the call of + fil_load_single_table_tablespaces(). + + In a normal startup, we create the space objects for + every table in the InnoDB data dictionary that has + an .ibd file. + + We also determine the maximum tablespace id used. + + TODO: We may have incomplete transactions in the + data dictionary tables. Does that harm the scanning of + the data dictionary below? */ + + dict_check_tablespaces_and_store_max_id( + recv_needed_recovery); + } srv_startup_is_before_trx_rollback_phase = FALSE; @@ -1393,6 +1418,9 @@ NetWare. */ system */ fsp_header_get_free_limit(0); + /* recv_recovery_from_checkpoint_finish needs trx lists which + are initialized in trx_sys_init_at_db_start(). */ + recv_recovery_from_checkpoint_finish(); } @@ -1433,13 +1461,6 @@ NetWare. */ } } #endif /* UNIV_LOG_ARCHIVE */ - if (!create_new_db && srv_force_recovery == 0) { - /* After a crash recovery we only check that the info in data - dictionary is consistent with what we already know about space - id's from the call of fil_load_single_table_tablespaces(). */ - - dict_check_tablespaces_or_store_max_id(recv_needed_recovery); - } if (srv_measure_contention) { /* os_thread_create(&test_measure_cont, NULL, thread_ids + diff --git a/innobase/trx/trx0trx.c b/innobase/trx/trx0trx.c index f7497ac4090..af4f1979858 100644 --- a/innobase/trx/trx0trx.c +++ b/innobase/trx/trx0trx.c @@ -109,6 +109,9 @@ trx_create( trx->mysql_log_offset = 0; trx->mysql_master_log_file_name = ""; trx->mysql_master_log_pos = 0; + + trx->repl_wait_binlog_name = NULL; + trx->repl_wait_binlog_pos = 0; mutex_create(&(trx->undo_mutex)); mutex_set_level(&(trx->undo_mutex), SYNC_TRX_UNDO); @@ -271,6 +274,11 @@ trx_free( trx_undo_arr_free(trx->undo_no_arr); } + if (trx->repl_wait_binlog_name != NULL) { + + mem_free(trx->repl_wait_binlog_name); + } + ut_a(UT_LIST_GET_LEN(trx->signals) == 0); ut_a(UT_LIST_GET_LEN(trx->reply_signals) == 0); diff --git a/sql/ha_innodb.cc b/sql/ha_innodb.cc index 552f2676bdd..b8ac40cee92 100644 --- a/sql/ha_innodb.cc +++ b/sql/ha_innodb.cc @@ -4977,7 +4977,7 @@ the SQL statement in case of an error. */ int ha_innobase::external_lock( /*=======================*/ - /* out: 0 */ + /* out: 0 or HA_ERR_CRASHED */ THD* thd, /* in: handle to the user thread */ int lock_type) /* in: lock type */ { @@ -4989,19 +4989,6 @@ ha_innobase::external_lock( update_thd(thd); - if (prebuilt->table->ibd_file_missing && !current_thd->tablespace_op) { - ut_print_timestamp(stderr); - fprintf(stderr, " InnoDB error:\n" -"MySQL is trying to use a table handle but the .ibd file for\n" -"table %s does not exist.\n" -"Have you deleted the .ibd file from the database directory under\n" -"the MySQL datadir, or have you used DISCARD TABLESPACE?\n" -"Look from section 15.1 of http://www.innodb.com/ibman.html\n" -"how you can resolve the problem.\n", - prebuilt->table->name); - DBUG_RETURN(HA_ERR_CRASHED); - } - trx = prebuilt->trx; prebuilt->sql_stat_start = TRUE; From 1b7282e3e1eba03d87d0e09372867abcdb7ce842 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 27 Dec 2004 04:27:09 +0200 Subject: [PATCH 043/157] ha_innodb.cc, row0ins.c, fil0fil.c: Correct typo innobase/fil/fil0fil.c: Correct typo innobase/row/row0ins.c: Correct typo sql/ha_innodb.cc: Correct typo --- innobase/fil/fil0fil.c | 2 +- innobase/row/row0ins.c | 2 +- sql/ha_innodb.cc | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/innobase/fil/fil0fil.c b/innobase/fil/fil0fil.c index 89648b3feca..d1a083fcd66 100644 --- a/innobase/fil/fil0fil.c +++ b/innobase/fil/fil0fil.c @@ -2885,7 +2885,7 @@ fil_load_single_table_tablespace( } /* We do not use the size information we have about the file, because - the rounding formulat for extents and pages is somewhat complex; we + the rounding formula for extents and pages is somewhat complex; we let fil_node_open() do that task. */ fil_node_create(filepath, 0, space_id, FALSE); diff --git a/innobase/row/row0ins.c b/innobase/row/row0ins.c index f596bd3d473..c82231ef5f6 100644 --- a/innobase/row/row0ins.c +++ b/innobase/row/row0ins.c @@ -1192,7 +1192,7 @@ run_again: dtuple_print(ef, entry); fputs("\nBut the parent table ", ef); ut_print_name(ef, trx, foreign->referenced_table_name); - fputs("\nor its .ind file does not currently exist!\n", ef); + fputs("\nor its .ibd file does not currently exist!\n", ef); mutex_exit(&dict_foreign_err_mutex); return(DB_NO_REFERENCED_ROW); diff --git a/sql/ha_innodb.cc b/sql/ha_innodb.cc index b8ac40cee92..7b6fb31acc6 100644 --- a/sql/ha_innodb.cc +++ b/sql/ha_innodb.cc @@ -4977,7 +4977,7 @@ the SQL statement in case of an error. */ int ha_innobase::external_lock( /*=======================*/ - /* out: 0 or HA_ERR_CRASHED */ + /* out: 0 */ THD* thd, /* in: handle to the user thread */ int lock_type) /* in: lock type */ { From 92655f14d2d439a620cf5de5f56e38befd702818 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 27 Dec 2004 04:32:37 +0200 Subject: [PATCH 044/157] row0mysql.c: Fix typo innobase/row/row0mysql.c: Fix typo --- innobase/row/row0mysql.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/innobase/row/row0mysql.c b/innobase/row/row0mysql.c index 3be3d3e6396..e887079e025 100644 --- a/innobase/row/row0mysql.c +++ b/innobase/row/row0mysql.c @@ -2128,7 +2128,7 @@ do not allow the discard. We also reserve the data dictionary latch. */ rewind(ef); ut_print_timestamp(ef); - fputs(" Cannot drop table ", ef); + fputs(" Cannot DISCARD table ", ef); ut_print_name(ef, trx, name); fputs("\n" "because it is referenced by ", ef); From 562df4ee0a89e7fa1bf2cd98298a0dc3f804b8b0 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 27 Dec 2004 04:40:10 +0200 Subject: [PATCH 045/157] ha_innodb.cc: Return a sensible error code from DISCARD TABLESPACE, if it fails because the table is referenced by a FOREIGN KEY sql/ha_innodb.cc: Return a sensible error code from DISCARD TABLESPACE, if it fails because the table is referenced by a FOREIGN KEY --- sql/ha_innodb.cc | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/sql/ha_innodb.cc b/sql/ha_innodb.cc index 7b6fb31acc6..14b143ca04b 100644 --- a/sql/ha_innodb.cc +++ b/sql/ha_innodb.cc @@ -278,15 +278,15 @@ convert_error_code_to_mysql( } else if (error == (int) DB_LOCK_WAIT_TIMEOUT) { - /* Since we rolled back the whole transaction, we must - tell it also to MySQL so that MySQL knows to empty the - cached binlog for this transaction */ + /* Since we rolled back the whole transaction, we must + tell it also to MySQL so that MySQL knows to empty the + cached binlog for this transaction */ - if (thd) { - ha_rollback(thd); - } + if (thd) { + ha_rollback(thd); + } - return(HA_ERR_LOCK_WAIT_TIMEOUT); + return(HA_ERR_LOCK_WAIT_TIMEOUT); } else if (error == (int) DB_NO_REFERENCED_ROW) { @@ -3954,11 +3954,9 @@ ha_innobase::discard_or_import_tablespace( err = row_import_tablespace_for_mysql(dict_table->name, trx); } - if (err == DB_SUCCESS) { - DBUG_RETURN(0); - } + err = convert_error_code_to_mysql(err, NULL); - DBUG_RETURN(-1); + DBUG_RETURN(err); } /********************************************************************* From 2d9eeb04f19a9ed94a22e30a786be333abbeba6b Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 27 Dec 2004 05:03:11 +0200 Subject: [PATCH 046/157] sql_table.cc: Return a sensible error code from DISCARD TABLESPACE, if it fails because the table is referenced by a FOREIGN KEY sql/sql_table.cc: Return a sensible error code from DISCARD TABLESPACE, if it fails because the table is referenced by a FOREIGN KEY --- sql/sql_table.cc | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/sql/sql_table.cc b/sql/sql_table.cc index c798760cfa8..43f466282b1 100644 --- a/sql/sql_table.cc +++ b/sql/sql_table.cc @@ -2465,7 +2465,11 @@ err: send_ok(thd); DBUG_RETURN(0); } - DBUG_RETURN(error); + + if (error == HA_ERR_ROW_IS_REFERENCED) + my_error(ER_ROW_IS_REFERENCED, MYF(0)); + + DBUG_RETURN(-1); } From b4c61152d3e30d9dca00d702053264bc4a610c73 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 27 Dec 2004 14:05:35 +0200 Subject: [PATCH 047/157] Fix for BUG#7377. This fix adds the same implementation for ha_myisammgr::index_type as in version 5.0. mysql-test/r/merge.result: Added test result for BUG#7377. mysql-test/t/merge.test: Added test for BUG#7377. sql/ha_myisammrg.cc: Added implementation for handler::index_type. sql/ha_myisammrg.h: Added implementation for handler::index_type. --- mysql-test/r/merge.result | 5 +++++ mysql-test/t/merge.test | 3 +++ sql/ha_myisammrg.cc | 11 +++++++++++ sql/ha_myisammrg.h | 1 + 4 files changed, 20 insertions(+) diff --git a/mysql-test/r/merge.result b/mysql-test/r/merge.result index f71626221cb..79d8f019ce3 100644 --- a/mysql-test/r/merge.result +++ b/mysql-test/r/merge.result @@ -675,4 +675,9 @@ a b c 1 2 0 1 1 1 1 1 0 +show index from t3; +Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment +t3 1 a 1 a A NULL NULL NULL YES BTREE +t3 1 a 2 b A NULL NULL NULL YES BTREE +t3 1 a 3 c A NULL NULL NULL YES BTREE drop table t1, t2, t3; diff --git a/mysql-test/t/merge.test b/mysql-test/t/merge.test index b628cb07f7b..508f9da225e 100644 --- a/mysql-test/t/merge.test +++ b/mysql-test/t/merge.test @@ -301,5 +301,8 @@ select a,b,c from t3 force index (a) where a=1 order by a,b,c; explain select a,b,c from t3 force index (a) where a=1 order by a desc, b desc, c desc; select a,b,c from t3 force index (a) where a=1 order by a desc, b desc, c desc; +# BUG#7377 SHOW index on MERGE table crashes debug server +show index from t3; + drop table t1, t2, t3; diff --git a/sql/ha_myisammrg.cc b/sql/ha_myisammrg.cc index bf4c2a36ffd..bf47b4625e0 100644 --- a/sql/ha_myisammrg.cc +++ b/sql/ha_myisammrg.cc @@ -35,6 +35,17 @@ const char **ha_myisammrg::bas_ext() const { static const char *ext[]= { ".MRG", NullS }; return ext; } +const char *ha_myisammrg::index_type(uint key_number) +{ + return ((table->key_info[key_number].flags & HA_FULLTEXT) ? + "FULLTEXT" : + (table->key_info[key_number].flags & HA_SPATIAL) ? + "SPATIAL" : + (table->key_info[key_number].algorithm == HA_KEY_ALG_RTREE) ? + "RTREE" : + "BTREE"); +} + int ha_myisammrg::open(const char *name, int mode, uint test_if_locked) { diff --git a/sql/ha_myisammrg.h b/sql/ha_myisammrg.h index 264c580220c..6058c32c805 100644 --- a/sql/ha_myisammrg.h +++ b/sql/ha_myisammrg.h @@ -32,6 +32,7 @@ class ha_myisammrg: public handler ~ha_myisammrg() {} const char *table_type() const { return "MRG_MyISAM"; } const char **bas_ext() const; + const char *index_type(uint key_number); ulong table_flags() const { return (HA_REC_NOT_IN_SEQ | HA_AUTO_PART_KEY | HA_READ_RND_SAME | From a7b984d2336135100c09998d653f331d3b9df996 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 27 Dec 2004 17:15:38 +0200 Subject: [PATCH 048/157] row0ins.c: Fix bug: if we dropped a table where an INSERT was waiting for a lock to check a FOREIGN KEY constraint, then an assertion would fail in lock_reset_all_on_table(), since that operation assumes no waiting locks on the table or its records row0mysql.c: Fix bug: InnoDB failed to drop a table in the background drop queue if the table was referenced by a foreign key constraint innobase/row/row0mysql.c: Fix bug: InnoDB failed to drop a table in the background drop queue if the table was referenced by a foreign key constraint innobase/row/row0ins.c: Fix bug: if we dropped a table where an INSERT was waiting for a lock to check a FOREIGN KEY constraint, then an assertion would fail in lock_reset_all_on_table(), since that operation assumes no waiting locks on the table or its records --- innobase/row/row0ins.c | 26 ++++++++++++++++++++++++++ innobase/row/row0mysql.c | 16 +++++++++++----- 2 files changed, 37 insertions(+), 5 deletions(-) diff --git a/innobase/row/row0ins.c b/innobase/row/row0ins.c index b9f860903cb..60dbf059673 100644 --- a/innobase/row/row0ins.c +++ b/innobase/row/row0ins.c @@ -1373,8 +1373,34 @@ row_ins_check_foreign_constraints( row_mysql_freeze_data_dictionary(trx); } + if (foreign->referenced_table) { + mutex_enter(&(dict_sys->mutex)); + + (foreign->referenced_table + ->n_foreign_key_checks_running)++; + + mutex_exit(&(dict_sys->mutex)); + } + + /* NOTE that if the thread ends up waiting for a lock + we will release dict_operation_lock temporarily! + But the counter on the table protects the referenced + table from being dropped while the check is running. */ + err = row_ins_check_foreign_constraint(TRUE, foreign, table, entry, thr); + + if (foreign->referenced_table) { + mutex_enter(&(dict_sys->mutex)); + + ut_a(foreign->referenced_table + ->n_foreign_key_checks_running > 0); + (foreign->referenced_table + ->n_foreign_key_checks_running)--; + + mutex_exit(&(dict_sys->mutex)); + } + if (got_s_lock) { row_mysql_unfreeze_data_dictionary(trx); } diff --git a/innobase/row/row0mysql.c b/innobase/row/row0mysql.c index 2e8f7121d2c..ad5efc160c8 100644 --- a/innobase/row/row0mysql.c +++ b/innobase/row/row0mysql.c @@ -1761,6 +1761,12 @@ row_drop_table_for_mysql_in_background( trx = trx_allocate_for_background(); + /* If the original transaction was dropping a table referenced by + foreign keys, we must set the following to be able to drop the + table: */ + + trx->check_foreigns = FALSE; + /* fputs("InnoDB: Error: Dropping table ", stderr); ut_print_name(stderr, name); fputs(" in background drop list\n", stderr); */ @@ -1834,16 +1840,16 @@ loop: goto already_dropped; } - - if (table->n_mysql_handles_opened > 0 - || table->n_foreign_key_checks_running > 0) { + + if (DB_SUCCESS != row_drop_table_for_mysql_in_background( + drop->table_name)) { + /* If the DROP fails for some table, we return, and let the + main thread retry later */ return(n_tables + n_tables_dropped); } n_tables_dropped++; - - row_drop_table_for_mysql_in_background(drop->table_name); already_dropped: mutex_enter(&kernel_mutex); From 030842edaadf34fe0547bde9d46c6bf285416c88 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 27 Dec 2004 17:28:17 +0200 Subject: [PATCH 049/157] row0mysql.c: Merge the two FOREIGN KEY bug fixes from 4.0, and add a TODO comment innobase/row/row0mysql.c: Merge the two FOREIGN KEY bug fixes from 4.0, and add a TODO comment --- innobase/row/row0mysql.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/innobase/row/row0mysql.c b/innobase/row/row0mysql.c index 47f1f4c444c..e2b89cba866 100644 --- a/innobase/row/row0mysql.c +++ b/innobase/row/row0mysql.c @@ -2598,6 +2598,12 @@ row_drop_table_for_mysql( goto funct_exit; } + /* TODO: could we replace the counter n_foreign_key_checks_running + with lock checks on the table? Acquire here an exclusive lock on the + table, and rewrite lock0lock.c and the lock wait in srv0srv.c so that + they can cope with the table having been dropped here? Foreign key + checks take an IS or IX lock on the table. */ + if (table->n_foreign_key_checks_running > 0) { ut_print_timestamp(stderr); From dc29b1b90107c035330afb7ff5c394696cedc828 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 27 Dec 2004 18:15:32 +0100 Subject: [PATCH 050/157] - make sure that MYSQL_VERSION_ID created by "configure" does not contain any non-numerical characters (if $VERSION was e.g. "4.1.8a", $MYSQL_VERSION_ID resulted in "40108a", which broke the build as MYSQL_VERSION_ID must be numerical) configure.in: - make sure that MYSQL_VERSION_ID does not contain any non-numerical characters (if $VERSION was e.g. "4.1.8a", $MYSQL_VERSION_ID resulted in "40108a", which broke the build as MYSQL_VERSION_ID must be numerical) --- configure.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.in b/configure.in index bc78c9c8764..f8b40872d3d 100644 --- a/configure.in +++ b/configure.in @@ -23,7 +23,7 @@ NDB_VERSION_STATUS="" # Remember that regexps needs to quote [ and ] since this is run through m4 MYSQL_NO_DASH_VERSION=`echo $VERSION | sed -e "s|[[a-z]]*-.*$||"` MYSQL_BASE_VERSION=`echo $MYSQL_NO_DASH_VERSION | sed -e "s|\.[[^.]]*$||"` -MYSQL_VERSION_ID=`echo $MYSQL_NO_DASH_VERSION. | sed -e 's/\./ /g; s/ \([[0-9]]\) / 0\\1 /g; s/ //g'` +MYSQL_VERSION_ID=`echo $MYSQL_NO_DASH_VERSION. | sed -e 's/[[^0-9.]]//g; s/\./ /g; s/ \([[0-9]]\) / 0\\1 /g; s/ //g'` # The port should be constant for a LONG time MYSQL_TCP_PORT_DEFAULT=3306 From 4ba981e5214cfb3d7af1db1faa7d6cc79d2b2295 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 27 Dec 2004 20:06:40 +0200 Subject: [PATCH 051/157] row0mysql.c: Fix the previous bug fix: dropping a table with FOREIGN KEY checks running on it caused a cascade of failed drops while the foreign key check was waiting for a lock innobase/row/row0mysql.c: Fix the previous bug fix: dropping a table with FOREIGN KEY checks running on it caused a cascade of failed drops while the foreign key check was waiting for a lock --- innobase/row/row0mysql.c | 100 ++++++++++++++++++++++++++------------- 1 file changed, 66 insertions(+), 34 deletions(-) diff --git a/innobase/row/row0mysql.c b/innobase/row/row0mysql.c index ad5efc160c8..1ab7bb1deb0 100644 --- a/innobase/row/row0mysql.c +++ b/innobase/row/row0mysql.c @@ -1771,16 +1771,9 @@ row_drop_table_for_mysql_in_background( ut_print_name(stderr, name); fputs(" in background drop list\n", stderr); */ - /* Drop the table in InnoDB */ + /* Try to drop the table in InnoDB */ error = row_drop_table_for_mysql(name, trx, FALSE); - - if (error != DB_SUCCESS) { - ut_print_timestamp(stderr); - fputs(" InnoDB: Error: Dropping table ", stderr); - ut_print_name(stderr, name); - fputs(" in background drop list failed\n", stderr); - } /* Flush the log to reduce probability that the .frm files and the InnoDB data dictionary get out-of-sync if the user runs @@ -1792,7 +1785,7 @@ row_drop_table_for_mysql_in_background( trx_free_for_background(trx); - return(DB_SUCCESS); + return(error); } /************************************************************************* @@ -1826,6 +1819,7 @@ loop: mutex_exit(&kernel_mutex); if (drop == NULL) { + /* All tables dropped */ return(n_tables + n_tables_dropped); } @@ -1893,21 +1887,21 @@ row_get_background_drop_list_len_low(void) } /************************************************************************* -Adds a table to the list of tables which the master thread drops in -background. We need this on Unix because in ALTER TABLE MySQL may call -drop table even if the table has running queries on it. */ +If a table is not yet in the drop list, adds the table to the list of tables +which the master thread drops in background. We need this on Unix because in +ALTER TABLE MySQL may call drop table even if the table has running queries on +it. Also, if there are running foreign key checks on the table, we drop the +table lazily. */ static -void +ibool row_add_table_to_background_drop_list( /*==================================*/ + /* out: TRUE if the table was not yet in the + drop list, and was added there */ dict_table_t* table) /* in: table */ { row_mysql_drop_t* drop; - drop = mem_alloc(sizeof(row_mysql_drop_t)); - - drop->table_name = mem_strdup(table->name); - mutex_enter(&kernel_mutex); if (!row_mysql_drop_list_inited) { @@ -1915,6 +1909,25 @@ row_add_table_to_background_drop_list( UT_LIST_INIT(row_mysql_drop_list); row_mysql_drop_list_inited = TRUE; } + + /* Look if the table already is in the drop list */ + drop = UT_LIST_GET_FIRST(row_mysql_drop_list); + + while (drop != NULL) { + if (strcmp(drop->table_name, table->name) == 0) { + /* Already in the list */ + + mutex_exit(&kernel_mutex); + + return(FALSE); + } + + drop = UT_LIST_GET_NEXT(row_mysql_drop_list, drop); + } + + drop = mem_alloc(sizeof(row_mysql_drop_t)); + + drop->table_name = mem_strdup(table->name); UT_LIST_ADD_LAST(row_mysql_drop_list, row_mysql_drop_list, drop); @@ -1923,6 +1936,8 @@ row_add_table_to_background_drop_list( fputs(" to background drop list\n", stderr); */ mutex_exit(&kernel_mutex); + + return(TRUE); } /************************************************************************* @@ -2157,36 +2172,53 @@ row_drop_table_for_mysql( } if (table->n_mysql_handles_opened > 0) { + ibool added; - ut_print_timestamp(stderr); - fputs(" InnoDB: Warning: MySQL is trying to drop table ", - stderr); - ut_print_name(stderr, table->name); - fputs("\n" - "InnoDB: though there are still open handles to it.\n" - "InnoDB: Adding the table to the background drop queue.\n", + added = row_add_table_to_background_drop_list(table); + + if (added) { + ut_print_timestamp(stderr); +fputs(" InnoDB: Warning: MySQL is trying to drop table ", stderr); + ut_print_name(stderr, table->name); + fputs("\n" +"InnoDB: though there are still open handles to it.\n" +"InnoDB: Adding the table to the background drop queue.\n", stderr); + + /* We return DB_SUCCESS to MySQL though the drop will + happen lazily later */ - row_add_table_to_background_drop_list(table); - - err = DB_SUCCESS; + err = DB_SUCCESS; + } else { + /* The table is already in the background drop list */ + err = DB_ERROR; + } goto funct_exit; } if (table->n_foreign_key_checks_running > 0) { + ibool added; - ut_print_timestamp(stderr); - fputs(" InnoDB: You are trying to drop table ", stderr); + added = row_add_table_to_background_drop_list(table); + + if (added) { + ut_print_timestamp(stderr); +fputs(" InnoDB: You are trying to drop table ", stderr); ut_print_name(stderr, table->name); - fputs("\n" - "InnoDB: though there is a foreign key check running on it.\n" - "InnoDB: Adding the table to the background drop queue.\n", + fputs("\n" +"InnoDB: though there is a foreign key check running on it.\n" +"InnoDB: Adding the table to the background drop queue.\n", stderr); - row_add_table_to_background_drop_list(table); + /* We return DB_SUCCESS to MySQL though the drop will + happen lazily later */ - err = DB_SUCCESS; + err = DB_SUCCESS; + } else { + /* The table is already in the background drop list */ + err = DB_ERROR; + } goto funct_exit; } From 0ab90532cc54bfa81204ab2129de7124d8aac376 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 27 Dec 2004 19:10:30 +0100 Subject: [PATCH 052/157] WL#2319 V2: Exclude tables from dump - Added a hash to keep track of database-table pairs. - Specified database-table tables do not get dumped client/client_priv.h: WL#2319 V2: Exclude tables from dump client/mysqldump.c: WL#2319 V2: Exclude tables from dump mysql-test/r/mysqldump.result: WL#2319 V2: Exclude tables from dump mysql-test/t/mysqldump.test: WL#2319 V2: Exclude tables from dump --- client/client_priv.h | 1 + client/mysqldump.c | 106 +++++++++++++++++++++++++++++++--- mysql-test/r/mysqldump.result | 33 +++++++++++ mysql-test/t/mysqldump.test | 12 ++++ 4 files changed, 145 insertions(+), 7 deletions(-) diff --git a/client/client_priv.h b/client/client_priv.h index e86a56f58c1..95f4d105156 100644 --- a/client/client_priv.h +++ b/client/client_priv.h @@ -49,4 +49,5 @@ enum options_client #ifdef HAVE_NDBCLUSTER_DB ,OPT_NDBCLUSTER,OPT_NDB_CONNECTSTRING #endif + ,OPT_IGNORE_TABLE }; diff --git a/client/mysqldump.c b/client/mysqldump.c index be2abd19822..ffdb84397e9 100644 --- a/client/mysqldump.c +++ b/client/mysqldump.c @@ -43,6 +43,7 @@ #include #include #include +#include #include "client_priv.h" #include "mysql.h" @@ -128,6 +129,16 @@ const char *compatible_mode_names[]= TYPELIB compatible_mode_typelib= {array_elements(compatible_mode_names) - 1, "", compatible_mode_names, NULL}; +#define TABLE_RULE_HASH_SIZE 16 + +typedef struct st_table_rule_ent +{ + char* key; /* dbname.tablename */ + uint key_len; +} TABLE_RULE_ENT; + +my_bool ignore_table_inited; +HASH ignore_table; static struct my_option my_long_options[] = { @@ -233,6 +244,11 @@ static struct my_option my_long_options[] = (gptr*) &opt_hex_blob, (gptr*) &opt_hex_blob, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0}, {"host", 'h', "Connect to host.", (gptr*) ¤t_host, (gptr*) ¤t_host, 0, GET_STR_ALLOC, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, + {"ignore-table", OPT_IGNORE_TABLE, + "Do not dump the specified table. To specify more than one table to ignore, " + "use the directive multiple times, once for each table. Each table must " + "be specified with both database and table names, e.g. --ignore-table=database.table", + 0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, {"lines-terminated-by", OPT_LTB, "Lines in the i.file are terminated by ...", (gptr*) &lines_terminated, (gptr*) &lines_terminated, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, @@ -502,6 +518,32 @@ static void write_footer(FILE *sql_file) } /* write_footer */ +static void free_table_ent(TABLE_RULE_ENT* e) +{ + my_free((gptr) e, MYF(0)); +} + + +static byte* get_table_key(TABLE_RULE_ENT* e, uint* len, + my_bool not_used __attribute__((unused))) +{ + *len= e->key_len; + return (byte*)e->key; +} + + +void init_table_rule_hash(HASH* h, bool* h_inited) +{ + if(hash_init(h, charset_info, TABLE_RULE_HASH_SIZE, 0, 0, + (hash_get_key) get_table_key, + (hash_free_key) free_table_ent, 0)) + { + fprintf(stderr, "Internal hash initialization error\n"); + exit(1); + } + *h_inited= 1; +} + static my_bool get_one_option(int optid, const struct my_option *opt __attribute__((unused)), @@ -573,6 +615,37 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)), case (int) OPT_TABLES: opt_databases=0; break; + case (int) OPT_IGNORE_TABLE: + { + const char* dot = strchr(argument, '.'); + if (!dot) + { + fprintf(stderr, "Illegal use of option --ignore-table=.\n"); + exit(1); + } + // len is always > 0 because we know the there exists a '.' + uint len= (uint)strlen(argument); + TABLE_RULE_ENT* e= (TABLE_RULE_ENT*)my_malloc(sizeof(TABLE_RULE_ENT) + + len, MYF(MY_WME)); + if (!e) + { + fprintf(stderr, "Internal memory allocation error\n"); + exit(1); + } + e->key= (char*)e + sizeof(TABLE_RULE_ENT); + e->key_len= len; + memcpy(e->key, argument, len); + + if (!ignore_table_inited) + init_table_rule_hash(&ignore_table, &ignore_table_inited); + + if(my_hash_insert(&ignore_table, (byte*)e)) + { + fprintf(stderr, "Internal hash insert error\n"); + exit(1); + } + break; + } case (int) OPT_COMPATIBLE: { char buff[255]; @@ -1946,6 +2019,15 @@ static int init_dumping(char *database) } /* init_dumping */ +my_bool include_table(byte* hash_key, uint len) +{ + if (ignore_table_inited && + hash_search(&ignore_table, (byte*) hash_key, len)) + return FALSE; + + return TRUE; +} + static int dump_all_tables_in_db(char *database) { @@ -1953,6 +2035,12 @@ static int dump_all_tables_in_db(char *database) uint numrows; char table_buff[NAME_LEN*2+3]; + char hash_key[2*NAME_LEN+2]; /* "db.tablename" */ + char *afterdot; + + afterdot= strmov(hash_key, database); + *afterdot++= '.'; + if (init_dumping(database)) return 1; if (opt_xml) @@ -1961,7 +2049,7 @@ static int dump_all_tables_in_db(char *database) { DYNAMIC_STRING query; init_dynamic_string(&query, "LOCK TABLES ", 256, 1024); - for (numrows=0 ; (table = getTableName(1)) ; numrows++) + for (numrows= 0 ; (table= getTableName(1)) ; numrows++) { dynstr_append(&query, quote_name(table, table_buff, 1)); dynstr_append(&query, " READ /*!32311 LOCAL */,"); @@ -1977,13 +2065,17 @@ static int dump_all_tables_in_db(char *database) DBerror(sock, "when doing refresh"); /* We shall continue here, if --force was given */ } - while ((table = getTableName(0))) + while ((table= getTableName(0))) { - numrows = getTableStructure(table, database); - if (!dFlag && numrows > 0) - dumpTable(numrows,table); - my_free(order_by, MYF(MY_ALLOW_ZERO_PTR)); - order_by= 0; + char *end= strmov(afterdot, table); + if (include_table(hash_key, end - hash_key)) + { + numrows = getTableStructure(table, database); + if (!dFlag && numrows > 0) + dumpTable(numrows,table); + my_free(order_by, MYF(MY_ALLOW_ZERO_PTR)); + order_by= 0; + } } if (opt_xml) { diff --git a/mysql-test/r/mysqldump.result b/mysql-test/r/mysqldump.result index 57e04d38fc1..623bd2a0f3c 100644 --- a/mysql-test/r/mysqldump.result +++ b/mysql-test/r/mysqldump.result @@ -480,3 +480,36 @@ UNLOCK TABLES; /*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; DROP TABLE t1; +CREATE TABLE t1 (a int); +CREATE TABLE t2 (a int); +INSERT INTO t1 VALUES (1),(2),(3); +INSERT INTO t2 VALUES (4),(5),(6); + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8 */; +/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE="NO_AUTO_VALUE_ON_ZERO" */; +DROP TABLE IF EXISTS `t2`; +CREATE TABLE `t2` ( + `a` int(11) default NULL +) ENGINE=MyISAM DEFAULT CHARSET=latin1; + + +/*!40000 ALTER TABLE `t2` DISABLE KEYS */; +LOCK TABLES `t2` WRITE; +INSERT INTO `t2` VALUES (4),(5),(6); +UNLOCK TABLES; +/*!40000 ALTER TABLE `t2` ENABLE KEYS */; + +/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; +/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; +/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; + +DROP TABLE t1; +DROP TABLE t2; diff --git a/mysql-test/t/mysqldump.test b/mysql-test/t/mysqldump.test index 07b33689196..255ae50a8ca 100644 --- a/mysql-test/t/mysqldump.test +++ b/mysql-test/t/mysqldump.test @@ -153,3 +153,15 @@ INSERT INTO t1 VALUES (_latin1 ' --exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --skip-comments --default-character-set=cp850 --compatible=mysql323 test t1 --exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --skip-comments --default-character-set=utf8 --compatible=mysql323 test t1 DROP TABLE t1; + +# +# WL #2319: Exclude Tables from dump +# + +CREATE TABLE t1 (a int); +CREATE TABLE t2 (a int); +INSERT INTO t1 VALUES (1),(2),(3); +INSERT INTO t2 VALUES (4),(5),(6); +--exec $MYSQL_DUMP --skip-comments --ignore-table=test.t1 test +DROP TABLE t1; +DROP TABLE t2; From 05fb4757f984607737999b86dc052b5c91bf5bd8 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 27 Dec 2004 21:22:06 +0200 Subject: [PATCH 053/157] row0mysql.c: Manually merge the latest FOREIGN KEY lock wait + DROP TABLE fix from 4.0 innobase/row/row0mysql.c: Manually merge the latest FOREIGN KEY lock wait + DROP TABLE fix from 4.0 --- innobase/row/row0mysql.c | 105 +++++++++++++++++++++++++-------------- 1 file changed, 69 insertions(+), 36 deletions(-) diff --git a/innobase/row/row0mysql.c b/innobase/row/row0mysql.c index e2b89cba866..b7cd730828a 100644 --- a/innobase/row/row0mysql.c +++ b/innobase/row/row0mysql.c @@ -1843,16 +1843,9 @@ row_drop_table_for_mysql_in_background( ut_print_name(stderr, name); fputs(" in background drop list\n", stderr); */ - /* Drop the table in InnoDB */ + /* Try to drop the table in InnoDB */ error = row_drop_table_for_mysql(name, trx, FALSE); - - if (error != DB_SUCCESS) { - ut_print_timestamp(stderr); - fputs(" InnoDB: Error: Dropping table ", stderr); - ut_print_name(stderr, trx, name); - fputs(" in background drop list failed\n", stderr); - } /* Flush the log to reduce probability that the .frm files and the InnoDB data dictionary get out-of-sync if the user runs @@ -1864,7 +1857,7 @@ row_drop_table_for_mysql_in_background( trx_free_for_background(trx); - return(DB_SUCCESS); + return(error); } /************************************************************************* @@ -1898,6 +1891,7 @@ loop: mutex_exit(&kernel_mutex); if (drop == NULL) { + /* All tables dropped */ return(n_tables + n_tables_dropped); } @@ -1965,21 +1959,21 @@ row_get_background_drop_list_len_low(void) } /************************************************************************* -Adds a table to the list of tables which the master thread drops in -background. We need this on Unix because in ALTER TABLE MySQL may call -drop table even if the table has running queries on it. */ +If a table is not yet in the drop list, adds the table to the list of tables +which the master thread drops in background. We need this on Unix because in +ALTER TABLE MySQL may call drop table even if the table has running queries on +it. Also, if there are running foreign key checks on the table, we drop the +table lazily. */ static -void +ibool row_add_table_to_background_drop_list( /*==================================*/ + /* out: TRUE if the table was not yet in the + drop list, and was added there */ dict_table_t* table) /* in: table */ { row_mysql_drop_t* drop; - drop = mem_alloc(sizeof(row_mysql_drop_t)); - - drop->table_name = mem_strdup(table->name); - mutex_enter(&kernel_mutex); if (!row_mysql_drop_list_inited) { @@ -1987,7 +1981,26 @@ row_add_table_to_background_drop_list( UT_LIST_INIT(row_mysql_drop_list); row_mysql_drop_list_inited = TRUE; } + + /* Look if the table already is in the drop list */ + drop = UT_LIST_GET_FIRST(row_mysql_drop_list); + while (drop != NULL) { + if (strcmp(drop->table_name, table->name) == 0) { + /* Already in the list */ + + mutex_exit(&kernel_mutex); + + return(FALSE); + } + + drop = UT_LIST_GET_NEXT(row_mysql_drop_list, drop); + } + + drop = mem_alloc(sizeof(row_mysql_drop_t)); + + drop->table_name = mem_strdup(table->name); + UT_LIST_ADD_LAST(row_mysql_drop_list, row_mysql_drop_list, drop); /* fputs("InnoDB: Adding table ", stderr); @@ -1995,6 +2008,8 @@ row_add_table_to_background_drop_list( fputs(" to background drop list\n", stderr); */ mutex_exit(&kernel_mutex); + + return(TRUE); } /************************************************************************* @@ -2347,7 +2362,7 @@ funct_exit: } /************************************************************************* -Drops a table for MySQL. If the name of the table to be dropped is equal +Drops a table for MySQL. If the name of the table to be dropped is equal with one of the predefined magic table names, then this also stops printing the corresponding monitor output by the master thread. */ @@ -2581,19 +2596,27 @@ row_drop_table_for_mysql( } if (table->n_mysql_handles_opened > 0) { + ibool added; - ut_print_timestamp(stderr); - fputs(" InnoDB: Warning: MySQL is trying to drop table ", - stderr); - ut_print_name(stderr, trx, table->name); - fputs("\n" - "InnoDB: though there are still open handles to it.\n" - "InnoDB: Adding the table to the background drop queue.\n", + added = row_add_table_to_background_drop_list(table); + + if (added) { + ut_print_timestamp(stderr); +fputs(" InnoDB: Warning: MySQL is trying to drop table ", stderr); + ut_print_name(stderr, trx, table->name); + fputs("\n" +"InnoDB: though there are still open handles to it.\n" +"InnoDB: Adding the table to the background drop queue.\n", stderr); + + /* We return DB_SUCCESS to MySQL though the drop will + happen lazily later */ - row_add_table_to_background_drop_list(table); - - err = DB_SUCCESS; + err = DB_SUCCESS; + } else { + /* The table is already in the background drop list */ + err = DB_ERROR; + } goto funct_exit; } @@ -2606,17 +2629,27 @@ row_drop_table_for_mysql( if (table->n_foreign_key_checks_running > 0) { - ut_print_timestamp(stderr); - fputs(" InnoDB: You are trying to drop table ", stderr); - ut_print_name(stderr, trx, table->name); - fputs("\n" - "InnoDB: though there is a foreign key check running on it.\n" - "InnoDB: Adding the table to the background drop queue.\n", + ibool added; + + added = row_add_table_to_background_drop_list(table); + + if (added) { + ut_print_timestamp(stderr); +fputs(" InnoDB: You are trying to drop table ", stderr); + ut_print_name(stderr, trx, table->name); + fputs("\n" +"InnoDB: though there is a foreign key check running on it.\n" +"InnoDB: Adding the table to the background drop queue.\n", stderr); - row_add_table_to_background_drop_list(table); + /* We return DB_SUCCESS to MySQL though the drop will + happen lazily later */ - err = DB_SUCCESS; + err = DB_SUCCESS; + } else { + /* The table is already in the background drop list */ + err = DB_ERROR; + } goto funct_exit; } From 8487aa5abc384de074681f71e67a8b7b0570baf2 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 28 Dec 2004 11:57:56 +0200 Subject: [PATCH 054/157] Fix for BUG#7455. The fix checks if the trim string argument is NULL. If so, the standard mandates that the function result must be also NULL. mysql-test/r/func_str.result: added test result mysql-test/t/func_str.test: Added test for NULL arguments. sql/item_strfunc.cc: Test if the trim argument is NULL. --- mysql-test/r/func_str.result | 6 ++++++ mysql-test/t/func_str.test | 8 ++++++++ sql/item_strfunc.cc | 11 ++++++++++- 3 files changed, 24 insertions(+), 1 deletion(-) diff --git a/mysql-test/r/func_str.result b/mysql-test/r/func_str.result index 1c560dfa8b4..8348ef12b0d 100644 --- a/mysql-test/r/func_str.result +++ b/mysql-test/r/func_str.result @@ -697,3 +697,9 @@ quote(ltrim(concat(' ', 'a'))) select quote(trim(concat(' ', 'a'))); quote(trim(concat(' ', 'a'))) 'a' +select trim(null from 'kate') as "must_be_null"; +must_be_null +NULL +select trim('xyz' from null) as "must_be_null"; +must_be_null +NULL diff --git a/mysql-test/t/func_str.test b/mysql-test/t/func_str.test index 5477a0ccb30..a5d95332caa 100644 --- a/mysql-test/t/func_str.test +++ b/mysql-test/t/func_str.test @@ -435,3 +435,11 @@ drop table t1; select quote(ltrim(concat(' ', 'a'))); select quote(trim(concat(' ', 'a'))); + +# +# Bug#7455 unexpected result: TRIM( FROM ) gives NOT NULL +# According to ANSI if one of the TRIM arguments is NULL, then the result +# must be NULL too. +# +select trim(null from 'kate') as "must_be_null"; +select trim('xyz' from null) as "must_be_null"; diff --git a/sql/item_strfunc.cc b/sql/item_strfunc.cc index 068878652e4..2a63c5355a4 100644 --- a/sql/item_strfunc.cc +++ b/sql/item_strfunc.cc @@ -1302,9 +1302,18 @@ String *Item_func_trim::val_str(String *str) return 0; /* purecov: inspected */ char buff[MAX_FIELD_WIDTH]; String tmp(buff,sizeof(buff),res->charset()); - String *remove_str= (arg_count==2) ? args[1]->val_str(&tmp) : &remove; uint remove_length; LINT_INIT(remove_length); + String *remove_str; /* The string to remove from res. */ + + if (arg_count == 2) + { + remove_str= args[1]->val_str(&tmp); + if ((null_value= args[1]->null_value)) + return 0; + } + else + remove_str= &remove; /* Default value. */ if (!remove_str || (remove_length=remove_str->length()) == 0 || remove_length > res->length()) From 0ebb5292f8f525fe70f90a6da972c7fc10811c62 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 28 Dec 2004 17:33:49 +0100 Subject: [PATCH 055/157] client/mysqldump.c compilation failure fixed cleanup client/mysqldump.c: compilation failure fixed cleanup --- client/mysqldump.c | 43 +++++++++++++++---------------------------- 1 file changed, 15 insertions(+), 28 deletions(-) diff --git a/client/mysqldump.c b/client/mysqldump.c index ffdb84397e9..98de9e0b069 100644 --- a/client/mysqldump.c +++ b/client/mysqldump.c @@ -137,7 +137,6 @@ typedef struct st_table_rule_ent uint key_len; } TABLE_RULE_ENT; -my_bool ignore_table_inited; HASH ignore_table; static struct my_option my_long_options[] = @@ -532,16 +531,12 @@ static byte* get_table_key(TABLE_RULE_ENT* e, uint* len, } -void init_table_rule_hash(HASH* h, bool* h_inited) +void init_table_rule_hash(HASH* h) { if(hash_init(h, charset_info, TABLE_RULE_HASH_SIZE, 0, 0, (hash_get_key) get_table_key, (hash_free_key) free_table_ent, 0)) - { - fprintf(stderr, "Internal hash initialization error\n"); - exit(1); - } - *h_inited= 1; + exit(EX_EOM); } @@ -617,37 +612,30 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)), break; case (int) OPT_IGNORE_TABLE: { - const char* dot = strchr(argument, '.'); - if (!dot) + uint len= (uint)strlen(argument); + TABLE_RULE_ENT* e; + if (!strchr(argument, '.')) { fprintf(stderr, "Illegal use of option --ignore-table=.
\n"); exit(1); } - // len is always > 0 because we know the there exists a '.' - uint len= (uint)strlen(argument); - TABLE_RULE_ENT* e= (TABLE_RULE_ENT*)my_malloc(sizeof(TABLE_RULE_ENT) - + len, MYF(MY_WME)); - if (!e) - { - fprintf(stderr, "Internal memory allocation error\n"); - exit(1); - } + /* len is always > 0 because we know the there exists a '.' */ + e= (TABLE_RULE_ENT*)my_malloc(sizeof(TABLE_RULE_ENT) + len, MYF(MY_WME)); + if (!e) + exit(EX_EOM); e->key= (char*)e + sizeof(TABLE_RULE_ENT); e->key_len= len; memcpy(e->key, argument, len); - if (!ignore_table_inited) - init_table_rule_hash(&ignore_table, &ignore_table_inited); - + if (!hash_inited(&ignore_table)) + init_table_rule_hash(&ignore_table); + if(my_hash_insert(&ignore_table, (byte*)e)) - { - fprintf(stderr, "Internal hash insert error\n"); - exit(1); - } + exit(EX_EOM); break; } case (int) OPT_COMPATIBLE: - { + { char buff[255]; char *end= compatible_mode_normal_str; int i; @@ -2021,8 +2009,7 @@ static int init_dumping(char *database) my_bool include_table(byte* hash_key, uint len) { - if (ignore_table_inited && - hash_search(&ignore_table, (byte*) hash_key, len)) + if (hash_search(&ignore_table, (byte*) hash_key, len)) return FALSE; return TRUE; From 49501611aa534efcd18d3ee3bf94ec1ba13aa6f2 Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 29 Dec 2004 17:06:26 +0200 Subject: [PATCH 056/157] srv0start.c: Print a more descriptive error and refuse to start InnoDB if the size of ibdata files is smaller than what is stored in the tablespace header; innodb_force_recovery will override this innobase/srv/srv0start.c: Print a more descriptive error and refuse to start InnoDB if the size of ibdata files is smaller than what is stored in the tablespace header; innodb_force_recovery will override this --- innobase/srv/srv0start.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/innobase/srv/srv0start.c b/innobase/srv/srv0start.c index c91db1f0dcc..7a61a885ef9 100644 --- a/innobase/srv/srv0start.c +++ b/innobase/srv/srv0start.c @@ -1528,6 +1528,21 @@ NetWare. */ "InnoDB: the sum of data file sizes is %lu pages\n", (ulong) tablespace_size_in_header, (ulong) sum_of_data_file_sizes); + + if (srv_force_recovery == 0 + && sum_of_data_file_sizes < tablespace_size_in_header) { + /* This is a fatal error, the tail of a tablespace is + missing */ + + fprintf(stderr, +"InnoDB: Cannot start InnoDB. The tail of the system tablespace is\n" +"InnoDB: missing. Have you edited innodb_data_file_path in my.cnf in an\n" +"InnoDB: inappropriate way, removing ibdata files from there?\n" +"InnoDB: You can set innodb_force_recovery=1 in my.cnf to force\n" +"InnoDB: a startup if you are trying to recover a badly corrupt database.\n"); + + return(DB_ERROR); + } } if (srv_auto_extend_last_data_file @@ -1538,6 +1553,18 @@ NetWare. */ "InnoDB: the sum of data file sizes is only %lu pages\n", (ulong) tablespace_size_in_header, (ulong) sum_of_data_file_sizes); + + if (srv_force_recovery == 0) { + + fprintf(stderr, +"InnoDB: Cannot start InnoDB. The tail of the system tablespace is\n" +"InnoDB: missing. Have you edited innodb_data_file_path in my.cnf in an\n" +"InnoDB: inappropriate way, removing ibdata files from there?\n" +"InnoDB: You can set innodb_force_recovery=1 in my.cnf to force\n" +"InnoDB: a startup if you are trying to recover a badly corrupt database.\n"); + + return(DB_ERROR); + } } /* Check that os_fast_mutexes work as expected */ From 1382df5aff42233669ed5b0b76dfd459f8d87c05 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 30 Dec 2004 13:39:01 +0300 Subject: [PATCH 057/157] Fix for bug #6914 "Problems using time()/date() output in expressions". When we cast datetime value to DATE (TIME) type we should throw away its time (date) part. This was not done properly if CAST() function was used in datetime expressions. mysql-test/r/cast.result: Added test for bug #6914 "Problems using time()/date() output in expressions". mysql-test/t/cast.test: Added test for bug #6914 "Problems using time()/date() output in expressions". sql/item_timefunc.cc: Item_time_typecast::get_time()/Item_date_typecast::get_date(): When we cast datetime value to DATE we should throw away its time part. When we cast such value to TIME type we should throw away its date part. --- mysql-test/r/cast.result | 9 +++++++++ mysql-test/t/cast.test | 10 ++++++++++ sql/item_timefunc.cc | 7 +++++++ 3 files changed, 26 insertions(+) diff --git a/mysql-test/r/cast.result b/mysql-test/r/cast.result index ccf75f68e88..636e2603f9b 100644 --- a/mysql-test/r/cast.result +++ b/mysql-test/r/cast.result @@ -178,3 +178,12 @@ aaa aa aab aa aac aa DROP TABLE t1; +select date_add(cast('2004-12-30 12:00:00' as date), interval 0 hour); +date_add(cast('2004-12-30 12:00:00' as date), interval 0 hour) +2004-12-30 00:00:00 +select timediff(cast('2004-12-30 12:00:00' as time), '12:00:00'); +timediff(cast('2004-12-30 12:00:00' as time), '12:00:00') +00:00:00 +select timediff(cast('1 12:00:00' as time), '12:00:00'); +timediff(cast('1 12:00:00' as time), '12:00:00') +24:00:00 diff --git a/mysql-test/t/cast.test b/mysql-test/t/cast.test index e5681dedbac..23bba7d5aff 100644 --- a/mysql-test/t/cast.test +++ b/mysql-test/t/cast.test @@ -108,3 +108,13 @@ SELECT a, CAST(a AS CHAR(3)) FROM t1 ORDER BY CAST(a AS CHAR(2)), a; SELECT a, CAST(a AS UNSIGNED) FROM t1 ORDER BY CAST(a AS CHAR) ; SELECT a, CAST(a AS CHAR(2)) FROM t1 ORDER BY CAST(a AS CHAR(3)), a; DROP TABLE t1; + +# +# Test for bug #6914 "Problems using time()/date() output in expressions". +# When we are casting datetime value to DATE/TIME we should throw away +# time/date parts (correspondingly). +# +select date_add(cast('2004-12-30 12:00:00' as date), interval 0 hour); +select timediff(cast('2004-12-30 12:00:00' as time), '12:00:00'); +# Still we should not throw away "days" part of time value +select timediff(cast('1 12:00:00' as time), '12:00:00'); diff --git a/sql/item_timefunc.cc b/sql/item_timefunc.cc index 84a9e01ed2a..054a9966e73 100644 --- a/sql/item_timefunc.cc +++ b/sql/item_timefunc.cc @@ -2183,6 +2183,12 @@ String *Item_datetime_typecast::val_str(String *str) bool Item_time_typecast::get_time(TIME *ltime) { bool res= get_arg0_time(ltime); + /* + For MYSQL_TIMESTAMP_TIME value we can have non-zero day part, + which we should not lose. + */ + if (ltime->time_type == MYSQL_TIMESTAMP_DATETIME) + ltime->year= ltime->month= ltime->day= 0; ltime->time_type= MYSQL_TIMESTAMP_TIME; return res; } @@ -2206,6 +2212,7 @@ String *Item_time_typecast::val_str(String *str) bool Item_date_typecast::get_date(TIME *ltime, uint fuzzy_date) { bool res= get_arg0_date(ltime,1); + ltime->hour= ltime->minute= ltime->second= ltime->second_part= 0; ltime->time_type= MYSQL_TIMESTAMP_DATE; return res; } From c1f1732f376c53431e9f55976df4f314978e1d77 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 30 Dec 2004 14:56:31 +0300 Subject: [PATCH 058/157] Fix func_concat.result: allow -0.00 to be converted to string both with and without leading minus --- mysql-test/r/func_concat.result | 6 +----- mysql-test/t/func_concat.test | 4 ++-- 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/mysql-test/r/func_concat.result b/mysql-test/r/func_concat.result index 0bd53b32dd7..cf6fbf2da4f 100644 --- a/mysql-test/r/func_concat.result +++ b/mysql-test/r/func_concat.result @@ -63,8 +63,4 @@ a0 select 'a' union select concat('a', -0.0); a a -a0.0 -select 'a' union select concat('a', -0.0000); -a -a -a0.0000 +good diff --git a/mysql-test/t/func_concat.test b/mysql-test/t/func_concat.test index 78818cdda4e..b94901e9966 100644 --- a/mysql-test/t/func_concat.test +++ b/mysql-test/t/func_concat.test @@ -46,7 +46,7 @@ select 'a' union select concat('a', -'3'); select 'a' union select concat('a', -concat('3',4)); select 'a' union select concat('a', -0); + +--replace_result 'a-0.0' good 'a0.0' good select 'a' union select concat('a', -0.0); -select 'a' union select concat('a', -0.0000); - From f116ac5cdd84cf7e85aa9803e31e9d506c906f95 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 30 Dec 2004 14:03:19 +0100 Subject: [PATCH 059/157] Clean up the handling of "server" and "client" directories, while still avoiding the double listing of common directories in 'SUBDIRS' macro ("make distclean" had failed due to that). Solves bug#7368: "regex make error in 4.1.8" BitKeeper/etc/ignore: Added ndb/include/ndb_version.h ndb/include/ndb_global.h to the ignore list Makefile.am: Build the 'SUBDIRS' list from the new variable 'sql_union_dirs', not the old "client" and "servers" lists which will overlap. That overlap worked for build runs, but it caused failures of 'make distclean' etc because the overlapping directories were cleaned twice which could not work. Solves bug#7368: "regex make error in 4.1.8" configure.in: Introduce a new variable 'sql_union_dirs' to contain those directories which are needed for either server or client. This is needed to have complete "server" and "client" directory lists in 'Makefile' but prevent double listing in 'SUBDIRS' (see the comment for 'Makefile.am'). Solves bug#7368: "regex make error in 4.1.8" --- .bzrignore | 2 ++ Makefile.am | 4 ++-- configure.in | 16 +++++++++++++++- 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/.bzrignore b/.bzrignore index 37f82b008f8..ee48342fd37 100644 --- a/.bzrignore +++ b/.bzrignore @@ -946,3 +946,5 @@ libmysqld/ha_tina.cc analyse.test client/mysqladmin.c mysql-4.1.8-win-src.zip +ndb/include/ndb_version.h +ndb/include/ndb_global.h diff --git a/Makefile.am b/Makefile.am index c1ae9217e8b..93f34986a1b 100644 --- a/Makefile.am +++ b/Makefile.am @@ -23,14 +23,14 @@ EXTRA_DIST = INSTALL-SOURCE README COPYING EXCEPTIONS-CLIENT SUBDIRS = . include @docs_dirs@ @zlib_dir@ \ @readline_topdir@ sql-common \ @thread_dirs@ pstack \ - @sql_server_dirs@ @sql_client_dirs@ scripts man tests \ + @sql_union_dirs@ scripts man tests \ netware @libmysqld_dirs@ \ @bench_dirs@ support-files @fs_dirs@ @tools_dirs@ DIST_SUBDIRS = . include @docs_dirs@ zlib \ @readline_topdir@ sql-common \ @thread_dirs@ pstack \ - @sql_server_dirs@ @sql_client_dirs@ scripts @man_dirs@ tests SSL\ + @sql_union_dirs@ scripts @man_dirs@ tests SSL\ BUILD netware os2 @libmysqld_dirs@ \ @bench_dirs@ support-files @fs_dirs@ @tools_dirs@ diff --git a/configure.in b/configure.in index bc78c9c8764..ce3ae9c8dff 100644 --- a/configure.in +++ b/configure.in @@ -2832,7 +2832,7 @@ thread_dirs= dnl This probably should be cleaned up more - for now the threaded dnl client is just using plain-old libs. -sql_client_dirs="libmysql client" +sql_client_dirs="libmysql strings regex client" linked_client_targets="linked_libmysql_sources" CLIENT_LIBS=$NON_THREADED_CLIENT_LIBS if test "$THREAD_SAFE_CLIENT" != "no" @@ -3014,6 +3014,20 @@ AC_SUBST(sql_server_dirs) AC_SUBST(thread_dirs) AC_SUBST(server_scripts) +# Now that sql_client_dirs and sql_server_dirs are stable, determine the union. +# Start with the (longer) server list, add each client item not yet present. +sql_union_dirs=" $sql_server_dirs " +for DIR in $sql_client_dirs +do + if echo $sql_union_dirs | grep " $DIR " >/dev/null + then + : # already present, skip + else + sql_union_dirs="$sql_union_dirs $DIR " + fi +done +AC_SUBST(sql_union_dirs) + #if test "$with_posix_threads" = "no" -o "$with_mit_threads" = "yes" #then # MIT pthreads does now support connecting with unix sockets From 4ad77748b3ad558d4807d9aa31174eb8f72b90be Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 30 Dec 2004 16:34:01 +0100 Subject: [PATCH 060/157] Many files: Perl version of mysql-test-run new file mysql-test/lib/init_db.sql: Perl version of mysql-test-run mysql-test/lib/mtr_gcov.pl: Perl version of mysql-test-run mysql-test/lib/mtr_gprof.pl: Perl version of mysql-test-run mysql-test/lib/mtr_io.pl: Perl version of mysql-test-run mysql-test/lib/mtr_match.pl: Perl version of mysql-test-run mysql-test/lib/mtr_misc.pl: Perl version of mysql-test-run mysql-test/lib/mtr_process.pl: Perl version of mysql-test-run mysql-test/lib/mtr_report.pl: Perl version of mysql-test-run mysql-test/mysql-test-run.pl: Perl version of mysql-test-run --- mysql-test/lib/init_db.sql | 54 + mysql-test/lib/mtr_gcov.pl | 44 + mysql-test/lib/mtr_gprof.pl | 50 + mysql-test/lib/mtr_io.pl | 71 ++ mysql-test/lib/mtr_match.pl | 67 ++ mysql-test/lib/mtr_misc.pl | 50 + mysql-test/lib/mtr_process.pl | 421 +++++++ mysql-test/lib/mtr_report.pl | 257 +++++ mysql-test/mysql-test-run.pl | 1975 +++++++++++++++++++++++++++++++++ 9 files changed, 2989 insertions(+) create mode 100644 mysql-test/lib/init_db.sql create mode 100644 mysql-test/lib/mtr_gcov.pl create mode 100644 mysql-test/lib/mtr_gprof.pl create mode 100644 mysql-test/lib/mtr_io.pl create mode 100644 mysql-test/lib/mtr_match.pl create mode 100644 mysql-test/lib/mtr_misc.pl create mode 100644 mysql-test/lib/mtr_process.pl create mode 100644 mysql-test/lib/mtr_report.pl create mode 100755 mysql-test/mysql-test-run.pl diff --git a/mysql-test/lib/init_db.sql b/mysql-test/lib/init_db.sql new file mode 100644 index 00000000000..f42f7ca6b5f --- /dev/null +++ b/mysql-test/lib/init_db.sql @@ -0,0 +1,54 @@ +USE mysql; + +CREATE TABLE db (Host char(60) binary DEFAULT '' NOT NULL,Db char(64) binary DEFAULT '' NOT NULL,User char(16) binary DEFAULT '' NOT NULL,Select_priv enum('N','Y') DEFAULT 'N' NOT NULL,Insert_priv enum('N','Y') DEFAULT 'N' NOT NULL,Update_priv enum('N','Y') DEFAULT 'N' NOT NULL,Delete_priv enum('N','Y') DEFAULT 'N' NOT NULL,Create_priv enum('N','Y') DEFAULT 'N' NOT NULL,Drop_priv enum('N','Y') DEFAULT 'N' NOT NULL,Grant_priv enum('N','Y') DEFAULT 'N' NOT NULL,References_priv enum('N','Y') DEFAULT 'N' NOT NULL,Index_priv enum('N','Y') DEFAULT 'N' NOT NULL,Alter_priv enum('N','Y') DEFAULT 'N' NOT NULL,Create_tmp_table_priv enum('N','Y') DEFAULT 'N' NOT NULL,Lock_tables_priv enum('N','Y') DEFAULT 'N' NOT NULL,PRIMARY KEY Host (Host,Db,User),KEY User (User)) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='Database privileges'; + +INSERT INTO db VALUES ('%','test','','Y','Y','Y','Y','Y','Y','N','Y','Y','Y','Y','Y'); +INSERT INTO db VALUES ('%','test\_%','','Y','Y','Y','Y','Y','Y','N','Y','Y','Y','Y','Y'); + + +CREATE TABLE host (Host char(60) binary DEFAULT '' NOT NULL,Db char(64) binary DEFAULT '' NOT NULL,Select_priv enum('N','Y') DEFAULT 'N' NOT NULL,Insert_priv enum('N','Y') DEFAULT 'N' NOT NULL,Update_priv enum('N','Y') DEFAULT 'N' NOT NULL,Delete_priv enum('N','Y') DEFAULT 'N' NOT NULL,Create_priv enum('N','Y') DEFAULT 'N' NOT NULL,Drop_priv enum('N','Y') DEFAULT 'N' NOT NULL,Grant_priv enum('N','Y') DEFAULT 'N' NOT NULL,References_priv enum('N','Y') DEFAULT 'N' NOT NULL,Index_priv enum('N','Y') DEFAULT 'N' NOT NULL,Alter_priv enum('N','Y') DEFAULT 'N' NOT NULL,Create_tmp_table_priv enum('N','Y') DEFAULT 'N' NOT NULL,Lock_tables_priv enum('N','Y') DEFAULT 'N' NOT NULL,PRIMARY KEY Host (Host,Db)) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='Host privileges; Merged with database privileges'; + +CREATE TABLE user (Host char(60) binary DEFAULT '' NOT NULL,User char(16) binary DEFAULT '' NOT NULL,Password char(41) binary DEFAULT '' NOT NULL,Select_priv enum('N','Y') DEFAULT 'N' NOT NULL,Insert_priv enum('N','Y') DEFAULT 'N' NOT NULL,Update_priv enum('N','Y') DEFAULT 'N' NOT NULL,Delete_priv enum('N','Y') DEFAULT 'N' NOT NULL,Create_priv enum('N','Y') DEFAULT 'N' NOT NULL,Drop_priv enum('N','Y') DEFAULT 'N' NOT NULL,Reload_priv enum('N','Y') DEFAULT 'N' NOT NULL,Shutdown_priv enum('N','Y') DEFAULT 'N' NOT NULL,Process_priv enum('N','Y') DEFAULT 'N' NOT NULL,File_priv enum('N','Y') DEFAULT 'N' NOT NULL,Grant_priv enum('N','Y') DEFAULT 'N' NOT NULL,References_priv enum('N','Y') DEFAULT 'N' NOT NULL,Index_priv enum('N','Y') DEFAULT 'N' NOT NULL,Alter_priv enum('N','Y') DEFAULT 'N' NOT NULL,Show_db_priv enum('N','Y') DEFAULT 'N' NOT NULL,Super_priv enum('N','Y') DEFAULT 'N' NOT NULL,Create_tmp_table_priv enum('N','Y') DEFAULT 'N' NOT NULL,Lock_tables_priv enum('N','Y') DEFAULT 'N' NOT NULL,Execute_priv enum('N','Y') DEFAULT 'N' NOT NULL,Repl_slave_priv enum('N','Y') DEFAULT 'N' NOT NULL,Repl_client_priv enum('N','Y') DEFAULT 'N' NOT NULL,ssl_type enum('','ANY','X509', 'SPECIFIED') DEFAULT '' NOT NULL,ssl_cipher BLOB NOT NULL,x509_issuer BLOB NOT NULL,x509_subject BLOB NOT NULL,max_questions int(11) unsigned DEFAULT 0 NOT NULL,max_updates int(11) unsigned DEFAULT 0 NOT NULL,max_connections int(11) unsigned DEFAULT 0 NOT NULL,PRIMARY KEY Host (Host,User)) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='Users and global privileges'; + +INSERT INTO user VALUES ('%','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0); +INSERT INTO user VALUES ('localhost','','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0); +INSERT INTO user VALUES ('%','','','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','','','','',0,0,0); + +CREATE TABLE func (name char(64) binary DEFAULT '' NOT NULL,ret tinyint(1) DEFAULT '0' NOT NULL,dl char(128) DEFAULT '' NOT NULL,type enum ('function','aggregate') NOT NULL,PRIMARY KEY (name)) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='User defined functions'; + +CREATE TABLE tables_priv (Host char(60) binary DEFAULT '' NOT NULL,Db char(64) binary DEFAULT '' NOT NULL,User char(16) binary DEFAULT '' NOT NULL,Table_name char(64) binary DEFAULT '' NOT NULL,Grantor char(77) DEFAULT '' NOT NULL,Timestamp timestamp(14),Table_priv set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter') DEFAULT '' NOT NULL,Column_priv set('Select','Insert','Update','References') DEFAULT '' NOT NULL,PRIMARY KEY (Host,Db,User,Table_name),KEY Grantor (Grantor)) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='Table privileges'; + +CREATE TABLE columns_priv (Host char(60) binary DEFAULT '' NOT NULL,Db char(64) binary DEFAULT '' NOT NULL,User char(16) binary DEFAULT '' NOT NULL,Table_name char(64) binary DEFAULT '' NOT NULL,Column_name char(64) binary DEFAULT '' NOT NULL,Timestamp timestamp(14),Column_priv set('Select','Insert','Update','References') DEFAULT '' NOT NULL,PRIMARY KEY (Host,Db,User,Table_name,Column_name)) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='Column privileges'; + +CREATE TABLE help_topic (help_topic_id int unsigned not null,name varchar(64) not null,help_category_id smallint unsigned not null,description text not null,example text not null,url varchar(128) not null,primary key (help_topic_id),unique index (name)) engine=MyISAM CHARACTER SET utf8 comment='help topics'; + +CREATE TABLE help_category (help_category_id smallint unsigned not null,name varchar(64) not null,parent_category_id smallint unsigned null,url varchar(128) not null,primary key (help_category_id),unique index (name)) engine=MyISAM CHARACTER SET utf8 comment='help categories'; + +CREATE TABLE help_keyword (help_keyword_id int unsigned not null,name varchar(64) not null,primary key (help_keyword_id),unique index (name)) engine=MyISAM CHARACTER SET utf8 comment='help keywords'; + +CREATE TABLE help_relation (help_topic_id int unsigned not null references help_topic,help_keyword_id int unsigned not null references help_keyword,primary key (help_keyword_id, help_topic_id)) engine=MyISAM CHARACTER SET utf8 comment='keyword-topic relation'; + +CREATE TABLE time_zone_name (Name char(64) NOT NULL,Time_zone_id int unsigned NOT NULL,PRIMARY KEY Name (Name)) engine=MyISAM CHARACTER SET utf8 comment='Time zone names'; + +INSERT INTO time_zone_name (Name, Time_Zone_id) VALUES ('MET', 1), ('UTC', 2), ('Universal', 2), ('Europe/Moscow',3), ('leap/Europe/Moscow',4), ('Japan', 5); + + +CREATE TABLE time_zone (Time_zone_id int unsigned NOT NULL auto_increment,Use_leap_seconds enum('Y','N') DEFAULT 'N' NOT NULL,PRIMARY KEY TzId (Time_zone_id)) engine=MyISAM CHARACTER SET utf8 comment='Time zones'; + +INSERT INTO time_zone (Time_zone_id, Use_leap_seconds) VALUES (1,'N'), (2,'N'), (3,'N'), (4,'Y'), (5,'N'); + + +CREATE TABLE time_zone_transition (Time_zone_id int unsigned NOT NULL,Transition_time bigint signed NOT NULL,Transition_type_id int unsigned NOT NULL,PRIMARY KEY TzIdTranTime (Time_zone_id, Transition_time)) engine=MyISAM CHARACTER SET utf8 comment='Time zone transitions'; + +INSERT INTO time_zone_transition (Time_zone_id, Transition_time, Transition_type_id) VALUES (1, -1693706400, 0) ,(1, -1680483600, 1),(1, -1663455600, 2) ,(1, -1650150000, 3),(1, -1632006000, 2) ,(1, -1618700400, 3),(1, -938905200, 2) ,(1, -857257200, 3),(1, -844556400, 2) ,(1, -828226800, 3),(1, -812502000, 2) ,(1, -796777200, 3),(1, 228877200, 2) ,(1, 243997200, 3),(1, 260326800, 2) ,(1, 276051600, 3),(1, 291776400, 2) ,(1, 307501200, 3),(1, 323830800, 2) ,(1, 338950800, 3),(1, 354675600, 2) ,(1, 370400400, 3),(1, 386125200, 2) ,(1, 401850000, 3),(1, 417574800, 2) ,(1, 433299600, 3),(1, 449024400, 2) ,(1, 465354000, 3),(1, 481078800, 2) ,(1, 496803600, 3),(1, 512528400, 2) ,(1, 528253200, 3),(1, 543978000, 2) ,(1, 559702800, 3),(1, 575427600, 2) ,(1, 591152400, 3),(1, 606877200, 2) ,(1, 622602000, 3),(1, 638326800, 2) ,(1, 654656400, 3),(1, 670381200, 2) ,(1, 686106000, 3),(1, 701830800, 2) ,(1, 717555600, 3),(1, 733280400, 2) ,(1, 749005200, 3),(1, 764730000, 2) ,(1, 780454800, 3),(1, 796179600, 2) ,(1, 811904400, 3),(1, 828234000, 2) ,(1, 846378000, 3),(1, 859683600, 2) ,(1, 877827600, 3),(1, 891133200, 2) ,(1, 909277200, 3),(1, 922582800, 2) ,(1, 941331600, 3),(1, 954032400, 2) ,(1, 972781200, 3),(1, 985482000, 2) ,(1, 1004230800, 3),(1, 1017536400, 2) ,(1, 1035680400, 3),(1, 1048986000, 2) ,(1, 1067130000, 3),(1, 1080435600, 2) ,(1, 1099184400, 3),(1, 1111885200, 2) ,(1, 1130634000, 3),(1, 1143334800, 2) ,(1, 1162083600, 3),(1, 1174784400, 2) ,(1, 1193533200, 3),(1, 1206838800, 2) ,(1, 1224982800, 3),(1, 1238288400, 2) ,(1, 1256432400, 3),(1, 1269738000, 2) ,(1, 1288486800, 3),(1, 1301187600, 2) ,(1, 1319936400, 3),(1, 1332637200, 2) ,(1, 1351386000, 3),(1, 1364691600, 2) ,(1, 1382835600, 3),(1, 1396141200, 2) ,(1, 1414285200, 3),(1, 1427590800, 2) ,(1, 1445734800, 3),(1, 1459040400, 2) ,(1, 1477789200, 3),(1, 1490490000, 2) ,(1, 1509238800, 3),(1, 1521939600, 2) ,(1, 1540688400, 3),(1, 1553994000, 2) ,(1, 1572138000, 3),(1, 1585443600, 2) ,(1, 1603587600, 3),(1, 1616893200, 2) ,(1, 1635642000, 3),(1, 1648342800, 2) ,(1, 1667091600, 3),(1, 1679792400, 2) ,(1, 1698541200, 3),(1, 1711846800, 2) ,(1, 1729990800, 3),(1, 1743296400, 2) ,(1, 1761440400, 3),(1, 1774746000, 2) ,(1, 1792890000, 3),(1, 1806195600, 2) ,(1, 1824944400, 3),(1, 1837645200, 2) ,(1, 1856394000, 3),(1, 1869094800, 2) ,(1, 1887843600, 3),(1, 1901149200, 2) ,(1, 1919293200, 3),(1, 1932598800, 2) ,(1, 1950742800, 3),(1, 1964048400, 2) ,(1, 1982797200, 3),(1, 1995498000, 2) ,(1, 2014246800, 3),(1, 2026947600, 2) ,(1, 2045696400, 3),(1, 2058397200, 2) ,(1, 2077146000, 3),(1, 2090451600, 2) ,(1, 2108595600, 3),(1, 2121901200, 2) ,(1, 2140045200, 3),(3, -1688265000, 2) ,(3, -1656819048, 1),(3, -1641353448, 2) ,(3, -1627965048, 3),(3, -1618716648, 1) ,(3, -1596429048, 3),(3, -1593829848, 5) ,(3, -1589860800, 4),(3, -1542427200, 5) ,(3, -1539493200, 6),(3, -1525323600, 5) ,(3, -1522728000, 4),(3, -1491188400, 7) ,(3, -1247536800, 4),(3, 354920400, 5) ,(3, 370728000, 4),(3, 386456400, 5) ,(3, 402264000, 4),(3, 417992400, 5) ,(3, 433800000, 4),(3, 449614800, 5) ,(3, 465346800, 8),(3, 481071600, 9) ,(3, 496796400, 8),(3, 512521200, 9) ,(3, 528246000, 8),(3, 543970800, 9) ,(3, 559695600, 8),(3, 575420400, 9) ,(3, 591145200, 8),(3, 606870000, 9) ,(3, 622594800, 8),(3, 638319600, 9) ,(3, 654649200, 8),(3, 670374000, 10) ,(3, 686102400, 11),(3, 695779200, 8) ,(3, 701812800, 5),(3, 717534000, 4) ,(3, 733273200, 9),(3, 748998000, 8) ,(3, 764722800, 9),(3, 780447600, 8) ,(3, 796172400, 9),(3, 811897200, 8) ,(3, 828226800, 9),(3, 846370800, 8) ,(3, 859676400, 9),(3, 877820400, 8) ,(3, 891126000, 9),(3, 909270000, 8) ,(3, 922575600, 9),(3, 941324400, 8) ,(3, 954025200, 9),(3, 972774000, 8) ,(3, 985474800, 9),(3, 1004223600, 8) ,(3, 1017529200, 9),(3, 1035673200, 8) ,(3, 1048978800, 9),(3, 1067122800, 8) ,(3, 1080428400, 9),(3, 1099177200, 8) ,(3, 1111878000, 9),(3, 1130626800, 8) ,(3, 1143327600, 9),(3, 1162076400, 8) ,(3, 1174777200, 9),(3, 1193526000, 8) ,(3, 1206831600, 9),(3, 1224975600, 8) ,(3, 1238281200, 9),(3, 1256425200, 8) ,(3, 1269730800, 9),(3, 1288479600, 8) ,(3, 1301180400, 9),(3, 1319929200, 8) ,(3, 1332630000, 9),(3, 1351378800, 8) ,(3, 1364684400, 9),(3, 1382828400, 8) ,(3, 1396134000, 9),(3, 1414278000, 8) ,(3, 1427583600, 9),(3, 1445727600, 8) ,(3, 1459033200, 9),(3, 1477782000, 8) ,(3, 1490482800, 9),(3, 1509231600, 8) ,(3, 1521932400, 9),(3, 1540681200, 8) ,(3, 1553986800, 9),(3, 1572130800, 8) ,(3, 1585436400, 9),(3, 1603580400, 8) ,(3, 1616886000, 9),(3, 1635634800, 8) ,(3, 1648335600, 9),(3, 1667084400, 8) ,(3, 1679785200, 9),(3, 1698534000, 8) ,(3, 1711839600, 9),(3, 1729983600, 8) ,(3, 1743289200, 9),(3, 1761433200, 8) ,(3, 1774738800, 9),(3, 1792882800, 8) ,(3, 1806188400, 9),(3, 1824937200, 8) ,(3, 1837638000, 9),(3, 1856386800, 8) ,(3, 1869087600, 9),(3, 1887836400, 8) ,(3, 1901142000, 9),(3, 1919286000, 8) ,(3, 1932591600, 9),(3, 1950735600, 8) ,(3, 1964041200, 9),(3, 1982790000, 8) ,(3, 1995490800, 9),(3, 2014239600, 8) ,(3, 2026940400, 9),(3, 2045689200, 8) ,(3, 2058390000, 9),(3, 2077138800, 8) ,(3, 2090444400, 9),(3, 2108588400, 8) ,(3, 2121894000, 9),(3, 2140038000, 8),(4, -1688265000, 2) ,(4, -1656819048, 1),(4, -1641353448, 2) ,(4, -1627965048, 3),(4, -1618716648, 1) ,(4, -1596429048, 3),(4, -1593829848, 5) ,(4, -1589860800, 4),(4, -1542427200, 5) ,(4, -1539493200, 6),(4, -1525323600, 5) ,(4, -1522728000, 4),(4, -1491188400, 7) ,(4, -1247536800, 4),(4, 354920409, 5) ,(4, 370728010, 4),(4, 386456410, 5) ,(4, 402264011, 4),(4, 417992411, 5) ,(4, 433800012, 4),(4, 449614812, 5) ,(4, 465346812, 8),(4, 481071612, 9) ,(4, 496796413, 8),(4, 512521213, 9) ,(4, 528246013, 8),(4, 543970813, 9) ,(4, 559695613, 8),(4, 575420414, 9) ,(4, 591145214, 8),(4, 606870014, 9) ,(4, 622594814, 8),(4, 638319615, 9) ,(4, 654649215, 8),(4, 670374016, 10) ,(4, 686102416, 11),(4, 695779216, 8) ,(4, 701812816, 5),(4, 717534017, 4) ,(4, 733273217, 9),(4, 748998018, 8) ,(4, 764722818, 9),(4, 780447619, 8) ,(4, 796172419, 9),(4, 811897219, 8) ,(4, 828226820, 9),(4, 846370820, 8) ,(4, 859676420, 9),(4, 877820421, 8) ,(4, 891126021, 9),(4, 909270021, 8) ,(4, 922575622, 9),(4, 941324422, 8) ,(4, 954025222, 9),(4, 972774022, 8) ,(4, 985474822, 9),(4, 1004223622, 8) ,(4, 1017529222, 9),(4, 1035673222, 8) ,(4, 1048978822, 9),(4, 1067122822, 8) ,(4, 1080428422, 9),(4, 1099177222, 8) ,(4, 1111878022, 9),(4, 1130626822, 8) ,(4, 1143327622, 9),(4, 1162076422, 8) ,(4, 1174777222, 9),(4, 1193526022, 8) ,(4, 1206831622, 9),(4, 1224975622, 8) ,(4, 1238281222, 9),(4, 1256425222, 8) ,(4, 1269730822, 9),(4, 1288479622, 8) ,(4, 1301180422, 9),(4, 1319929222, 8) ,(4, 1332630022, 9),(4, 1351378822, 8) ,(4, 1364684422, 9),(4, 1382828422, 8) ,(4, 1396134022, 9),(4, 1414278022, 8) ,(4, 1427583622, 9),(4, 1445727622, 8) ,(4, 1459033222, 9),(4, 1477782022, 8) ,(4, 1490482822, 9),(4, 1509231622, 8) ,(4, 1521932422, 9),(4, 1540681222, 8) ,(4, 1553986822, 9),(4, 1572130822, 8) ,(4, 1585436422, 9),(4, 1603580422, 8) ,(4, 1616886022, 9),(4, 1635634822, 8) ,(4, 1648335622, 9),(4, 1667084422, 8) ,(4, 1679785222, 9),(4, 1698534022, 8) ,(4, 1711839622, 9),(4, 1729983622, 8) ,(4, 1743289222, 9),(4, 1761433222, 8) ,(4, 1774738822, 9),(4, 1792882822, 8) ,(4, 1806188422, 9),(4, 1824937222, 8) ,(4, 1837638022, 9),(4, 1856386822, 8) ,(4, 1869087622, 9),(4, 1887836422, 8) ,(4, 1901142022, 9),(4, 1919286022, 8) ,(4, 1932591622, 9),(4, 1950735622, 8) ,(4, 1964041222, 9),(4, 1982790022, 8) ,(4, 1995490822, 9),(4, 2014239622, 8) ,(4, 2026940422, 9),(4, 2045689222, 8) ,(4, 2058390022, 9),(4, 2077138822, 8) ,(4, 2090444422, 9),(4, 2108588422, 8) ,(4, 2121894022, 9),(4, 2140038022, 8); + + +CREATE TABLE time_zone_transition_type (Time_zone_id int unsigned NOT NULL,Transition_type_id int unsigned NOT NULL,Offset int signed DEFAULT 0 NOT NULL,Is_DST tinyint unsigned DEFAULT 0 NOT NULL,Abbreviation char(8) DEFAULT '' NOT NULL,PRIMARY KEY TzIdTrTId (Time_zone_id, Transition_type_id)) engine=MyISAM CHARACTER SET utf8 comment='Time zone transition types'; + +INSERT INTO time_zone_transition_type (Time_zone_id,Transition_type_id, Offset, Is_DST, Abbreviation) VALUES (1, 0, 7200, 1, 'MEST') ,(1, 1, 3600, 0, 'MET') ,(1, 2, 7200, 1, 'MEST') ,(1, 3, 3600, 0, 'MET') ,(2, 0, 0, 0, 'UTC') ,(3, 0, 9000, 0, 'MMT') ,(3, 1, 12648, 1, 'MST') ,(3, 2, 9048, 0, 'MMT') ,(3, 3, 16248, 1, 'MDST') ,(3, 4, 10800, 0, 'MSK') ,(3, 5, 14400, 1, 'MSD') ,(3, 6, 18000, 1, 'MSD') ,(3, 7, 7200, 0, 'EET') ,(3, 8, 10800, 0, 'MSK') ,(3, 9, 14400, 1, 'MSD') ,(3, 10, 10800, 1, 'EEST') ,(3, 11, 7200, 0, 'EET') ,(4, 0, 9000, 0, 'MMT') ,(4, 1, 12648, 1, 'MST') ,(4, 2, 9048, 0, 'MMT') ,(4, 3, 16248, 1, 'MDST') ,(4, 4, 10800, 0, 'MSK') ,(4, 5, 14400, 1, 'MSD') ,(4, 6, 18000, 1, 'MSD') ,(4, 7, 7200, 0, 'EET') ,(4, 8, 10800, 0, 'MSK') ,(4, 9, 14400, 1, 'MSD') ,(4, 10, 10800, 1, 'EEST') ,(4, 11, 7200, 0, 'EET') ,(5, 0, 32400, 0, 'CJT') ,(5, 1, 32400, 0, 'JST'); + +CREATE TABLE time_zone_leap_second (Transition_time bigint signed NOT NULL,Correction int signed NOT NULL,PRIMARY KEY TranTime (Transition_time)) engine=MyISAM CHARACTER SET utf8 comment='Leap seconds information for time zones'; + +INSERT INTO time_zone_leap_second (Transition_time, Correction) VALUES (78796800, 1) ,(94694401, 2) ,(126230402, 3) ,(157766403, 4) ,(189302404, 5) ,(220924805, 6) ,(252460806, 7) ,(283996807, 8) ,(315532808, 9) ,(362793609, 10) ,(394329610, 11) ,(425865611, 12) ,(489024012, 13) ,(567993613, 14) ,(631152014, 15) ,(662688015, 16) ,(709948816, 17) ,(741484817, 18) ,(773020818, 19) ,(820454419, 20) ,(867715220, 21) ,(915148821, 22); + + diff --git a/mysql-test/lib/mtr_gcov.pl b/mysql-test/lib/mtr_gcov.pl new file mode 100644 index 00000000000..07aac1d2017 --- /dev/null +++ b/mysql-test/lib/mtr_gcov.pl @@ -0,0 +1,44 @@ +# -*- cperl -*- + +# This is a library file used by the Perl version of mysql-test-run, +# and is part of the translation of the Bourne shell script with the +# same name. + +use strict; + +# These are not to be prefixed with "mtr_" + +sub gcov_prepare (); +sub gcov_collect (); + +############################################################################## +# +# +# +############################################################################## + +sub gcov_prepare () { + + `find $::glob_basedir -name \*.gcov \ + -or -name \*.da | xargs rm`; +} + +sub gcov_collect () { + + print "Collecting source coverage info...\n"; + -f $::opt_gcov_msg and unlink($::opt_gcov_msg); + -f $::opt_gcov_err and unlink($::opt_gcov_err); + foreach my $d ( @::mysqld_src_dirs ) + { + chdir("$::glob_basedir/$d"); + foreach my $f ( (glob("*.h"), glob("*.cc"), glob("*.c")) ) + { + `$::opt_gcov $f 2>>$::opt_gcov_err >>$::opt_gcov_msg`; + } + chdir($::glob_mysql_test_dir); + } + print "gcov info in $::opt_gcov_msg, errors in $::opt_gcov_err\n"; +} + + +1; diff --git a/mysql-test/lib/mtr_gprof.pl b/mysql-test/lib/mtr_gprof.pl new file mode 100644 index 00000000000..cc874eebfe5 --- /dev/null +++ b/mysql-test/lib/mtr_gprof.pl @@ -0,0 +1,50 @@ +# -*- cperl -*- + +# This is a library file used by the Perl version of mysql-test-run, +# and is part of the translation of the Bourne shell script with the +# same name. + +use strict; + +# These are not to be prefixed with "mtr_" + +sub gprof_prepare (); +sub gprof_collect (); + +############################################################################## +# +# +# +############################################################################## + +sub gprof_prepare () { + + rmtree($::opt_gprof_dir); + mkdir($::opt_gprof_dir); +} + +# FIXME what about master1 and slave1?! +sub gprof_collect () { + + if ( -f "$::master->[0]->{'path_myddir'}/gmon.out" ) + { + # FIXME check result code?! + mtr_run("gprof", + [$::exe_master_mysqld, + "$::master->[0]->{'path_myddir'}/gmon.out"], + $::opt_gprof_master, "", "", ""); + print "Master execution profile has been saved in $::opt_gprof_master\n"; + } + if ( -f "$::slave->[0]->{'path_myddir'}/gmon.out" ) + { + # FIXME check result code?! + mtr_run("gprof", + [$::exe_slave_mysqld, + "$::slave->[0]->{'path_myddir'}/gmon.out"], + $::opt_gprof_slave, "", "", ""); + print "Slave execution profile has been saved in $::opt_gprof_slave\n"; + } +} + + +1; diff --git a/mysql-test/lib/mtr_io.pl b/mysql-test/lib/mtr_io.pl new file mode 100644 index 00000000000..14ea37dbb75 --- /dev/null +++ b/mysql-test/lib/mtr_io.pl @@ -0,0 +1,71 @@ +# -*- cperl -*- + +# This is a library file used by the Perl version of mysql-test-run, +# and is part of the translation of the Bourne shell script with the +# same name. + +use strict; + +sub mtr_get_pid_from_file ($); +sub mtr_get_opts_from_file ($); +sub mtr_tofile ($@); +sub mtr_tonewfile($@); + +############################################################################## +# +# +# +############################################################################## + +sub mtr_get_pid_from_file ($) { + my $file= shift; + + open(FILE,"<",$file) or mtr_error("can't open file \"$file\": $!"); + my $pid= ; + chomp($pid); + close FILE; + return $pid; +} + +sub mtr_get_opts_from_file ($) { + my $file= shift; + + open(FILE,"<",$file) or mtr_error("can't open file \"$file\": $!"); + my @args; + while ( ) + { + chomp; + s/\$MYSQL_TEST_DIR/$::glob_mysql_test_dir/g; + push(@args, split(' ', $_)); + } + close FILE; + return \@args; +} + +sub mtr_fromfile ($) { + my $file= shift; + + open(FILE,"<",$file) or mtr_error("can't open file \"$file\": $!"); + my $text= join('', ); + close FILE; + return $text; +} + +sub mtr_tofile ($@) { + my $file= shift; + + open(FILE,">>",$file) or mtr_error("can't open file \"$file\": $!"); + print FILE join("", @_); + close FILE; +} + +sub mtr_tonewfile ($@) { + my $file= shift; + + open(FILE,">",$file) or mtr_error("can't open file \"$file\": $!"); + print FILE join("", @_); + close FILE; +} + + +1; diff --git a/mysql-test/lib/mtr_match.pl b/mysql-test/lib/mtr_match.pl new file mode 100644 index 00000000000..eb5de655520 --- /dev/null +++ b/mysql-test/lib/mtr_match.pl @@ -0,0 +1,67 @@ +# -*- cperl -*- + +# This is a library file used by the Perl version of mysql-test-run, +# and is part of the translation of the Bourne shell script with the +# same name. + +use strict; + +sub mtr_match_prefix ($$); +sub mtr_match_extension ($$); +sub mtr_match_any_exact ($$); + +############################################################################## +# +# +# +############################################################################## + +# Match a prefix and return what is after the prefix + +sub mtr_match_prefix ($$) { + my $string= shift; + my $prefix= shift; + + if ( $string =~ /^\Q$prefix\E(.*)$/ ) # strncmp + { + return $1; + } + else + { + return undef; # NULL + } +} + + +# Match extension and return the name without extension + +sub mtr_match_extension ($$) { + my $file= shift; + my $ext= shift; + + if ( $file =~ /^(.*)\.\Q$ext\E$/ ) # strchr+strcmp or something + { + return $1; + } + else + { + return undef; # NULL + } +} + + +sub mtr_match_any_exact ($$) { + my $string= shift; + my $mlist= shift; + + foreach my $m (@$mlist) + { + if ( $string eq $m ) + { + return 1; + } + } + return 0; +} + +1; diff --git a/mysql-test/lib/mtr_misc.pl b/mysql-test/lib/mtr_misc.pl new file mode 100644 index 00000000000..5f80864d1f7 --- /dev/null +++ b/mysql-test/lib/mtr_misc.pl @@ -0,0 +1,50 @@ +# -*- cperl -*- + +# This is a library file used by the Perl version of mysql-test-run, +# and is part of the translation of the Bourne shell script with the +# same name. + +use strict; + +sub mtr_full_hostname (); +sub mtr_init_args ($); +sub mtr_add_arg ($$); + +############################################################################## +# +# Misc +# +############################################################################## + +# We want the fully qualified host name and hostname() may have returned +# only the short name. So we use the resolver to find out. + +sub mtr_full_hostname () { + + my $hostname= hostname(); + if ( $hostname !~ /\./ ) + { + my $address= gethostbyname($hostname) + or die "Couldn't resolve $hostname : $!"; + my $fullname= gethostbyaddr($address, AF_INET); + $hostname= $fullname if $fullname; + } + return $hostname; +} + +# FIXME move to own lib + +sub mtr_init_args ($) { + my $args = shift; + $$args = []; # Empty list +} + +sub mtr_add_arg ($$) { + my $args= shift; + my $format= shift; + my @fargs = @_; + + push(@$args, sprintf($format, @fargs)); +} + +1; diff --git a/mysql-test/lib/mtr_process.pl b/mysql-test/lib/mtr_process.pl new file mode 100644 index 00000000000..2263ef5bc24 --- /dev/null +++ b/mysql-test/lib/mtr_process.pl @@ -0,0 +1,421 @@ +# -*- cperl -*- + +# This is a library file used by the Perl version of mysql-test-run, +# and is part of the translation of the Bourne shell script with the +# same name. + +use strict; + +use POSIX ":sys_wait_h"; + +sub mtr_run ($$$$$$); +sub mtr_spawn ($$$$$$); +sub mtr_stop_servers ($); +sub mtr_kill_leftovers (); + +# static in C +sub spawn_impl ($$$$$$$); + +############################################################################## +# +# Execute an external command +# +############################################################################## + +# This function try to mimic the C version used in "netware/mysql_test_run.c" +# FIXME learn it to handle append mode as well, a "new" flag or a "append" + +sub mtr_run ($$$$$$) { + my $path= shift; + my $arg_list_t= shift; + my $input= shift; + my $output= shift; + my $error= shift; + my $pid_file= shift; + + return spawn_impl($path,$arg_list_t,1,$input,$output,$error,$pid_file); +} + +sub mtr_spawn ($$$$$$) { + my $path= shift; + my $arg_list_t= shift; + my $input= shift; + my $output= shift; + my $error= shift; + my $pid_file= shift; + + return spawn_impl($path,$arg_list_t,0,$input,$output,$error,$pid_file); +} + + +############################################################################## +# +# If $join is set, we return the error code, else we return the PID +# +############################################################################## + +sub spawn_impl ($$$$$$$) { + my $path= shift; + my $arg_list_t= shift; + my $join= shift; + my $input= shift; + my $output= shift; + my $error= shift; + my $pid_file= shift; # FIXME + + # FIXME really needing a PATH??? + # $ENV{'PATH'}= "/bin:/usr/bin:/usr/local/bin:/usr/bsd:/usr/X11R6/bin:/usr/openwin/bin:/usr/bin/X11:$ENV{'PATH'}"; + + $ENV{'TZ'}= "GMT-3"; # for UNIX_TIMESTAMP tests to work + $ENV{'LC_COLLATE'}= "C"; + $ENV{'MYSQL_TEST_DIR'}= $::glob_mysql_test_dir; + $ENV{'MASTER_MYPORT'}= $::opt_master_myport; + $ENV{'SLAVE_MYPORT'}= $::opt_slave_myport; +# $ENV{'MYSQL_TCP_PORT'}= '@MYSQL_TCP_PORT@'; # FIXME + $ENV{'MYSQL_TCP_PORT'}= 3306; + $ENV{'MASTER_MYSOCK'}= $::master->[0]->{'path_mysock'}; + + if ( $::opt_script_debug ) + { + print STDERR "-" x 78, "\n"; + print STDERR "STDIN $input\n" if $input; + print STDERR "STDOUT $output\n" if $output; + print STDERR "STDERR $error\n" if $error; + print STDERR "DAEMON\n" if !$join; + print STDERR "EXEC $path ", join(" ",@$arg_list_t), "\n"; + print STDERR "-" x 78, "\n"; + } + + my $pid= fork(); + + if ( $pid ) + { + # Parent, i.e. the main script + if ( $join ) + { + # We run a command and wait for the result + # FIXME this need to be improved + waitpid($pid,0); + my $exit_value= $? >> 8; + my $signal_num= $? & 127; + my $dumped_core= $? & 128; + if ( $signal_num ) + { + die("spawn got signal $signal_num"); + } + if ( $dumped_core ) + { + die("spawn dumped core"); + } + return $exit_value; + } + else + { + # We spawned a process we don't wait for + return $pid; + } + } + else + { + # Child, redirect output and exec + # FIXME I tried POSIX::setsid() here to detach and, I hoped, + # avoid zombies. But everything went wild, somehow the parent + # became a deamon as well, and was hard to kill ;-) + # Need to catch SIGCHLD and do waitpid or something instead...... + + $SIG{INT}= 'DEFAULT'; # Parent do some stuff, we don't + + if ( $output ) + { + open(STDOUT,">",$output) or die "Can't redirect STDOUT to \"$output\": $!"; + } + if ( $error ) + { + if ( $output eq $error ) + { + open(STDERR,">&STDOUT") or die "Can't dup STDOUT: $!"; + } + else + { + open(STDERR,">",$error) or die "Can't redirect STDERR to \"$output\": $!"; + } + } + if ( $input ) + { + open(STDIN,"<",$input) or die "Can't redirect STDIN to \"$input\": $!"; + } + exec($path,@$arg_list_t); + } +} + +############################################################################## +# +# Kill processes left from previous runs +# +############################################################################## + +sub mtr_kill_leftovers () { + + # First, kill all masters and slaves that would conflict with + # this run. Make sure to remove the PID file, if any. + + my @args; + + for ( my $idx; $idx < 2; $idx++ ) + { +# if ( $::master->[$idx]->{'pid'} ) +# { + push(@args, + $::master->[$idx]->{'path_mypid'}, + $::master->[$idx]->{'path_mysock'}, + ); +# } + } + + for ( my $idx; $idx < 3; $idx++ ) + { +# if ( $::slave->[$idx]->{'pid'} ) +# { + push(@args, + $::slave->[$idx]->{'path_mypid'}, + $::slave->[$idx]->{'path_mysock'}, + ); +# } + } + + mtr_stop_servers(\@args); + + # We scan the "var/run/" directory for other process id's to kill + my $rundir= "$::glob_mysql_test_dir/var/run"; # FIXME $path_run_dir or something + + if ( -d $rundir ) + { + opendir(RUNDIR, $rundir) + or mtr_error("can't open directory \"$rundir\": $!"); + + my @pids; + + while ( my $elem= readdir(RUNDIR) ) + { + my $pidfile= "$rundir/$elem"; + + if ( -f $pidfile ) + { + my $pid= mtr_get_pid_from_file($pidfile); + if ( ! unlink($pidfile) ) + { + mtr_error("can't remove $pidfile"); + } + push(@pids, $pid); + } + } + closedir(RUNDIR); + + my $retries= 10; # 10 seconds + do + { + kill(9, @pids); + } while ( $retries-- and kill(0, @pids) ); + + if ( kill(0, @pids) ) + { + mtr_error("can't kill processes " . join(" ", @pids)); + } + + } +} + +############################################################################## +# +# Shut down mysqld servers +# +############################################################################## + +# To speed things we kill servers in parallel. +# The argument is a list of 'pidfiles' and 'socketfiles'. +# We use the pidfiles and socketfiles to try to terminate the servers. +# This is not perfect, there could still be other server processes +# left. + +sub mtr_stop_servers ($) { + my $spec= shift; + + # First try nice normal shutdown using 'mysqladmin' + + { + my @args= @$spec; + while ( @args ) + { + my $pidfile= shift @args; # FIXME not used here.... + my $sockfile= shift @args; + + if ( -f $sockfile ) + { + + # FIXME wrong log..... + # FIXME, stderr..... + # Shutdown time must be high as slave may be in reconnect + my $opts= + [ + "--no-defaults", + "-uroot", + "--socket=$sockfile", + "--connect_timeout=5", + "--shutdown_timeout=70", + "shutdown", + ]; + # We don't wait for termination of mysqladmin + mtr_spawn($::exe_mysqladmin, $opts, + "", $::path_manager_log, $::path_manager_log, ""); + } + } + } + + # Wait for them all to remove their socket file + + SOCKREMOVED: + for (my $loop= $::opt_sleep_time_for_delete; $loop; $loop--) + { + my $sockfiles_left= 0; + my @args= @$spec; + while ( @args ) + { + my $pidfile= shift @args; + my $sockfile= shift @args; + if ( -f $sockfile or -f $pidfile ) + { + $sockfiles_left++; # Could be that pidfile is left + } + } + if ( ! $sockfiles_left ) + { + last SOCKREMOVED; + } + if ( $loop > 1 ) + { + sleep(1); # One second + } + } + + # We may have killed all that left a socket, but we are not sure we got + # them all killed. We now check the PID file, if any + + # Try nice kill with SIG_TERM + + { + my @args= @$spec; + while ( @args ) + { + my $pidfile= shift @args; + my $sockfile= shift @args; + if (-f $pidfile) + { + my $pid= mtr_get_pid_from_file($pidfile); + mtr_warning("process $pid not cooperating with mysqladmin, " . + "will send TERM signal to process"); + kill(15,$pid); # SIG_TERM + } + } + } + + # Wait for them all to die + + for (my $loop= $::opt_sleep_time_for_delete; $loop; $loop--) + { + my $pidfiles_left= 0; + my @args= @$spec; + while ( @args ) + { + my $pidfile= shift @args; + my $sockfile= shift @args; + if ( -f $pidfile ) + { + $pidfiles_left++; + } + } + if ( ! $pidfiles_left ) + { + return; + } + if ( $loop > 1 ) + { + sleep(1); # One second + } + } + + # Try hard kill with SIG_KILL + + { + my @args= @$spec; + while ( @args ) + { + my $pidfile= shift @args; + my $sockfile= shift @args; + if (-f $pidfile) + { + my $pid= mtr_get_pid_from_file($pidfile); + mtr_warning("$pid did not die from TERM signal, ", + "will send KILL signal to process"); + kill(9,$pid); + } + } + } + + # We check with Perl "kill 0" if process still exists + + PIDFILES: + for (my $loop= $::opt_sleep_time_for_delete; $loop; $loop--) + { + my $not_terminated= 0; + my @args= @$spec; + while ( @args ) + { + my $pidfile= shift @args; + my $sockfile= shift @args; + if (-f $pidfile) + { + my $pid= mtr_get_pid_from_file($pidfile); + if ( ! kill(0,$pid) ) + { + $not_terminated++; + mtr_warning("could't kill $pid"); + } + } + } + if ( ! $not_terminated ) + { + last PIDFILES; + } + if ( $loop > 1 ) + { + sleep(1); # One second + } + } + + { + my $pidfiles_left= 0; + my @args= @$spec; + while ( @args ) + { + my $pidfile= shift @args; + my $sockfile= shift @args; + if ( -f $pidfile ) + { + if ( ! unlink($pidfile) ) + { + $pidfiles_left++; + mtr_warning("could't delete $pidfile"); + } + } + } + if ( $pidfiles_left ) + { + mtr_error("one or more pid files could not be deleted"); + } + } + + # FIXME We just assume they are all dead, we don't know.... +} + + +1; diff --git a/mysql-test/lib/mtr_report.pl b/mysql-test/lib/mtr_report.pl new file mode 100644 index 00000000000..350cd993f19 --- /dev/null +++ b/mysql-test/lib/mtr_report.pl @@ -0,0 +1,257 @@ +# -*- cperl -*- + +# This is a library file used by the Perl version of mysql-test-run, +# and is part of the translation of the Bourne shell script with the +# same name. + +use strict; + +sub mtr_report_test_name($); +sub mtr_report_test_passed($); +sub mtr_report_test_failed($); +sub mtr_report_test_skipped($); + +sub mtr_show_failed_diff ($); +sub mtr_report_stats ($); +sub mtr_print_line (); +sub mtr_print_header (); +sub mtr_report (@); +sub mtr_warning (@); +sub mtr_error (@); +sub mtr_debug (@); + + +############################################################################## +# +# +# +############################################################################## + +# We can't use diff -u or diff -a as these are not portable + +sub mtr_show_failed_diff ($) { + my $tname= shift; + + my $reject_file= "r/$tname.reject"; + my $result_file= "r/$tname.result"; + my $eval_file= "r/$tname.eval"; + + if ( -f $eval_file ) + { + $result_file= $eval_file; + } + elsif ( $::opt_result_ext and + ( $::opt_record or -f "$result_file$::opt_result_ext" )) + { + # If we have an special externsion for result files we use it if we are + # recording or a result file with that extension exists. + $result_file= "$result_file$::opt_result_ext"; + } + + if ( -f $reject_file ) + { + print "Below are the diffs between actual and expected results:\n"; + print "-------------------------------------------------------\n"; + # FIXME check result code?! + mtr_run("diff",["-c",$result_file,$reject_file], "", "", "", ""); + print "-------------------------------------------------------\n"; + print "Please follow the instructions outlined at\n"; + print "http://www.mysql.com/doc/en/Reporting_mysqltest_bugs.html\n"; + print "to find the reason to this problem and how to report this.\n\n"; + } +} + +sub mtr_report_test_name ($) { + my $tinfo= shift; + + printf "%-31s ", $tinfo->{'name'}; +} + +sub mtr_report_test_skipped ($) { + my $tinfo= shift; + + $tinfo->{'result'}= 'MTR_RES_SKIPPED'; + print "[ skipped ]\n"; +} + +sub mtr_report_test_passed ($) { + my $tinfo= shift; + + my $timer= ""; +# FIXME +# if ( $::opt_timer and -f "$::glob_mysql_test_dir/var/log/timer" ) +# { +# $timer= `cat var/log/timer`; +# $timer= sprintf "%13s", $timer; +# } + $tinfo->{'result'}= 'MTR_RES_PASSED'; + print "[ pass ] $timer\n"; +} + +sub mtr_report_test_failed ($) { + my $tinfo= shift; + + $tinfo->{'result'}= 'MTR_RES_FAILED'; + print "[ fail ]\n"; + + print "Errors are (from $::path_timefile) :\n"; + print mtr_fromfile($::path_timefile); # FIXME print_file() instead + print "\n(the last lines may be the most important ones)\n"; +} + +sub mtr_report_stats ($) { + my $tests= shift; + + # ---------------------------------------------------------------------- + # Find out how we where doing + # ---------------------------------------------------------------------- + + my $tot_skiped= 0; + my $tot_passed= 0; + my $tot_failed= 0; + my $tot_tests= 0; + + foreach my $tinfo (@$tests) + { + if ( $tinfo->{'result'} eq 'MTR_RES_SKIPPED' ) + { + $tot_skiped++; + } + elsif ( $tinfo->{'result'} eq 'MTR_RES_PASSED' ) + { + $tot_tests++; + $tot_passed++; + } + elsif ( $tinfo->{'result'} eq 'MTR_RES_FAILED' ) + { + $tot_tests++; + $tot_failed++; + } + } + + # ---------------------------------------------------------------------- + # Print out a summary report to screen + # ---------------------------------------------------------------------- + + if ( ! $tot_failed ) + { + print "All $tot_tests tests were successful.\n"; + } + else + { + my $ratio= $tot_passed * 100 / $tot_tests; + printf "Failed $tot_failed/$tot_tests tests, " . + "%.2f\% successful.\n\n", $ratio; + print + "The log files in var/log may give you some hint\n", + "of what when wrong.\n", + "If you want to report this error, please read first ", + "the documentation at\n", + "http://www.mysql.com/doc/en/MySQL_test_suite.html\n"; + } + + # ---------------------------------------------------------------------- + # ---------------------------------------------------------------------- + + if ( ! $::glob_use_running_server ) + { + + # Report if there was any fatal warnings/errors in the log files + # + unlink("$::glob_mysql_test_dir/var/log/warnings"); + unlink("$::glob_mysql_test_dir/var/log/warnings.tmp"); + # Remove some non fatal warnings from the log files + +# FIXME what is going on ????? ;-) +# sed -e 's!Warning: Table:.* on delete!!g' -e 's!Warning: Setting lower_case_table_names=2!!g' -e 's!Warning: One can only use the --user.*root!!g' \ +# var/log/*.err \ +# | sed -e 's!Warning: Table:.* on rename!!g' \ +# > var/log/warnings.tmp; +# +# found_error=0; +# # Find errors +# for i in "^Warning:" "^Error:" "^==.* at 0x" +# do +# if ( $GREP "$i" var/log/warnings.tmp >> var/log/warnings ) +# { +# found_error=1 +# } +# done +# unlink("$::glob_mysql_test_dir/var/log/warnings.tmp"); +# if ( $found_error= "1" ) +# { +# print "WARNING: Got errors/warnings while running tests. Please examine\n" +# print "$::glob_mysql_test_dir/var/log/warnings for details.\n" +# } +# } + } + + print "\n"; + + if ( $tot_failed != 0 ) + { + print "mysql-test-run: *** Failing the test(s):"; + + foreach my $tinfo (@$tests) + { + if ( $tinfo->{'result'} eq 'MTR_RES_FAILED' ) + { + print " $tinfo->{'name'}"; + } + } + print "\n"; + mtr_error("there where failing test cases"); + } +} + +############################################################################## +# +# Text formatting +# +############################################################################## + +sub mtr_print_line () { + print '-' x 55, "\n"; +} + +sub mtr_print_header () { + print "\n"; + if ( $::opt_timer ) + { + print "TEST RESULT TIME (ms)\n"; + } + else + { + print "TEST RESULT\n"; + } + mtr_print_line(); + print "\n"; +} + + +############################################################################## +# +# Misc +# +############################################################################## + +sub mtr_report (@) { + print join(" ", @_),"\n"; +} + +sub mtr_warning (@) { + print STDERR "mysql-test-run: WARNING: ",join(" ", @_),"\n"; +} + +sub mtr_error (@) { + die "mysql-test-run: *** ERROR: ",join(" ", @_),"\n"; +} + +sub mtr_debug (@) { + if ( $::opt_script_debug ) + { + print "mysql-test-run: DEBUG: ",join(" ", @_),"\n"; + } +} + +1; diff --git a/mysql-test/mysql-test-run.pl b/mysql-test/mysql-test-run.pl new file mode 100755 index 00000000000..c90ebf22dad --- /dev/null +++ b/mysql-test/mysql-test-run.pl @@ -0,0 +1,1975 @@ +#!/usr/bin/perl +# -*- cperl -*- + +# This is a transformation of the "mysql-test-run" Bourne shell script +# to Perl. This is just an intermediate step, the goal is to rewrite +# the Perl script to C. The complexity of the mysql-test-run script +# makes it a bit hard to write and debug it as a C program directly, +# so this is considered a prototype. +# +# Because of this the Perl coding style may in some cases look a bit +# funny. The rules used are +# +# - The coding style is as close as possible to the C/C++ MySQL +# coding standard. +# +# - Where NULL is to be returned, the undefined value is used. +# +# - Regexp comparisons are simple and can be translated to strcmp +# and other string functions. To ease this transformation matching +# is done in the lib "lib/mtr_match.pl", i.e. regular expressions +# should be avoided in the main program. +# +# - The "unless" construct is not to be used. It is the same as "if !". +# +# - opendir/readdir/closedir is used instead of glob()/<*>. +# +# - All lists of arguments to send to commands are Perl lists/arrays, +# not strings we append args to. Within reason, most string +# concatenation for arguments should be avoided. +# +# - sprintf() is to be used, within reason, for all string creation. +# This mtr_add_arg() function is also based on sprintf(), i.e. you +# use a format string and put the variable argument in the argument +# list. +# +# - Functions defined in the main program are not to be prefixed, +# functions in "library files" are to be prefixed with "mtr_" (for +# Mysql-Test-Run). There are some exceptions, code that fits best in +# the main program, but are put into separate files to avoid +# clutter, may be without prefix. +# +# - All stat/opendir/-f/ is to be kept in collect_test_cases(). It +# will create a struct that the rest of the program can use to get +# the information. This separates the "find information" from the +# "do the work" and makes the program more easy to maintain. +# +# - At the moment, there are tons of "global" variables that control +# this script, even accessed from the files in "lib/*.pl". This +# will change over time, for now global variables are used instead +# of using %opt, %path and %exe hashes, because I want more +# compile time checking, that hashes would not give me. Once this +# script is debugged, hashes will be used and passed as parameters +# to functions, to more closely mimic how it would be coded in C +# using structs. +# +# - The rule when it comes to the logic of this program is +# +# command_line_setup() - is to handle the logic between flags +# collect_test_cases() - is to do its best to select what tests +# to run, dig out options, if needs restart etc. +# run_testcase() - is to run a single testcase, and follow the +# logic set in both above. No, or rare file +# system operations. If a test seems complex, +# it should probably not be here. +# +# A nice way to trace the execution of this script while debugging +# is to use the Devel::Trace package found at +# "http://www.plover.com/~mjd/perl/Trace/" and run this script like +# "perl -d:Trace mysql-test-run.pl" + +$Devel::Trace::TRACE= 0; # Don't trace boring init stuff + +#require 5.6.1; +use File::Path; +use File::Basename; +use Cwd; +use Getopt::Long; +use Sys::Hostname; +#use Carp; +use IO::Socket; +use IO::Socket::INET; +use Data::Dumper; +use strict; +#use diagnostics; + +require "lib/mtr_process.pl"; +require "lib/mtr_io.pl"; +require "lib/mtr_gcov.pl"; +require "lib/mtr_gprof.pl"; +require "lib/mtr_report.pl"; +require "lib/mtr_match.pl"; +require "lib/mtr_misc.pl"; + +$Devel::Trace::TRACE= 1; + +my @skip_if_embedded_server= + ( + "bdb-deadlock", + "connect", + "flush_block_commit", + "grant2", + "grant_cache", + "grant", + "init_connect", + "innodb-deadlock", + "innodb-lock", + "mix_innodb_myisam_binlog", + "mysqlbinlog2", + "mysqlbinlog", + "mysqldump", + "mysql_protocols", + "ps_1general", + "rename", + "show_check", + "system_mysql_db_fix", + "user_var", + "variables", + ); + +# Used by gcov +our @mysqld_src_dirs= + ( + "strings", + "mysys", + "include", + "extra", + "regex", + "isam", + "merge", + "myisam", + "myisammrg", + "heap", + "sql", + ); + +############################################################################## +# +# Default settings +# +############################################################################## + +# We are to use handle_options() in "mysys/my_getopt.c" for the C version +# +# In the C version we want to use structs and, in some cases, arrays of +# structs. We let each struct be a separate hash. + +# Misc global variables + +our $glob_win32= 0; +our $glob_mysql_test_dir= undef; +our $glob_hostname= undef; +our $glob_scriptname= undef; +our $glob_use_running_server= 0; +our $glob_use_running_ndbcluster= 0; +our $glob_user= 'test'; +our $glob_use_embedded_server= 0; + +our $glob_basedir; +our $glob_do_test; + +# The total result + +our $path_charsetsdir; +our $path_client_bindir; +our $path_language; +our $path_tests_bindir; +our $path_timefile; +our $path_manager_log; # Used by mysqldadmin +our $path_slave_load_tmpdir; # What is this?! +our $path_my_basedir; +our $opt_tmpdir; # A path but set directly on cmd line + +our $opt_netware; + +our $opt_script_debug= 0; # Script debugging, enable with --script-debug + +# Options FIXME not all.... + +our $exe_master_mysqld; +our $exe_mysql; +our $exe_mysqladmin; +our $exe_mysqlbinlog; +our $exe_mysqld; +our $exe_mysqldump; # Called from test case +our $exe_mysqltest; +our $exe_slave_mysqld; + +our $opt_bench= 0; +our $opt_small_bench= 0; +our $opt_big_test= 0; # Send --big-test to mysqltest + +our $opt_extra_mysqld_opt; # FIXME not handled + +our $opt_compress; +our $opt_current_test; +our $opt_ddd; +our $opt_debug; +our $opt_do_test; +our $opt_embedded_server; +our $opt_extern; +our $opt_fast; +our $opt_force; + +our $opt_gcov; +our $opt_gcov_err; +our $opt_gcov_msg; + +our $opt_gdb; +our $opt_client_gdb; +our $opt_manual_gdb; + +our $opt_gprof; +our $opt_gprof_dir; +our $opt_gprof_master; +our $opt_gprof_slave; + +our $opt_local; +our $opt_local_master; + +our $master; # Will be struct in C +our $slave; + +our $opt_ndbcluster_port; +our $opt_ndbconnectstring; + +our $opt_no_manager; # Does nothing now, we never use manager + +our $opt_old_master; + +our $opt_record; + +our $opt_result_ext; + +our $opt_skip; +our $opt_skip_rpl; +our $opt_skip_test; + +our $opt_sleep; + +# FIXME all of the sleep time handling needs cleanup +our $opt_sleep_time_after_restart= 1; +our $opt_sleep_time_for_delete= 10; +our $opt_sleep_time_for_first_master= 400; # enough time create innodb tables +our $opt_sleep_time_for_second_master= 400; +our $opt_sleep_time_for_first_slave= 400; +our $opt_sleep_time_for_second_slave= 30; + +our $opt_socket; + +our $opt_source_dist; + +our $opt_start_and_exit; +our $opt_start_from; + +our $opt_strace_client; + +our $opt_timer; + + +our $opt_user_test; + +our $opt_valgrind; +our $opt_valgrind_all; +our $opt_valgrind_options; + +our $opt_verbose; + +our $opt_wait_for_master; +our $opt_wait_for_slave; +our $opt_wait_timeout= 10; + +our $opt_warnings; + +our $opt_with_ndbcluster; +our $opt_with_openssl; + + +###################################################################### +# +# Function declarations +# +###################################################################### + +sub main (); +sub initial_setup (); +sub command_line_setup (); +sub executable_setup (); +sub kill_and_cleanup (); +sub sleep_until_file_created ($$); +sub ndbcluster_start (); +sub ndbcluster_stop (); +sub run_benchmarks ($); +sub run_tests (); +sub mysql_install_db (); +sub install_db ($$); +sub run_testcase ($); +sub do_before_start_master ($$); +sub do_before_start_slave ($$); +sub mysqld_start ($$$$); +sub mysqld_arguments ($$$$$); +sub stop_masters_slaves (); +sub stop_masters (); +sub stop_slaves (); +sub run_mysqltest ($); + +###################################################################### +# +# Main program +# +###################################################################### + +main(); + +sub main () { + + initial_setup(); + command_line_setup(); + executable_setup(); + signal_setup(); + + if ( $opt_gcov ) + { + gcov_prepare(); + } + + if ( $opt_gprof ) + { + gprof_prepare(); + } + + if ( ! $glob_use_running_server ) + { + kill_and_cleanup(); + mysql_install_db(); + + if ( $opt_with_ndbcluster and ! $glob_use_running_ndbcluster ) + { + ndbcluster_start(); # We start the cluster storage engine + } + +# mysql_loadstd(); FIXME copying from "std_data" .frm and +# .MGR but there are none?! + } + + if ( $opt_start_and_exit ) + { + mtr_report("Servers started, exiting"); + } + else + { + if ( $opt_bench ) + { + run_benchmarks(shift); # Shift what? Extra arguments?! + } + else + { + run_tests(); + } + } + + exit(0); +} + +############################################################################## +# +# Initial setup independent on command line arguments +# +############################################################################## + +sub initial_setup () { + + select(STDOUT); + $| = 1; # Make unbuffered + + $glob_scriptname= basename($0); + + $glob_win32= ($^O eq "MSWin32"); + + # We require that we are in the "mysql-test" directory + # to run mysql-test-run + + if (! -f $glob_scriptname) + { + mtr_error("Can't find the location for the mysql-test-run script\n" . + "Go to to the mysql-test directory and execute the script " . + "as follows:\n./$glob_scriptname"); + } + + if ( -d "../sql" ) + { + $opt_source_dist= 1; + } + + $glob_hostname= mtr_full_hostname(); + + # 'basedir' is always parent of "mysql-test" directory + $glob_mysql_test_dir= cwd(); + $glob_basedir= dirname($glob_mysql_test_dir); + + $path_timefile= "$glob_mysql_test_dir/var/log/mysqltest-time"; + + # needs to be same length to test logging (FIXME what???) + $path_slave_load_tmpdir= "../../var/tmp"; + + $path_my_basedir= + $opt_source_dist ? $glob_mysql_test_dir : $glob_basedir; +} + + + +############################################################################## +# +# Default settings +# +############################################################################## + +sub command_line_setup () { + + # These are defaults for things that are set on the command line + + $opt_tmpdir= "$glob_mysql_test_dir/var/tmp"; + # FIXME maybe unneded? + $path_manager_log= "$glob_mysql_test_dir/var/log/manager.log"; + $opt_current_test= "$glob_mysql_test_dir/var/log/current_test"; + + my $opt_master_myport= 9306; + my $opt_slave_myport= 9308; + $opt_ndbcluster_port= 9350; + $opt_sleep_time_for_delete= 10; + + my $opt_user; + + # Read the command line + + GetOptions( + 'bench' => \$opt_bench, + 'big-test' => \$opt_big_test, + 'client-gdb' => \$opt_client_gdb, + 'compress' => \$opt_compress, + 'ddd' => \$opt_ddd, + 'debug' => \$opt_debug, + 'do-test=s' => \$opt_do_test, + 'embedded-server' => \$opt_embedded_server, + 'extern' => \$opt_extern, + 'fast' => \$opt_fast, + 'force' => \$opt_force, + 'gcov' => \$opt_gcov, + 'gdb' => \$opt_gdb, + 'gprof' => \$opt_gprof, + 'local' => \$opt_local, + 'local-master' => \$opt_local_master, + 'manual-gdb' => \$opt_manual_gdb, + 'master-binary=s' => \$exe_master_mysqld, + 'master_port=i' => \$opt_master_myport, + 'mysqld=s' => \$opt_extra_mysqld_opt, + 'ndbcluster_port=i' => \$opt_ndbcluster_port, + 'ndbconnectstring=s' => \$opt_ndbconnectstring, + 'netware' => \$opt_netware, + 'no-manager' => \$opt_no_manager, + 'old-master' => \$opt_old_master, + 'record' => \$opt_record, + 'script-debug' => \$opt_script_debug, + 'skip-rpl' => \$opt_skip_rpl, + 'skip-test=s' => \$opt_skip_test, + 'slave-binary=s' => \$exe_slave_mysqld, + 'slave_port=i' => \$opt_slave_myport, + 'sleep=i' => \$opt_sleep, + 'small-bench' => \$opt_small_bench, + 'socket=s' => \$opt_socket, + 'start-and-exit' => \$opt_start_and_exit, + 'start-from=s' => \$opt_start_from, + 'strace-client' => \$opt_strace_client, + 'timer' => \$opt_timer, + 'tmpdir=s' => \$opt_tmpdir, + 'user-test=s' => \$opt_user_test, + 'user=s' => \$opt_user, + 'valgrind' => \$opt_valgrind, + 'valgrind-all' => \$opt_valgrind_all, + 'valgrind-options=s' => \$opt_valgrind_options, + 'verbose' => \$opt_verbose, + 'wait-timeout=i' => \$opt_wait_timeout, + 'warnings|log-warnings' => \$opt_warnings, + 'with-ndbcluster' => \$opt_with_ndbcluster, + 'with-openssl' => \$opt_with_openssl, + ) or usage("Can't read options"); + + + # Put this into a hash, will be a C struct + + $master->[0]->{'path_myddir'}= "$glob_mysql_test_dir/var/master-data"; + $master->[0]->{'path_myerr'}= "$glob_mysql_test_dir/var/log/master.err"; + $master->[0]->{'path_mylog'}= "$glob_mysql_test_dir/var/log/master.log"; + $master->[0]->{'path_mypid'}= "$glob_mysql_test_dir/var/run/master.pid"; + $master->[0]->{'path_mysock'}= "$opt_tmpdir/master.sock"; + $master->[0]->{'path_myport'}= $opt_master_myport; + + $master->[1]->{'path_myddir'}= "$glob_mysql_test_dir/var/master1-data"; + $master->[1]->{'path_myerr'}= "$glob_mysql_test_dir/var/log/master1.err"; + $master->[1]->{'path_mylog'}= "$glob_mysql_test_dir/var/log/master1.log"; + $master->[1]->{'path_mypid'}= "$glob_mysql_test_dir/var/run/master1.pid"; + $master->[1]->{'path_mysock'}= "$opt_tmpdir/master1.sock"; + $master->[1]->{'path_myport'}= $opt_master_myport + 1; + + $slave->[0]->{'path_myddir'}= "$glob_mysql_test_dir/var/slave-data"; + $slave->[0]->{'path_myerr'}= "$glob_mysql_test_dir/var/log/slave.err"; + $slave->[0]->{'path_mylog'}= "$glob_mysql_test_dir/var/log/slave.log"; + $slave->[0]->{'path_mypid'}= "$glob_mysql_test_dir/var/run/slave.pid"; + $slave->[0]->{'path_mysock'}= "$opt_tmpdir/slave.sock"; + $slave->[0]->{'path_myport'}= $opt_slave_myport; + + $slave->[1]->{'path_myddir'}= "$glob_mysql_test_dir/var/slave1-data"; + $slave->[1]->{'path_myerr'}= "$glob_mysql_test_dir/var/log/slave1.err"; + $slave->[1]->{'path_mylog'}= "$glob_mysql_test_dir/var/log/slave1.log"; + $slave->[1]->{'path_mypid'}= "$glob_mysql_test_dir/var/run/slave1.pid"; + $slave->[1]->{'path_mysock'}= "$opt_tmpdir/slave1.sock"; + $slave->[1]->{'path_myport'}= $opt_slave_myport + 1; + + $slave->[2]->{'path_myddir'}= "$glob_mysql_test_dir/var/slave2-data"; + $slave->[2]->{'path_myerr'}= "$glob_mysql_test_dir/var/log/slave2.err"; + $slave->[2]->{'path_mylog'}= "$glob_mysql_test_dir/var/log/slave2.log"; + $slave->[2]->{'path_mypid'}= "$glob_mysql_test_dir/var/run/slave2.pid"; + $slave->[2]->{'path_mysock'}= "$opt_tmpdir/slave2.sock"; + $slave->[2]->{'path_myport'}= $opt_slave_myport + 2; + + # Do sanity checks of command line arguments + + if ( $opt_extern and $opt_local ) + { + die "Can't use --extern and --local at the same time"; + } + + if ( ! $opt_socket ) + { # FIXME set default before reading options? +# $opt_socket= '@MYSQL_UNIX_ADDR@'; + $opt_socket= "/tmp/mysql.sock"; # FIXME + } + + if ( $opt_extern ) + { + $glob_use_running_server= 1; + $opt_skip_rpl= 1; # We don't run rpl test cases + $master->[0]->{'path_mysock'}= $opt_socket; + } + + # -------------------------------------------------------------------------- + # Set LD_LIBRARY_PATH if we are using shared libraries + # -------------------------------------------------------------------------- + $ENV{'LD_LIBRARY_PATH'}= + "$glob_basedir/lib:$glob_basedir/libmysql/.libs" . + ($ENV{'LD_LIBRARY_PATH'} ? ":$ENV{'LD_LIBRARY_PATH'}" : ""); + $ENV{'DYLD_LIBRARY_PATH'}= + "$glob_basedir/lib:$glob_basedir/libmysql/.libs" . + ($ENV{'DYLD_LIBRARY_PATH'} ? ":$ENV{'DYLD_LIBRARY_PATH'}" : ""); + + # -------------------------------------------------------------------------- + # Look at the command line options and set script flags + # -------------------------------------------------------------------------- + + if ( $opt_record and ! @ARGV) + { + mtr_error("Will not run in record mode without a specific test case"); + } + + if ( $opt_embedded_server ) + { + $glob_use_embedded_server= 1; + $opt_skip_rpl= 1; # We never run replication with embedded + + if ( $opt_extern ) + { + die "Can't use --extern with --embedded-server"; + } + $opt_result_ext= ".es"; + } + + # FIXME don't understand what this is +# if ( $opt_local_master ) +# { +# $opt_master_myport= 3306; +# } + + if ( $opt_small_bench ) + { + $opt_bench= 1; + } + + if ( $opt_sleep ) + { + $opt_sleep_time_after_restart= $opt_sleep; + } + + if ( $opt_gcov ) + { + if ( $opt_source_dist ) + { + die "Coverage test needs the source - please use source dist"; + } + } + + if ( $opt_gdb ) + { + $opt_wait_timeout= 300; + if ( $opt_extern ) + { + die "Can't use --extern with --gdb"; + } + } + + if ( $opt_manual_gdb ) + { + $opt_gdb= 1; + if ( $opt_extern ) + { + die "Can't use --extern with --manual-gdb"; + } + } + + if ( $opt_ddd ) + { + if ( $opt_extern ) + { + die "Can't use --extern with --ddd"; + } + } + + if ( $opt_ndbconnectstring ) + { + $glob_use_running_ndbcluster= 1; + $opt_with_ndbcluster= 1; + } + + # FIXME + + #if ( $opt_valgrind or $opt_valgrind_all ) + #{ + # VALGRIND=`which valgrind` # this will print an error if not found FIXME + # Give good warning to the user and stop + # if ( ! $VALGRIND ) + # { + # print "You need to have the 'valgrind' program in your PATH to run mysql-test-run with option --valgrind. Valgrind's home page is http://valgrind.kde.org.\n" + # exit 1 + # } + # >=2.1.2 requires the --tool option, some versions write to stdout, some to stderr + # valgrind --help 2>&1 | grep "\-\-tool" > /dev/null && VALGRIND="$VALGRIND --tool=memcheck" + # VALGRIND="$VALGRIND --alignment=8 --leak-check=yes --num-callers=16" + # $opt_extra_mysqld_opt.= " --skip-safemalloc --skip-bdb"; + # SLEEP_TIME_AFTER_RESTART=10 + # $opt_sleep_time_for_delete= 60 + # $glob_use_running_server= "" + # if ( "$1"= "--valgrind-all" ) + # { + # VALGRIND="$VALGRIND -v --show-reachable=yes" + # } + #} + + if ( $opt_user ) + { + $glob_user= $opt_user; + } + elsif ( $glob_use_running_server ) + { + $glob_user= "test"; + } + else + { + $glob_user= "root"; # We want to do FLUSH xxx commands + } + +} + + +############################################################################## +# +# Set paths to various executable programs +# +############################################################################## + +sub executable_setup () { + + if ( $opt_source_dist ) + { + if ( $glob_use_embedded_server ) + { + if ( -f "$glob_basedir/libmysqld/examples/mysqltest" ) + { + $exe_mysqltest= "$glob_basedir/libmysqld/examples/mysqltest"; + } + else + { + mtr_error("Cannot find embedded server 'mysqltest'"); + } + } + else + { + $exe_mysqld= "$glob_basedir/sql/mysqld"; + if ( -f "$glob_basedir/client/.libs/lt-mysqltest" ) + { + $exe_mysqltest= "$glob_basedir/client/.libs/lt-mysqltest"; + } + elsif ( -f "$glob_basedir/client/.libs/mysqltest" ) + { + $exe_mysqltest= "$glob_basedir/client/.libs/mysqltest"; + } + else + { + $exe_mysqltest= "$glob_basedir/client/mysqltest"; + } + } + if ( -f "$glob_basedir/client/.libs/mysqldump" ) + { + $exe_mysqldump= "$glob_basedir/client/.libs/mysqldump"; + } + else + { + $exe_mysqldump= "$glob_basedir/client/mysqldump"; + } + if ( -f "$glob_basedir/client/.libs/mysqlbinlog" ) + { + $exe_mysqlbinlog= "$glob_basedir/client/.libs/mysqlbinlog"; + } + else + { + $exe_mysqlbinlog= "$glob_basedir/client/mysqlbinlog"; + } + + $path_client_bindir= "$glob_basedir/client"; + $path_tests_bindir= "$glob_basedir/tests"; + $exe_mysqladmin= "$path_client_bindir/mysqladmin"; + $exe_mysql= "$path_client_bindir/mysql"; + $path_language= "$glob_basedir/sql/share/english/"; + $path_charsetsdir= "$glob_basedir/sql/share/charsets"; + } + else + { + $path_client_bindir= "$glob_basedir/bin"; + $path_tests_bindir= "$glob_basedir/tests"; + $exe_mysqltest= "$path_client_bindir/mysqltest"; + $exe_mysqldump= "$path_client_bindir/mysqldump"; + $exe_mysqlbinlog= "$path_client_bindir/mysqlbinlog"; + $exe_mysqladmin= "$path_client_bindir/mysqladmin"; + $exe_mysql= "$path_client_bindir/mysql"; + if ( -d "$glob_basedir/share/mysql/english" ) + { + $path_language ="$glob_basedir/share/mysql/english/"; + $path_charsetsdir ="$glob_basedir/share/mysql/charsets"; + } + else + { + $path_language ="$glob_basedir/share/english/"; + $path_charsetsdir ="$glob_basedir/share/charsets"; + } + + if ( -x "$glob_basedir/libexec/mysqld" ) + { + $exe_mysqld= "$glob_basedir/libexec/mysqld"; + } + else + { + $exe_mysqld= "$glob_basedir/bin/mysqld"; + } + + } + + # FIXME special $exe_master_mysqld and $exe_slave_mysqld + # are not used that much.... + + if ( ! $exe_master_mysqld ) + { + $exe_master_mysqld= $exe_mysqld; + } + + if ( ! $exe_slave_mysqld ) + { + $exe_slave_mysqld= $exe_mysqld; + } +} + + +############################################################################## +# +# If we get a ^C, we try to clean up before termination +# +############################################################################## +# FIXME check restrictions what to do in a signal handler + +sub signal_setup () { + $SIG{INT}= \&handle_int_signal; +} + +sub handle_int_signal () { + $SIG{INT}= 'DEFAULT'; # If we get a ^C again, we die... + mtr_warning("got INT signal, cleaning up....."); + stop_masters_slaves(); + exit(1); +} + + +############################################################################## +# +# Collect information about test cases we are to run +# +############################################################################## + +sub collect_test_cases () { + my $testdir= "$glob_mysql_test_dir/t"; + + my @tests; # Array of hash, will be array of C struct + + opendir(TESTDIR, $testdir) or die "Can't open dir \"$testdir\": $!"; + + foreach my $elem ( sort readdir(TESTDIR) ) { + my $tname= mtr_match_extension($elem,"test"); + next if ! defined $tname; + next if $opt_do_test and ! defined mtr_match_prefix($elem,$opt_do_test); + my $path= "$testdir/$elem"; + + # ---------------------------------------------------------------------- + # Skip some tests silently + # ---------------------------------------------------------------------- + + if ( $opt_start_from and $tname lt $opt_start_from ) + { + next; + } + + # ---------------------------------------------------------------------- + # Skip some tests but include in list, just mark them to skip + # ---------------------------------------------------------------------- + + my $tinfo= {}; + $tinfo->{'name'}= $tname; + $tinfo->{'result_file'}= "r/$tname.result"; + push(@tests, $tinfo); + + if ( $opt_skip_test and defined mtr_match_prefix($tname,$opt_skip_test) ) + { + $tinfo->{'skip'}= 1; + next; + } + + # FIXME temporary solution, we have a hard coded list of test cases to + # skip if we are using the embedded server + + if ( $glob_use_embedded_server and + mtr_match_any_exact($tname,\@skip_if_embedded_server) ) + { + $tinfo->{'skip'}= 1; + next; + } + + # ---------------------------------------------------------------------- + # Collect information about test case + # ---------------------------------------------------------------------- + + $tinfo->{'path'}= $path; + + if ( defined mtr_match_prefix($tname,"rpl") ) + { + if ( $opt_skip_rpl ) + { + $tinfo->{'skip'}= 1; + next; + } + + # FIXME currently we always restart slaves + $tinfo->{'slave_restart'}= 1; + + if ( $tname eq 'rpl_failsafe' or $tname eq 'rpl_chain_temp_table' ) + { + $tinfo->{'slave_num'}= 3; + } + else + { + $tinfo->{'slave_num'}= 1; + } + } + + # FIXME what about embedded_server + ndbcluster, skip ?! + + my $master_opt_file= "$testdir/$tname-master.opt"; + my $slave_opt_file= "$testdir/$tname-slave.opt"; + my $slave_mi_file= "$testdir/$tname.slave-mi"; + my $master_sh= "$testdir/$tname-master.sh"; + my $slave_sh= "$testdir/$tname-slave.sh"; + + if ( -f $master_opt_file ) + { + $tinfo->{'master_restart'}= 1; # We think so for now + # This is a dirty hack from old mysql-test-run, we use the opt file + # to flag other things as well, it is not a opt list at all + my $extra_master_opt= mtr_get_opts_from_file($master_opt_file); + + foreach my $opt (@$extra_master_opt) + { + my $value; + + $value= mtr_match_prefix($opt, "--timezone="); + + if ( defined $value ) + { + $ENV{'TZ'}= $value; # FIXME pass this on somehow.... + $extra_master_opt= []; + $tinfo->{'master_restart'}= 0; + last; + } + + $value= mtr_match_prefix($opt, "--result-file="); + + if ( defined $value ) + { + $tinfo->{'result_file'}= "r/$value.result"; + if ( $opt_result_ext and $opt_record or + -f "$tinfo->{'result_file'}$opt_result_ext") + { + $tinfo->{'result_file'}.= $opt_result_ext; + } + $extra_master_opt= []; + $tinfo->{'master_restart'}= 0; + last; + } + } + + $tinfo->{'master_opt'}= $extra_master_opt; + } + + if ( -f $slave_opt_file ) + { + $tinfo->{'slave_opt'}= mtr_get_opts_from_file($slave_opt_file); + $tinfo->{'slave_restart'}= 1; + } + + if ( -f $slave_mi_file ) + { + $tinfo->{'slave_mi'}= mtr_get_opts_from_file($slave_mi_file); + $tinfo->{'slave_restart'}= 1; + } + + if ( -f $master_sh ) + { + if ( $glob_win32 ) + { + $tinfo->{'skip'}= 1; + } + else + { + $tinfo->{'master_sh'}= $master_sh; + $tinfo->{'master_restart'}= 1; + } + } + + if ( -f $slave_sh ) + { + if ( $glob_win32 ) + { + $tinfo->{'skip'}= 1; + } + else + { + $tinfo->{'slave_sh'}= $slave_sh; + $tinfo->{'slave_restart'}= 1; + } + } + + # We can't restart a running server that may be in use + + if ( $glob_use_running_server and + ( $tinfo->{'master_restart'} or $tinfo->{'slave_restart'} ) ) + { + $tinfo->{'skip'}= 1; + } + + } + + closedir TESTDIR; + + return \@tests; +} + + +############################################################################## +# +# Handle left overs from previous runs +# +############################################################################## + +sub kill_and_cleanup () { + + if ( $opt_fast or $glob_use_embedded_server ) + { + # FIXME is embedded server really using PID files?! + unlink($master->[0]->{'path_mypid'}); + unlink($master->[1]->{'path_mypid'}); + unlink($slave->[0]->{'path_mypid'}); + unlink($slave->[1]->{'path_mypid'}); + unlink($slave->[2]->{'path_mypid'}); + } + else + { + # Ensure that no old mysqld test servers are running + # This is different from terminating processes we have + # started from ths run of the script, this is terminating + # leftovers from previous runs. + + mtr_report("Killing Possible Leftover Processes"); + mtr_kill_leftovers(); + } + + if ( $opt_with_ndbcluster and ! $glob_use_running_ndbcluster ) + { + ndbcluster_stop(); + } + + mtr_report("Removing Stale Files"); + + rmtree("$glob_mysql_test_dir/var/log"); + rmtree("$glob_mysql_test_dir/var/ndbcluster"); + rmtree("$glob_mysql_test_dir/var/run"); + rmtree("$glob_mysql_test_dir/var/tmp"); + + mkpath("$glob_mysql_test_dir/var/log"); + mkpath("$glob_mysql_test_dir/var/ndbcluster"); + mkpath("$glob_mysql_test_dir/var/run"); + mkpath("$glob_mysql_test_dir/var/tmp"); + mkpath($opt_tmpdir); + + rmtree("$master->[0]->{'path_myddir'}"); + mkpath("$master->[0]->{'path_myddir'}/mysql"); # Need to create subdir?! + mkpath("$master->[0]->{'path_myddir'}/test"); + + rmtree("$master->[1]->{'path_myddir'}"); + mkpath("$master->[1]->{'path_myddir'}/mysql"); # Need to create subdir?! + mkpath("$master->[1]->{'path_myddir'}/test"); + + rmtree("$slave->[0]->{'path_myddir'}"); + mkpath("$slave->[0]->{'path_myddir'}/mysql"); # Need to create subdir?! + mkpath("$slave->[0]->{'path_myddir'}/test"); + + rmtree("$slave->[1]->{'path_myddir'}"); + mkpath("$slave->[1]->{'path_myddir'}/mysql"); # Need to create subdir?! + mkpath("$slave->[1]->{'path_myddir'}/test"); + + rmtree("$slave->[2]->{'path_myddir'}"); + mkpath("$slave->[2]->{'path_myddir'}/mysql"); # Need to create subdir?! + mkpath("$slave->[2]->{'path_myddir'}/test"); + + $opt_wait_for_master= $opt_sleep_time_for_first_master; + $opt_wait_for_slave= $opt_sleep_time_for_first_slave; +} + + +# FIXME + +sub sleep_until_file_created ($$) { + my $pidfile= shift; + my $timeout= shift; + + my $loop= $timeout * 2; + while ( $loop-- ) + { + if ( -r $pidfile ) + { + return; + } + sleep(1); + } + + if ( ! -r $pidfile ) + { + die "No $pidfile was created"; + } +} + + +############################################################################## +# +# Start the ndb cluster +# +############################################################################## + +# FIXME why is there a different start below?! + +sub ndbcluster_start () { + + mtr_report("Starting ndbcluster"); + my $ndbcluster_opts= $opt_bench ? "" : "--small"; + # FIXME check result code?! + mtr_run("./ndb/ndbcluster", + ["--port-base=$opt_ndbcluster_port", + $ndbcluster_opts, + "--diskless", + "--initial", + "--data-dir=$glob_mysql_test_dir/var"], + "", "", "", ""); +} + +sub ndbcluster_stop () { + mtr_run("./ndb/ndbcluster", + ["--data-dir=$glob_mysql_test_dir/var", + "--port-base=$opt_ndbcluster_port", + "--stop"], + "", "", "", ""); +} + + +############################################################################## +# +# Run the benchmark suite +# +############################################################################## + +sub run_benchmarks ($) { + my $benchmark= shift; + + my $args; + + if ( ! $glob_use_embedded_server and ! $opt_local_master ) + { + $master->[0]->{'pid'}= mysqld_start('master',0,[],[]); + } + + mtr_init_args(\$args); + + mtr_add_arg($args, "--socket=%s", $master->[0]->{'path_mysock'}); + mtr_add_arg($args, "--user=root"); + + if ( $opt_small_bench ) + { + mtr_add_arg($args, "--small-test"); + mtr_add_arg($args, "--small-tables"); + } + + if ( $opt_with_ndbcluster ) + { + mtr_add_arg($args, "--create-options=TYPE=ndb"); + } + + my $benchdir= "$glob_basedir/sql-bench"; + chdir($benchdir); # FIXME check error + + # FIXME write shorter.... + + if ( ! $benchmark ) + { + mtr_add_arg($args, "--log"); + mtr_run("./run-all-tests", $args, "", "", "", ""); + # FIXME check result code?! + } + elsif ( -x $benchmark ) + { + mtr_run("./$benchmark", $args, "", "", "", ""); + # FIXME check result code?! + } + else + { + mtr_error("benchmark $benchmark not found"); + } + + chdir($glob_mysql_test_dir); # Go back + + if ( ! $glob_use_embedded_server ) + { + stop_masters(); + } +} + + +############################################################################## +# +# Run the test suite +# +############################################################################## + +sub run_tests () { + + my $tests= collect_test_cases(); + + mtr_report("Starting Tests"); + + mtr_print_header(); + + foreach my $tinfo ( @$tests ) + { + run_testcase($tinfo); + } + + mtr_print_line(); + + if ( ! $opt_gdb and ! $glob_use_running_server and + ! $opt_ddd and ! $glob_use_embedded_server ) + { + stop_masters_slaves(); + } + + if ( $opt_with_ndbcluster and ! $glob_use_running_ndbcluster ) + { + ndbcluster_stop(); + } + + if ( $opt_gcov ) + { + gcov_collect(); # collect coverage information + } + if ( $opt_gprof ) + { + gprof_collect(); # collect coverage information + } + + mtr_report_stats($tests); +} + + +############################################################################## +# +# Initiate the test databases +# +############################################################################## + +sub mysql_install_db () { + + mtr_report("Installing Test Databases"); + + install_db('master', $master->[0]->{'path_myddir'}); + install_db('slave', $slave->[0]->{'path_myddir'}); + + return 0; +} + + +sub install_db ($$) { + my $type= shift; + my $data_dir= shift; + + my $init_db_sql= "lib/init_db.sql"; # FIXME this is too simple maybe + my $args; + + mtr_report("Installing \u$type Databases"); + + mtr_init_args(\$args); + + mtr_add_arg($args, "--no-defaults"); + mtr_add_arg($args, "--bootstrap"); + mtr_add_arg($args, "--skip-grant-tables"); + mtr_add_arg($args, "--basedir=%s", $path_my_basedir); + mtr_add_arg($args, "--datadir=%s", $data_dir); + mtr_add_arg($args, "--skip-innodb"); + mtr_add_arg($args, "--skip-ndbcluster"); + mtr_add_arg($args, "--skip-bdb"); + + if ( ! $opt_netware ) + { + mtr_add_arg($args, "--language=%s", $path_language); + mtr_add_arg($args, "--character-sets-dir=%s", $path_charsetsdir); + } + + if ( mtr_run($exe_mysqld, $args, $init_db_sql, + $path_manager_log, $path_manager_log, "") != 0 ) + { + mtr_error("error executing mysqld --bootstrap\n" . + "Could not install $type test DBs"); + } +} + + +############################################################################## +# +# Run a single test case +# +############################################################################## + +# When we get here, we have already filtered out test cases that doesn't +# apply to the current setup, for example if we use a running server, test +# cases that restart the server are dropped. So this function should mostly +# be about doing things, not a lot of logic. + +# We don't start and kill the servers for each testcase. But some +# testcases needs a restart, because they specify options to start +# mysqld with. After that testcase, we need to restart again, to set +# back the normal options. + +sub run_testcase ($) { + my $tinfo= shift; + + my $tname= $tinfo->{'name'}; + + mtr_tonewfile($opt_current_test,"$tname\n"); # Always tell where we are + + # ---------------------------------------------------------------------- + # If marked to skip, just print out and return. + # Note that a test case not marked as 'skip' can still be + # skipped later, because of the test case itself in cooperation + # with the mysqltest program tells us so. + # ---------------------------------------------------------------------- + + if ( $tinfo->{'skip'} ) + { + mtr_report_test_skipped($tinfo); + return; + } + + # ---------------------------------------------------------------------- + # If not using a running servers we may need to stop and restart. + # We restart in the case we have initiation scripts, server options + # etc to run. But we also restart again after the test first restart + # and test is run, to get back to normal server settings. + # + # To make the code a bit more clean, we actually only stop servers + # here, and mark this to be done. Then a generic "start" part will + # start up the needed servers again. + # ---------------------------------------------------------------------- + + if ( ! $glob_use_running_server and ! $glob_use_embedded_server ) + { + if ( $tinfo->{'master_restart'} or $master->[0]->{'uses_special_flags'} ) + { + stop_masters(); + $master->[0]->{'uses_special_flags'}= 0; # Forget about why we stopped + } + + # ---------------------------------------------------------------------- + # Always terminate all slaves, if any. Else we may have useless + # reconnection attempts and error messages in case the slave and + # master servers restart. + # ---------------------------------------------------------------------- + + stop_slaves(); + + # ---------------------------------------------------------------------- + # Start masters + # ---------------------------------------------------------------------- + + mtr_tofile($master->[0]->{'path_myerr'},"CURRENT_TEST: $tname\n"); + do_before_start_master($tname,$tinfo->{'master_sh'}); + + # FIXME give the args to the embedded server?! + # FIXME what does $opt_local_master mean?! + # FIXME split up start and check that started so that can do + # starts in parallel, masters and slaves at the same time. + + if ( ! $opt_local_master ) + { + if ( ! $master->[0]->{'pid'} ) + { + $master->[0]->{'pid'}= + mysqld_start('master',0,$tinfo->{'master_opt'},[]); + } + if ( $opt_with_ndbcluster and ! $master->[1]->{'pid'} ) + { + $master->[1]->{'pid'}= + mysqld_start('master',1,$tinfo->{'master_opt'},[]); + } + + if ( $tinfo->{'master_opt'} ) + { + $master->[0]->{'uses_special_flags'}= 1; + } + } + + # ---------------------------------------------------------------------- + # Start slaves - if needed + # ---------------------------------------------------------------------- + + if ( $tinfo->{'slave_num'} ) + { + mtr_tofile($slave->[0]->{'path_myerr'},"CURRENT_TEST: $tname\n"); + + do_before_start_slave($tname,$tinfo->{'slave_sh'}); + + for ( my $idx= 0; $idx < $tinfo->{'slave_num'}; $idx++ ) + { + if ( ! $slave->[$idx]->{'pid'} ) + { + $slave->[$idx]->{'pid'}= + mysqld_start('slave',$idx, + $tinfo->{'slave_opt'}, $tinfo->{'slave_mi'}); + } + } + } + } + + # ---------------------------------------------------------------------- + # Run the test case + # ---------------------------------------------------------------------- + + { + unlink("r/$tname.reject"); + unlink($path_timefile); + + mtr_report_test_name($tinfo); + + my $res= run_mysqltest($tinfo); + + if ( $res == 0 ) + { + mtr_report_test_passed($tinfo); + } + elsif ( $res == 2 ) + { + # Testcase itself tell us to skip this one + mtr_report_test_skipped($tinfo); + } + else + { + # Test case failed + if ( $res > 2 ) + { + mtr_tofile($path_timefile, + "mysqltest returned unexpected code $res, " . + "it has probably crashed"); + } + mtr_report_test_failed($tinfo); + mtr_show_failed_diff($tname); + print "\n"; + if ( ! $opt_force ) + { + print "Aborting: $tname failed. To continue, re-run with '--force'."; + print "\n"; + if ( ! $opt_gdb and ! $glob_use_running_server and + ! $opt_ddd and ! $glob_use_embedded_server ) + { + stop_masters_slaves(); + } + exit(1); + } + + # FIXME always terminate on failure?! + if ( ! $opt_gdb and ! $glob_use_running_server and + ! $opt_ddd and ! $glob_use_embedded_server ) + { + stop_masters_slaves(); + } + print "Resuming Tests\n\n"; + } + } +} + + +############################################################################## +# +# Start and stop servers +# +############################################################################## + +# The embedded server needs the cleanup so we do some of the start work +# but stop before actually running mysqld or anything. + +sub do_before_start_master ($$) { + my $tname= shift; + my $master_init_script= shift; + + # FIXME what about second master..... + + # Remove stale binary logs except for 2 tests which need them FIXME here???? + if ( $tname ne "rpl_crash_binlog_ib_1b" and + $tname ne "rpl_crash_binlog_ib_2b" and + $tname ne "rpl_crash_binlog_ib_3b") + { + # FIXME we really want separate dir for binlogs + `rm -fr $glob_mysql_test_dir/var/log/master-bin.*`; +# unlink("$glob_mysql_test_dir/var/log/master-bin.*"); + } + + # Remove old master.info and relay-log.info files + unlink("$glob_mysql_test_dir/var/master-data/master.info"); + unlink("$glob_mysql_test_dir/var/master-data/relay-log.info"); + unlink("$glob_mysql_test_dir/var/master1-data/master.info"); + unlink("$glob_mysql_test_dir/var/master1-data/relay-log.info"); + + #run master initialization shell script if one exists + + if ( $master_init_script and + mtr_run($master_init_script, [], "", "", "", "") != 0 ) + { + mtr_error("can't run $master_init_script"); + } + # for gcov FIXME needed? If so we need more absolute paths +# chdir($glob_basedir); +} + +sub do_before_start_slave ($$) { + my $tname= shift; + my $slave_init_script= shift; + + # When testing fail-safe replication, we will have more than one slave + # in this case, we start secondary slaves with an argument + + # Remove stale binary logs and old master.info files + # except for too tests which need them + if ( $tname ne "rpl_crash_binlog_ib_1b" and + $tname ne "rpl_crash_binlog_ib_2b" and + $tname ne "rpl_crash_binlog_ib_3b" ) + { + # FIXME we really want separate dir for binlogs + `rm -fr $glob_mysql_test_dir/var/log/slave*-bin.*`; +# unlink("$glob_mysql_test_dir/var/log/slave*-bin.*"); # FIXME idx??? + # FIXME really master?! + unlink("$glob_mysql_test_dir/var/slave-data/master.info"); + unlink("$glob_mysql_test_dir/var/slave-data/relay-log.info"); + } + + #run slave initialization shell script if one exists + if ( $slave_init_script and + mtr_run($slave_init_script, [], "", "", "", "") != 0 ) + { + mtr_error("can't run $slave_init_script"); + } + + unlink("$glob_mysql_test_dir/var/slave-data/log.*"); +} + +sub mysqld_arguments ($$$$$) { + my $args= shift; + my $type= shift; # master/slave/bootstrap + my $idx= shift; + my $extra_opt= shift; + my $slave_master_info= shift; + + my $sidx= ""; # Index as string, 0 is empty string + if ( $idx > 0 ) + { + $sidx= sprintf("%d", $idx); # sprintf not needed in Perl for this + } + + my $prefix= ""; # If mysqltest server arg + + if ( $glob_use_embedded_server ) + { + $prefix= "--server-arg="; + } + + mtr_add_arg($args, "%s--no-defaults", $prefix); + mtr_add_arg($args, "%s--basedir=%s", $prefix, $path_my_basedir); + mtr_add_arg($args, "%s--character-sets-dir=%s", $prefix, $path_charsetsdir); + mtr_add_arg($args, "%s--core", $prefix); + mtr_add_arg($args, "%s--default-character-set=latin1", $prefix); + mtr_add_arg($args, "%s--language=%s", $prefix, $path_language); + mtr_add_arg($args, "%s--tmpdir=$opt_tmpdir", $prefix); + + if ( $opt_valgrind ) + { + mtr_add_arg($args, "%s--skip-safemalloc", $prefix); + mtr_add_arg($args, "%s--skip-bdb", $prefix); + } + + my $pidfile; + + if ( $type eq 'master' ) + { + mtr_add_arg($args, "%s--log-bin=%s/var/log/master-bin", $prefix, + $glob_mysql_test_dir); + mtr_add_arg($args, "%s--pid-file=%s", $prefix, + $master->[$idx]->{'path_mypid'}); + mtr_add_arg($args, "%s--port=%d", $prefix, + $master->[$idx]->{'path_myport'}); + mtr_add_arg($args, "%s--server-id=1", $prefix); + mtr_add_arg($args, "%s--socket=%s", $prefix, + $master->[$idx]->{'path_mysock'}); + mtr_add_arg($args, "%s--innodb_data_file_path=ibdata1:50M", $prefix); + mtr_add_arg($args, "%s--local-infile", $prefix); + mtr_add_arg($args, "%s--datadir=%s", $prefix, + $master->[$idx]->{'path_myddir'}); + } + + if ( $type eq 'slave' ) + { + my $slave_server_id= 2 + $idx; + my $slave_rpl_rank= $idx > 0 ? 2 : $slave_server_id; + + mtr_add_arg($args, "%s--datadir=%s", $prefix, + $slave->[$idx]->{'path_myddir'}); + mtr_add_arg($args, "%s--exit-info=256", $prefix); + mtr_add_arg($args, "%s--init-rpl-role=slave", $prefix); + mtr_add_arg($args, "%s--log-bin=%s/var/log/slave%s-bin", $prefix, + $glob_mysql_test_dir, $sidx); # FIXME use own dir for binlogs + mtr_add_arg($args, "%s--log-slave-updates", $prefix); + mtr_add_arg($args, "%s--log=%s", $prefix, + $slave->[$idx]->{'path_myerr'}); + mtr_add_arg($args, "%s--master-retry-count=10", $prefix); + mtr_add_arg($args, "%s--pid-file=%s", $prefix, + $slave->[$idx]->{'path_mypid'}); + mtr_add_arg($args, "%s--port=%d", $prefix, + $slave->[$idx]->{'path_myport'}); + mtr_add_arg($args, "%s--relay-log=%s/var/log/slave%s-relay-bin", $prefix, + $glob_mysql_test_dir, $sidx); + mtr_add_arg($args, "%s--report-host=127.0.0.1", $prefix); + mtr_add_arg($args, "%s--report-port=%d", $prefix, + $slave->[$idx]->{'path_myport'}); + mtr_add_arg($args, "%s--report-user=root", $prefix); + mtr_add_arg($args, "%s--skip-innodb", $prefix); + mtr_add_arg($args, "%s--skip-ndbcluster", $prefix); + mtr_add_arg($args, "%s--skip-slave-start", $prefix); + mtr_add_arg($args, "%s--slave-load-tmpdir=%s", $prefix, + $path_slave_load_tmpdir); + mtr_add_arg($args, "%s--socket=%s", $prefix, + $slave->[$idx]->{'path_mysock'}); + mtr_add_arg($args, "%s--set-variable=slave_net_timeout=10", $prefix); + + if ( @$slave_master_info ) + { + foreach my $arg ( @$slave_master_info ) + { + mtr_add_arg($args, "%s%s", $prefix, $arg); + } + } + else + { + mtr_add_arg($args, "%s--master-user=root", $prefix); + mtr_add_arg($args, "%s--master-connect-retry=1", $prefix); + mtr_add_arg($args, "%s--master-host=127.0.0.1", $prefix); + mtr_add_arg($args, "%s--master-password=", $prefix); + mtr_add_arg($args, "%s--master-port=%d", $prefix, + $master->[0]->{'path_myport'}); # First master + mtr_add_arg($args, "%s--server-id=%d", $prefix, $slave_server_id); + mtr_add_arg($args, "%s--rpl-recovery-rank=%d", $prefix, $slave_rpl_rank); + } + } # end slave + + if ( $opt_debug ) + { + if ( $type eq 'master' ) + { + mtr_add_arg($args, "--debug=d:t:i:A,%s/var/log/master%s.trace", + $prefix, $glob_mysql_test_dir, $sidx); + } + if ( $type eq 'slave' ) + { + mtr_add_arg($args, "--debug=d:t:i:A,%s/var/log/slave%s.trace", + $prefix, $glob_mysql_test_dir, $sidx); + } + } + + if ( $opt_with_ndbcluster ) + { + mtr_add_arg($args, "%s--ndbcluster", $prefix); + + if ( $glob_use_running_ndbcluster ) + { + mtr_add_arg($args,"--ndb-connectstring=%s", $prefix, + $opt_ndbconnectstring); + } + else + { + mtr_add_arg($args,"--ndb-connectstring=host=localhost:%d", + $prefix, $opt_ndbcluster_port); + } + } + + # FIXME always set nowdays??? SMALL_SERVER + mtr_add_arg($args, "%s--key_buffer_size=1M", $prefix); + mtr_add_arg($args, "%s--sort_buffer=256K", $prefix); + mtr_add_arg($args, "%s--max_heap_table_size=1M", $prefix); + + if ( $opt_with_openssl ) + { + mtr_add_arg($args, "%s--ssl-ca=%s/SSL/cacert.pem", $prefix, $glob_basedir); + mtr_add_arg($args, "%s--ssl-cert=%s/SSL/server-cert.pem", $prefix, + $glob_basedir); + mtr_add_arg($args, "%s--ssl-key=%s/SSL/server-key.pem", $prefix, + $glob_basedir); + } + + if ( $opt_warnings ) + { + mtr_add_arg($args, "%s--log-warnings", $prefix); + } + + if ( $opt_gdb or $opt_client_gdb or $opt_manual_gdb or $opt_ddd) + { + mtr_add_arg($args, "%s--gdb", $prefix); + } + + # If we should run all tests cases, we will use a local server for that + + if ( -w "/" ) + { + # We are running as root; We need to add the --root argument + mtr_add_arg($args, "%s--user=root", $prefix); + } + + if ( $type eq 'master' ) + { + + if ( ! $opt_old_master ) + { + mtr_add_arg($args, "%s--rpl-recovery-rank=1", $prefix); + mtr_add_arg($args, "%s--init-rpl-role=master", $prefix); + } + + # FIXME strange,..... + if ( $opt_local_master ) + { + mtr_add_arg($args, "%s--host=127.0.0.1", $prefix); + mtr_add_arg($args, "%s--port=%s", $prefix, $ENV{'MYSQL_MYPORT'}); + } + } + + foreach my $arg ( @$extra_opt ) + { + mtr_add_arg($args, "%s%s", $prefix, $arg); + } + + if ( $opt_bench ) + { + mtr_add_arg($args, "%s--rpl-recovery-rank=1", $prefix); + mtr_add_arg($args, "%s--init-rpl-role=master", $prefix); + } + else + { + mtr_add_arg($args, "%s--exit-info=256", $prefix); + mtr_add_arg($args, "%s--open-files-limit=1024", $prefix); + + if ( $type eq 'master' ) + { + mtr_add_arg($args, "%s--log=%s", $prefix, $master->[0]->{'path_mylog'}); + } + if ( $type eq 'slave' ) + { + mtr_add_arg($args, "%s--log=%s", $prefix, $slave->[0]->{'path_mylog'}); + } + } + + return $args; +} + +# FIXME +# if ( $type eq 'master' and $glob_use_embedded_server ) +# { +# # Add a -A to each argument to pass it to embedded server +# my @mysqltest_opt= map {("-A",$_)} @args; +# $opt_extra_mysqltest_opt= \@mysqltest_opt; +# return; +# } + +############################################################################## +# +# Start mysqld and return the PID +# +############################################################################## + +sub mysqld_start ($$$$) { + my $type= shift; # master/slave/bootstrap + my $idx= shift; + my $extra_opt= shift; + my $slave_master_info= shift; + + my $args; # Arg vector + my $exe; + my $pid; + + # FIXME code duplication, make up your mind.... + if ( $opt_source_dist ) + { + $exe= "$glob_basedir/sql/mysqld"; + } + else + { + $exe ="$glob_basedir/libexec/mysqld"; + if ( ! -x $exe ) + { + $exe ="$glob_basedir/bin/mysqld"; + } + } + + mtr_init_args(\$args); + + if ( $opt_valgrind ) + { + + mtr_add_arg($args, "--tool=memcheck"); + mtr_add_arg($args, "--alignment=8"); + mtr_add_arg($args, "--leak-check=yes"); + mtr_add_arg($args, "--num-callers=16"); + + if ( $opt_valgrind_all ) + { + mtr_add_arg($args, "-v"); + mtr_add_arg($args, "--show-reachable=yes"); + } + + if ( $opt_valgrind_options ) + { + # FIXME split earlier and put into @glob_valgrind_* + mtr_add_arg($args, split(' ', $opt_valgrind_options)); + } + + mtr_add_arg($args, $exe); + + $exe= $opt_valgrind; + } + + mysqld_arguments($args,$type,$idx,$extra_opt,$slave_master_info); + + if ( $type eq 'master' ) + { + if ( $pid= mtr_spawn($exe, $args, "", + $master->[$idx]->{'path_myerr'}, + $master->[$idx]->{'path_myerr'}, "") ) + { + sleep_until_file_created($master->[$idx]->{'path_mypid'}, + $opt_wait_for_master); + $opt_wait_for_master= $opt_sleep_time_for_second_master; + return $pid; + } + } + + if ( $type eq 'slave' ) + { + if ( $pid= mtr_spawn($exe, $args, "", + $slave->[$idx]->{'path_myerr'}, + $slave->[$idx]->{'path_myerr'}, "") ) + { + sleep_until_file_created($slave->[$idx]->{'path_mypid'}, + $opt_wait_for_slave); + $opt_wait_for_slave= $opt_sleep_time_for_second_slave; + return $pid; + } + } + + die "Can't start mysqld FIXME"; +} + +sub stop_masters_slaves () { + + print "Ending Tests\n"; + print "Shutting-down MySQL daemon\n\n"; + stop_masters(); + print "Master(s) shutdown finished\n"; + stop_slaves(); + print "Slave(s) shutdown finished\n"; +} + +sub stop_masters () { + + my @args; + + for ( my $idx; $idx < 2; $idx++ ) + { + # FIXME if we hit ^C before fully started, this test will prevent + # the mysqld process from being killed + if ( $master->[$idx]->{'pid'} ) + { + push(@args, + $master->[$idx]->{'path_mypid'}, + $master->[$idx]->{'path_mysock'}, + ); + $master->[$idx]->{'pid'}= 0; + } + } + + mtr_stop_servers(\@args); +} + +sub stop_slaves () { + my $force= shift; + + my @args; + + for ( my $idx; $idx < 3; $idx++ ) + { + if ( $slave->[$idx]->{'pid'} ) + { + push(@args, + $slave->[$idx]->{'path_mypid'}, + $slave->[$idx]->{'path_mysock'}, + ); + $slave->[$idx]->{'pid'}= 0; + } + } + + mtr_stop_servers(\@args); +} + + +sub run_mysqltest ($) { + my $tinfo= shift; + + # FIXME set where???? + my $cmdline_mysqldump= "$exe_mysqldump --no-defaults -uroot " . + "--socket=$master->[0]->{'path_mysock'} --password="; + if ( $opt_debug ) + { + $cmdline_mysqldump .= + " --debug=d:t:A,$glob_mysql_test_dir/var/log/mysqldump.trace"; + } + + my $cmdline_mysqlbinlog= + "$exe_mysqlbinlog --no-defaults --local-load=$opt_tmpdir"; + + if ( $opt_debug ) + { + $cmdline_mysqlbinlog .= + " --debug=d:t:A,$glob_mysql_test_dir/var/log/mysqlbinlog.trace"; + } + + my $cmdline_mysql= + "$exe_mysql --host=localhost --port=$master->[0]->{'path_myport'} " . + "--socket=$master->[0]->{'path_mysock'} --user=root --password="; + + $ENV{'MYSQL'}= $exe_mysql; + $ENV{'MYSQL_DUMP'}= $cmdline_mysqldump; + $ENV{'MYSQL_BINLOG'}= $exe_mysqlbinlog; + $ENV{'CLIENT_BINDIR'}= $path_client_bindir; + $ENV{'TESTS_BINDIR'}= $path_tests_bindir; + + my $exe= $exe_mysqltest; + my $args; # Arg vector + + mtr_init_args(\$args); + + if ( $opt_strace_client ) + { + $exe= "strace"; # FIXME there are ktrace, .... + mtr_add_arg($args, "-o"); + mtr_add_arg($args, "%s/var/log/mysqltest.strace", $glob_mysql_test_dir); + mtr_add_arg($args, "$exe_mysqltest"); + } + + mtr_add_arg($args, "--no-defaults"); + mtr_add_arg($args, "--socket=%s", $master->[0]->{'path_mysock'}); + mtr_add_arg($args, "--database=test"); + mtr_add_arg($args, "--user=%s", $glob_user); + mtr_add_arg($args, "--password="); + mtr_add_arg($args, "--silent"); + mtr_add_arg($args, "-v"); + mtr_add_arg($args, "--skip-safemalloc"); + mtr_add_arg($args, "--tmpdir=%s", $opt_tmpdir); + mtr_add_arg($args, "--port=%d", $master->[0]->{'path_myport'}); + + if ( $opt_timer ) + { + mtr_add_arg($args, "--timer-file=var/log/timer"); + } + + if ( $opt_big_test ) + { + mtr_add_arg($args, "--big-test"); + } + + if ( $opt_record ) + { + mtr_add_arg($args, "--record"); + } + + if ( $opt_compress ) + { + mtr_add_arg($args, "--compress"); + } + + if ( $opt_sleep ) + { + mtr_add_arg($args, "--sleep=%d", $opt_sleep); + } + + if ( $opt_debug ) + { + mtr_add_arg($args, "--debug=d:t:A,%s/var/log/mysqltest.trace", + $glob_mysql_test_dir); + } + + if ( $opt_with_openssl ) + { + mtr_add_arg($args, "--ssl-ca=%s/SSL/cacert.pem", $glob_basedir); + mtr_add_arg($args, "--ssl-cert=%s/SSL/client-cert.pem", $glob_basedir); + mtr_add_arg($args, "--ssl-key=%s/SSL/client-key.pem", $glob_basedir); + } + + mtr_add_arg($args, "-R"); + mtr_add_arg($args, $tinfo->{'result_file'}); + + if ( $glob_use_embedded_server ) + { + mysqld_arguments($args,'master',0,$tinfo->{'master_opt'},[]); + } + + return mtr_run($exe_mysqltest,$args,$tinfo->{'path'},"",$path_timefile,""); +} From 1ffd688a4a341157df30602a7f3c6d97f9a4e010 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 30 Dec 2004 21:18:10 +0300 Subject: [PATCH 061/157] Fix for bug #7515 "from_unixtime(0) now returns NULL instead of the Epoch". (With after review fixes). mysql-test/r/func_time.result: Added test for bug #7515 "from_unixtime(0) now returns NULL instead of the Epoch". mysql-test/t/func_time.test: Added test for bug #7515 "from_unixtime(0) now returns NULL instead of the Epoch". sql/item_timefunc.cc: Item_func_from_unixtime: from_unixtime(0) should return Epoch instead of NULL. sql/item_timefunc.h: Item_func_from_unixtime: - Removed unused method definition. - fix_length_and_dec() should set maybe_null to true since now from_unixtime() can return NULL even in case when none of its arguments is NULL. --- mysql-test/r/func_time.result | 7 +++++-- mysql-test/t/func_time.test | 8 ++++++-- sql/item_timefunc.cc | 10 ++++++---- sql/item_timefunc.h | 3 +-- 4 files changed, 18 insertions(+), 10 deletions(-) diff --git a/mysql-test/r/func_time.result b/mysql-test/r/func_time.result index 32034bf289d..c1e75b60e4f 100644 --- a/mysql-test/r/func_time.result +++ b/mysql-test/r/func_time.result @@ -470,9 +470,12 @@ unix_timestamp(@a) select unix_timestamp('1969-12-01 19:00:01'); unix_timestamp('1969-12-01 19:00:01') 0 -select from_unixtime(0); -from_unixtime(0) +select from_unixtime(-1); +from_unixtime(-1) NULL select from_unixtime(2145916800); from_unixtime(2145916800) NULL +select from_unixtime(0); +from_unixtime(0) +1970-01-01 03:00:00 diff --git a/mysql-test/t/func_time.test b/mysql-test/t/func_time.test index da18269cf6a..60c7aa49fbf 100644 --- a/mysql-test/t/func_time.test +++ b/mysql-test/t/func_time.test @@ -228,7 +228,11 @@ select unix_timestamp('1969-12-01 19:00:01'); # # Test for bug #6439 "unix_timestamp() function returns wrong datetime -# values for too big argument". It should return error instead. +# values for too big argument" and bug #7515 "from_unixtime(0) now +# returns NULL instead of the epoch". unix_timestamp() should return error +# for too big or negative argument. It should return Epoch value for zero +# argument since it seems that many user's rely on this fact. # -select from_unixtime(0); +select from_unixtime(-1); select from_unixtime(2145916800); +select from_unixtime(0); diff --git a/sql/item_timefunc.cc b/sql/item_timefunc.cc index d188310be24..b03fd151383 100644 --- a/sql/item_timefunc.cc +++ b/sql/item_timefunc.cc @@ -946,10 +946,12 @@ bool Item_func_from_unixtime::get_date(TIME *ltime, { struct tm tm_tmp; time_t tmp; - longlong arg= args[0]->val_int(); - if ((null_value= (args[0]->null_value || - arg < TIMESTAMP_MIN_VALUE || - arg > TIMESTAMP_MAX_VALUE))) + ulonglong arg= (ulonglong)(args[0]->val_int()); + /* + "arg > TIMESTAMP_MAX_VALUE" check also covers case of negative + from_unixtime() argument since arg is unsigned. + */ + if ((null_value= (args[0]->null_value || arg > TIMESTAMP_MAX_VALUE))) return 1; tmp= arg; localtime_r(&tmp,&tm_tmp); diff --git a/sql/item_timefunc.h b/sql/item_timefunc.h index e04e24627d9..8ee2f935a80 100644 --- a/sql/item_timefunc.h +++ b/sql/item_timefunc.h @@ -359,8 +359,7 @@ class Item_func_from_unixtime :public Item_date_func longlong val_int(); String *val_str(String *str); const char *func_name() const { return "from_unixtime"; } - void fix_length_and_dec() { decimals=0; max_length=19; } -// enum Item_result result_type () const { return STRING_RESULT; } + void fix_length_and_dec() { decimals=0; max_length=19; maybe_null= 1; } bool get_date(TIME *res,bool fuzzy_date); }; From 523882ab71ee8b1d9e4c0f682b96069d5f8d83c9 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 30 Dec 2004 19:56:09 +0100 Subject: [PATCH 062/157] Fix for bug #7480 Mysqld crash in ha_ndbcluster using Query Browser BitKeeper/etc/logging_ok: Logging to logging@openlogging.org accepted --- BitKeeper/etc/logging_ok | 1 + sql/ha_ndbcluster.cc | 77 +++++++++++++++++++++++++--------------- sql/ha_ndbcluster.h | 2 +- 3 files changed, 51 insertions(+), 29 deletions(-) diff --git a/BitKeeper/etc/logging_ok b/BitKeeper/etc/logging_ok index 62b00f97f06..140d1359b08 100644 --- a/BitKeeper/etc/logging_ok +++ b/BitKeeper/etc/logging_ok @@ -100,6 +100,7 @@ lenz@mysql.com magnus@neptunus.(none) magnus@shellback.(none) marko@hundin.mysql.fi +marty@linux.site matt@mysql.com miguel@hegel.(none) miguel@hegel.br diff --git a/sql/ha_ndbcluster.cc b/sql/ha_ndbcluster.cc index 145fd23ff43..f96114d8460 100644 --- a/sql/ha_ndbcluster.cc +++ b/sql/ha_ndbcluster.cc @@ -204,6 +204,12 @@ Thd_ndb::~Thd_ndb() delete ndb; } +inline +Ndb *ha_ndbcluster::get_ndb() +{ + return ((Thd_ndb*)current_thd->transaction.thd_ndb)->ndb; +} + /* * manage uncommitted insert/deletes during transactio to get records correct */ @@ -233,8 +239,9 @@ void ha_ndbcluster::records_update() info->no_uncommitted_rows_count)); // if (info->records == ~(ha_rows)0) { + Ndb *ndb= get_ndb(); Uint64 rows; - if(ndb_get_table_statistics(m_ndb, m_tabname, &rows, 0) == 0){ + if(ndb_get_table_statistics(ndb, m_tabname, &rows, 0) == 0){ info->records= rows; } } @@ -311,7 +318,8 @@ int ha_ndbcluster::ndb_err(NdbConnection *trans) switch (err.classification) { case NdbError::SchemaError: { - NDBDICT *dict= m_ndb->getDictionary(); + Ndb *ndb= get_ndb(); + NDBDICT *dict= ndb->getDictionary(); DBUG_PRINT("info", ("invalidateTable %s", m_tabname)); dict->invalidateTable(m_tabname); table->version=0L; /* Free when thread is ready */ @@ -341,7 +349,7 @@ bool ha_ndbcluster::get_error_message(int error, DBUG_ENTER("ha_ndbcluster::get_error_message"); DBUG_PRINT("enter", ("error: %d", error)); - Ndb *ndb= ((Thd_ndb*)current_thd->transaction.thd_ndb)->ndb; + Ndb *ndb= get_ndb(); if (!ndb) DBUG_RETURN(FALSE); @@ -670,7 +678,8 @@ bool ha_ndbcluster::uses_blob_value(bool all_fields) int ha_ndbcluster::get_metadata(const char *path) { - NDBDICT *dict= m_ndb->getDictionary(); + Ndb *ndb= get_ndb(); + NDBDICT *dict= ndb->getDictionary(); const NDBTAB *tab; int error; bool invalidating_ndb_table= FALSE; @@ -745,7 +754,8 @@ int ha_ndbcluster::build_index_list(TABLE *tab, enum ILBP phase) static const char* unique_suffix= "$unique"; KEY* key_info= tab->key_info; const char **key_name= tab->keynames.type_names; - NdbDictionary::Dictionary *dict= m_ndb->getDictionary(); + Ndb *ndb= get_ndb(); + NdbDictionary::Dictionary *dict= ndb->getDictionary(); DBUG_ENTER("build_index_list"); // Save information about all known indexes @@ -1651,7 +1661,8 @@ int ha_ndbcluster::write_row(byte *record) if (table->primary_key == MAX_KEY) { // Table has hidden primary key - Uint64 auto_value= m_ndb->getAutoIncrementValue((const NDBTAB *) m_table); + Ndb *ndb= get_ndb(); + Uint64 auto_value= ndb->getAutoIncrementValue((const NDBTAB *) m_table); if (set_hidden_key(op, table->fields, (const byte*)&auto_value)) ERR_RETURN(op->getNdbError()); } @@ -1727,11 +1738,12 @@ int ha_ndbcluster::write_row(byte *record) } if ((has_auto_increment) && (skip_auto_increment)) { + Ndb *ndb= get_ndb(); Uint64 next_val= (Uint64) table->next_number_field->val_int() + 1; DBUG_PRINT("info", ("Trying to set next auto increment value to %lu", (ulong) next_val)); - if (m_ndb->setAutoIncrementValue((const NDBTAB *) m_table, next_val, TRUE)) + if (ndb->setAutoIncrementValue((const NDBTAB *) m_table, next_val, TRUE)) DBUG_PRINT("info", ("Setting next auto increment value to %u", next_val)); } @@ -2536,8 +2548,11 @@ void ha_ndbcluster::info(uint flag) } else { + if ((my_errno= check_ndb_connection())) + DBUG_VOID_RETURN; + Ndb *ndb= get_ndb(); Uint64 rows; - if(ndb_get_table_statistics(m_ndb, m_tabname, &rows, 0) == 0){ + if(ndb_get_table_statistics(ndb, m_tabname, &rows, 0) == 0){ records= rows; } } @@ -2863,6 +2878,7 @@ int ha_ndbcluster::external_lock(THD *thd, int lock_type) DBUG_RETURN(1); Thd_ndb *thd_ndb= (Thd_ndb*)thd->transaction.thd_ndb; + Ndb *ndb= thd_ndb->ndb; DBUG_PRINT("enter", ("transaction.thd_ndb->lock_count: %d", thd_ndb->lock_count)); @@ -2880,9 +2896,9 @@ int ha_ndbcluster::external_lock(THD *thd, int lock_type) DBUG_ASSERT(!thd->transaction.stmt.ndb_tid); DBUG_PRINT("trans",("Starting transaction stmt")); - trans= m_ndb->startTransaction(); + trans= ndb->startTransaction(); if (trans == NULL) - ERR_RETURN(m_ndb->getNdbError()); + ERR_RETURN(ndb->getNdbError()); no_uncommitted_rows_reset(thd); thd->transaction.stmt.ndb_tid= trans; } @@ -2894,9 +2910,9 @@ int ha_ndbcluster::external_lock(THD *thd, int lock_type) // A "master" transaction ha not been started yet DBUG_PRINT("trans",("starting transaction, all")); - trans= m_ndb->startTransaction(); + trans= ndb->startTransaction(); if (trans == NULL) - ERR_RETURN(m_ndb->getNdbError()); + ERR_RETURN(ndb->getNdbError()); no_uncommitted_rows_reset(thd); /* @@ -2935,7 +2951,7 @@ int ha_ndbcluster::external_lock(THD *thd, int lock_type) retrieve_all_fields= FALSE; ops_pending= 0; { - NDBDICT *dict= m_ndb->getDictionary(); + NDBDICT *dict= ndb->getDictionary(); const NDBTAB *tab; void *tab_info; if (!(tab= dict->getTable(m_tabname, &tab_info))) @@ -2962,7 +2978,7 @@ int ha_ndbcluster::external_lock(THD *thd, int lock_type) We must in this case close the transaction to release resources */ DBUG_PRINT("trans",("ending non-updating transaction")); - m_ndb->closeTransaction(m_active_trans); + ndb->closeTransaction(m_active_trans); thd->transaction.stmt.ndb_tid= 0; } } @@ -3008,16 +3024,17 @@ int ha_ndbcluster::start_stmt(THD *thd) NdbConnection *trans= (NdbConnection*)thd->transaction.stmt.ndb_tid; if (!trans){ + Ndb *ndb= ((Thd_ndb*)thd->transaction.thd_ndb)->ndb; DBUG_PRINT("trans",("Starting transaction stmt")); NdbConnection *tablock_trans= (NdbConnection*)thd->transaction.all.ndb_tid; DBUG_PRINT("info", ("tablock_trans: %x", (uint)tablock_trans)); DBUG_ASSERT(tablock_trans); -// trans= m_ndb->hupp(tablock_trans); - trans= m_ndb->startTransaction(); +// trans= ndb->hupp(tablock_trans); + trans= ndb->startTransaction(); if (trans == NULL) - ERR_RETURN(m_ndb->getNdbError()); + ERR_RETURN(ndb->getNdbError()); no_uncommitted_rows_reset(thd); thd->transaction.stmt.ndb_tid= trans; } @@ -3363,7 +3380,8 @@ int ha_ndbcluster::create(const char *name, DBUG_RETURN(my_errno); // Create the table in NDB - NDBDICT *dict= m_ndb->getDictionary(); + Ndb *ndb= get_ndb(); + NDBDICT *dict= ndb->getDictionary(); if (dict->createTable(tab) != 0) { const NdbError err= dict->getNdbError(); @@ -3408,7 +3426,8 @@ int ha_ndbcluster::create_index(const char *name, KEY *key_info, bool unique) { - NdbDictionary::Dictionary *dict= m_ndb->getDictionary(); + Ndb *ndb= get_ndb(); + NdbDictionary::Dictionary *dict= ndb->getDictionary(); KEY_PART_INFO *key_part= key_info->key_part; KEY_PART_INFO *end= key_part + key_info->key_parts; @@ -3476,7 +3495,8 @@ int ha_ndbcluster::rename_table(const char *from, const char *to) int ha_ndbcluster::alter_table_name(const char *from, const char *to) { - NDBDICT *dict= m_ndb->getDictionary(); + Ndb *ndb= get_ndb(); + NDBDICT *dict= ndb->getDictionary(); const NDBTAB *orig_tab; DBUG_ENTER("alter_table_name_table"); DBUG_PRINT("enter", ("Renaming %s to %s", from, to)); @@ -3521,8 +3541,9 @@ int ha_ndbcluster::delete_table(const char *name) int ha_ndbcluster::drop_table() { - NdbDictionary::Dictionary *dict= m_ndb->getDictionary(); - + Ndb *ndb= get_ndb(); + NdbDictionary::Dictionary *dict= ndb->getDictionary(); + DBUG_ENTER("drop_table"); DBUG_PRINT("enter", ("Deleting %s", m_tabname)); @@ -3555,6 +3576,7 @@ longlong ha_ndbcluster::get_auto_increment() { DBUG_ENTER("get_auto_increment"); DBUG_PRINT("enter", ("m_tabname: %s", m_tabname)); + Ndb *ndb= get_ndb(); int cache_size= (rows_to_insert - rows_inserted < autoincrement_prefetch) ? rows_to_insert - rows_inserted @@ -3563,8 +3585,8 @@ longlong ha_ndbcluster::get_auto_increment() : autoincrement_prefetch; Uint64 auto_value= (skip_auto_increment) ? - m_ndb->readAutoIncrementValue((const NDBTAB *) m_table) - : m_ndb->getAutoIncrementValue((const NDBTAB *) m_table, cache_size); + ndb->readAutoIncrementValue((const NDBTAB *) m_table) + : ndb->getAutoIncrementValue((const NDBTAB *) m_table, cache_size); DBUG_RETURN((longlong)auto_value); } @@ -3577,7 +3599,6 @@ ha_ndbcluster::ha_ndbcluster(TABLE *table_arg): handler(table_arg), m_active_trans(NULL), m_active_cursor(NULL), - m_ndb(NULL), m_table(NULL), m_table_info(NULL), m_table_flags(HA_REC_NOT_IN_SEQ | @@ -3700,7 +3721,6 @@ int ha_ndbcluster::close(void) DBUG_ENTER("close"); free_share(m_share); m_share= 0; release_metadata(); - m_ndb= NULL; DBUG_RETURN(0); } @@ -3761,11 +3781,12 @@ Ndb* check_ndb_in_thd(THD* thd) int ha_ndbcluster::check_ndb_connection() { THD* thd= current_thd; + Ndb *ndb; DBUG_ENTER("check_ndb_connection"); - if (!(m_ndb= check_ndb_in_thd(thd))) + if (!(ndb= check_ndb_in_thd(thd))) DBUG_RETURN(HA_ERR_NO_CONNECTION); - m_ndb->setDatabaseName(m_dbname); + ndb->setDatabaseName(m_dbname); DBUG_RETURN(0); } diff --git a/sql/ha_ndbcluster.h b/sql/ha_ndbcluster.h index 8224d1c4167..47d2c8f1ab9 100644 --- a/sql/ha_ndbcluster.h +++ b/sql/ha_ndbcluster.h @@ -229,7 +229,6 @@ class ha_ndbcluster: public handler NdbConnection *m_active_trans; NdbResultSet *m_active_cursor; - Ndb *m_ndb; void *m_table; void *m_table_info; char m_dbname[FN_HEADLEN]; @@ -257,6 +256,7 @@ class ha_ndbcluster: public handler uint32 blobs_buffer_size; uint dupkey; + Ndb *get_ndb(); void set_rec_per_key(); void records_update(); void no_uncommitted_rows_execute_failure(); From 40a0199e77aa5305a6699b0572e8d913eea8d170 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 30 Dec 2004 21:01:11 +0100 Subject: [PATCH 063/157] unsufficient privilege checks in GRANT, when a grantor has column-level privileges --- mysql-test/r/alter_table.result | 2 +- mysql-test/r/grant.result | 2 +- mysql-test/r/grant_cache.result | 6 +- sql/sql_acl.cc | 100 ++++++++++++++++---------------- 4 files changed, 55 insertions(+), 55 deletions(-) diff --git a/mysql-test/r/alter_table.result b/mysql-test/r/alter_table.result index e7a8d2c7cdf..78925a64e93 100644 --- a/mysql-test/r/alter_table.result +++ b/mysql-test/r/alter_table.result @@ -121,7 +121,7 @@ create database mysqltest; create table mysqltest.t1 (a int,b int,c int); grant all on mysqltest.t1 to mysqltest_1@localhost; alter table t1 rename t2; -insert command denied to user: 'mysqltest_1@localhost' for table 't2' +INSERT,CREATE command denied to user: 'mysqltest_1@localhost' for table 't2' revoke all privileges on mysqltest.t1 from mysqltest_1@localhost; delete from mysql.user where user='mysqltest_1'; drop database mysqltest; diff --git a/mysql-test/r/grant.result b/mysql-test/r/grant.result index 19d83a95c5e..9df50a242d7 100644 --- a/mysql-test/r/grant.result +++ b/mysql-test/r/grant.result @@ -198,7 +198,7 @@ GRANT UPDATE (d) ON `mysqltest_2`.`t2` TO 'mysqltest_3'@'localhost' update mysqltest_1.t1, mysqltest_1.t2 set q=10 where b=1; UPDATE command denied to user: 'mysqltest_3@localhost' for column 'q' in table 't1' update mysqltest_1.t1, mysqltest_2.t2 set d=20 where d=1; -select command denied to user: 'mysqltest_3@localhost' for table 't1' +SELECT command denied to user: 'mysqltest_3@localhost' for table 't1' update mysqltest_2.t1, mysqltest_1.t2 set c=20 where b=1; UPDATE command denied to user: 'mysqltest_3@localhost' for column 'c' in table 't1' update mysqltest_2.t1, mysqltest_2.t2 set d=10 where s=2; diff --git a/mysql-test/r/grant_cache.result b/mysql-test/r/grant_cache.result index 96eb9d2bc62..e31294154bb 100644 --- a/mysql-test/r/grant_cache.result +++ b/mysql-test/r/grant_cache.result @@ -121,7 +121,7 @@ a b c a 1 1 1 test.t1 2 2 2 test.t1 select * from t2; -select command denied to user: 'mysqltest_2@localhost' for table 't2' +SELECT command denied to user: 'mysqltest_2@localhost' for table 't2' show status like "Qcache_queries_in_cache"; Variable_name Value Qcache_queries_in_cache 6 @@ -135,7 +135,7 @@ select "user3"; user3 user3 select * from t1; -select command denied to user: 'mysqltest_3@localhost' for column 'b' in table 't1' +SELECT command denied to user: 'mysqltest_3@localhost' for column 'b' in table 't1' select a from t1; a 1 @@ -143,7 +143,7 @@ a select c from t1; SELECT command denied to user: 'mysqltest_3@localhost' for column 'c' in table 't1' select * from t2; -select command denied to user: 'mysqltest_3@localhost' for table 't2' +SELECT command denied to user: 'mysqltest_3@localhost' for table 't2' select mysqltest.t1.c from test.t1,mysqltest.t1; SELECT command denied to user: 'mysqltest_3@localhost' for column 'c' in table 't1' show status like "Qcache_queries_in_cache"; diff --git a/sql/sql_acl.cc b/sql/sql_acl.cc index 1b55168695b..c883407970a 100644 --- a/sql/sql_acl.cc +++ b/sql/sql_acl.cc @@ -2134,37 +2134,57 @@ int mysql_table_grant(THD *thd, TABLE_LIST *table_list, DBUG_RETURN(-1); } - if (columns.elements && !revoke_grant) + if (!revoke_grant) { - TABLE *table; - class LEX_COLUMN *column; - List_iterator column_iter(columns); + if (columns.elements && !revoke_grant) + { + TABLE *table; + class LEX_COLUMN *column; + List_iterator column_iter(columns); - if (!(table=open_ltable(thd,table_list,TL_READ))) - DBUG_RETURN(-1); - while ((column = column_iter++)) - { - if (!find_field_in_table(thd,table,column->column.ptr(), - column->column.length(),0,0)) + if (!(table=open_ltable(thd,table_list,TL_READ))) + DBUG_RETURN(-1); + while ((column = column_iter++)) { - my_printf_error(ER_BAD_FIELD_ERROR,ER(ER_BAD_FIELD_ERROR),MYF(0), - column->column.c_ptr(), table_list->alias); - DBUG_RETURN(-1); + Field *f= find_field_in_table(thd,table,column->column.ptr(), + column->column.length(),1,0); + if (!f) + { + my_printf_error(ER_BAD_FIELD_ERROR,ER(ER_BAD_FIELD_ERROR),MYF(0), + column->column.c_ptr(), table_list->alias); + DBUG_RETURN(-1); + } + if (f == (Field*)-1) + { + DBUG_RETURN(-1); + } + column_priv|= column->rights; } - column_priv|= column->rights; + close_thread_tables(thd); } - close_thread_tables(thd); - } - else if (!(rights & CREATE_ACL) && !revoke_grant) - { - char buf[FN_REFLEN]; - sprintf(buf,"%s/%s/%s.frm",mysql_data_home, table_list->db, - table_list->real_name); - fn_format(buf,buf,"","",4+16+32); - if (access(buf,F_OK)) + else { - my_error(ER_NO_SUCH_TABLE,MYF(0),table_list->db, table_list->alias); - DBUG_RETURN(-1); + if (!(rights & CREATE_ACL)) + { + char buf[FN_REFLEN]; + sprintf(buf,"%s/%s/%s.frm",mysql_data_home, table_list->db, + table_list->real_name); + fn_format(buf,buf,"","",4+16+32); + if (access(buf,F_OK)) + { + my_error(ER_NO_SUCH_TABLE,MYF(0),table_list->db, table_list->alias); + DBUG_RETURN(-1); + } + } + if (table_list->grant.want_privilege) + { + char command[128]; + get_privilege_desc(command, sizeof(command), + table_list->grant.want_privilege); + my_error(ER_TABLEACCESS_DENIED_ERROR, MYF(0), + command, thd->priv_user, thd->host_or_ip, table_list->alias); + DBUG_RETURN(-1); + } } } @@ -2189,7 +2209,7 @@ int mysql_table_grant(THD *thd, TABLE_LIST *table_list, */ if (thd->slave_thread && table_rules_on) { - /* + /* The tables must be marked "updating" so that tables_ok() takes them into account in tests. */ @@ -2636,25 +2656,8 @@ err: pthread_mutex_unlock(&LOCK_grant); if (!no_errors) // Not a silent skip of table { - const char *command=""; - if (want_access & SELECT_ACL) - command ="select"; - else if (want_access & INSERT_ACL) - command = "insert"; - else if (want_access & UPDATE_ACL) - command = "update"; - else if (want_access & DELETE_ACL) - command = "delete"; - else if (want_access & DROP_ACL) - command = "drop"; - else if (want_access & CREATE_ACL) - command = "create"; - else if (want_access & ALTER_ACL) - command = "alter"; - else if (want_access & INDEX_ACL) - command = "index"; - else if (want_access & GRANT_ACL) - command = "grant"; + char command[128]; + get_privilege_desc(command, sizeof(command), want_access); net_printf(&thd->net,ER_TABLEACCESS_DENIED_ERROR, command, thd->priv_user, @@ -2767,11 +2770,8 @@ bool check_grant_all_columns(THD *thd, ulong want_access, TABLE *table) err: pthread_mutex_unlock(&LOCK_grant); - const char *command=""; - if (want_access & SELECT_ACL) - command ="select"; - else if (want_access & INSERT_ACL) - command = "insert"; + char command[128]; + get_privilege_desc(command, sizeof(command), want_access); my_printf_error(ER_COLUMNACCESS_DENIED_ERROR, ER(ER_COLUMNACCESS_DENIED_ERROR), MYF(0), From 0e302f5e8bdbcb6df7d6a1fb78b0d784dfb798d8 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 30 Dec 2004 23:44:42 +0300 Subject: [PATCH 064/157] Merged fixes for bug #7297 "Two digit year should be interpreted correctly even with zero month and day" and bug #7515 "from_unixtime(0) now returns NULL instead of the Epoch" into 4.1 tree. mysql-test/r/ps_2myisam.result: Updated test result after merging fix for bug #7297 "Two digit year should be interpreted correctly even with zero month and day" into 4.1 mysql-test/r/ps_3innodb.result: Updated test result after merging fix for bug #7297 "Two digit year should be interpreted correctly even with zero month and day" into 4.1 mysql-test/r/ps_4heap.result: Updated test result after merging fix for bug #7297 "Two digit year should be interpreted correctly even with zero month and day" into 4.1 mysql-test/r/ps_5merge.result: Updated test result after merging fix for bug #7297 "Two digit year should be interpreted correctly even with zero month and day" into 4.1 mysql-test/r/ps_6bdb.result: Updated test result after merging fix for bug #7297 "Two digit year should be interpreted correctly even with zero month and day" into 4.1 mysql-test/r/ps_7ndb.result: Updated test result after merging fix for bug #7297 "Two digit year should be interpreted correctly even with zero month and day" into 4.1 sql-common/my_time.c: Merged fix for bug #7297 "Two digit year should be interpreted correctly even with zero month and day" into 4.1 sql/item_timefunc.cc: Small fix after merging patch solving bug #7515 "from_unixtime(0) now returns NULL instead of the Epoch" into 4.1. --- mysql-test/r/ps_2myisam.result | 2 +- mysql-test/r/ps_3innodb.result | 2 +- mysql-test/r/ps_4heap.result | 2 +- mysql-test/r/ps_5merge.result | 4 ++-- mysql-test/r/ps_6bdb.result | 2 +- mysql-test/r/ps_7ndb.result | 2 +- sql-common/my_time.c | 3 +-- sql/item_timefunc.cc | 1 + 8 files changed, 9 insertions(+), 9 deletions(-) diff --git a/mysql-test/r/ps_2myisam.result b/mysql-test/r/ps_2myisam.result index c2799c6faed..3412f2fe00c 100644 --- a/mysql-test/r/ps_2myisam.result +++ b/mysql-test/r/ps_2myisam.result @@ -3027,7 +3027,7 @@ c1 c13 c14 c15 c16 c17 42 0000-00-00 0000-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 43 0000-00-00 0000-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 50 2001-00-00 2001-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 -51 0010-00-00 0010-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 +51 2010-00-00 2010-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 52 2001-00-00 2001-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 53 2001-00-00 2001-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 60 NULL NULL 1991-01-01 01:01:01 NULL NULL diff --git a/mysql-test/r/ps_3innodb.result b/mysql-test/r/ps_3innodb.result index 034cd75ea4b..99f45117c36 100644 --- a/mysql-test/r/ps_3innodb.result +++ b/mysql-test/r/ps_3innodb.result @@ -3010,7 +3010,7 @@ c1 c13 c14 c15 c16 c17 42 0000-00-00 0000-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 43 0000-00-00 0000-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 50 2001-00-00 2001-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 -51 0010-00-00 0010-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 +51 2010-00-00 2010-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 52 2001-00-00 2001-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 53 2001-00-00 2001-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 60 NULL NULL 1991-01-01 01:01:01 NULL NULL diff --git a/mysql-test/r/ps_4heap.result b/mysql-test/r/ps_4heap.result index 60a9ddd2bf2..1ec5c280523 100644 --- a/mysql-test/r/ps_4heap.result +++ b/mysql-test/r/ps_4heap.result @@ -3011,7 +3011,7 @@ c1 c13 c14 c15 c16 c17 42 0000-00-00 0000-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 43 0000-00-00 0000-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 50 2001-00-00 2001-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 -51 0010-00-00 0010-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 +51 2010-00-00 2010-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 52 2001-00-00 2001-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 53 2001-00-00 2001-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 60 NULL NULL 1991-01-01 01:01:01 NULL NULL diff --git a/mysql-test/r/ps_5merge.result b/mysql-test/r/ps_5merge.result index e07cb7d7c49..1f36d246da0 100644 --- a/mysql-test/r/ps_5merge.result +++ b/mysql-test/r/ps_5merge.result @@ -2947,7 +2947,7 @@ c1 c13 c14 c15 c16 c17 42 0000-00-00 0000-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 43 0000-00-00 0000-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 50 2001-00-00 2001-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 -51 0010-00-00 0010-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 +51 2010-00-00 2010-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 52 2001-00-00 2001-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 53 2001-00-00 2001-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 60 NULL NULL 1991-01-01 01:01:01 NULL NULL @@ -5957,7 +5957,7 @@ c1 c13 c14 c15 c16 c17 42 0000-00-00 0000-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 43 0000-00-00 0000-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 50 2001-00-00 2001-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 -51 0010-00-00 0010-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 +51 2010-00-00 2010-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 52 2001-00-00 2001-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 53 2001-00-00 2001-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 60 NULL NULL 1991-01-01 01:01:01 NULL NULL diff --git a/mysql-test/r/ps_6bdb.result b/mysql-test/r/ps_6bdb.result index baf273c84c0..1e7ef526d37 100644 --- a/mysql-test/r/ps_6bdb.result +++ b/mysql-test/r/ps_6bdb.result @@ -3010,7 +3010,7 @@ c1 c13 c14 c15 c16 c17 42 0000-00-00 0000-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 43 0000-00-00 0000-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 50 2001-00-00 2001-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 -51 0010-00-00 0010-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 +51 2010-00-00 2010-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 52 2001-00-00 2001-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 53 2001-00-00 2001-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 60 NULL NULL 1991-01-01 01:01:01 NULL NULL diff --git a/mysql-test/r/ps_7ndb.result b/mysql-test/r/ps_7ndb.result index 3dbe3ed6218..13b6894e9b5 100644 --- a/mysql-test/r/ps_7ndb.result +++ b/mysql-test/r/ps_7ndb.result @@ -3010,7 +3010,7 @@ c1 c13 c14 c15 c16 c17 42 0000-00-00 0000-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 43 0000-00-00 0000-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 50 2001-00-00 2001-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 -51 0010-00-00 0010-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 +51 2010-00-00 2010-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 52 2001-00-00 2001-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 53 2001-00-00 2001-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000 60 NULL NULL 1991-01-01 01:01:01 NULL NULL diff --git a/sql-common/my_time.c b/sql-common/my_time.c index 29935696b7d..8dd4801b562 100644 --- a/sql-common/my_time.c +++ b/sql-common/my_time.c @@ -339,8 +339,7 @@ str_to_datetime(const char *str, uint length, MYSQL_TIME *l_time, } l_time->neg= 0; - if (year_length == 2 && i >= format_position[1] && i >=format_position[2] && - (l_time->month || l_time->day)) + if (year_length == 2 && not_zero_date) l_time->year+= (l_time->year < YY_PART_YEAR ? 2000 : 1900); if (number_of_fields < 3 || diff --git a/sql/item_timefunc.cc b/sql/item_timefunc.cc index 6198043b576..0d652a431cb 100644 --- a/sql/item_timefunc.cc +++ b/sql/item_timefunc.cc @@ -1597,6 +1597,7 @@ void Item_func_from_unixtime::fix_length_and_dec() collation.set(&my_charset_bin); decimals=0; max_length=MAX_DATETIME_WIDTH*MY_CHARSET_BIN_MB_MAXLEN; + maybe_null= 1; thd->time_zone_used= 1; } From 90f86403a9fa5b47601f3f0d22b4b8b7e527590f Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 31 Dec 2004 02:18:21 +0100 Subject: [PATCH 065/157] Checking size to no of free + 1 was not correct when entry was released before check. Thus empty it is when size == no of free This caused a memory leak which inserted a hard limit of max 64 unique indexes in the cluster. --- ndb/src/kernel/blocks/suma/Suma.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ndb/src/kernel/blocks/suma/Suma.cpp b/ndb/src/kernel/blocks/suma/Suma.cpp index 836fa28d9ad..88e6dea35ac 100644 --- a/ndb/src/kernel/blocks/suma/Suma.cpp +++ b/ndb/src/kernel/blocks/suma/Suma.cpp @@ -3471,10 +3471,10 @@ SumaParticipant::completeSubRemoveReq(Signal* signal, SubscriptionPtr subPtr) { */ #if 0 ndbout_c("c_subscriptionPool.getSize() %d c_subscriptionPool.getNoOfFree()%d", - c_subscriptionPool.getSize(),c_subscriptionPool.getNoOfFree()+1); + c_subscriptionPool.getSize(),c_subscriptionPool.getNoOfFree()); #endif - if(c_subscriptionPool.getSize() == c_subscriptionPool.getNoOfFree()+1) { + if(c_subscriptionPool.getSize() == c_subscriptionPool.getNoOfFree()) { jam(); #if 0 ndbout_c("SUB_REMOVE_REQ:Clearing c_tables"); From 5cde0749927a6c55933fe5834e4c862d4135db9b Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 31 Dec 2004 10:38:51 +0100 Subject: [PATCH 066/157] - added the "Archive", "CSV" and "Example" storage engines to the Linux "Max" RPM support-files/mysql.spec.sh: - added the "Archive", "CSV" and "Example" storage engines to the Max RPM --- support-files/mysql.spec.sh | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/support-files/mysql.spec.sh b/support-files/mysql.spec.sh index e7f8a035a15..5afddee609b 100644 --- a/support-files/mysql.spec.sh +++ b/support-files/mysql.spec.sh @@ -152,15 +152,22 @@ languages and applications need to dynamically load and use MySQL. %package Max Release: %{release} -Summary: MySQL - server with Berkeley DB, RAID and UDF support +Summary: MySQL - server with extended functionality Group: Applications/Databases Provides: mysql-Max Obsoletes: mysql-Max Requires: MySQL-server >= 4.0 %description Max -Optional MySQL server binary that supports additional features like -Berkeley DB, RAID and User Defined Functions (UDFs). +Optional MySQL server binary that supports additional features like: + + - Berkeley DB Storage Engine + - Archive Storage Engine + - CSV Storage Engine + - Example Storage Engine + - MyISAM RAID + - User Defined Functions (UDFs). + To activate this binary, just install this package in addition to the standard MySQL package. @@ -273,6 +280,9 @@ BuildMySQL "--enable-shared \ --with-berkeley-db \ --with-innodb \ --with-raid \ + --with-archive \ + --with-csv-storage-engine \ + --with-example-storage-engine \ --with-embedded-server \ --with-server-suffix='-Max'" @@ -597,6 +607,12 @@ fi # itself - note that they must be ordered by date (important when # merging BK trees) %changelog +* Thu Dec 31 2004 Lenz Grimmer + +- enabled the "Archive" storage engine for the max binary +- enabled the "CSV" storage engine for the max binary +- enabled the "Example" storage engine for the max binary + * Thu Aug 26 2004 Lenz Grimmer - MySQL-Max now requires MySQL-server instead of MySQL (BUG 3860) From 5eaf65ab4be77911eb03cceefac9ecea48c25f71 Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 31 Dec 2004 11:52:14 +0100 Subject: [PATCH 067/157] post-merge mysql-test/r/grant2.result: new test case mysql-test/r/variables.result: don't fail w/o innodb mysql-test/t/grant2.test: new test case mysql-test/t/multi_update.test: don't fail w/o innodb mysql-test/t/variables.test: don't fail w/o innodb sql/sql_acl.cc: cleanup --- mysql-test/r/alter_table.result | 2 +- mysql-test/r/grant2.result | 17 ++++++++++++++--- mysql-test/r/grant_cache.result | 6 +++--- mysql-test/r/ps_1general.result | 4 ++-- mysql-test/r/timezone2.result | 4 ++-- mysql-test/r/variables.result | 6 +++--- mysql-test/t/grant2.test | 28 ++++++++++++++++++++++++---- mysql-test/t/multi_update.test | 2 ++ mysql-test/t/variables.test | 4 ++-- sql/sql_acl.cc | 3 +-- 10 files changed, 54 insertions(+), 22 deletions(-) diff --git a/mysql-test/r/alter_table.result b/mysql-test/r/alter_table.result index 5a47110dda3..a7ae8bc310c 100644 --- a/mysql-test/r/alter_table.result +++ b/mysql-test/r/alter_table.result @@ -121,7 +121,7 @@ create database mysqltest; create table mysqltest.t1 (a int,b int,c int); grant all on mysqltest.t1 to mysqltest_1@localhost; alter table t1 rename t2; -ERROR 42000: INSERT,CREATE command denied to user: 'mysqltest_1@localhost' for table 't2' +ERROR 42000: INSERT,CREATE command denied to user 'mysqltest_1'@'localhost' for table 't2' revoke all privileges on mysqltest.t1 from mysqltest_1@localhost; delete from mysql.user where user=_binary'mysqltest_1'; drop database mysqltest; diff --git a/mysql-test/r/grant2.result b/mysql-test/r/grant2.result index a31fa2ac3dc..6d8bdbaf8f9 100644 --- a/mysql-test/r/grant2.result +++ b/mysql-test/r/grant2.result @@ -37,7 +37,6 @@ show grants for current_user(); Grants for mysqltest_1@localhost GRANT USAGE ON *.* TO 'mysqltest_1'@'localhost' GRANT SELECT, INSERT ON `mysqltest`.* TO 'mysqltest_1'@'localhost' -use mysqltest; insert into t1 values (1, 'I can''t change it!'); update t1 set data='I can change it!' where id = 1; ERROR 42000: Access denied for user 'mysqltest_1'@'localhost' to database 'mysqltest' @@ -47,8 +46,20 @@ select * from t1; id data 1 I can't change it! drop table t1; -drop database mysqltest; -use test; delete from mysql.user where user like 'mysqltest\_%'; delete from mysql.db where user like 'mysqltest\_%'; flush privileges; +create table t1 (a int, b int); +grant select (a) on t1 to mysqltest_1@localhost with grant option; +grant select (a,b) on t1 to mysqltest_2@localhost; +ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for column 'b' in table 't1' +grant select on t1 to mysqltest_3@localhost; +ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table 't1' +drop table t1; +delete from mysql.user where user like 'mysqltest\_%'; +delete from mysql.db where user like 'mysqltest\_%'; +delete from mysql.tables_priv where user like 'mysqltest\_%'; +delete from mysql.columns_priv where user like 'mysqltest\_%'; +flush privileges; +drop database mysqltest; +use test; diff --git a/mysql-test/r/grant_cache.result b/mysql-test/r/grant_cache.result index b3e16f1fcf0..d905e9319fd 100644 --- a/mysql-test/r/grant_cache.result +++ b/mysql-test/r/grant_cache.result @@ -134,7 +134,7 @@ a b c a 1 1 1 test.t1 2 2 2 test.t1 select * from t2; -ERROR 42000: SELECT command denied to user: 'mysqltest_2@localhost' for table 't2' +ERROR 42000: SELECT command denied to user 'mysqltest_2'@'localhost' for table 't2' show status like "Qcache_queries_in_cache"; Variable_name Value Qcache_queries_in_cache 6 @@ -148,7 +148,7 @@ select "user3"; user3 user3 select * from t1; -ERROR 42000: SELECT command denied to user: 'mysqltest_3@localhost' for column 'b' in table 't1' +ERROR 42000: SELECT command denied to user 'mysqltest_3'@'localhost' for column 'b' in table 't1' select a from t1; a 1 @@ -156,7 +156,7 @@ a select c from t1; ERROR 42000: SELECT command denied to user 'mysqltest_3'@'localhost' for column 'c' in table 't1' select * from t2; -ERROR 42000: SELECT command denied to user: 'mysqltest_3@localhost' for table 't2' +ERROR 42000: SELECT command denied to user 'mysqltest_3'@'localhost' for table 't2' select mysqltest.t1.c from test.t1,mysqltest.t1; ERROR 42000: SELECT command denied to user 'mysqltest_3'@'localhost' for column 'c' in table 't1' show status like "Qcache_queries_in_cache"; diff --git a/mysql-test/r/ps_1general.result b/mysql-test/r/ps_1general.result index 5f8cb2597c6..25b9e2dcda4 100644 --- a/mysql-test/r/ps_1general.result +++ b/mysql-test/r/ps_1general.result @@ -834,7 +834,7 @@ execute s_t9 ; my_col 1 select a as my_col from t1; -ERROR 42000: select command denied to user 'second_user'@'localhost' for table 't1' +ERROR 42000: SELECT command denied to user 'second_user'@'localhost' for table 't1' grant select on mysqltest.t1 to second_user@localhost identified by 'looser' ; show grants for second_user@localhost ; @@ -873,7 +873,7 @@ Grants for second_user@localhost GRANT USAGE ON *.* TO 'second_user'@'localhost' IDENTIFIED BY PASSWORD '*13843FE600B19A81E32AF50D4A6FED25875FF1F3' GRANT SELECT ON `mysqltest`.`t9` TO 'second_user'@'localhost' execute s_t1 ; -ERROR 42000: select command denied to user 'second_user'@'localhost' for table 't1' +ERROR 42000: SELECT command denied to user 'second_user'@'localhost' for table 't1' revoke all privileges, grant option from second_user@localhost ; show grants for second_user@localhost ; Grants for second_user@localhost diff --git a/mysql-test/r/timezone2.result b/mysql-test/r/timezone2.result index 1c98fd18a08..a1a2fec739f 100644 --- a/mysql-test/r/timezone2.result +++ b/mysql-test/r/timezone2.result @@ -295,9 +295,9 @@ convert_tz(b, 'Europe/Moscow', 'UTC') update t1, t2 set t1.b = convert_tz('2004-11-30 12:00:00', 'Europe/Moscow', 'UTC') where t1.a = t2.c and t2.d = (select max(d) from t2); select * from mysql.time_zone_name; -ERROR 42000: select command denied to user 'mysqltest_1'@'localhost' for table 'time_zone_name' +ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table 'time_zone_name' select Name, convert_tz('2004-11-30 12:00:00', Name, 'UTC') from mysql.time_zone_name; -ERROR 42000: select command denied to user 'mysqltest_1'@'localhost' for table 'time_zone_name' +ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table 'time_zone_name' delete from mysql.user where user like 'mysqltest\_%'; delete from mysql.db where user like 'mysqltest\_%'; delete from mysql.tables_priv where user like 'mysqltest\_%'; diff --git a/mysql-test/r/variables.result b/mysql-test/r/variables.result index 01db98648bd..6b700f7f6a2 100644 --- a/mysql-test/r/variables.result +++ b/mysql-test/r/variables.result @@ -115,13 +115,13 @@ set global concurrent_insert=DEFAULT; show variables like 'concurrent_insert'; Variable_name Value concurrent_insert ON -set storage_engine=MYISAM, storage_engine="HEAP", global storage_engine="INNODB"; +set storage_engine=MYISAM, storage_engine="HEAP", global storage_engine="MERGE"; show local variables like 'storage_engine'; Variable_name Value storage_engine HEAP show global variables like 'storage_engine'; Variable_name Value -storage_engine InnoDB +storage_engine MERGE set GLOBAL query_cache_size=100000; set GLOBAL myisam_max_sort_file_size=2000000; show global variables like 'myisam_max_sort_file_size'; @@ -220,7 +220,7 @@ set max_join_size="hello"; ERROR 42000: Incorrect argument type to variable 'max_join_size' set storage_engine=UNKNOWN_TABLE_TYPE; ERROR 42000: Unknown table engine 'UNKNOWN_TABLE_TYPE' -set storage_engine=INNODB, big_tables=2; +set storage_engine=MERGE, big_tables=2; ERROR 42000: Variable 'big_tables' can't be set to the value of '2' show local variables like 'storage_engine'; Variable_name Value diff --git a/mysql-test/t/grant2.test b/mysql-test/t/grant2.test index f86be0c95b9..7060d35e9a4 100644 --- a/mysql-test/t/grant2.test +++ b/mysql-test/t/grant2.test @@ -50,10 +50,9 @@ flush privileges; use mysqltest; create table t1 (id int primary key, data varchar(255)); -connect (mrbad, localhost, mysqltest_1,,); +connect (mrbad, localhost, mysqltest_1,,mysqltest); connection mrbad; show grants for current_user(); -use mysqltest; insert into t1 values (1, 'I can''t change it!'); --error 1044 update t1 set data='I can change it!' where id = 1; @@ -61,11 +60,32 @@ update t1 set data='I can change it!' where id = 1; --error 1044 insert into t1 values (1, 'XXX') on duplicate key update data= 'I can change it!'; select * from t1; +disconnect mrbad; connection default; drop table t1; -drop database mysqltest; -use test; delete from mysql.user where user like 'mysqltest\_%'; delete from mysql.db where user like 'mysqltest\_%'; flush privileges; + +create table t1 (a int, b int); +grant select (a) on t1 to mysqltest_1@localhost with grant option; +connect (mrugly, localhost, mysqltest_1,,mysqltest); +connection mrugly; +--error 1143 +grant select (a,b) on t1 to mysqltest_2@localhost; +--error 1142 +grant select on t1 to mysqltest_3@localhost; +disconnect mrugly; + +connection default; +drop table t1; +delete from mysql.user where user like 'mysqltest\_%'; +delete from mysql.db where user like 'mysqltest\_%'; +delete from mysql.tables_priv where user like 'mysqltest\_%'; +delete from mysql.columns_priv where user like 'mysqltest\_%'; +flush privileges; + +drop database mysqltest; +use test; + diff --git a/mysql-test/t/multi_update.test b/mysql-test/t/multi_update.test index e90de399500..4035099ec7e 100644 --- a/mysql-test/t/multi_update.test +++ b/mysql-test/t/multi_update.test @@ -433,6 +433,7 @@ delete t1 from t1,t2 where t1.col1 < (select max(col1) from t1) and t1.col1 = t2 drop table t1,t2; # Test for BUG#5837 - delete with outer join and const tables +--disable_warnings create table t1 ( aclid bigint not null primary key, status tinyint(1) not null @@ -442,6 +443,7 @@ create table t2 ( refid bigint not null primary key, aclid bigint, index idx_acl(aclid) ) engine = innodb; +--enable_warnings insert into t2 values(1,null); delete t2, t1 from t2 left join t1 on (t2.aclid=t1.aclid) where t2.refid='1'; drop table t1, t2; diff --git a/mysql-test/t/variables.test b/mysql-test/t/variables.test index 7dc07f9313e..3a76ae5136e 100644 --- a/mysql-test/t/variables.test +++ b/mysql-test/t/variables.test @@ -71,7 +71,7 @@ show variables like 'concurrent_insert'; set global concurrent_insert=DEFAULT; show variables like 'concurrent_insert'; -set storage_engine=MYISAM, storage_engine="HEAP", global storage_engine="INNODB"; +set storage_engine=MYISAM, storage_engine="HEAP", global storage_engine="MERGE"; show local variables like 'storage_engine'; show global variables like 'storage_engine'; set GLOBAL query_cache_size=100000; @@ -128,7 +128,7 @@ set max_join_size="hello"; --error 1286 set storage_engine=UNKNOWN_TABLE_TYPE; --error 1231 -set storage_engine=INNODB, big_tables=2; +set storage_engine=MERGE, big_tables=2; show local variables like 'storage_engine'; --error 1229 set SESSION query_cache_size=10000; diff --git a/sql/sql_acl.cc b/sql/sql_acl.cc index 5579aa9b3f5..2c11d1c87ad 100644 --- a/sql/sql_acl.cc +++ b/sql/sql_acl.cc @@ -964,9 +964,8 @@ static void acl_insert_db(const char *user, const char *host, const char *db, ulong acl_get(const char *host, const char *ip, const char *user, const char *db, my_bool db_is_pattern) { - ulong host_access,db_access; + ulong host_access= ~0,db_access= 0; uint i,key_length; - db_access=0; host_access= ~0; char key[ACL_KEY_LENGTH],*tmp_db,*end; acl_entry *entry; DBUG_ENTER("acl_get"); From 54b768472c3d304d18118ee8f88c7afe3ad92743 Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 31 Dec 2004 12:46:18 +0100 Subject: [PATCH 068/157] - Bootrap now uses "compile-dist" by default to create the source distribution Build-tools/Bootstrap: - Use BUILD/compile-dist instead of compile-pentium-max - some minor cleanups --- BUILD/compile-dist | 46 +++++++++++++++++++++++++++++++++++++++++++ Build-tools/Bootstrap | 44 +++++++++++++++++++++-------------------- 2 files changed, 69 insertions(+), 21 deletions(-) create mode 100755 BUILD/compile-dist diff --git a/BUILD/compile-dist b/BUILD/compile-dist new file mode 100755 index 00000000000..2344d4dfffd --- /dev/null +++ b/BUILD/compile-dist @@ -0,0 +1,46 @@ +#!/bin/sh +# +# This script's purpose is to update the automake/autoconf helper scripts and +# to run a plain "configure" without any special compile flags. Only features +# that affect the content of the source distribution are enabled. The resulting +# tree can then be picked up by "make dist" to create the "pristine source +# package" that is used as the basis for all other binary builds. +# +make distclean +aclocal +autoheader +libtoolize --automake --force --copy +automake --force --add-missing --copy +autoconf +(cd bdb/dist && sh s_all) +(cd innobase && aclocal && autoheader && aclocal && automake && autoconf) + +# Default to gcc for CC and CXX +if test -z "$CXX" ; then + export CXX=gcc +fi + +if test -z "$CC" ; then + export CC=gcc +fi + +# Use ccache, if available +if ccache -V > /dev/null 2>&1 +then + if ! (echo "$CC" | grep "ccache" > /dev/null) + then + export CC="ccache $CC" + fi + if ! (echo "$CXX" | grep "ccache" > /dev/null) + then + export CXX="ccache $CXX" + fi +fi + +# Make sure to enable all features that affect "make dist" +./configure \ + --with-embedded-server \ + --with-berkeley-db \ + --with-innodb \ + --enable-thread-safe-client +make diff --git a/Build-tools/Bootstrap b/Build-tools/Bootstrap index a7d347ba32f..fc36c51ec85 100755 --- a/Build-tools/Bootstrap +++ b/Build-tools/Bootstrap @@ -26,7 +26,7 @@ else } # Some predefined settings -$build_command= "BUILD/compile-pentium-max"; +$build_command= "BUILD/compile-dist"; $PWD= cwd(); $opt_docdir= $PWD . "/mysqldoc"; $opt_archive_log= undef; @@ -70,7 +70,7 @@ GetOptions( "test|t", "verbose|v", "win-dist|w", - "quiet|q", + "quiet|q", ) || print_help(""); # @@ -122,18 +122,8 @@ if (($opt_directory ne $PWD) && (!-d $opt_directory && !$opt_dry_run)) # if ($opt_pull) { - &logger("Updating BK tree $REPO to latest ChangeSet first"); - chdir ($REPO) or &abort("Could not chdir to $REPO!"); - &run_command("bk pull", "Could not update $REPO!"); - chdir ($PWD) or &abort("Could not chdir to $PWD!"); - - unless ($opt_skip_manual) - { - &logger("Updating manual tree in $opt_docdir"); - chdir ($opt_docdir) or &abort("Could not chdir to $opt_docdir!"); - &run_command("bk pull", "Could not update $opt_docdir!"); - chdir ($PWD) or &abort("Could not chdir to $PWD!"); - } + &bk_pull("$REPO"); + &bk_pull("$opt_docdir") unless ($opt_skip_manual); } # @@ -270,7 +260,7 @@ if (defined $opt_changelog) $command.= " " . $REPO . " > $target_dir/ChangeLog"; &logger($command); # We cannot use run_command here because of output redirection - if (!$opt_dry_run) + unless ($opt_dry_run) { system($command) == 0 or &abort("Could not create $target_dir/ChangeLog!"); } @@ -281,17 +271,17 @@ if (defined $opt_changelog) # unless ($opt_skip_manual) { - $msg= "Updating manual files"; - &logger($msg); + &logger("Updating manual files"); foreach $file qw/internals manual reservedwords/ { system ("bk cat $opt_docdir/Docs/$file.texi > $target_dir/Docs/$file.texi") == 0 or &abort("Could not update $file.texi in $target_dir/Docs/!"); } - system ("rm -f $target_dir/Docs/Images/Makefile*") == 0 - or &abort("Could not remove Makefiles in $target_dir/Docs/Images/!"); - system ("cp $opt_docdir/Docs/Images/*.* $target_dir/Docs/Images") == 0 - or &abort("Could not copy image files in $target_dir/Docs/Images/!"); + + &run_command("rm -f $target_dir/Docs/Images/Makefile*", + "Could not remove Makefiles in $target_dir/Docs/Images/!"); + &run_command("cp $opt_docdir/Docs/Images/*.* $target_dir/Docs/Images", + "Could not copy image files in $target_dir/Docs/Images/!"); } # @@ -377,6 +367,18 @@ if ($opt_archive_log) exit 0; +# +# Run a BK pull on the given BK tree +# +sub bk_pull +{ + my $bk_tree= $_[0]; + &logger("Updating BK tree $bk_tree to latest ChangeSet first"); + chdir ($bk_tree) or &abort("Could not chdir to $bk_tree!"); + &run_command("bk pull", "Could not update $bk_tree!"); + chdir ($PWD) or &abort("Could not chdir to $PWD!"); +} + # # Print the help text message (with an optional message on top) # From 0428fcb89ea71ef397b26c65e11ef77097a3a83f Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 31 Dec 2004 13:12:36 +0100 Subject: [PATCH 069/157] - updated compile-dist to include NDB cluster BUILD/compile-dist: - make sure to include NDB cluster in the distribution, too --- BUILD/compile-dist | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/BUILD/compile-dist b/BUILD/compile-dist index 2344d4dfffd..f27c218747c 100755 --- a/BUILD/compile-dist +++ b/BUILD/compile-dist @@ -42,5 +42,6 @@ fi --with-embedded-server \ --with-berkeley-db \ --with-innodb \ - --enable-thread-safe-client + --enable-thread-safe-client \ + --with-ndbcluster make From cd47cb56fd76a47def597e7b486b89c65a65481d Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 31 Dec 2004 15:05:41 +0200 Subject: [PATCH 070/157] row0upd.c: Fix a little bug in InnoDB: we looked at the physical size of a stored SQL NULL value from a wrong field in the index; this has probably caused no bugs visible to the user, only caused some extra space usage in some rare cases; we may later backport the fix to 4.0 innobase/row/row0upd.c: Fix a little bug in InnoDB: we looked at the physical size of a stored SQL NULL value from a wrong field in the index; this has probably caused no bugs visible to the user, only caused some extra space usage in some rare cases; we may later backport the fix to 4.0 --- innobase/row/row0upd.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/innobase/row/row0upd.c b/innobase/row/row0upd.c index a449b9f1736..9192f6dc692 100644 --- a/innobase/row/row0upd.c +++ b/innobase/row/row0upd.c @@ -381,8 +381,14 @@ row_upd_changes_field_size_or_external( new_len = new_val->len; if (new_len == UNIV_SQL_NULL) { + /* A bug fixed on Dec 31st, 2004: we looked at the + SQL NULL size from the wrong field! We may backport + this fix also to 4.0. The merge to 5.0 will be made + manually immediately after we commit this to 4.1. */ + new_len = dtype_get_sql_null_size( - dict_index_get_nth_type(index, i)); + dict_index_get_nth_type(index, + upd_field->field_no)); } old_len = rec_get_nth_field_size(rec, upd_field->field_no); From 56db297d002150216c1085550b39a8bec65caf64 Mon Sep 17 00:00:00 2001 From: unknown Date: Sat, 1 Jan 2005 13:49:53 +0200 Subject: [PATCH 071/157] log0recv.c: Fix a wrong memset in InnoDB Hot Backup code; the bug probably did not affect anything since we do not assume that the header of a log file is filled with zeros before writing the header info there; the bug found by Felix von Leitner innobase/log/log0recv.c: Fix a wrong memset in InnoDB Hot Backup code; the bug probably did not affect anything since we do not assume that the header of a log file is filled with zeros before writing the header info there; the bug found by Felix von Leitner --- innobase/log/log0recv.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/innobase/log/log0recv.c b/innobase/log/log0recv.c index 10f921bb1f0..ae84f085523 100644 --- a/innobase/log/log0recv.c +++ b/innobase/log/log0recv.c @@ -2990,8 +2990,7 @@ recv_reset_log_files_for_backup( memcpy(name + log_dir_len, logfilename, sizeof logfilename); buf = ut_malloc(LOG_FILE_HDR_SIZE + OS_FILE_LOG_BLOCK_SIZE); - memset(buf, LOG_FILE_HDR_SIZE + OS_FILE_LOG_BLOCK_SIZE, '\0'); - + memset(buf, '\0', LOG_FILE_HDR_SIZE + OS_FILE_LOG_BLOCK_SIZE); for (i = 0; i < n_log_files; i++) { From 3e2e4fb77fa30ca66849f9e05a30a7f339348a63 Mon Sep 17 00:00:00 2001 From: unknown Date: Sat, 1 Jan 2005 19:27:41 +0100 Subject: [PATCH 072/157] mysql-test-run.pl: Added --ps-protocol and --embedded-server mysql-test/mysql-test-run.pl: Added --ps-protocol and --embedded-server --- mysql-test/mysql-test-run.pl | 125 ++++++++++++++++++++++------------- 1 file changed, 79 insertions(+), 46 deletions(-) diff --git a/mysql-test/mysql-test-run.pl b/mysql-test/mysql-test-run.pl index c90ebf22dad..a69dcdce5c6 100755 --- a/mysql-test/mysql-test-run.pl +++ b/mysql-test/mysql-test-run.pl @@ -95,6 +95,7 @@ $Devel::Trace::TRACE= 1; my @skip_if_embedded_server= ( + "alter_table", "bdb-deadlock", "connect", "flush_block_commit", @@ -148,6 +149,7 @@ our @mysqld_src_dirs= our $glob_win32= 0; our $glob_mysql_test_dir= undef; +our $glob_mysql_bench_dir= undef; our $glob_hostname= undef; our $glob_scriptname= undef; our $glob_use_running_server= 0; @@ -237,6 +239,8 @@ our $opt_skip_test; our $opt_sleep; +our $opt_ps_protocol; + # FIXME all of the sleep time handling needs cleanup our $opt_sleep_time_after_restart= 1; our $opt_sleep_time_for_delete= 10; @@ -301,7 +305,7 @@ sub mysqld_arguments ($$$$$); sub stop_masters_slaves (); sub stop_masters (); sub stop_slaves (); -sub run_mysqltest ($); +sub run_mysqltest ($$); ###################################################################### # @@ -396,6 +400,7 @@ sub initial_setup () { # 'basedir' is always parent of "mysql-test" directory $glob_mysql_test_dir= cwd(); $glob_basedir= dirname($glob_mysql_test_dir); + $glob_mysql_bench_dir= "$glob_basedir/mysql-bench"; # FIXME make configurable $path_timefile= "$glob_mysql_test_dir/var/log/mysqltest-time"; @@ -441,6 +446,7 @@ sub command_line_setup () { 'debug' => \$opt_debug, 'do-test=s' => \$opt_do_test, 'embedded-server' => \$opt_embedded_server, + 'ps-protocol' => \$opt_ps_protocol, 'extern' => \$opt_extern, 'fast' => \$opt_fast, 'force' => \$opt_force, @@ -458,6 +464,7 @@ sub command_line_setup () { 'netware' => \$opt_netware, 'no-manager' => \$opt_no_manager, 'old-master' => \$opt_old_master, + 'ps-protocol' => \$opt_ps_protocol, 'record' => \$opt_record, 'script-debug' => \$opt_script_debug, 'skip-rpl' => \$opt_skip_rpl, @@ -526,7 +533,7 @@ sub command_line_setup () { if ( $opt_extern and $opt_local ) { - die "Can't use --extern and --local at the same time"; + mtr_error("Can't use --extern and --local at the same time"); } if ( ! $opt_socket ) @@ -568,7 +575,7 @@ sub command_line_setup () { if ( $opt_extern ) { - die "Can't use --extern with --embedded-server"; + mtr_error("Can't use --extern with --embedded-server"); } $opt_result_ext= ".es"; } @@ -589,12 +596,14 @@ sub command_line_setup () { $opt_sleep_time_after_restart= $opt_sleep; } - if ( $opt_gcov ) + if ( $opt_gcov and ! $opt_source_dist ) { - if ( $opt_source_dist ) - { - die "Coverage test needs the source - please use source dist"; - } + mtr_error("Coverage test needs the source - please use source dist"); + } + + if ( $glob_use_embedded_server and ! $opt_source_dist ) + { + mtr_error("Embedded server needs source tree - please use source dist"); } if ( $opt_gdb ) @@ -602,7 +611,7 @@ sub command_line_setup () { $opt_wait_timeout= 300; if ( $opt_extern ) { - die "Can't use --extern with --gdb"; + mtr_error("Can't use --extern with --gdb"); } } @@ -611,7 +620,7 @@ sub command_line_setup () { $opt_gdb= 1; if ( $opt_extern ) { - die "Can't use --extern with --manual-gdb"; + mtr_error("Can't use --extern with --manual-gdb"); } } @@ -619,7 +628,7 @@ sub command_line_setup () { { if ( $opt_extern ) { - die "Can't use --extern with --ddd"; + mtr_error("Can't use --extern with --ddd"); } } @@ -689,10 +698,10 @@ sub executable_setup () { { mtr_error("Cannot find embedded server 'mysqltest'"); } + $path_tests_bindir= "$glob_basedir/libmysqld/examples"; } else { - $exe_mysqld= "$glob_basedir/sql/mysqld"; if ( -f "$glob_basedir/client/.libs/lt-mysqltest" ) { $exe_mysqltest= "$glob_basedir/client/.libs/lt-mysqltest"; @@ -705,6 +714,7 @@ sub executable_setup () { { $exe_mysqltest= "$glob_basedir/client/mysqltest"; } + $path_tests_bindir= "$glob_basedir/tests"; } if ( -f "$glob_basedir/client/.libs/mysqldump" ) { @@ -723,8 +733,8 @@ sub executable_setup () { $exe_mysqlbinlog= "$glob_basedir/client/mysqlbinlog"; } + $exe_mysqld= "$glob_basedir/sql/mysqld"; $path_client_bindir= "$glob_basedir/client"; - $path_tests_bindir= "$glob_basedir/tests"; $exe_mysqladmin= "$path_client_bindir/mysqladmin"; $exe_mysql= "$path_client_bindir/mysql"; $path_language= "$glob_basedir/sql/share/english/"; @@ -791,7 +801,7 @@ sub handle_int_signal () { $SIG{INT}= 'DEFAULT'; # If we get a ^C again, we die... mtr_warning("got INT signal, cleaning up....."); stop_masters_slaves(); - exit(1); + mtr_error("We die from ^C signal from user"); } @@ -806,7 +816,7 @@ sub collect_test_cases () { my @tests; # Array of hash, will be array of C struct - opendir(TESTDIR, $testdir) or die "Can't open dir \"$testdir\": $!"; + opendir(TESTDIR, $testdir) or mtr_error("Can't open dir \"$testdir\": $!"); foreach my $elem ( sort readdir(TESTDIR) ) { my $tname= mtr_match_extension($elem,"test"); @@ -1066,7 +1076,7 @@ sub sleep_until_file_created ($$) { if ( ! -r $pidfile ) { - die "No $pidfile was created"; + mtr_error("No $pidfile was created"); } } @@ -1084,7 +1094,7 @@ sub ndbcluster_start () { mtr_report("Starting ndbcluster"); my $ndbcluster_opts= $opt_bench ? "" : "--small"; # FIXME check result code?! - mtr_run("./ndb/ndbcluster", + mtr_run("$glob_mysql_test_dir/ndb/ndbcluster", ["--port-base=$opt_ndbcluster_port", $ndbcluster_opts, "--diskless", @@ -1094,7 +1104,7 @@ sub ndbcluster_start () { } sub ndbcluster_stop () { - mtr_run("./ndb/ndbcluster", + mtr_run("$glob_mysql_test_dir/ndb/ndbcluster", ["--data-dir=$glob_mysql_test_dir/var", "--port-base=$opt_ndbcluster_port", "--stop"], @@ -1142,17 +1152,17 @@ sub run_benchmarks ($) { if ( ! $benchmark ) { mtr_add_arg($args, "--log"); - mtr_run("./run-all-tests", $args, "", "", "", ""); + mtr_run("$glob_mysql_bench_dir/run-all-tests", $args, "", "", "", ""); # FIXME check result code?! } elsif ( -x $benchmark ) { - mtr_run("./$benchmark", $args, "", "", "", ""); + mtr_run("$glob_mysql_bench_dir/$benchmark", $args, "", "", "", ""); # FIXME check result code?! } else { - mtr_error("benchmark $benchmark not found"); + mtr_error("Benchmark $benchmark not found"); } chdir($glob_mysql_test_dir); # Go back @@ -1172,6 +1182,8 @@ sub run_benchmarks ($) { sub run_tests () { + mtr_report("Finding Tests"); + my $tests= collect_test_cases(); mtr_report("Starting Tests"); @@ -1255,7 +1267,7 @@ sub install_db ($$) { if ( mtr_run($exe_mysqld, $args, $init_db_sql, $path_manager_log, $path_manager_log, "") != 0 ) { - mtr_error("error executing mysqld --bootstrap\n" . + mtr_error("Error executing mysqld --bootstrap\n" . "Could not install $type test DBs"); } } @@ -1293,6 +1305,7 @@ sub run_testcase ($) { if ( $tinfo->{'skip'} ) { + mtr_report_test_name($tinfo); mtr_report_test_skipped($tinfo); return; } @@ -1323,14 +1336,24 @@ sub run_testcase ($) { # ---------------------------------------------------------------------- stop_slaves(); + } - # ---------------------------------------------------------------------- - # Start masters - # ---------------------------------------------------------------------- + # ---------------------------------------------------------------------- + # Prepare to start masters. Even if we use embedded, we want to run + # the preparation. + # ---------------------------------------------------------------------- - mtr_tofile($master->[0]->{'path_myerr'},"CURRENT_TEST: $tname\n"); - do_before_start_master($tname,$tinfo->{'master_sh'}); + mtr_tofile($master->[0]->{'path_myerr'},"CURRENT_TEST: $tname\n"); + do_before_start_master($tname,$tinfo->{'master_sh'}); + # ---------------------------------------------------------------------- + # Start masters + # ---------------------------------------------------------------------- + + mtr_report_test_name($tinfo); + + if ( ! $glob_use_running_server and ! $glob_use_embedded_server ) + { # FIXME give the args to the embedded server?! # FIXME what does $opt_local_master mean?! # FIXME split up start and check that started so that can do @@ -1385,9 +1408,7 @@ sub run_testcase ($) { unlink("r/$tname.reject"); unlink($path_timefile); - mtr_report_test_name($tinfo); - - my $res= run_mysqltest($tinfo); + my $res= run_mysqltest($tinfo, $tinfo->{'master_opt'}); if ( $res == 0 ) { @@ -1470,7 +1491,7 @@ sub do_before_start_master ($$) { if ( $master_init_script and mtr_run($master_init_script, [], "", "", "", "") != 0 ) { - mtr_error("can't run $master_init_script"); + mtr_error("Can't run $master_init_script"); } # for gcov FIXME needed? If so we need more absolute paths # chdir($glob_basedir); @@ -1501,7 +1522,7 @@ sub do_before_start_slave ($$) { if ( $slave_init_script and mtr_run($slave_init_script, [], "", "", "", "") != 0 ) { - mtr_error("can't run $slave_init_script"); + mtr_error("Can't run $slave_init_script"); } unlink("$glob_mysql_test_dir/var/slave-data/log.*"); @@ -1525,9 +1546,11 @@ sub mysqld_arguments ($$$$$) { if ( $glob_use_embedded_server ) { $prefix= "--server-arg="; + } else { + # We can't pass embedded server --no-defaults + mtr_add_arg($args, "%s--no-defaults", $prefix); } - mtr_add_arg($args, "%s--no-defaults", $prefix); mtr_add_arg($args, "%s--basedir=%s", $prefix, $path_my_basedir); mtr_add_arg($args, "%s--character-sets-dir=%s", $prefix, $path_charsetsdir); mtr_add_arg($args, "%s--core", $prefix); @@ -1815,7 +1838,7 @@ sub mysqld_start ($$$$) { } } - die "Can't start mysqld FIXME"; + mtr_error("Can't start mysqld FIXME"); } sub stop_masters_slaves () { @@ -1870,8 +1893,9 @@ sub stop_slaves () { } -sub run_mysqltest ($) { - my $tinfo= shift; +sub run_mysqltest ($$) { + my $tinfo= shift; + my $master_opts= shift; # FIXME set where???? my $cmdline_mysqldump= "$exe_mysqldump --no-defaults -uroot " . @@ -1901,19 +1925,11 @@ sub run_mysqltest ($) { $ENV{'CLIENT_BINDIR'}= $path_client_bindir; $ENV{'TESTS_BINDIR'}= $path_tests_bindir; - my $exe= $exe_mysqltest; - my $args; # Arg vector + my $exe= $exe_mysqltest; + my $args; mtr_init_args(\$args); - if ( $opt_strace_client ) - { - $exe= "strace"; # FIXME there are ktrace, .... - mtr_add_arg($args, "-o"); - mtr_add_arg($args, "%s/var/log/mysqltest.strace", $glob_mysql_test_dir); - mtr_add_arg($args, "$exe_mysqltest"); - } - mtr_add_arg($args, "--no-defaults"); mtr_add_arg($args, "--socket=%s", $master->[0]->{'path_mysock'}); mtr_add_arg($args, "--database=test"); @@ -1925,6 +1941,19 @@ sub run_mysqltest ($) { mtr_add_arg($args, "--tmpdir=%s", $opt_tmpdir); mtr_add_arg($args, "--port=%d", $master->[0]->{'path_myport'}); + if ( $opt_ps_protocol ) + { + mtr_add_arg($args, "--ps-protocol"); + } + + if ( $opt_strace_client ) + { + $exe= "strace"; # FIXME there are ktrace, .... + mtr_add_arg($args, "-o"); + mtr_add_arg($args, "%s/var/log/mysqltest.strace", $glob_mysql_test_dir); + mtr_add_arg($args, "$exe_mysqltest"); + } + if ( $opt_timer ) { mtr_add_arg($args, "--timer-file=var/log/timer"); @@ -1966,6 +1995,10 @@ sub run_mysqltest ($) { mtr_add_arg($args, "-R"); mtr_add_arg($args, $tinfo->{'result_file'}); + # ---------------------------------------------------------------------- + # If embedded server, we create server args to give mysqltest to pass on + # ---------------------------------------------------------------------- + if ( $glob_use_embedded_server ) { mysqld_arguments($args,'master',0,$tinfo->{'master_opt'},[]); From e2d17faa2bfb291c51581b96a48968681b9d16f8 Mon Sep 17 00:00:00 2001 From: unknown Date: Sat, 1 Jan 2005 22:40:40 +0100 Subject: [PATCH 073/157] Fixed failed merge --- sql/ha_ndbcluster.cc | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/sql/ha_ndbcluster.cc b/sql/ha_ndbcluster.cc index 699a75a94c7..9e50ef9ed2a 100644 --- a/sql/ha_ndbcluster.cc +++ b/sql/ha_ndbcluster.cc @@ -2784,7 +2784,7 @@ int ha_ndbcluster::extra(enum ha_extra_function operation) { DBUG_PRINT("info", ("Ignoring duplicate key")); m_ignore_dup_key= TRUE; - + } break; case HA_EXTRA_NO_IGNORE_DUP_KEY: DBUG_PRINT("info", ("HA_EXTRA_NO_IGNORE_DUP_KEY")); @@ -3661,15 +3661,16 @@ int ha_ndbcluster::rename_table(const char *from, const char *to) if (check_ndb_connection()) DBUG_RETURN(my_errno= HA_ERR_NO_CONNECTION); - - dict= m_ndb->getDictionary(); + + Ndb *ndb= get_ndb(); + dict= ndb->getDictionary(); if (!(orig_tab= dict->getTable(m_tabname))) ERR_RETURN(dict->getNdbError()); m_table= (void *)orig_tab; // Change current database to that of target table set_dbname(to); - m_ndb->setDatabaseName(m_dbname); + ndb->setDatabaseName(m_dbname); if (!(result= alter_table_name(new_tabname))) { // Rename .ndb file @@ -3688,7 +3689,6 @@ int ha_ndbcluster::alter_table_name(const char *to) { Ndb *ndb= get_ndb(); NDBDICT *dict= ndb->getDictionary(); - NDBDICT * dict= m_ndb->getDictionary(); const NDBTAB *orig_tab= (const NDBTAB *) m_table; int ret; DBUG_ENTER("alter_table_name_table"); From 7a18eb7a6bee68767b0b2d59722d0bdfe551f7ce Mon Sep 17 00:00:00 2001 From: unknown Date: Sat, 1 Jan 2005 22:47:50 +0100 Subject: [PATCH 074/157] Fixed failed merge --- sql/ha_ndbcluster.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sql/ha_ndbcluster.cc b/sql/ha_ndbcluster.cc index 9e50ef9ed2a..3c6cd83d5dc 100644 --- a/sql/ha_ndbcluster.cc +++ b/sql/ha_ndbcluster.cc @@ -212,6 +212,7 @@ Thd_ndb::~Thd_ndb() { if (ndb) delete ndb; + ndb= 0; } inline @@ -2687,7 +2688,6 @@ void ha_ndbcluster::info(uint flag) { DBUG_PRINT("info", ("HA_STATUS_ERRKEY")); errkey= m_dupkey; - errkey= m_dupkey; } if (flag & HA_STATUS_AUTO) DBUG_PRINT("info", ("HA_STATUS_AUTO")); From 55d9781de318581368d4b94c12ce4e2205f6f23f Mon Sep 17 00:00:00 2001 From: unknown Date: Sun, 2 Jan 2005 19:58:49 +0500 Subject: [PATCH 075/157] WL#964 move my_end() after free_used_memory() client/mysqltest.c: move my_end() after free_used_memory() --- client/mysqltest.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/client/mysqltest.c b/client/mysqltest.c index 18d5660d1a7..abacd73d878 100644 --- a/client/mysqltest.c +++ b/client/mysqltest.c @@ -538,7 +538,6 @@ static void free_used_memory() mysql_server_end(); if (ps_protocol) ps_free_reg(); - my_end(MY_CHECK_ERROR); DBUG_VOID_RETURN; } @@ -556,6 +555,7 @@ static void die(const char* fmt, ...) } va_end(args); free_used_memory(); + my_end(MY_CHECK_ERROR); exit(1); } @@ -568,6 +568,7 @@ static void abort_not_supported_test() if (!silent) printf("skipped\n"); free_used_memory(); + my_end(MY_CHECK_ERROR); exit(2); } @@ -3655,6 +3656,7 @@ int main(int argc, char **argv) if (!got_end_timer) timer_output(); /* No end_timer cmd, end it */ free_used_memory(); + my_end(MY_CHECK_ERROR); exit(error ? 1 : 0); return error ? 1 : 0; /* Keep compiler happy */ } From 4d5ef21f04664986aaf9c32536e9a8be88db7425 Mon Sep 17 00:00:00 2001 From: unknown Date: Sun, 2 Jan 2005 16:57:21 +0100 Subject: [PATCH 076/157] mysql-test-run.pl: Added initial support for multiple test suites Added usage information, i.e. --help mysql-test/mysql-test-run.pl: Added initial support for multiple test suites Added usage information, i.e. --help --- mysql-test/mysql-test-run.pl | 234 +++++++++++++++++++++++++++++------ 1 file changed, 194 insertions(+), 40 deletions(-) diff --git a/mysql-test/mysql-test-run.pl b/mysql-test/mysql-test-run.pl index a69dcdce5c6..5565d29fb7b 100755 --- a/mysql-test/mysql-test-run.pl +++ b/mysql-test/mysql-test-run.pl @@ -172,6 +172,9 @@ our $path_slave_load_tmpdir; # What is this?! our $path_my_basedir; our $opt_tmpdir; # A path but set directly on cmd line +our $opt_usage; +our $opt_suite; + our $opt_netware; our $opt_script_debug= 0; # Script debugging, enable with --script-debug @@ -290,6 +293,7 @@ sub initial_setup (); sub command_line_setup (); sub executable_setup (); sub kill_and_cleanup (); +sub collect_test_cases ($); sub sleep_until_file_created ($$); sub ndbcluster_start (); sub ndbcluster_stop (); @@ -306,6 +310,7 @@ sub stop_masters_slaves (); sub stop_masters (); sub stop_slaves (); sub run_mysqltest ($$); +sub usage ($); ###################################################################### # @@ -423,6 +428,7 @@ sub command_line_setup () { # These are defaults for things that are set on the command line + $opt_suite= "main"; # Special default suite $opt_tmpdir= "$glob_mysql_test_dir/var/tmp"; # FIXME maybe unneded? $path_manager_log= "$glob_mysql_test_dir/var/log/manager.log"; @@ -436,61 +442,85 @@ sub command_line_setup () { my $opt_user; # Read the command line + # Note: Keep list, and the order, in sync with usage at end of this file GetOptions( - 'bench' => \$opt_bench, - 'big-test' => \$opt_big_test, - 'client-gdb' => \$opt_client_gdb, - 'compress' => \$opt_compress, - 'ddd' => \$opt_ddd, - 'debug' => \$opt_debug, - 'do-test=s' => \$opt_do_test, + # Control what engine/variation to run 'embedded-server' => \$opt_embedded_server, 'ps-protocol' => \$opt_ps_protocol, - 'extern' => \$opt_extern, - 'fast' => \$opt_fast, - 'force' => \$opt_force, - 'gcov' => \$opt_gcov, - 'gdb' => \$opt_gdb, - 'gprof' => \$opt_gprof, - 'local' => \$opt_local, - 'local-master' => \$opt_local_master, - 'manual-gdb' => \$opt_manual_gdb, - 'master-binary=s' => \$exe_master_mysqld, - 'master_port=i' => \$opt_master_myport, - 'mysqld=s' => \$opt_extra_mysqld_opt, - 'ndbcluster_port=i' => \$opt_ndbcluster_port, - 'ndbconnectstring=s' => \$opt_ndbconnectstring, - 'netware' => \$opt_netware, + 'bench' => \$opt_bench, + 'small-bench' => \$opt_small_bench, 'no-manager' => \$opt_no_manager, - 'old-master' => \$opt_old_master, - 'ps-protocol' => \$opt_ps_protocol, - 'record' => \$opt_record, - 'script-debug' => \$opt_script_debug, + + # Control what test suites or cases to run + 'force' => \$opt_force, + 'with-ndbcluster' => \$opt_with_ndbcluster, + 'do-test=s' => \$opt_do_test, + 'suite=s' => \$opt_suite, 'skip-rpl' => \$opt_skip_rpl, 'skip-test=s' => \$opt_skip_test, - 'slave-binary=s' => \$exe_slave_mysqld, + + # Specify ports + 'master_port=i' => \$opt_master_myport, 'slave_port=i' => \$opt_slave_myport, + 'ndbcluster_port=i' => \$opt_ndbcluster_port, + + # Test case authoring + 'record' => \$opt_record, + + # ??? + 'mysqld=s' => \$opt_extra_mysqld_opt, + + # Run test on running server + 'extern' => \$opt_extern, + 'ndbconnectstring=s' => \$opt_ndbconnectstring, + + # Debugging + 'gdb' => \$opt_gdb, + 'manual-gdb' => \$opt_manual_gdb, + 'client-gdb' => \$opt_client_gdb, + 'ddd' => \$opt_ddd, + 'strace-client' => \$opt_strace_client, + 'master-binary=s' => \$exe_master_mysqld, + 'slave-binary=s' => \$exe_slave_mysqld, + + # Coverage, profiling etc + 'gcov' => \$opt_gcov, + 'gprof' => \$opt_gprof, + 'valgrind' => \$opt_valgrind, + 'valgrind-all' => \$opt_valgrind_all, + 'valgrind-options=s' => \$opt_valgrind_options, + + # Misc + 'big-test' => \$opt_big_test, + 'compress' => \$opt_compress, + 'debug' => \$opt_debug, + 'fast' => \$opt_fast, + 'local' => \$opt_local, + 'local-master' => \$opt_local_master, + 'netware' => \$opt_netware, + 'old-master' => \$opt_old_master, + 'script-debug' => \$opt_script_debug, 'sleep=i' => \$opt_sleep, - 'small-bench' => \$opt_small_bench, 'socket=s' => \$opt_socket, 'start-and-exit' => \$opt_start_and_exit, 'start-from=s' => \$opt_start_from, - 'strace-client' => \$opt_strace_client, 'timer' => \$opt_timer, 'tmpdir=s' => \$opt_tmpdir, 'user-test=s' => \$opt_user_test, 'user=s' => \$opt_user, - 'valgrind' => \$opt_valgrind, - 'valgrind-all' => \$opt_valgrind_all, - 'valgrind-options=s' => \$opt_valgrind_options, 'verbose' => \$opt_verbose, 'wait-timeout=i' => \$opt_wait_timeout, 'warnings|log-warnings' => \$opt_warnings, - 'with-ndbcluster' => \$opt_with_ndbcluster, 'with-openssl' => \$opt_with_openssl, + + 'help|h' => \$opt_usage, ) or usage("Can't read options"); + if ( $opt_usage ) + { + usage(""); + } # Put this into a hash, will be a C struct @@ -593,7 +623,7 @@ sub command_line_setup () { if ( $opt_sleep ) { - $opt_sleep_time_after_restart= $opt_sleep; + $opt_sleep_time_after_restart= $opt_sleep; } if ( $opt_gcov and ! $opt_source_dist ) @@ -811,8 +841,22 @@ sub handle_int_signal () { # ############################################################################## -sub collect_test_cases () { - my $testdir= "$glob_mysql_test_dir/t"; +sub collect_test_cases ($) { + my $suite= shift; # Test suite name + + my $testdir; + my $resdir; + + if ( $suite eq "main" ) + { + $testdir= "$glob_mysql_test_dir/t"; + $resdir= "$glob_mysql_test_dir/r"; + } + else + { + $testdir= "$glob_mysql_test_dir/suite/$suite/t"; + $resdir= "$glob_mysql_test_dir/suite/$suite/r"; + } my @tests; # Array of hash, will be array of C struct @@ -839,7 +883,7 @@ sub collect_test_cases () { my $tinfo= {}; $tinfo->{'name'}= $tname; - $tinfo->{'result_file'}= "r/$tname.result"; + $tinfo->{'result_file'}= "$resdir/$tname.result"; push(@tests, $tinfo); if ( $opt_skip_test and defined mtr_match_prefix($tname,$opt_skip_test) ) @@ -1180,13 +1224,22 @@ sub run_benchmarks ($) { # ############################################################################## +# FIXME how to specify several suites to run? Comma separated list? + sub run_tests () { + run_suite($opt_suite); +} - mtr_report("Finding Tests"); +sub run_suite () { + my $suite= shift; - my $tests= collect_test_cases(); + mtr_print_thick_line(); - mtr_report("Starting Tests"); + mtr_report("Finding Tests in $suite suite"); + + my $tests= collect_test_cases($suite); + + mtr_report("Starting Tests in $suite suite"); mtr_print_header(); @@ -2006,3 +2059,104 @@ sub run_mysqltest ($$) { return mtr_run($exe_mysqltest,$args,$tinfo->{'path'},"",$path_timefile,""); } + +############################################################################## +# +# Usage +# +############################################################################## + +sub usage ($) +{ + print STDERR < Date: Sun, 2 Jan 2005 15:10:08 -0600 Subject: [PATCH 077/157] set_var.cc: Silence compiler warning. sql/set_var.cc: Silence compiler warning. BitKeeper/etc/logging_ok: Logging to logging@openlogging.org accepted --- BitKeeper/etc/logging_ok | 1 + sql/set_var.cc | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/BitKeeper/etc/logging_ok b/BitKeeper/etc/logging_ok index f8dd043ff10..d6ab5ae3180 100644 --- a/BitKeeper/etc/logging_ok +++ b/BitKeeper/etc/logging_ok @@ -164,6 +164,7 @@ paul@frost.snake.net paul@ice.local paul@ice.snake.net paul@kite-hub.kitebird.com +paul@snake-hub.snake.net paul@teton.kitebird.com pekka@mysql.com pem@mysql.com diff --git a/sql/set_var.cc b/sql/set_var.cc index e39d9934278..082c55db188 100644 --- a/sql/set_var.cc +++ b/sql/set_var.cc @@ -2948,7 +2948,7 @@ bool sys_var_thd_storage_engine::check(THD *thd, set_var *var) enum db_type db_type; if (!(res=var->value->val_str(&str)) || !(var->save_result.ulong_value= - (ulong) db_type= ha_resolve_by_name(res->ptr(), res->length())) || + (ulong) (db_type= ha_resolve_by_name(res->ptr(), res->length()))) || ha_checktype(db_type) != db_type) { value= res ? res->c_ptr() : "NULL"; From d942c9a87b9fedd6559f97650f3223cfb10819b0 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 3 Jan 2005 17:33:04 +0400 Subject: [PATCH 078/157] Fix for bug #7545 (Undefined symbols if --without-geometry) myisam/mi_check.c: This code should be ifdefed in no HAVE_SPATIAL case --- myisam/mi_check.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/myisam/mi_check.c b/myisam/mi_check.c index f7e7ffd42f6..0123278a23f 100644 --- a/myisam/mi_check.c +++ b/myisam/mi_check.c @@ -1466,12 +1466,14 @@ static int writekeys(MI_CHECK *param, register MI_INFO *info, byte *buff, if (_mi_ft_add(info,i,(char*) key,buff,filepos)) goto err; } +#ifdef HAVE_SPATIAL else if (info->s->keyinfo[i].flag & HA_SPATIAL) { uint key_length=_mi_make_key(info,i,key,buff,filepos); if (rtree_insert(info, i, key, key_length)) goto err; } +#endif /*HAVE_SPATIAL*/ else { uint key_length=_mi_make_key(info,i,key,buff,filepos); From 8bf7b342bce4ac58b075f3e36c95fc57731f13aa Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 3 Jan 2005 18:37:08 +0500 Subject: [PATCH 079/157] WL#964 added sort of file names for all OS BitKeeper/etc/ignore: Added mysql-test/mysql-test-run.log mysql-test/r/alter_table.err mysql-test/r/archive.err mysql-test/r/bdb-alter-table-1.err mysql-test/r/bdb-alter-table-2.err mysql-test/r/bdb-crash.err mysql-test/r/bdb-deadlock.err mysql-test/r/bdb.err mysql-test/r/bdb_cache.err mysql-test/r/client_test.err mysql-test/r/csv.err mysql-test/r/ctype_ucs.err mysql-test/r/derived.err mysql-test/r/exampledb.err mysql-test/r/func_encrypt.err mysql-test/r/isam.err mysql-test/r/lowercase_table2.err mysql-test/r/multi_update.err mysql-test/r/mysql_protocols.err mysql-test/r/mysqlbinlog.err mysql-test/r/mysqlbinlog2.err mysql-test/r/mysqldump.err mysql-test/r/mysqltest.err mysql-test/r/ndb_alter_table.err mysql-test/r/ndb_autodiscover.err mysql-test/r/ndb_autodiscover2.err mysql-test/r/ndb_basic.err mysql-test/r/ndb_blob.err mysql-test/r/ndb_cache.err mysql-test/r/ndb_charset.err mysql-test/r/ndb_index.err mysql-test/r/ndb_index_ordered.err mysql-test/r/ndb_index_unique.err mysql-test/r/ndb_insert.err mysql-test/r/ndb_limit.err m mysql-test/mysql_test_run_new.c: added sort of file names for all OS --- .bzrignore | 54 +++++++++++++++++++++++++++++++++ mysql-test/mysql_test_run_new.c | 37 +++++++++++----------- 2 files changed, 72 insertions(+), 19 deletions(-) diff --git a/.bzrignore b/.bzrignore index ee48342fd37..bfa4ef2058c 100644 --- a/.bzrignore +++ b/.bzrignore @@ -948,3 +948,57 @@ client/mysqladmin.c mysql-4.1.8-win-src.zip ndb/include/ndb_version.h ndb/include/ndb_global.h +mysql-test/mysql-test-run.log +mysql-test/r/alter_table.err +mysql-test/r/archive.err +mysql-test/r/bdb-alter-table-1.err +mysql-test/r/bdb-alter-table-2.err +mysql-test/r/bdb-crash.err +mysql-test/r/bdb-deadlock.err +mysql-test/r/bdb.err +mysql-test/r/bdb_cache.err +mysql-test/r/client_test.err +mysql-test/r/csv.err +mysql-test/r/ctype_ucs.err +mysql-test/r/derived.err +mysql-test/r/exampledb.err +mysql-test/r/func_encrypt.err +mysql-test/r/isam.err +mysql-test/r/lowercase_table2.err +mysql-test/r/multi_update.err +mysql-test/r/mysql_protocols.err +mysql-test/r/mysqlbinlog.err +mysql-test/r/mysqlbinlog2.err +mysql-test/r/mysqldump.err +mysql-test/r/mysqltest.err +mysql-test/r/ndb_alter_table.err +mysql-test/r/ndb_autodiscover.err +mysql-test/r/ndb_autodiscover2.err +mysql-test/r/ndb_basic.err +mysql-test/r/ndb_blob.err +mysql-test/r/ndb_cache.err +mysql-test/r/ndb_charset.err +mysql-test/r/ndb_index.err +mysql-test/r/ndb_index_ordered.err +mysql-test/r/ndb_index_unique.err +mysql-test/r/ndb_insert.err +mysql-test/r/ndb_limit.err +mysql-test/r/ndb_lock.err +mysql-test/r/ndb_minmax.err +mysql-test/r/ndb_replace.err +mysql-test/r/ndb_subquery.err +mysql-test/r/ndb_transaction.err +mysql-test/r/ndb_truncate.err +mysql-test/r/ndb_types.err +mysql-test/r/ndb_update.err +mysql-test/r/openssl_1.err +mysql-test/r/ps_1general.err +mysql-test/r/ps_6bdb.err +mysql-test/r/ps_7ndb.err +mysql-test/r/query_cache.err +mysql-test/r/query_cache_merge.err +mysql-test/r/raid.err +mysql-test/r/repair.err +mysql-test/r/replace.err +mysql-test/r/rpl000001.err +mysql-test/r/rpl000015.err diff --git a/mysql-test/mysql_test_run_new.c b/mysql-test/mysql_test_run_new.c index fe13d71c1c2..7b77fc5ced8 100644 --- a/mysql-test/mysql_test_run_new.c +++ b/mysql-test/mysql_test_run_new.c @@ -89,15 +89,15 @@ static char master_socket[FN_REFLEN]= "./var/tmp/master.sock"; static char slave_socket[FN_REFLEN]= "./var/tmp/slave.sock"; #endif +#define MAX_COUNT_TESTES 1024 /* comma delimited list of tests to skip or empty string */ #ifndef __WIN__ static char skip_test[FN_REFLEN]= " lowercase_table3 , system_mysql_db_fix "; +#define _stricmp strcasecmp #else /* The most ignore testes contain the calls of system command -*/ -#define MAX_COUNT_TESTES 1024 -/* + lowercase_table3 is disabled by Gerg system_mysql_db_fix is disabled by Gerg sp contains a command system @@ -1437,12 +1437,11 @@ void setup(char *file __attribute__((unused))) /* Compare names of testes for right order */ -#ifdef __WIN__ int compare( const void *arg1, const void *arg2 ) { return _stricmp( * ( char** ) arg1, * ( char** ) arg2 ); } -#endif + /****************************************************************************** @@ -1454,6 +1453,10 @@ int compare( const void *arg1, const void *arg2 ) int main(int argc, char **argv) { int is_ignore_list= 0; + char **names= 0; + char **testes= 0; + int name_index; + int index; /* setup */ setup(argv[0]); @@ -1517,6 +1520,9 @@ int main(int argc, char **argv) else { /* run all tests */ + names= malloc(MAX_COUNT_TESTES*4); + testes= names; + name_index= 0; #ifndef __WIN__ struct dirent *entry; DIR *parent; @@ -1536,8 +1542,11 @@ int main(int argc, char **argv) { /* null terminate at the suffix */ *(test + position - 1)= '\0'; - /* run test */ - run_test(test); + /* insert test */ + *names= malloc(FN_REFLEN); + strcpy(*names,test); + names++; + name_index++; } } closedir(parent); @@ -1549,10 +1558,6 @@ int main(int argc, char **argv) char mask[FN_REFLEN]; char *p; int position; - char **names= 0; - char **testes= 0; - int name_index; - int index; /* single test */ single_test= FALSE; @@ -1564,9 +1569,6 @@ int main(int argc, char **argv) die("Unable to open tests directory."); } - names= malloc(MAX_COUNT_TESTES*4); - testes= names; - name_index= 0; do { @@ -1577,10 +1579,8 @@ int main(int argc, char **argv) /* find the test suffix */ if ((position= strinstr(test, TEST_SUFFIX)) != 0) { - p= test + position - 1; /* null terminate at the suffix */ - *p= 0; - + *(test + position - 1)= '\0'; /* insert test */ *names= malloc(FN_REFLEN); strcpy(*names,test); @@ -1591,7 +1591,7 @@ int main(int argc, char **argv) }while (_findnext(handle,&dir) == 0); _findclose(handle); - +#endif qsort( (void *)testes, name_index, sizeof( char * ), compare ); for (index= 0; index <= name_index; index++) @@ -1601,7 +1601,6 @@ int main(int argc, char **argv) } free(testes); -#endif } /* stop server */ From a35a9c985b93bfab556f4d377cf6911a9b027a3d Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 3 Jan 2005 18:50:51 +0400 Subject: [PATCH 080/157] Fix for bug #6434 (bad memory deletion in app using libmysqld) We should build libmysqld in SAFEMALLOC mode. VC++Files/libmysqld/libmysqld.dsp: SAFEMALLOC define added to the libmysqld/Debug configuration --- VC++Files/libmysqld/libmysqld.dsp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VC++Files/libmysqld/libmysqld.dsp b/VC++Files/libmysqld/libmysqld.dsp index 820ca30509c..8205461c26f 100644 --- a/VC++Files/libmysqld/libmysqld.dsp +++ b/VC++Files/libmysqld/libmysqld.dsp @@ -73,7 +73,7 @@ LINK32=xilink6.exe # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" # ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBMYSQLD_EXPORTS" /YX /FD /GZ /c -# ADD CPP /nologo /MT /W3 /Z7 /Od /I "../include" /I "../libmysqld" /I "../sql" /I "../regex" /I "../bdb/build_win32" /I "../zlib" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "HAVE_BERKELEY_DB" /D "USE_SYMDIR" /D "SIGNAL_WITH_VIO_CLOSE" /D "HAVE_DLOPEN" /D "EMBEDDED_LIBRARY" /D "HAVE_INNOBASE_DB" /D "USE_TLS" /D "__WIN__" /FD /GZ /c +# ADD CPP /nologo /MT /W3 /Z7 /Od /I "../include" /I "../libmysqld" /I "../sql" /I "../regex" /I "../bdb/build_win32" /I "../zlib" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "SAFEMALLOC" /D "HAVE_BERKELEY_DB" /D "USE_SYMDIR" /D "SIGNAL_WITH_VIO_CLOSE" /D "HAVE_DLOPEN" /D "EMBEDDED_LIBRARY" /D "HAVE_INNOBASE_DB" /D "USE_TLS" /D "__WIN__" /FD /GZ /c # SUBTRACT CPP /X /Fr # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 From d3be3cbcfdf74f4131e16b201c7eb5dfde0a8257 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 3 Jan 2005 19:21:54 +0400 Subject: [PATCH 081/157] fix for bug #5920 (embedded-server mysql doesn't handle --defaults-file) client/mysql.cc: bug #5920 (embedded-server mysql doesn't handle --defaults-file) defaults files handled include/my_sys.h: bug #5920 (embedded-server mysql doesn't handle --defaults-file) get_defaults_file interface added libmysqld/libmysqld.c: just small fix, not related to the bug. mysys/default.c: bug #5920 (embedded-server mysql doesn't handle --defaults-file) get_defaults_files implementation --- client/mysql.cc | 12 +++++++++- include/my_sys.h | 2 ++ libmysqld/libmysqld.c | 3 +++ mysys/default.c | 55 ++++++++++++++++++++++++++++++------------- 4 files changed, 55 insertions(+), 17 deletions(-) diff --git a/client/mysql.cc b/client/mysql.cc index 0ea0f10f5d7..5739d3203e7 100644 --- a/client/mysql.cc +++ b/client/mysql.cc @@ -330,6 +330,16 @@ static sig_handler mysql_end(int sig); int main(int argc,char *argv[]) { char buff[80]; + char *defaults, *extra_defaults; + char *emb_argv[3]; + int emb_argc= 1; + + emb_argv[0]= argv[0]; + get_defaults_files(argc, argv, &defaults, &extra_defaults); + if (defaults) + emb_argv[emb_argc++]= defaults; + if (extra_defaults) + emb_argv[emb_argc++]= extra_defaults; MY_INIT(argv[0]); DBUG_ENTER("main"); @@ -375,7 +385,7 @@ int main(int argc,char *argv[]) my_end(0); exit(1); } - if (mysql_server_init(0, NULL, (char**) server_default_groups)) + if (mysql_server_init(emb_argc, emb_argv, (char**) server_default_groups)) { free_defaults(defaults_argv); my_end(0); diff --git a/include/my_sys.h b/include/my_sys.h index a8e21ea2f98..5e56f0bdc2c 100644 --- a/include/my_sys.h +++ b/include/my_sys.h @@ -738,6 +738,8 @@ extern void reset_root_defaults(MEM_ROOT *mem_root, uint block_size, extern char *strdup_root(MEM_ROOT *root,const char *str); extern char *strmake_root(MEM_ROOT *root,const char *str,uint len); extern char *memdup_root(MEM_ROOT *root,const char *str,uint len); +extern void get_defaults_files(int argc, char **argv, + char **defaults, char **extra_defaults); extern int load_defaults(const char *conf_file, const char **groups, int *argc, char ***argv); extern void free_defaults(char **argv); diff --git a/libmysqld/libmysqld.c b/libmysqld/libmysqld.c index a2c4be1a078..6fa41fb3fd0 100644 --- a/libmysqld/libmysqld.c +++ b/libmysqld/libmysqld.c @@ -143,6 +143,9 @@ mysql_real_connect(MYSQL *mysql,const char *host, const char *user, db ? db : "(Null)", user ? user : "(Null)")); + if (!host || !host[0]) + host= mysql->options.host; + if (mysql->options.methods_to_use == MYSQL_OPT_USE_REMOTE_CONNECTION || (mysql->options.methods_to_use == MYSQL_OPT_GUESS_CONNECTION && host && *host && strcmp(host,LOCAL_HOST))) diff --git a/mysys/default.c b/mysys/default.c index ea23bbb6693..5f554ac36f6 100644 --- a/mysys/default.c +++ b/mysys/default.c @@ -78,6 +78,36 @@ static int search_default_file_with_ext(DYNAMIC_ARRAY *args, MEM_ROOT *alloc, static char *remove_end_comment(char *ptr); +/* + Gets --defaults-file and --defaults-extra-file options from command line. + + SYNOPSIS + get_defaults_files() + argc Pointer to argc of original program + argv Pointer to argv of original program + defaults --defaults-file option + extra_defaults --defaults-extra-file option + + RETURN + defaults and extra_defaults will be set to appropriate items + of argv array, or to NULL if there are no such options +*/ + +void get_defaults_files(int argc, char **argv, + char **defaults, char **extra_defaults) +{ + *defaults=0; + *extra_defaults=0; + if (argc >= 2) + { + if (is_prefix(argv[1],"--defaults-file=")) + *defaults= argv[1]; + else if (is_prefix(argv[1],"--defaults-extra-file=")) + *extra_defaults= argv[1]; + } +} + + /* Read options from configurations files @@ -111,7 +141,7 @@ static char *remove_end_comment(char *ptr); int load_defaults(const char *conf_file, const char **groups, - int *argc, char ***argv) + int *argc, char ***argv) { DYNAMIC_ARRAY args; const char **dirs, *forced_default_file; @@ -143,21 +173,14 @@ int load_defaults(const char *conf_file, const char **groups, DBUG_RETURN(0); } - /* Check if we want to force the use a specific default file */ - forced_default_file=0; - if (*argc >= 2) - { - if (is_prefix(argv[0][1],"--defaults-file=")) - { - forced_default_file=strchr(argv[0][1],'=')+1; - args_used++; - } - else if (is_prefix(argv[0][1],"--defaults-extra-file=")) - { - defaults_extra_file=strchr(argv[0][1],'=')+1; - args_used++; - } - } + get_defaults_files(*argc, *argv, + (char **)&forced_default_file, &defaults_extra_file); + if (forced_default_file) + forced_default_file= strchr(forced_default_file,'=')+1; + if (defaults_extra_file) + defaults_extra_file= strchr(defaults_extra_file,'=')+1; + + args_used+= (forced_default_file ? 1 : 0) + (defaults_extra_file ? 1 : 0); group.count=0; group.name= "defaults"; From c8cfe3d211366b353eaefe47a78817508d3dac9a Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 3 Jan 2005 16:54:08 +0100 Subject: [PATCH 082/157] mtr_process.pl: Added missing stop_reap_all() if returns early from function mysql-test-run.pl: Improved output from --script-debug Initial Cygwin support Improved mysqld process termination mysql-test/mysql-test-run.pl: Improved output from --script-debug Initial Cygwin support Improved mysqld process termination mysql-test/lib/mtr_process.pl: Added missing stop_reap_all() if returns early from function --- mysql-test/lib/mtr_process.pl | 384 +++++++++++++++++++--------------- mysql-test/lib/mtr_report.pl | 7 +- mysql-test/mysql-test-run.pl | 56 +++-- 3 files changed, 259 insertions(+), 188 deletions(-) diff --git a/mysql-test/lib/mtr_process.pl b/mysql-test/lib/mtr_process.pl index 2263ef5bc24..8c584802b8e 100644 --- a/mysql-test/lib/mtr_process.pl +++ b/mysql-test/lib/mtr_process.pl @@ -4,13 +4,14 @@ # and is part of the translation of the Bourne shell script with the # same name. +use Carp qw(cluck); use strict; use POSIX ":sys_wait_h"; sub mtr_run ($$$$$$); sub mtr_spawn ($$$$$$); -sub mtr_stop_servers ($); +sub mtr_stop_mysqld_servers ($$); sub mtr_kill_leftovers (); # static in C @@ -77,13 +78,21 @@ sub spawn_impl ($$$$$$$) { if ( $::opt_script_debug ) { - print STDERR "-" x 78, "\n"; - print STDERR "STDIN $input\n" if $input; - print STDERR "STDOUT $output\n" if $output; - print STDERR "STDERR $error\n" if $error; - print STDERR "DAEMON\n" if !$join; - print STDERR "EXEC $path ", join(" ",@$arg_list_t), "\n"; - print STDERR "-" x 78, "\n"; + print STDERR "\n"; + print STDERR "#### ", "-" x 78, "\n"; + print STDERR "#### ", "STDIN $input\n" if $input; + print STDERR "#### ", "STDOUT $output\n" if $output; + print STDERR "#### ", "STDERR $error\n" if $error; + if ( $join ) + { + print STDERR "#### ", "run"; + } + else + { + print STDERR "#### ", "spawn"; + } + print STDERR "$path ", join(" ",@$arg_list_t), "\n"; + print STDERR "#### ", "-" x 78, "\n"; } my $pid= fork(); @@ -101,11 +110,11 @@ sub spawn_impl ($$$$$$$) { my $dumped_core= $? & 128; if ( $signal_num ) { - die("spawn got signal $signal_num"); + mtr_error("spawn got signal $signal_num"); } if ( $dumped_core ) { - die("spawn dumped core"); + mtr_error("spawn dumped core"); } return $exit_value; } @@ -127,22 +136,34 @@ sub spawn_impl ($$$$$$$) { if ( $output ) { - open(STDOUT,">",$output) or die "Can't redirect STDOUT to \"$output\": $!"; + if ( ! open(STDOUT,">",$output) ) + { + mtr_error("can't redirect STDOUT to \"$output\": $!"); + } } if ( $error ) { if ( $output eq $error ) { - open(STDERR,">&STDOUT") or die "Can't dup STDOUT: $!"; + if ( ! open(STDERR,">&STDOUT") ) + { + mtr_error("can't dup STDOUT: $!"); + } } else { - open(STDERR,">",$error) or die "Can't redirect STDERR to \"$output\": $!"; + if ( ! open(STDERR,">",$error) ) + { + mtr_error("can't redirect STDERR to \"$output\": $!"); + } } } if ( $input ) { - open(STDIN,"<",$input) or die "Can't redirect STDIN to \"$input\": $!"; + if ( ! open(STDIN,"<",$input) ) + { + mtr_error("can't redirect STDIN to \"$input\": $!"); + } } exec($path,@$arg_list_t); } @@ -163,27 +184,25 @@ sub mtr_kill_leftovers () { for ( my $idx; $idx < 2; $idx++ ) { -# if ( $::master->[$idx]->{'pid'} ) -# { - push(@args, - $::master->[$idx]->{'path_mypid'}, - $::master->[$idx]->{'path_mysock'}, - ); -# } + push(@args,{ + pid => 0, # We don't know the PID + pidfile => $::master->[$idx]->{'path_mypid'}, + sockfile => $::master->[$idx]->{'path_mysock'}, + port => $::master->[$idx]->{'path_myport'}, + }); } for ( my $idx; $idx < 3; $idx++ ) { -# if ( $::slave->[$idx]->{'pid'} ) -# { - push(@args, - $::slave->[$idx]->{'path_mypid'}, - $::slave->[$idx]->{'path_mysock'}, - ); -# } + push(@args,{ + pid => 0, # We don't know the PID + pidfile => $::slave->[$idx]->{'path_mypid'}, + sockfile => $::slave->[$idx]->{'path_mysock'}, + port => $::slave->[$idx]->{'path_myport'}, + }); } - mtr_stop_servers(\@args); + mtr_stop_mysqld_servers(\@args, 1); # We scan the "var/run/" directory for other process id's to kill my $rundir= "$::glob_mysql_test_dir/var/run"; # FIXME $path_run_dir or something @@ -211,17 +230,29 @@ sub mtr_kill_leftovers () { } closedir(RUNDIR); - my $retries= 10; # 10 seconds - do - { - kill(9, @pids); - } while ( $retries-- and kill(0, @pids) ); + start_reap_all(); - if ( kill(0, @pids) ) + if ( $::glob_cygwin_perl ) { - mtr_error("can't kill processes " . join(" ", @pids)); + # We have no (easy) way of knowing the Cygwin controlling + # process, in the PID file we only have the Windows process id. + system("kill -f " . join(" ",@pids)); # Hope for the best.... + } + else + { + my $retries= 10; # 10 seconds + do + { + kill(9, @pids); + } while ( $retries-- and kill(0, @pids) ); + + if ( kill(0, @pids) ) + { + mtr_error("can't kill processes " . join(" ", @pids)); + } } + stop_reap_all(); } } @@ -237,185 +268,200 @@ sub mtr_kill_leftovers () { # This is not perfect, there could still be other server processes # left. -sub mtr_stop_servers ($) { - my $spec= shift; +# Force flag is to be set only for killing mysqld servers this script +# didn't create in this run, i.e. initial cleanup before we start working. +# If force flag is set, we try to kill all with mysqladmin, and +# give up if we have no PIDs. +# FIXME On some operating systems, $srv->{'pid'} and $srv->{'pidfile'} +# will not be the same PID. We need to try to kill both I think. + +sub mtr_stop_mysqld_servers ($$) { + my $spec= shift; + my $force= shift; + + # ---------------------------------------------------------------------- + # If the process was not started from this file, we got no PID, + # we try to find it in the PID file. + # ---------------------------------------------------------------------- + + my $any_pid= 0; # If we have any PIDs + + foreach my $srv ( @$spec ) + { + if ( ! $srv->{'pid'} and -f $srv->{'pidfile'} ) + { + $srv->{'pid'}= mtr_get_pid_from_file($srv->{'pidfile'}); + } + if ( $srv->{'pid'} ) + { + $any_pid= 1; + } + } + + # If the processes where started from this script, and we know + # no PIDs, then we don't have to do anything. + + if ( ! $any_pid and ! $force ) + { + # cluck "This is how we got here!"; + return; + } + + # ---------------------------------------------------------------------- # First try nice normal shutdown using 'mysqladmin' + # ---------------------------------------------------------------------- + start_reap_all(); # Don't require waitpid() of children + + foreach my $srv ( @$spec ) { - my @args= @$spec; - while ( @args ) + if ( -e $srv->{'sockfile'} or $srv->{'port'} ) { - my $pidfile= shift @args; # FIXME not used here.... - my $sockfile= shift @args; + # FIXME wrong log..... + # FIXME, stderr..... + # Shutdown time must be high as slave may be in reconnect + my $args; - if ( -f $sockfile ) + mtr_init_args(\$args); + + mtr_add_arg($args, "--no-defaults"); + mtr_add_arg($args, "-uroot"); + if ( -e $srv->{'sockfile'} ) { - - # FIXME wrong log..... - # FIXME, stderr..... - # Shutdown time must be high as slave may be in reconnect - my $opts= - [ - "--no-defaults", - "-uroot", - "--socket=$sockfile", - "--connect_timeout=5", - "--shutdown_timeout=70", - "shutdown", - ]; - # We don't wait for termination of mysqladmin - mtr_spawn($::exe_mysqladmin, $opts, - "", $::path_manager_log, $::path_manager_log, ""); + mtr_add_arg($args, "--socket=%s", $srv->{'sockfile'}); } + if ( $srv->{'port'} ) + { + mtr_add_arg($args, "--port=%s", $srv->{'port'}); + } + mtr_add_arg($args, "--connect_timeout=5"); + mtr_add_arg($args, "--shutdown_timeout=70"); + mtr_add_arg($args, "shutdown"); + # We don't wait for termination of mysqladmin + mtr_spawn($::exe_mysqladmin, $args, + "", $::path_manager_log, $::path_manager_log, ""); } } - # Wait for them all to remove their socket file + # Wait for them all to remove their pid and socket file - SOCKREMOVED: + PIDSOCKFILEREMOVED: for (my $loop= $::opt_sleep_time_for_delete; $loop; $loop--) { - my $sockfiles_left= 0; - my @args= @$spec; - while ( @args ) + my $pidsockfiles_left= 0; + foreach my $srv ( @$spec ) { - my $pidfile= shift @args; - my $sockfile= shift @args; - if ( -f $sockfile or -f $pidfile ) + if ( -e $srv->{'sockfile'} or -f $srv->{'pidfile'} ) { - $sockfiles_left++; # Could be that pidfile is left + $pidsockfiles_left++; # Could be that pidfile is left } } - if ( ! $sockfiles_left ) + if ( ! $pidsockfiles_left ) { - last SOCKREMOVED; - } - if ( $loop > 1 ) - { - sleep(1); # One second + last PIDSOCKFILEREMOVED; } + mtr_debug("Sleep for 1 second waiting for pid and socket file removal"); + sleep(1); # One second } + # ---------------------------------------------------------------------- + # If no known PIDs, we have nothing more to try + # ---------------------------------------------------------------------- + + if ( ! $any_pid ) + { + stop_reap_all(); + return; + } + + # ---------------------------------------------------------------------- # We may have killed all that left a socket, but we are not sure we got - # them all killed. We now check the PID file, if any - - # Try nice kill with SIG_TERM + # them all killed. If we suspect it lives, try nice kill with SIG_TERM. + # Note that for true Win32 processes, kill(0,$pid) will not return 1. + # ---------------------------------------------------------------------- + SIGNAL: + foreach my $sig (15,9) { - my @args= @$spec; - while ( @args ) + my $process_left= 0; + foreach my $srv ( @$spec ) { - my $pidfile= shift @args; - my $sockfile= shift @args; - if (-f $pidfile) + if ( $srv->{'pid'} and + ( -f $srv->{'pidfile'} or kill(0,$srv->{'pid'}) ) ) { - my $pid= mtr_get_pid_from_file($pidfile); - mtr_warning("process $pid not cooperating with mysqladmin, " . - "will send TERM signal to process"); - kill(15,$pid); # SIG_TERM + $process_left++; + mtr_warning("process $srv->{'pid'} not cooperating, " . + "will send signal $sig to process"); + kill($sig,$srv->{'pid'}); # SIG_TERM + } + if ( ! $process_left ) + { + last SIGNAL; } } + mtr_debug("Sleep for 5 seconds waiting for processes to die"); + sleep(5); # We wait longer than usual } - # Wait for them all to die - - for (my $loop= $::opt_sleep_time_for_delete; $loop; $loop--) - { - my $pidfiles_left= 0; - my @args= @$spec; - while ( @args ) - { - my $pidfile= shift @args; - my $sockfile= shift @args; - if ( -f $pidfile ) - { - $pidfiles_left++; - } - } - if ( ! $pidfiles_left ) - { - return; - } - if ( $loop > 1 ) - { - sleep(1); # One second - } - } - - # Try hard kill with SIG_KILL + # ---------------------------------------------------------------------- + # Now, we check if all we can find using kill(0,$pid) are dead, + # and just assume the rest are. We cleanup socket and PID files. + # ---------------------------------------------------------------------- { - my @args= @$spec; - while ( @args ) + my $errors= 0; + foreach my $srv ( @$spec ) { - my $pidfile= shift @args; - my $sockfile= shift @args; - if (-f $pidfile) + if ( $srv->{'pid'} ) { - my $pid= mtr_get_pid_from_file($pidfile); - mtr_warning("$pid did not die from TERM signal, ", - "will send KILL signal to process"); - kill(9,$pid); - } - } - } - - # We check with Perl "kill 0" if process still exists - - PIDFILES: - for (my $loop= $::opt_sleep_time_for_delete; $loop; $loop--) - { - my $not_terminated= 0; - my @args= @$spec; - while ( @args ) - { - my $pidfile= shift @args; - my $sockfile= shift @args; - if (-f $pidfile) - { - my $pid= mtr_get_pid_from_file($pidfile); - if ( ! kill(0,$pid) ) + if ( kill(0,$srv->{'pid'}) ) { - $not_terminated++; - mtr_warning("could't kill $pid"); + # FIXME In Cygwin there seem to be some fast reuse + # of PIDs, so dying may not be the right thing to do. + $errors++; + mtr_warning("can't kill process $srv->{'pid'}"); + } + else + { + # We managed to kill it at last + # FIXME In Cygwin, we will get here even if the process lives. + + # Not needed as we know the process is dead, but to be safe + # we unlink and check success in two steps. We first unlink + # without checking the error code, and then check if the + # file still exists. + + foreach my $file ($srv->{'pidfile'}, $srv->{'sockfile'}) + { + unlink($file); + if ( -e $file ) + { + $errors++; + mtr_warning("couldn't delete $file"); + } + } } } } - if ( ! $not_terminated ) + if ( $errors ) { - last PIDFILES; - } - if ( $loop > 1 ) - { - sleep(1); # One second + # We are in trouble, just die.... + mtr_error("we could not kill or clean up all processes"); } } - { - my $pidfiles_left= 0; - my @args= @$spec; - while ( @args ) - { - my $pidfile= shift @args; - my $sockfile= shift @args; - if ( -f $pidfile ) - { - if ( ! unlink($pidfile) ) - { - $pidfiles_left++; - mtr_warning("could't delete $pidfile"); - } - } - } - if ( $pidfiles_left ) - { - mtr_error("one or more pid files could not be deleted"); - } - } + stop_reap_all(); # FIXME We just assume they are all dead, we don't know.... } +sub start_reap_all { + $SIG{CHLD}= 'IGNORE'; # FIXME is this enough? +} + +sub stop_reap_all { + $SIG{CHLD}= 'DEFAULT'; +} 1; diff --git a/mysql-test/lib/mtr_report.pl b/mysql-test/lib/mtr_report.pl index 350cd993f19..0f75fc1341a 100644 --- a/mysql-test/lib/mtr_report.pl +++ b/mysql-test/lib/mtr_report.pl @@ -14,6 +14,7 @@ sub mtr_report_test_skipped($); sub mtr_show_failed_diff ($); sub mtr_report_stats ($); sub mtr_print_line (); +sub mtr_print_thick_line (); sub mtr_print_header (); sub mtr_report (@); sub mtr_warning (@); @@ -214,6 +215,10 @@ sub mtr_print_line () { print '-' x 55, "\n"; } +sub mtr_print_thick_line () { + print '=' x 55, "\n"; +} + sub mtr_print_header () { print "\n"; if ( $::opt_timer ) @@ -250,7 +255,7 @@ sub mtr_error (@) { sub mtr_debug (@) { if ( $::opt_script_debug ) { - print "mysql-test-run: DEBUG: ",join(" ", @_),"\n"; + print STDERR "####: ",join(" ", @_),"\n"; } } diff --git a/mysql-test/mysql-test-run.pl b/mysql-test/mysql-test-run.pl index 5565d29fb7b..01729aa1018 100755 --- a/mysql-test/mysql-test-run.pl +++ b/mysql-test/mysql-test-run.pl @@ -67,6 +67,11 @@ # is to use the Devel::Trace package found at # "http://www.plover.com/~mjd/perl/Trace/" and run this script like # "perl -d:Trace mysql-test-run.pl" +# +# FIXME Save a PID file from this code as well, to record the process +# id we think it has. In Cygwin, a fork creates one Cygwin process, +# and then the real Win32 process. Cygwin Perl can only kill Cygwin +# processes. And "mysqld --bootstrap ..." doesn't save a PID file. $Devel::Trace::TRACE= 0; # Don't trace boring init stuff @@ -147,7 +152,9 @@ our @mysqld_src_dirs= # Misc global variables -our $glob_win32= 0; +our $glob_win32= 0; # OS and native Win32 executables +our $glob_win32_perl= 0; # ActiveState Win32 Perl +our $glob_cygwin_perl= 0; # Cygwin Perl our $glob_mysql_test_dir= undef; our $glob_mysql_bench_dir= undef; our $glob_hostname= undef; @@ -383,7 +390,9 @@ sub initial_setup () { $glob_scriptname= basename($0); - $glob_win32= ($^O eq "MSWin32"); + $glob_win32_perl= ($^O eq "MSWin32"); + $glob_cygwin_perl= ($^O eq "cygwin"); + $glob_win32= ($glob_win32_perl or $glob_cygwin_perl); # We require that we are in the "mysql-test" directory # to run mysql-test-run @@ -404,6 +413,12 @@ sub initial_setup () { # 'basedir' is always parent of "mysql-test" directory $glob_mysql_test_dir= cwd(); + if ( $glob_cygwin_perl ) + { + # Windows programs like 'mysqld' needs Windows paths + $glob_mysql_test_dir= `cygpath -m $glob_mysql_test_dir`; + chomp($glob_mysql_test_dir); + } $glob_basedir= dirname($glob_mysql_test_dir); $glob_mysql_bench_dir= "$glob_basedir/mysql-bench"; # FIXME make configurable @@ -991,7 +1006,7 @@ sub collect_test_cases ($) { if ( -f $master_sh ) { - if ( $glob_win32 ) + if ( $glob_win32_perl ) { $tinfo->{'skip'}= 1; } @@ -1004,7 +1019,7 @@ sub collect_test_cases ($) { if ( -f $slave_sh ) { - if ( $glob_win32 ) + if ( $glob_win32_perl ) { $tinfo->{'skip'}= 1; } @@ -1115,6 +1130,7 @@ sub sleep_until_file_created ($$) { { return; } + mtr_debug("Sleep for 1 second waiting for creation of $pidfile"); sleep(1); } @@ -1396,6 +1412,8 @@ sub run_testcase ($) { # the preparation. # ---------------------------------------------------------------------- + mtr_report_test_name($tinfo); + mtr_tofile($master->[0]->{'path_myerr'},"CURRENT_TEST: $tname\n"); do_before_start_master($tname,$tinfo->{'master_sh'}); @@ -1403,8 +1421,6 @@ sub run_testcase ($) { # Start masters # ---------------------------------------------------------------------- - mtr_report_test_name($tinfo); - if ( ! $glob_use_running_server and ! $glob_use_embedded_server ) { # FIXME give the args to the embedded server?! @@ -1914,15 +1930,17 @@ sub stop_masters () { # the mysqld process from being killed if ( $master->[$idx]->{'pid'} ) { - push(@args, - $master->[$idx]->{'path_mypid'}, - $master->[$idx]->{'path_mysock'}, - ); - $master->[$idx]->{'pid'}= 0; + push(@args,{ + pid => $master->[$idx]->{'pid'}, + pidfile => $master->[$idx]->{'path_mypid'}, + sockfile => $master->[$idx]->{'path_mysock'}, + port => $master->[$idx]->{'path_myport'}, + }); + $master->[$idx]->{'pid'}= 0; # Assume we are done with it } } - mtr_stop_servers(\@args); + mtr_stop_mysqld_servers(\@args, 0); } sub stop_slaves () { @@ -1934,15 +1952,17 @@ sub stop_slaves () { { if ( $slave->[$idx]->{'pid'} ) { - push(@args, - $slave->[$idx]->{'path_mypid'}, - $slave->[$idx]->{'path_mysock'}, - ); - $slave->[$idx]->{'pid'}= 0; + push(@args,{ + pid => $slave->[$idx]->{'pid'}, + pidfile => $slave->[$idx]->{'path_mypid'}, + sockfile => $slave->[$idx]->{'path_mysock'}, + port => $slave->[$idx]->{'path_myport'}, + }); + $slave->[$idx]->{'pid'}= 0; # Assume we are done with it } } - mtr_stop_servers(\@args); + mtr_stop_mysqld_servers(\@args, 0); } From e197fa459d331be2027aa7ce8e4bf61a9da4f4f7 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 3 Jan 2005 19:39:09 +0100 Subject: [PATCH 083/157] bug#7626 - ndb UintPtr handling ndb/include/ndb_types.h: redo UintPtr handling --- ndb/include/ndb_types.h | 27 +++++++++------------------ 1 file changed, 9 insertions(+), 18 deletions(-) diff --git a/ndb/include/ndb_types.h b/ndb/include/ndb_types.h index 0d603cc2ab3..1284ace3bbc 100644 --- a/ndb/include/ndb_types.h +++ b/ndb/include/ndb_types.h @@ -30,31 +30,22 @@ typedef unsigned int Uint32; typedef unsigned int UintR; -#ifdef __SIZE_TYPE__ -typedef __SIZE_TYPE__ UintPtr; -#else -#include -#ifdef HAVE_STDINT_H -#include -#endif -#ifdef HAVE_INTTYPES_H -#include -#endif -#if defined(WIN32) || defined(NDB_WIN32) -typedef Uint32 UintPtr; -#else -typedef uintptr_t UintPtr; -#endif -#endif - #if defined(WIN32) || defined(NDB_WIN32) typedef unsigned __int64 Uint64; typedef signed __int64 Int64; -typedef UintPtr ssize_t; #else typedef unsigned long long Uint64; typedef signed long long Int64; #endif +#ifdef __SIZE_TYPE__ +typedef __SIZE_TYPE__ UintPtr; +#else +#if SIZEOF_CHARP == 4 +typedef Uint32 UintPtr; +#else +typedef Uint64 UintPtr; +#endif +#endif #endif From 9ecd9ac6b984f999b89a62fae782e1d6f277495a Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 3 Jan 2005 20:10:23 +0100 Subject: [PATCH 084/157] bug#7626 - post review version ndb/include/ndb_global.h.in: move types into ndb_global.h.in Check sizeof of Uint8, Uint32 & Uint64 ndb/include/ndb_types.h: move types into ndb_global.h.in --- ndb/include/ndb_global.h.in | 36 ++++++++++++++++++++++++++++++++++++ ndb/include/ndb_types.h | 27 +-------------------------- 2 files changed, 37 insertions(+), 26 deletions(-) diff --git a/ndb/include/ndb_global.h.in b/ndb/include/ndb_global.h.in index aefb319730c..cadbb8cabf2 100644 --- a/ndb/include/ndb_global.h.in +++ b/ndb/include/ndb_global.h.in @@ -16,12 +16,48 @@ #define HAVE_STRCASECMP #define strcasecmp _strcmpi #pragma warning(disable: 4503 4786) +typedef unsigned __int64 Uint64; +typedef signed __int64 Int64; #else #undef NDB_WIN32 #define DIR_SEPARATOR "/" +typedef unsigned long long Uint64; +typedef signed long long Int64; #endif #include + +typedef signed char Int8; +typedef unsigned char Uint8; +typedef signed short Int16; +typedef unsigned short Uint16; +typedef signed int Int32; +typedef unsigned int Uint32; + +typedef unsigned int UintR; + +#ifdef __SIZE_TYPE__ +typedef __SIZE_TYPE__ UintPtr; +#elif SIZEOF_CHARP == 4 +typedef Uint32 UintPtr; +#elif SIZEOF_CHARP == 8 +typedef Uint64 UintPtr; +#else +#error "Unknown size of (char *)" +#endif + +#if ! (SIZEOF_CHAR == 1) +#error "Invalid define for Uint8" +#endif + +#if ! (SIZEOF_INT == 4) +#error "Invalid define for Uint32" +#endif + +#if ! (SIZEOF_LONG_LONG == 8) +#error "Invalid define for Uint64" +#endif + #include #ifdef _AIX diff --git a/ndb/include/ndb_types.h b/ndb/include/ndb_types.h index 1284ace3bbc..6cf9bb40d7f 100644 --- a/ndb/include/ndb_types.h +++ b/ndb/include/ndb_types.h @@ -21,31 +21,6 @@ #ifndef NDB_TYPES_H #define NDB_TYPES_H -typedef signed char Int8; -typedef unsigned char Uint8; -typedef signed short Int16; -typedef unsigned short Uint16; -typedef signed int Int32; -typedef unsigned int Uint32; - -typedef unsigned int UintR; - -#if defined(WIN32) || defined(NDB_WIN32) -typedef unsigned __int64 Uint64; -typedef signed __int64 Int64; -#else -typedef unsigned long long Uint64; -typedef signed long long Int64; -#endif - -#ifdef __SIZE_TYPE__ -typedef __SIZE_TYPE__ UintPtr; -#else -#if SIZEOF_CHARP == 4 -typedef Uint32 UintPtr; -#else -typedef Uint64 UintPtr; -#endif -#endif +#include "ndb_global.h" #endif From dcc3c7c3639ec04d736def54d48bd96911c9874d Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 3 Jan 2005 20:48:49 +0100 Subject: [PATCH 085/157] Fixed a typo. --- mysys/mf_keycaches.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mysys/mf_keycaches.c b/mysys/mf_keycaches.c index 8bf203e249f..fee3096de52 100644 --- a/mysys/mf_keycaches.c +++ b/mysys/mf_keycaches.c @@ -235,7 +235,7 @@ static my_bool safe_hash_set(SAFE_HASH *hash, const byte *key, uint length, if (my_hash_insert(&hash->hash, (byte*) entry)) { /* This can only happen if hash got out of memory */ - my_delete((char*) entry, MYF(0)); + my_free((char*) entry, MYF(0)); error= 1; goto end; } From 7b7216e1f40c2c68378b35a9a4f0ae28bd60228d Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 3 Jan 2005 21:28:14 +0100 Subject: [PATCH 086/157] - Updated Bootstrap to include merge ChangeSets in the source distribution's ChangeLog, too (to be more exact when tagging a release that's based on a merge ChangeSet) Build-tools/Bootstrap: - include merge ChangeSets into the ChangeLog, too (to be more exact when tagging a release that's based on a merge ChangeSet) --- Build-tools/Bootstrap | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Build-tools/Bootstrap b/Build-tools/Bootstrap index fc36c51ec85..10211dbb59c 100755 --- a/Build-tools/Bootstrap +++ b/Build-tools/Bootstrap @@ -252,7 +252,7 @@ if (defined $opt_changelog) $msg= "Adding $target_dir/ChangeLog"; $msg.= " (down to revision $opt_changelog)" if $opt_changelog ne ""; &logger($msg); - $command= "bk changes -mv"; + $command= "bk changes -v"; $command.= " -r" if ($opt_changelog ne "" || $opt_revision); $command.= $opt_changelog if $opt_changelog ne ""; $command.= ".." if ($opt_changelog ne "" && !$opt_revision); From b709bb0df8331cb4fee21209d3691d4a5e771349 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 3 Jan 2005 23:02:26 +0100 Subject: [PATCH 087/157] Fix typo in crash-me 'MATCHES' test (Bug # 5875) sql-bench/crash-me.sh: Fix typo --- sql-bench/crash-me.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sql-bench/crash-me.sh b/sql-bench/crash-me.sh index 8ec62442b11..a40ef8fbc7d 100644 --- a/sql-bench/crash-me.sh +++ b/sql-bench/crash-me.sh @@ -1039,7 +1039,7 @@ try_and_report("Automatic row id", "automatic_rowid", ["MATCH UNIQUE","match_unique", "1 match unique (select a from crash_me)",1,0], ["MATCH","match","1 match (select a from crash_me)",1,0], - ["MATCHES","matches","b matcjhes 'a*'",1,0], + ["MATCHES","matches","b matches 'a*'",1,0], ["NOT BETWEEN","not_between","7 not between 4 and 6",1,0], ["NOT EXISTS","not_exists", "not exists (select * from crash_me where a = 2)",1,0], From 33aa4e381b60c2bf209a345f55e598fe6819f9aa Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 4 Jan 2005 01:49:29 +0100 Subject: [PATCH 088/157] Use 'ps xaww' in mysqld_safe (on Linux) so whole command-line is searched for port and/or pid-file parameters. (Bug #5878) scripts/mysqld_safe.sh: Change 'ps xa' to 'ps xaww' so whole command-line is examined --- scripts/mysqld_safe.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/mysqld_safe.sh b/scripts/mysqld_safe.sh index 1f4d17f8885..270c08679eb 100644 --- a/scripts/mysqld_safe.sh +++ b/scripts/mysqld_safe.sh @@ -322,13 +322,13 @@ do # but should work for the rest of the servers. # The only thing is ps x => redhat 5 gives warnings when using ps -x. # kill -9 is used or the process won't react on the kill. - numofproces=`ps xa | grep -v "grep" | grep "$ledir/$MYSQLD\>" | grep -c "pid-file=$pid_file"` + numofproces=`ps xaww | grep -v "grep" | grep "$ledir/$MYSQLD\>" | grep -c "pid-file=$pid_file"` echo -e "\nNumber of processes running now: $numofproces" | tee -a $err_log I=1 while test "$I" -le "$numofproces" do - PROC=`ps xa | grep "$ledir/$MYSQLD\>" | grep -v "grep" | grep "pid-file=$pid_file" | sed -n '$p'` + PROC=`ps xaww | grep "$ledir/$MYSQLD\>" | grep -v "grep" | grep "pid-file=$pid_file" | sed -n '$p'` for T in $PROC do From 8ffe8ab3028b5f6f601a257169218c077397b947 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 4 Jan 2005 02:45:01 +0100 Subject: [PATCH 089/157] Make query_cache_wlock_invalidate visible in SHOW VARIABLES (Bug #7594) sql/set_var.cc: Make query_cache_wlock_invalidate visible in SHOW VARIABLES --- sql/set_var.cc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sql/set_var.cc b/sql/set_var.cc index d5aadbfbdab..122daa0ea95 100644 --- a/sql/set_var.cc +++ b/sql/set_var.cc @@ -593,6 +593,8 @@ struct show_var_st init_vars[]= { {sys_query_cache_limit.name,(char*) &sys_query_cache_limit, SHOW_SYS}, {sys_query_cache_size.name, (char*) &sys_query_cache_size, SHOW_SYS}, {sys_query_cache_type.name, (char*) &sys_query_cache_type, SHOW_SYS}, + {sys_query_cache_wlock_invalidate.name, + (char*) &sys_query_cache_wlock_invalidate, SHOW_SYS}, #endif /* HAVE_QUERY_CACHE */ {sys_query_prealloc_size.name, (char*) &sys_query_prealloc_size, SHOW_SYS}, {sys_range_alloc_block_size.name, (char*) &sys_range_alloc_block_size, From 54d86c873689715b1e3199af28dcac384a310464 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 4 Jan 2005 10:32:42 -0600 Subject: [PATCH 090/157] client.c: Make multi-statements the preferred option name (to coincide with the renaming of the CLIENT_MULTI_RESULTS symbol to CLIENT_MULTI_STATEMENTS). Continue to allow multi-queries for backward compatibility. sql-common/client.c: Make multi-statements the preferred option name (to coincide with the renaming of the CLIENT_MULTI_RESULTS symbol to CLIENT_MULTI_STATEMENTS). Continue to allow multi-queries for backward compatibility. --- sql-common/client.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/sql-common/client.c b/sql-common/client.c index 87a781e0a0d..b6813ee4cfc 100644 --- a/sql-common/client.c +++ b/sql-common/client.c @@ -882,7 +882,7 @@ static const char *default_options[]= "connect-timeout", "local-infile", "disable-local-infile", "replication-probe", "enable-reads-from-master", "repl-parse-query", "ssl-cipher", "max-allowed-packet", "protocol", "shared-memory-base-name", - "multi-results", "multi-queries", "secure-auth", + "multi-results", "multi-statements", "multi-queries", "secure-auth", NullS }; @@ -1088,9 +1088,10 @@ void mysql_read_default_options(struct st_mysql_options *options, options->client_flag|= CLIENT_MULTI_RESULTS; break; case 31: + case 32: options->client_flag|= CLIENT_MULTI_STATEMENTS | CLIENT_MULTI_RESULTS; break; - case 32: /* secure-auth */ + case 33: /* secure-auth */ options->secure_auth= TRUE; break; default: From b2dcf8f4888feeaa41e214d1566c2973f2319509 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 4 Jan 2005 23:07:29 +0100 Subject: [PATCH 091/157] mysql_test_run_new.dsp: Link mysql_test_run_new as console application my_manage.c: The type intptr_t isn't defined for VC 6.0 Changed return type for CreateProcess() to bool mysql_test_run_new.c: The type intptr_t isn't defined for VC 6.0 mysqltest.dsp: Added regex to additional build types for mysqltest mysqldump.dsp: Added mysys.lib for linking mysqldump VC++Files/client/mysqldump.dsp: Added mysys.lib for linking mysqldump VC++Files/client/mysqltest.dsp: Added regex to additional build types for mysqltest mysql-test/mysql_test_run_new.c: The type intptr_t isn't defined for VC 6.0 mysql-test/my_manage.c: The type intptr_t isn't defined for VC 6.0 Changed return type for CreateProcess() to bool VC++Files/mysql-test/mysql_test_run_new.dsp: Link mysql_test_run_new as console application --- VC++Files/client/mysqldump.dsp | 12 ++++++------ VC++Files/client/mysqltest.dsp | 16 ++++++++-------- VC++Files/mysql-test/mysql_test_run_new.dsp | 4 ++-- mysql-test/my_manage.c | 10 +++++++++- mysql-test/mysql_test_run_new.c | 7 ++++++- 5 files changed, 31 insertions(+), 18 deletions(-) diff --git a/VC++Files/client/mysqldump.dsp b/VC++Files/client/mysqldump.dsp index a1ebdfe11a6..3c955639596 100644 --- a/VC++Files/client/mysqldump.dsp +++ b/VC++Files/client/mysqldump.dsp @@ -51,8 +51,8 @@ BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LINK32=xilink6.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 -# ADD LINK32 mysqlclient.lib wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 /out:"../client_release/mysqldump.exe" /libpath:"..\lib_release\\" +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib mysys.lib /nologo /subsystem:console /machine:I386 +# ADD LINK32 mysqlclient.lib wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib mysys.lib /nologo /subsystem:console /machine:I386 /out:"../client_release/mysqldump.exe" /libpath:"..\lib_release\\" !ELSEIF "$(CFG)" == "mysqldump - Win32 Debug" @@ -76,8 +76,8 @@ BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LINK32=xilink6.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept -# ADD LINK32 mysqlclient.lib wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /incremental:no /debug /machine:I386 /out:"../client_debug/mysqldump.exe" /pdbtype:sept /libpath:"..\lib_debug\\" +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib mysys.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept +# ADD LINK32 mysqlclient.lib wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib mysys.lib /nologo /subsystem:console /incremental:no /debug /machine:I386 /out:"../client_debug/mysqldump.exe" /pdbtype:sept /libpath:"..\lib_debug\\" !ELSEIF "$(CFG)" == "mysqldump - Win32 classic" @@ -103,8 +103,8 @@ BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LINK32=xilink6.exe -# ADD BASE LINK32 mysqlclient.lib wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 /out:"../client_release/mysqldump.exe" /libpath:"..\lib_release\\" -# ADD LINK32 mysqlclient.lib wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 /out:"../client_classic/mysqldump.exe" /libpath:"..\lib_release\\" +# ADD BASE LINK32 mysqlclient.lib wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib mysys.lib /nologo /subsystem:console /machine:I386 /out:"../client_release/mysqldump.exe" /libpath:"..\lib_release\\" +# ADD LINK32 mysqlclient.lib wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib mysys.lib /nologo /subsystem:console /machine:I386 /out:"../client_classic/mysqldump.exe" /libpath:"..\lib_release\\" !ENDIF diff --git a/VC++Files/client/mysqltest.dsp b/VC++Files/client/mysqltest.dsp index 1f1613026a9..d04dc5bfce8 100644 --- a/VC++Files/client/mysqltest.dsp +++ b/VC++Files/client/mysqltest.dsp @@ -67,8 +67,8 @@ LINK32=link.exe # PROP Output_Dir ".\classic" # PROP Intermediate_Dir ".\classic" # PROP Target_Dir "" -# ADD BASE CPP /nologo /MT /I "../include" /I "../" /W3 /Ob1 /G6 /D "_CONSOLE" /D "_WINDOWS" /D "LICENSE=Commercial" /D "DBUG_OFF" /D "NDEBUG" /D "_MBCS" /GF /Gy /Fp".\classic/mysqltest.pch" /Fo".\classic/" /Fd".\classic/" /c /GX -# ADD CPP /nologo /MT /I "../include" /I "../" /W3 /Ob1 /G6 /D "_CONSOLE" /D "_WINDOWS" /D "LICENSE=Commercial" /D "DBUG_OFF" /D "NDEBUG" /D "_MBCS" /GF /Gy /Fp".\classic/mysqltest.pch" /Fo".\classic/" /Fd".\classic/" /c /GX +# ADD BASE CPP /nologo /MT /I "../include" /I "../regex" /I "../" /W3 /Ob1 /G6 /D "_CONSOLE" /D "_WINDOWS" /D "LICENSE=Commercial" /D "DBUG_OFF" /D "NDEBUG" /D "_MBCS" /GF /Gy /Fp".\classic/mysqltest.pch" /Fo".\classic/" /Fd".\classic/" /c /GX +# ADD CPP /nologo /MT /I "../include" /I "../regex" /I "../" /W3 /Ob1 /G6 /D "_CONSOLE" /D "_WINDOWS" /D "LICENSE=Commercial" /D "DBUG_OFF" /D "NDEBUG" /D "_MBCS" /GF /Gy /Fp".\classic/mysqltest.pch" /Fo".\classic/" /Fd".\classic/" /c /GX # ADD BASE MTL /nologo /tlb".\classic\mysqltest.tlb" /win32 # ADD MTL /nologo /tlb".\classic\mysqltest.tlb" /win32 # ADD BASE RSC /l 1033 /d "NDEBUG" @@ -77,8 +77,8 @@ BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib odbc32.lib odbccp32.lib mysqlclient.lib wsock32.lib /nologo /out:"..\client_classic\mysqltest.exe" /incremental:no /libpath:"..\lib_release\" /pdb:".\classic\mysqltest.pdb" /pdbtype:sept /subsystem:console /MACHINE:I386 -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib odbc32.lib odbccp32.lib mysqlclient.lib wsock32.lib /nologo /out:"..\client_classic\mysqltest.exe" /incremental:no /libpath:"..\lib_release\" /pdb:".\classic\mysqltest.pdb" /pdbtype:sept /subsystem:console /MACHINE:I386 +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib odbc32.lib odbccp32.lib mysqlclient.lib wsock32.lib mysys.lib regex.lib /nologo /out:"..\client_classic\mysqltest.exe" /incremental:no /libpath:"..\lib_release\" /pdb:".\classic\mysqltest.pdb" /pdbtype:sept /subsystem:console /MACHINE:I386 +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib odbc32.lib odbccp32.lib mysqlclient.lib wsock32.lib mysys.lib regex.lib /nologo /out:"..\client_classic\mysqltest.exe" /incremental:no /libpath:"..\lib_release\" /pdb:".\classic\mysqltest.pdb" /pdbtype:sept /subsystem:console /MACHINE:I386 !ELSEIF "$(CFG)" == "mysqltest - Win32 Release" @@ -92,8 +92,8 @@ LINK32=link.exe # PROP Output_Dir ".\release" # PROP Intermediate_Dir ".\release" # PROP Target_Dir "" -# ADD BASE CPP /nologo /MT /I "../include" /I "../" /W3 /Ob1 /G6 /D "DBUG_OFF" /D "_CONSOLE" /D "_WINDOWS" /D "NDEBUG" /D "_MBCS" /GF /Gy /Fp".\release/mysqltest.pch" /Fo".\release/" /Fd".\release/" /c /GX -# ADD CPP /nologo /MT /I "../include" /I "../" /W3 /Ob1 /G6 /D "DBUG_OFF" /D "_CONSOLE" /D "_WINDOWS" /D "NDEBUG" /D "_MBCS" /GF /Gy /Fp".\release/mysqltest.pch" /Fo".\release/" /Fd".\release/" /c /GX +# ADD BASE CPP /nologo /MT /I "../include" /I "../regex" /I "../" /W3 /Ob1 /G6 /D "DBUG_OFF" /D "_CONSOLE" /D "_WINDOWS" /D "NDEBUG" /D "_MBCS" /GF /Gy /Fp".\release/mysqltest.pch" /Fo".\release/" /Fd".\release/" /c /GX +# ADD CPP /nologo /MT /I "../include" /I "../regex" /I "../" /W3 /Ob1 /G6 /D "DBUG_OFF" /D "_CONSOLE" /D "_WINDOWS" /D "NDEBUG" /D "_MBCS" /GF /Gy /Fp".\release/mysqltest.pch" /Fo".\release/" /Fd".\release/" /c /GX # ADD BASE MTL /nologo /tlb".\release\mysqltest.tlb" /win32 # ADD MTL /nologo /tlb".\release\mysqltest.tlb" /win32 # ADD BASE RSC /l 1033 /d "NDEBUG" @@ -102,8 +102,8 @@ BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib odbc32.lib odbccp32.lib mysqlclient.lib wsock32.lib /nologo /out:"..\client_release\mysqltest.exe" /incremental:no /libpath:"..\lib_release\" /pdb:".\release\mysqltest.pdb" /pdbtype:sept /subsystem:console /MACHINE:I386 -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib odbc32.lib odbccp32.lib mysqlclient.lib wsock32.lib /nologo /out:"..\client_release\mysqltest.exe" /incremental:no /libpath:"..\lib_release\" /pdb:".\release\mysqltest.pdb" /pdbtype:sept /subsystem:console /MACHINE:I386 +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib odbc32.lib odbccp32.lib mysqlclient.lib wsock32.lib mysys.lib regex.lib /nologo /out:"..\client_release\mysqltest.exe" /incremental:no /libpath:"..\lib_release\" /pdb:".\release\mysqltest.pdb" /pdbtype:sept /subsystem:console /MACHINE:I386 +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib odbc32.lib odbccp32.lib mysqlclient.lib wsock32.lib mysys.lib regex.lib /nologo /out:"..\client_release\mysqltest.exe" /incremental:no /libpath:"..\lib_release\" /pdb:".\release\mysqltest.pdb" /pdbtype:sept /subsystem:console /MACHINE:I386 !ENDIF diff --git a/VC++Files/mysql-test/mysql_test_run_new.dsp b/VC++Files/mysql-test/mysql_test_run_new.dsp index 7e43da20b26..61392b00b94 100644 --- a/VC++Files/mysql-test/mysql_test_run_new.dsp +++ b/VC++Files/mysql-test/mysql_test_run_new.dsp @@ -76,8 +76,8 @@ BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib odbc32.lib odbccp32.lib Ws2_32.lib /nologo /out:"..\mysql-test\mysql_test_run_new.exe" /incremental:no /pdb:".\Release\mysql_test_run_new.pdb" /pdbtype:sept /subsystem:windows -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib odbc32.lib odbccp32.lib Ws2_32.lib /nologo /out:"..\mysql-test\mysql_test_run_new.exe" /incremental:no /pdb:".\Release\mysql_test_run_new.pdb" /pdbtype:sept /subsystem:windows +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib odbc32.lib odbccp32.lib Ws2_32.lib /nologo /out:"..\mysql-test\mysql_test_run_new.exe" /incremental:no /pdb:".\Release\mysql_test_run_new.pdb" /pdbtype:sept /subsystem:console +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib odbc32.lib odbccp32.lib Ws2_32.lib /nologo /out:"..\mysql-test\mysql_test_run_new.exe" /incremental:no /pdb:".\Release\mysql_test_run_new.pdb" /pdbtype:sept /subsystem:console !ENDIF diff --git a/mysql-test/my_manage.c b/mysql-test/my_manage.c index 472b0d32683..1f006f7ab90 100644 --- a/mysql-test/my_manage.c +++ b/mysql-test/my_manage.c @@ -327,7 +327,7 @@ int spawn(char *path, arg_list_t *al, int join, char *input, int spawn(char *path, arg_list_t *al, int join, char *input, char *output, char *error, HANDLE *pid) { - intptr_t result; + bool result; int i; STARTUPINFO startup_info; PROCESS_INFORMATION process_information; @@ -665,7 +665,11 @@ void del_tree(char *dir) rmdir(dir); #else struct _finddata_t parent; +#if defined(_MSC_VER) && _MSC_VER > 1200 intptr_t handle; +#else + long handle; +#endif /* _MSC_VER && _MSC_VER > 1200 */ char temp[FN_REFLEN]; char mask[FN_REFLEN]; @@ -728,7 +732,11 @@ int removef(const char *format, ...) va_list ap; char path[FN_REFLEN]; struct _finddata_t parent; +#if defined(_MSC_VER) && _MSC_VER > 1200 intptr_t handle; +#else + long handle; +#endif /* _MSC_VER && _MSC_VER > 1200 */ char temp[FN_REFLEN]; char *p; diff --git a/mysql-test/mysql_test_run_new.c b/mysql-test/mysql_test_run_new.c index fe13d71c1c2..3ffe7b28296 100644 --- a/mysql-test/mysql_test_run_new.c +++ b/mysql-test/mysql_test_run_new.c @@ -37,7 +37,8 @@ #include #endif #ifdef __WIN__ -#include +#include +#include #include #endif @@ -1544,7 +1545,11 @@ int main(int argc, char **argv) } #else struct _finddata_t dir; +#if defined(_MSC_VER) && _MSC_VER > 1200 intptr_t handle; +#else + long handle; +#endif /* _MSC_VER && _MSC_VER > 1200 */ char test[FN_LEN]; char mask[FN_REFLEN]; char *p; From 284780167d6ad8bcefb087c7c989fdd99992f053 Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 5 Jan 2005 01:08:45 +0100 Subject: [PATCH 092/157] Change mysqld_safe search for mysqld relative to the current working directory to only look for the mysqld binary (and english error strings) and assume the datadir from that. Then, if that datadir turns out to not exist, startup will fail. This avoids the behavior where mysqld_safe would go off and run a totally different binary because the data directory had been moved (even when --datadir was specified on the command line). (Bug #7249) scripts/mysqld_safe.sh: Don't actually verify that datadir exists when using relatively-located mysqld -- just assume that it does and either let it fail when it doesn't, or do the right thing when datadir is then set via the command line or my.cnf file. --- scripts/mysqld_safe.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/mysqld_safe.sh b/scripts/mysqld_safe.sh index 270c08679eb..f6b0169d230 100644 --- a/scripts/mysqld_safe.sh +++ b/scripts/mysqld_safe.sh @@ -86,7 +86,7 @@ parse_arguments() { MY_PWD=`pwd` # Check if we are starting this relative (for the binary release) -if test -d $MY_PWD/data/mysql -a -f ./share/mysql/english/errmsg.sys -a \ +if test -f ./share/mysql/english/errmsg.sys -a \ -x ./bin/mysqld then MY_BASEDIR_VERSION=$MY_PWD # Where bin, share and data are @@ -97,7 +97,7 @@ then defaults="--defaults-extra-file=$MY_BASEDIR_VERSION/data/my.cnf" fi # Check if this is a 'moved install directory' -elif test -f ./var/mysql/db.frm -a -f ./share/mysql/english/errmsg.sys -a \ +elif test -f ./share/mysql/english/errmsg.sys -a \ -x ./libexec/mysqld then MY_BASEDIR_VERSION=$MY_PWD # Where libexec, share and var are From f89207c2e6cbec6e6bf2324a2f9af49bd59fd623 Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 5 Jan 2005 02:04:12 +0100 Subject: [PATCH 093/157] Make sure to include ZLIB_LIBS in mysql_config --libs_r (Bug #7021) scripts/mysql_config.sh: include ZLIB_LIBS in --libs_r --- scripts/mysql_config.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/mysql_config.sh b/scripts/mysql_config.sh index 86cbe944416..79d8eef868b 100644 --- a/scripts/mysql_config.sh +++ b/scripts/mysql_config.sh @@ -88,7 +88,7 @@ client_libs='@CLIENT_LIBS@' libs="$ldflags -L$pkglibdir -lmysqlclient $client_libs" libs=`echo "$libs" | sed -e 's; \+; ;g' | sed -e 's;^ *;;' | sed -e 's; *\$;;'` -libs_r="$ldflags -L$pkglibdir -lmysqlclient_r @LIBS@ @openssl_libs@" +libs_r="$ldflags -L$pkglibdir -lmysqlclient_r @LIBS@ @ZLIB_LIBS@ @openssl_libs@" libs_r=`echo "$libs_r" | sed -e 's; \+; ;g' | sed -e 's;^ *;;' | sed -e 's; *\$;;'` cflags="-I$pkgincludedir @CFLAGS@ " #note: end space! include="-I$pkgincludedir" From 72801bc21b01214a08adb93db4a1c50fa4c53e8f Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 5 Jan 2005 03:05:19 +0100 Subject: [PATCH 094/157] Use ZLIB_LIBS when linking libmysqlclient_r (Bug #6418) libmysql_r/Makefile.am: Make sure we link against zlib --- libmysql_r/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libmysql_r/Makefile.am b/libmysql_r/Makefile.am index 939cb4c73dd..0a5c380ff35 100644 --- a/libmysql_r/Makefile.am +++ b/libmysql_r/Makefile.am @@ -22,7 +22,7 @@ target = libmysqlclient_r.la target_defs = -DDONT_USE_RAID -DMYSQL_CLIENT @LIB_EXTRA_CCFLAGS@ -LIBS = @LIBS@ @openssl_libs@ +LIBS = @LIBS@ @ZLIB_LIBS@ @openssl_libs@ INCLUDES = @MT_INCLUDES@ \ -I$(top_srcdir)/include $(openssl_includes) @ZLIB_INCLUDES@ From 329a6e9c2225096ac7301204cec828d38f30e4a6 Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 5 Jan 2005 03:43:37 +0100 Subject: [PATCH 095/157] Protect flags like -Wl,-O2 from being mangled by mysql_config (Bug #6964) (Second commit of this patch -- first included wrong changes.) scripts/mysql_config.sh: Make sure we are only removing whole options (protects -Wl,-O2, for example) --- scripts/mysql_config.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/mysql_config.sh b/scripts/mysql_config.sh index 86cbe944416..35ddbcac471 100644 --- a/scripts/mysql_config.sh +++ b/scripts/mysql_config.sh @@ -100,7 +100,7 @@ for remove in DDBUG_OFF DSAFEMALLOC USAFEMALLOC DSAFE_MUTEX \ DPEDANTIC_SAFEMALLOC DUNIV_MUST_NOT_INLINE DFORCE_INIT_OF_VARS \ DEXTRA_DEBUG DHAVE_purify 'O[0-9]' 'W[-A-Za-z]*' do - cflags=`echo "$cflags"|sed -e "s/-$remove *//g"` + cflags=`echo "$cflags"|sed -e "s/ -$remove */ /g"` done cflags=`echo "$cflags"|sed -e 's/ *\$//'` From 8a1e77e23f56c31984155bb14e7c5b68738091f8 Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 5 Jan 2005 16:26:53 +0500 Subject: [PATCH 096/157] WL#964 _stricmp was replaved on sting_compare_func added breakes for windows mysql-test/mysql_test_run_new.c: _stricmp was replaved on sting_compare_func added breakes for windows --- mysql-test/mysql_test_run_new.c | 110 +++++++++++++++++++------------- 1 file changed, 67 insertions(+), 43 deletions(-) diff --git a/mysql-test/mysql_test_run_new.c b/mysql-test/mysql_test_run_new.c index 7b77fc5ced8..5f949015ee7 100644 --- a/mysql-test/mysql_test_run_new.c +++ b/mysql-test/mysql_test_run_new.c @@ -90,10 +90,20 @@ static char slave_socket[FN_REFLEN]= "./var/tmp/slave.sock"; #endif #define MAX_COUNT_TESTES 1024 + +#ifdef __WIN__ +# define sting_compare_func _stricmp +#else +# ifdef HAVE_STRCASECMP +# define sting_compare_func strcasecmp +# else +# define sting_compare_func strcmp +# endif +#endif + /* comma delimited list of tests to skip or empty string */ #ifndef __WIN__ static char skip_test[FN_REFLEN]= " lowercase_table3 , system_mysql_db_fix "; -#define _stricmp strcasecmp #else /* The most ignore testes contain the calls of system command @@ -1439,7 +1449,7 @@ void setup(char *file __attribute__((unused))) */ int compare( const void *arg1, const void *arg2 ) { - return _stricmp( * ( char** ) arg1, * ( char** ) arg2 ); + return sting_compare_func( * ( char** ) arg1, * ( char** ) arg2 ); } @@ -1520,7 +1530,9 @@ int main(int argc, char **argv) else { /* run all tests */ - names= malloc(MAX_COUNT_TESTES*4); + names= malloc(MAX_COUNT_TESTES*sizeof(void*)); + if (!names) + die("can not allcate memory for sorting"); testes= names; name_index= 0; #ifndef __WIN__ @@ -1540,57 +1552,69 @@ int main(int argc, char **argv) /* find the test suffix */ if ((position= strinstr(test, TEST_SUFFIX)) != 0) { - /* null terminate at the suffix */ - *(test + position - 1)= '\0'; - /* insert test */ - *names= malloc(FN_REFLEN); - strcpy(*names,test); - names++; - name_index++; + if (name_index < MAX_COUNT_TESTES) + { + /* null terminate at the suffix */ + *(test + position - 1)= '\0'; + /* insert test */ + *names= malloc(FN_REFLEN); + strcpy(*names,test); + names++; + name_index++; + } + else + die("can not sort files, array is overloaded"); } } closedir(parent); } #else - struct _finddata_t dir; - intptr_t handle; - char test[FN_LEN]; - char mask[FN_REFLEN]; - char *p; - int position; - - /* single test */ - single_test= FALSE; - - snprintf(mask,FN_REFLEN,"%s/*.test",test_dir); - - if ((handle=_findfirst(mask,&dir)) == -1L) { - die("Unable to open tests directory."); - } + struct _finddata_t dir; + int* handle; + char test[FN_LEN]; + char mask[FN_REFLEN]; + char *p; + int position; + /* single test */ + single_test= FALSE; - do - { - if (!(dir.attrib & _A_SUBDIR)) + snprintf(mask,FN_REFLEN,"%s/*.test",test_dir); + + if ((handle=_findfirst(mask,&dir)) == -1L) { - strcpy(test, strlwr(dir.name)); - - /* find the test suffix */ - if ((position= strinstr(test, TEST_SUFFIX)) != 0) - { - /* null terminate at the suffix */ - *(test + position - 1)= '\0'; - /* insert test */ - *names= malloc(FN_REFLEN); - strcpy(*names,test); - names++; - name_index++; - } + die("Unable to open tests directory."); } - }while (_findnext(handle,&dir) == 0); - _findclose(handle); + + do + { + if (!(dir.attrib & _A_SUBDIR)) + { + strcpy(test, strlwr(dir.name)); + + /* find the test suffix */ + if ((position= strinstr(test, TEST_SUFFIX)) != 0) + { + if (name_index < MAX_COUNT_TESTES) + { + /* null terminate at the suffix */ + *(test + position - 1)= '\0'; + /* insert test */ + *names= malloc(FN_REFLEN); + strcpy(*names,test); + names++; + name_index++; + } + else + die("can not sort files, array is overloaded"); + } + } + }while (_findnext(handle,&dir) == 0); + + _findclose(handle); + } #endif qsort( (void *)testes, name_index, sizeof( char * ), compare ); From af4ef15f82603b78e97f6b9c9eefbfaa3344b2fe Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 5 Jan 2005 14:09:31 +0200 Subject: [PATCH 097/157] mysql-test/mysql-test-run.sh report test mode if case of failure (default/ps-protocol/embedded) mysql-test/mysql-test-run.sh: report test mode if case of failure (default/ps-protocol/embedded) --- mysql-test/mysql-test-run.sh | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/mysql-test/mysql-test-run.sh b/mysql-test/mysql-test-run.sh index 4c141e75baa..9684a880510 100644 --- a/mysql-test/mysql-test-run.sh +++ b/mysql-test/mysql-test-run.sh @@ -239,11 +239,12 @@ MYSQL_TEST_SSL_OPTS="" USE_TIMER="" USE_EMBEDDED_SERVER="" RESULT_EXT="" +TEST_MODE="default" while test $# -gt 0; do case "$1" in - --embedded-server) USE_EMBEDDED_SERVER=1 ; USE_MANAGER=0 ; NO_SLAVE=1 ; \ - USE_RUNNING_SERVER="" RESULT_EXT=".es" ;; + --embedded-server) USE_EMBEDDED_SERVER=1 USE_MANAGER=0 NO_SLAVE=1 ; \ + USE_RUNNING_SERVER="" RESULT_EXT=".es" TEST_MODE="embedded" ;; --user=*) DBUSER=`$ECHO "$1" | $SED -e "s;--user=;;"` ;; --force) FORCE=1 ;; --timer) USE_TIMER=1 ;; @@ -323,7 +324,7 @@ while test $# -gt 0; do SLEEP_TIME_AFTER_RESTART=`$ECHO "$1" | $SED -e "s;--sleep=;;"` ;; --ps-protocol) - EXTRA_MYSQL_TEST_OPT="$EXTRA_MYSQL_TEST_OPT $1" ;; + TEST_MODE="ps-protocol" EXTRA_MYSQL_TEST_OPT="$EXTRA_MYSQL_TEST_OPT $1" ;; --user-test=*) USER_TEST=`$ECHO "$1" | $SED -e "s;--user-test=;;"` ;; @@ -1561,7 +1562,7 @@ run_testcase () show_failed_diff $tname $ECHO if [ x$FORCE != x1 ] ; then - $ECHO "Aborting: $tname failed. To continue, re-run with '--force'." + $ECHO "Aborting: $tname failed in $TEST_MODE mode. To continue, re-run with '--force'." $ECHO if [ -z "$DO_GDB" ] && [ -z "$USE_RUNNING_SERVER" ] && \ [ -z "$DO_DDD" ] && [ -z "$USE_EMBEDDED_SERVER" ] @@ -1742,7 +1743,7 @@ $ECHO [ "$DO_GPROF" ] && gprof_collect # collect coverage information if [ $TOT_FAIL -ne 0 ]; then - $ECHO "mysql-test-run: *** Failing the test(s):$FAILED_CASES" + $ECHO "mysql-test-run in $TEST_MODE mode: *** Failing the test(s):$FAILED_CASES" $ECHO exit 1 else From c99b4964ca7da035bf2895812ef02bcfbdefa67a Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 5 Jan 2005 17:14:29 +0500 Subject: [PATCH 098/157] replace position names and testes fixed bug --- mysql-test/mysql_test_run_new.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mysql-test/mysql_test_run_new.c b/mysql-test/mysql_test_run_new.c index ecae0b6ad4d..bdebe912b97 100644 --- a/mysql-test/mysql_test_run_new.c +++ b/mysql-test/mysql_test_run_new.c @@ -1531,10 +1531,10 @@ int main(int argc, char **argv) else { /* run all tests */ - names= malloc(MAX_COUNT_TESTES*sizeof(void*)); - if (!names) + testes= malloc(MAX_COUNT_TESTES*sizeof(void*)); + if (!testes) die("can not allcate memory for sorting"); - testes= names; + names= testes; name_index= 0; #ifndef __WIN__ struct dirent *entry; @@ -1619,7 +1619,7 @@ int main(int argc, char **argv) #endif qsort( (void *)testes, name_index, sizeof( char * ), compare ); - for (index= 0; index <= name_index; index++) + for (index= 0; index < name_index; index++) { run_test(testes[index]); free(testes[index]); From 6f2f0d5cf3a7cb9a638bc753a3f3ec1b518bc4ed Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 5 Jan 2005 16:35:43 +0100 Subject: [PATCH 099/157] my_sleep.c: On Windows my_sleep() always gave a zero microsecond sleep mysys/my_sleep.c: On Windows my_sleep() always gave a zero microsecond sleep --- mysys/my_sleep.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mysys/my_sleep.c b/mysys/my_sleep.c index 3de2d2abd13..31eaf7eeb96 100644 --- a/mysys/my_sleep.c +++ b/mysys/my_sleep.c @@ -23,6 +23,8 @@ void my_sleep(ulong m_seconds) { #ifdef __NETWARE__ delay(m_seconds/1000+1); +#elif defined(__WIN__) + Sleep(m_seconds/1000+1); /* Sleep() has millisecond arg */ #elif defined(OS2) DosSleep(m_seconds/1000+1); #elif defined(HAVE_SELECT) From 3edb7774edf059834cb6b29fc4a9634802ea7dc7 Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 5 Jan 2005 19:02:17 +0100 Subject: [PATCH 100/157] Allow DEFAULT_THREAD_STACK to be set via -DDEFAULT_THREAD_STACK=... so our official binary builds for Linux that are built against a static glibc with a 128k thread stack size limit can be compiled with a default that doesn't result in a harmless (but oft-misunderstood) warning message. (Bug #6226) include/my_pthread.h: Allow DEFAULT_THREAD_STACK to be set via -DDEFAULT_THREAD_STACK=... --- include/my_pthread.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/include/my_pthread.h b/include/my_pthread.h index 40302f48bd5..7620b46e08b 100644 --- a/include/my_pthread.h +++ b/include/my_pthread.h @@ -624,6 +624,7 @@ extern int pthread_dummy(int); /* All thread specific variables are in the following struct */ #define THREAD_NAME_SIZE 10 +#ifndef DEFAULT_THREAD_STACK #if defined(__ia64__) /* MySQL can survive with 32K, but some glibc libraries require > 128K stack @@ -633,6 +634,7 @@ extern int pthread_dummy(int); #else #define DEFAULT_THREAD_STACK (192*1024L) #endif +#endif struct st_my_thread_var { From 190f7a6f451f01b4b336b8825178ec3e38d24a9c Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 5 Jan 2005 21:56:18 +0100 Subject: [PATCH 101/157] Fix "mysqladmin password" to use correct password scrambling function when talking to pre-4.1 servers or 4.1 and later servers where the old_passwords option is enabled. "mysqladmin old-password" is unchanged. (Bug #7451) client/mysqladmin.cc: Check old_passwords from server, and use that to determine which scramble function to use (except in the case of the old-password command, which always use the old scramble function). --- client/mysqladmin.cc | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/client/mysqladmin.cc b/client/mysqladmin.cc index 2e8b3cd588a..6916b4ea808 100644 --- a/client/mysqladmin.cc +++ b/client/mysqladmin.cc @@ -826,13 +826,39 @@ static int execute_commands(MYSQL *mysql,int argc, char **argv) if (argv[1][0]) { char *pw= argv[1]; + bool old= find_type(argv[0], &command_typelib, 2) == ADMIN_OLD_PASSWORD; #ifdef __WIN__ uint pw_len= strlen(pw); if (pw_len > 1 && pw[0] == '\'' && pw[pw_len-1] == '\'') printf("Warning: single quotes were not trimmed from the password by" " your command\nline client, as you might have expected.\n"); #endif - if (find_type(argv[0], &command_typelib, 2) == ADMIN_OLD_PASSWORD) + /* + If we don't already know to use an old-style password, see what + the server is using + */ + if (!old) { + if (mysql_query(mysql, "SHOW VARIABLES LIKE 'old_passwords'")) { + my_printf_error(0, "Could not determine old_passwords setting from server; error: '%s'", + MYF(ME_BELL),mysql_error(mysql)); + return -1; + } else { + MYSQL_RES *res= mysql_store_result(mysql); + if (!res) { + my_printf_error(0, "Could not get old_passwords setting from server; error: '%s'", + MYF(ME_BELL),mysql_error(mysql)); + return -1; + } + if (!mysql_num_rows(res)) { + old= 1; + } else { + MYSQL_ROW row= mysql_fetch_row(res); + old= !strncmp(row[1], "ON", 2); + } + mysql_free_result(res); + } + } + if (old) make_scrambled_password_323(crypted_pw, pw); else make_scrambled_password(crypted_pw, pw); From 0f00947b5d219fe252c978cbada03fdb669fac46 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 6 Jan 2005 01:08:03 +0100 Subject: [PATCH 102/157] Add support for --default-character-set to mysqladmin (Bug #7524) client/mysqladmin.cc: Handle default-character-set being specified --- client/mysqladmin.cc | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/client/mysqladmin.cc b/client/mysqladmin.cc index 2e8b3cd588a..ae92765dfdf 100644 --- a/client/mysqladmin.cc +++ b/client/mysqladmin.cc @@ -33,7 +33,8 @@ #define SHUTDOWN_DEF_TIMEOUT 3600 /* Wait for shutdown */ #define MAX_TRUNC_LENGTH 3 -char *host= NULL, *user= 0, *opt_password= 0; +char *host= NULL, *user= 0, *opt_password= 0, + *default_charset= NULL; char truncated_var_names[MAX_MYSQL_VAR][MAX_TRUNC_LENGTH]; char ex_var_names[MAX_MYSQL_VAR][FN_REFLEN]; ulonglong last_values[MAX_MYSQL_VAR]; @@ -145,6 +146,9 @@ static struct my_option my_long_options[] = {"character-sets-dir", OPT_CHARSETS_DIR, "Directory where character sets are.", (gptr*) &charsets_dir, (gptr*) &charsets_dir, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, + {"default-character-set", OPT_DEFAULT_CHARSET, + "Set the default character set.", (gptr*) &default_charset, + (gptr*) &default_charset, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, {"help", '?', "Display this help and exit.", 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}, {"host", 'h', "Connect to host.", (gptr*) &host, (gptr*) &host, 0, GET_STR, @@ -343,6 +347,8 @@ int main(int argc,char *argv[]) if (shared_memory_base_name) mysql_options(&mysql,MYSQL_SHARED_MEMORY_BASE_NAME,shared_memory_base_name); #endif + if (default_charset) + mysql_options(&mysql, MYSQL_SET_CHARSET_NAME, default_charset); if (sql_connect(&mysql, option_wait)) { unsigned int err= mysql_errno(&mysql); From 51cae387a9a2c67b0f6249864714b8659c951670 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 6 Jan 2005 11:19:20 +0200 Subject: [PATCH 103/157] os0file.c: Use the fcntl() file flush method on OS X; Apple disabled fsync() for internal disk drives, which caused corruption in power outages; the patch was recommended by an Apple engineer innobase/os/os0file.c: Use the fcntl() file flush method on OS X; Apple disabled fsync() for internal disk drives, which caused corruption in power outages; the patch was recommended by an Apple engineer --- innobase/os/os0file.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/innobase/os/os0file.c b/innobase/os/os0file.c index aa45030d93b..f02b81b8fd8 100644 --- a/innobase/os/os0file.c +++ b/innobase/os/os0file.c @@ -1763,7 +1763,21 @@ os_file_flush( #else int ret; -#ifdef HAVE_FDATASYNC +#ifdef HAVE_DARWIN_THREADS + /* Apple has disabled fsync() for internal disk drives in OS X. That + caused corruption for a user when he tested a power outage. Let us in + OS X use a nonstandard flush method recommended by an Apple + engineer. */ + + ret = fcntl(file, F_FULLFSYNC, NULL); + + if (ret) { + /* If we are not on a file system that supports this, then + fall back to a plain fsync. */ + + ret = fsync(file); + } +#elif HAVE_FDATASYNC ret = fdatasync(file); #else /* fprintf(stderr, "Flushing to file %p\n", file); */ From 10844e41da65bd86a781e314a15a60b8b21d40d8 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 6 Jan 2005 14:35:14 +0100 Subject: [PATCH 104/157] - enable "with-extra-charsets=complex" for the "compile-dist" distribution build (to make the test suite pass) BUILD/compile-dist: - enable "with-extra-charsets=complex" for the distribution build (to make the test suite pass) --- BUILD/compile-dist | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/BUILD/compile-dist b/BUILD/compile-dist index 2344d4dfffd..ef6302f0d9c 100755 --- a/BUILD/compile-dist +++ b/BUILD/compile-dist @@ -42,5 +42,6 @@ fi --with-embedded-server \ --with-berkeley-db \ --with-innodb \ - --enable-thread-safe-client + --enable-thread-safe-client \ + --with-extra-charsets=complex make From 5360632639bce0558734c0119063b225a92509cb Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 6 Jan 2005 17:08:38 +0200 Subject: [PATCH 105/157] removed unused label --- sql/sql_parse.cc | 1 - 1 file changed, 1 deletion(-) diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc index 55d26a68116..cd8e73c446d 100644 --- a/sql/sql_parse.cc +++ b/sql/sql_parse.cc @@ -2429,7 +2429,6 @@ mysql_execute_command(THD *thd) create_table_local); break; -create_error: res= 1; //error reported unsent_create_error: // put tables back for PS rexecuting From 928c20f8e33512e00d6e5936cfe1c9f206c951dd Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 6 Jan 2005 19:13:58 +0200 Subject: [PATCH 106/157] fixed comparation with string constant on some platform (BUG#7651) client/mysqldump.c: fixed comparation with string constant on some platform --- client/mysqldump.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/client/mysqldump.c b/client/mysqldump.c index 98de9e0b069..da409d44cd1 100644 --- a/client/mysqldump.c +++ b/client/mysqldump.c @@ -106,7 +106,14 @@ FILE *md_result_file; static char *shared_memory_base_name=0; #endif static uint opt_protocol= 0; -static char *default_charset= (char*) MYSQL_UNIVERSAL_CLIENT_CHARSET; +/* + Constant for detection default value of default_charset (if + default_charset equal to mysql_universal_client_charset, then it is + default value which assigned in very beginning on main()) +*/ +const static char *mysql_universal_client_charset= + MYSQL_UNIVERSAL_CLIENT_CHARSET; +static char *default_charset; static CHARSET_INFO *charset_info= &my_charset_latin1; const char *default_dbug_option="d:t:o,/tmp/mysqldump.trace"; @@ -678,7 +685,7 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)), Set charset to the default compiled value if it hasn't been reset yet by --default-character-set=xxx. */ - if (default_charset == (char*) MYSQL_UNIVERSAL_CLIENT_CHARSET) + if (default_charset == mysql_universal_client_charset) default_charset= (char*) MYSQL_DEFAULT_CHARSET_NAME; break; } @@ -2403,6 +2410,7 @@ cleanup: int main(int argc, char **argv) { compatible_mode_normal_str[0]= 0; + default_charset= (char *)mysql_universal_client_charset; MY_INIT(argv[0]); if (get_options(&argc, &argv)) From babb77767a48662fb1c9c80658538b5492a5cc34 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 6 Jan 2005 20:47:08 +0200 Subject: [PATCH 107/157] postreview changes client/mysqldump.c: fixed comment fixed compiler warning --- client/mysqldump.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/client/mysqldump.c b/client/mysqldump.c index da409d44cd1..d511dc3bbde 100644 --- a/client/mysqldump.c +++ b/client/mysqldump.c @@ -107,11 +107,11 @@ static char *shared_memory_base_name=0; #endif static uint opt_protocol= 0; /* - Constant for detection default value of default_charset (if - default_charset equal to mysql_universal_client_charset, then it is - default value which assigned in very beginning on main()) + Constant for detection of default value of default_charset. + If default_charset is equal to mysql_universal_client_charset, then + it is the default value which assigned at the very beginning of main(). */ -const static char *mysql_universal_client_charset= +static const char *mysql_universal_client_charset= MYSQL_UNIVERSAL_CLIENT_CHARSET; static char *default_charset; static CHARSET_INFO *charset_info= &my_charset_latin1; From eb6f4f85f054094d9c6cfd0394d455e7c55a9c57 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 6 Jan 2005 19:57:02 +0100 Subject: [PATCH 108/157] Add comment to make code for option-stripping in mysql_config more clear scripts/mysql_config.sh: Add comment to clarify why we can safely only strip flags with a leading space --- scripts/mysql_config.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/scripts/mysql_config.sh b/scripts/mysql_config.sh index 35ddbcac471..3676e03ab48 100644 --- a/scripts/mysql_config.sh +++ b/scripts/mysql_config.sh @@ -100,6 +100,8 @@ for remove in DDBUG_OFF DSAFEMALLOC USAFEMALLOC DSAFE_MUTEX \ DPEDANTIC_SAFEMALLOC DUNIV_MUST_NOT_INLINE DFORCE_INIT_OF_VARS \ DEXTRA_DEBUG DHAVE_purify 'O[0-9]' 'W[-A-Za-z]*' do + # The first option we might strip will always have a space before it because + # we set -I$pkgincludedir as the first option cflags=`echo "$cflags"|sed -e "s/ -$remove */ /g"` done cflags=`echo "$cflags"|sed -e 's/ *\$//'` From 5728b1daa75090b61489ef6cfc408ea53ce1b364 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 6 Jan 2005 20:42:06 +0100 Subject: [PATCH 109/157] Make sure all char columns in the mysql.* tables have the proper width in mysql_fix_privilege_tables.sql, or they may get truncated during conversion to utf8. (Bug #7539) scripts/mysql_fix_privilege_tables.sql: Reset widths of all text fields at the same time as vonersion to utf8 to avoid length changes --- scripts/mysql_fix_privilege_tables.sql | 39 +++++++++++++++++++++----- 1 file changed, 32 insertions(+), 7 deletions(-) diff --git a/scripts/mysql_fix_privilege_tables.sql b/scripts/mysql_fix_privilege_tables.sql index a60d987f8b5..536b263f7bd 100644 --- a/scripts/mysql_fix_privilege_tables.sql +++ b/scripts/mysql_fix_privilege_tables.sql @@ -9,13 +9,38 @@ -- this sql script. -- On windows you should do 'mysql --force mysql < mysql_fix_privilege_tables.sql' -ALTER TABLE user type=MyISAM, CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin; -ALTER TABLE db type=MyISAM, CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin; -ALTER TABLE host type=MyISAM, CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin; -ALTER TABLE func type=MyISAM, CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin; -ALTER TABLE columns_priv type=MyISAM, CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin; -ALTER TABLE tables_priv type=MyISAM, CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin; -ALTER TABLE user change Password Password char(41) binary not null; +-- Convert all tables to UTF-8 with binary collation +-- and reset all char columns to correct width +ALTER TABLE user + MODIFY Host char(60) NOT NULL default '', + MODIFY User char(16) NOT NULL default '', + MODIFY Password char(41) NOT NULL default '', + ENGINE=MyISAM, CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin; +ALTER TABLE db + MODIFY Host char(60) NOT NULL default '', + MODIFY Db char(64) NOT NULL default '', + MODIFY User char(16) NOT NULL default '', + ENGINE=MyISAM, CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin; +ALTER TABLE host + MODIFY Host char(60) NOT NULL default '', + MODIFY Db char(64) NOT NULL default '', + ENGINE=MyISAM, CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin; +ALTER TABLE func + ENGINE=MyISAM, CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin; +ALTER TABLE columns_priv + MODIFY Host char(60) NOT NULL default '', + MODIFY Db char(64) NOT NULL default '', + MODIFY User char(16) NOT NULL default '', + MODIFY Table_name char(64) NOT NULL default '', + MODIFY Column_name char(64) NOT NULL default '', + ENGINE=MyISAM, CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin; +ALTER TABLE tables_priv + MODIFY Host char(60) NOT NULL default '', + MODIFY Db char(64) NOT NULL default '', + MODIFY User char(16) NOT NULL default '', + MODIFY Table_name char(64) NOT NULL default '', + MODIFY Grantor char(77) NOT NULL default '', + ENGINE=MyISAM, CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin; ALTER TABLE user add File_priv enum('N','Y') NOT NULL; CREATE TABLE IF NOT EXISTS func ( name char(64) binary DEFAULT '' NOT NULL, From 5b47aaed3a34c0b4c9f4c756dc7c65c8bb3a0393 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 6 Jan 2005 21:30:39 +0100 Subject: [PATCH 110/157] Fix for BUG#7714 "if disk full, sometimes MyISAM doesn't wait for free space, corrupts table" This happened only if my_write() couldn't write even one byte. I cannot easily add a .test for this, but I tested by hand before and after the change. mysys/my_write.c: Monty and I could not find a reason why a write should not wait for free disk space (if disk is full) because it could not write at least one byte; doing so certainly corrupts tables. my_pwrite() and my_fwrite() don't test for -1, so no problem. --- mysys/my_write.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/mysys/my_write.c b/mysys/my_write.c index da378d115f1..1d1a893090a 100644 --- a/mysys/my_write.c +++ b/mysys/my_write.c @@ -49,8 +49,7 @@ uint my_write(int Filedes, const byte *Buffer, uint Count, myf MyFlags) MyFlags&= ~ MY_WAIT_IF_FULL; /* End if aborted by user */ #endif if ((my_errno == ENOSPC || my_errno == EDQUOT) && - (MyFlags & MY_WAIT_IF_FULL) && - (uint) writenbytes != (uint) -1) + (MyFlags & MY_WAIT_IF_FULL)) { if (!(errors++ % MY_WAIT_GIVE_USER_A_MESSAGE)) my_error(EE_DISK_FULL,MYF(ME_BELL | ME_NOREFRESH), From 888f2fce984d64d4762317f44ac7b443366a5be7 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 6 Jan 2005 23:53:58 +0100 Subject: [PATCH 111/157] 2 small fixes for binlog (sorry for grouping them - I won't do it again): WL#2335 (wait if binlog or binlog index file hits disk full or quota exceeded), fix for BUG#7236 ("--expire_logs_days does not apply if all statements happen in transactions"), and a behaviour change: abort if mysqld can't start binlog at startup (if running with --log-bin of course). sql/log.cc: 2 small fixes for binlog: 1) We create binlog and binlog index file with flag MY_WAIT_IF_FULL, so that they have the same behaviour as MyISAM tables when disk is full or quota exceeded (wait, try to finish write every minute, warn in error log every 10 minutes). That's WL#2335. 2) Honour expire-log-days when we write a transaction to binlog (we honoured it already when writing an autocommit statement). This fixes BUG#7236. sql/mysqld.cc: If we fail to create binlog or binlog index file or write to them at mysqld's startup, mysqld will exit. The former behaviour was to print error and continue, which led to stupid things like if you mispell a directory name in --log-bin, you don't immediately notice your mistake and you corrupt your recovery/replication. New behaviour is consistent with if you mispelt innodb_data_file_path. --- sql/log.cc | 22 ++++++++++++++++++---- sql/mysqld.cc | 6 ++++-- 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/sql/log.cc b/sql/log.cc index ab0cb823f15..4504b286506 100644 --- a/sql/log.cc +++ b/sql/log.cc @@ -255,7 +255,9 @@ bool MYSQL_LOG::open(const char *log_name, enum_log_type log_type_arg, if ((file=my_open(log_file_name,open_flags, MYF(MY_WME | ME_WAITTANG))) < 0 || init_io_cache(&log_file, file, IO_SIZE, io_cache_type, - my_tell(file,MYF(MY_WME)), 0, MYF(MY_WME | MY_NABP))) + my_tell(file,MYF(MY_WME)), 0, + MYF(MY_WME | MY_NABP | + ((log_type == LOG_BIN) ? MY_WAIT_IF_FULL : 0)))) goto err; switch (log_type) { @@ -333,6 +335,8 @@ bool MYSQL_LOG::open(const char *log_name, enum_log_type log_type_arg, First open of this class instance Create an index file that will hold all file names uses for logging. Add new entries to the end of it. + Index file (and binlog) are so critical for recovery/replication + that we create them with MY_WAIT_IF_FULL. */ fn_format(index_file_name, index_file_name_arg, mysql_data_home, ".index", opt); @@ -343,7 +347,7 @@ bool MYSQL_LOG::open(const char *log_name, enum_log_type log_type_arg, init_io_cache(&index_file, index_file_nr, IO_SIZE, WRITE_CACHE, my_seek(index_file_nr,0L,MY_SEEK_END,MYF(0)), - 0, MYF(MY_WME))) + 0, MYF(MY_WME | MY_WAIT_IF_FULL))) goto err; } else @@ -1574,6 +1578,7 @@ uint MYSQL_LOG::next_file_id() bool MYSQL_LOG::write(THD *thd, IO_CACHE *cache, bool commit_or_rollback) { + bool should_rotate= 0, error= 0; VOID(pthread_mutex_lock(&LOCK_log)); DBUG_ENTER("MYSQL_LOG::write(cache"); @@ -1671,7 +1676,7 @@ bool MYSQL_LOG::write(THD *thd, IO_CACHE *cache, bool commit_or_rollback) goto err; signal_update(); DBUG_PRINT("info",("max_size: %lu",max_size)); - if (my_b_tell(&log_file) >= (my_off_t) max_size) + if (should_rotate= (my_b_tell(&log_file) >= (my_off_t) max_size)) { pthread_mutex_lock(&LOCK_index); new_file(0); // inside mutex @@ -1687,7 +1692,16 @@ bool MYSQL_LOG::write(THD *thd, IO_CACHE *cache, bool commit_or_rollback) ha_commit_complete(thd); - DBUG_RETURN(0); +#ifdef HAVE_REPLICATION + if (should_rotate && expire_logs_days) + { + long purge_time= time(0) - expire_logs_days*24*60*60; + if (purge_time >= 0) + error= purge_logs_before_date(purge_time); + } +#endif + + DBUG_RETURN(error); err: if (!write_error) diff --git a/sql/mysqld.cc b/sql/mysqld.cc index 476d7e440e9..d1fef3519bf 100644 --- a/sql/mysqld.cc +++ b/sql/mysqld.cc @@ -2591,8 +2591,10 @@ static int init_server_components() if (opt_bin_log) { - open_log(&mysql_bin_log, glob_hostname, opt_bin_logname, "-bin", - opt_binlog_index_name, LOG_BIN, 0, 0, max_binlog_size); + /* If we fail to open binlog, it's going to hinder our recovery, so die */ + if (open_log(&mysql_bin_log, glob_hostname, opt_bin_logname, "-bin", + opt_binlog_index_name, LOG_BIN, 0, 0, max_binlog_size)) + unireg_abort(1); using_update_log=1; #ifdef HAVE_REPLICATION if (expire_logs_days) From dd02fd59b6032ae9a44ae578b17555f3a6c59756 Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 7 Jan 2005 04:53:05 +0100 Subject: [PATCH 112/157] Skip client_test when testing embedded server mysql-test/t/client_test.test: Doesn't make sense to run this test when running the embedded server --- mysql-test/t/client_test.test | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mysql-test/t/client_test.test b/mysql-test/t/client_test.test index 66f5e69eb36..29e7c23ab35 100644 --- a/mysql-test/t/client_test.test +++ b/mysql-test/t/client_test.test @@ -1,2 +1,4 @@ +# Skip when testing the embedded server +--source include/not_embedded.inc --disable_result_log --exec $TESTS_BINDIR/client_test --no-defaults --testcase --user=root --socket=$MASTER_MYSOCK --port=$MYSQL_TCP_PORT --silent From 04498c2a4f1eb9e3f33ec4f66fe0cd85c41380a4 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 6 Jan 2005 22:30:23 -0600 Subject: [PATCH 113/157] Bootstrap: Made the default --mail address to be . Build-tools/Bootstrap: Made the default --mail address to be . --- Build-tools/Bootstrap | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Build-tools/Bootstrap b/Build-tools/Bootstrap index 10211dbb59c..10ebc5c2dd1 100755 --- a/Build-tools/Bootstrap +++ b/Build-tools/Bootstrap @@ -38,7 +38,7 @@ $opt_dry_run= undef; $opt_export_only= undef; $opt_help= $opt_verbose= 0; $opt_log= undef; -$opt_mail= ""; +$opt_mail= "build\@mysql.com"; $opt_pull= undef; $opt_revision= undef; $opt_suffix= ""; @@ -431,6 +431,7 @@ Options: include a log file snippet, if logging is enabled) Note that the \@-Sign needs to be quoted! Example: --mail=user\\\@domain.com + Default: build\@mysql.com -q, --quiet Be quiet -p, --pull Update the source BK trees before building -r, --revision= Export the tree as of revision From 647906259c457314eb8cedb2e336aeda1b2a0ada Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 7 Jan 2005 00:32:31 -0800 Subject: [PATCH 114/157] Added test data and test case files. --- .../suite/jp/std_data/jisx0201_ucs2.dat | Bin 0 -> 346 bytes .../suite/jp/std_data/jisx0208_sjis2.dat | 2 + mysql-test/suite/jp/t/jp_subquery_ujis.test | 142 ++++++++++++++++++ 3 files changed, 144 insertions(+) create mode 100755 mysql-test/suite/jp/std_data/jisx0201_ucs2.dat create mode 100755 mysql-test/suite/jp/std_data/jisx0208_sjis2.dat create mode 100755 mysql-test/suite/jp/t/jp_subquery_ujis.test diff --git a/mysql-test/suite/jp/std_data/jisx0201_ucs2.dat b/mysql-test/suite/jp/std_data/jisx0201_ucs2.dat new file mode 100755 index 0000000000000000000000000000000000000000..777f956a6cf1d44b7388101cddae0cf6c033294a GIT binary patch literal 346 zcmW;E)lvdr00rT_<|(kdySuwv2bB;Ml@O4yySw#GJ^thD?Ki7mD@i1iLMmyblR+j~ zWRpWKdE`@og+hubri4<;D5ru-s;H)hTI#5$!H7nhXr_f$+GwYPPP*u(hhF;VXTXR- zh8SjqQN|c&f=Q;BW`GC-E<=*tDo6Ez2&4oN{SJZh5q-HF>oz^U$Vz@++XAwiHrW5p64~nBq!k$B13+ xX Date: Fri, 7 Jan 2005 00:40:29 -0800 Subject: [PATCH 115/157] Added test case files --- mysql-test/suite/jp/t/jp_subquery_ucs2.test | 143 ++++++++++++++++++++ 1 file changed, 143 insertions(+) create mode 100755 mysql-test/suite/jp/t/jp_subquery_ucs2.test diff --git a/mysql-test/suite/jp/t/jp_subquery_ucs2.test b/mysql-test/suite/jp/t/jp_subquery_ucs2.test new file mode 100755 index 00000000000..311433438f4 --- /dev/null +++ b/mysql-test/suite/jp/t/jp_subquery_ucs2.test @@ -0,0 +1,143 @@ +--source include/have_ucs2.inc + +--disable_warnings +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +--enable_warnings + +# +# Test subquery using Japanese characters in ucs2 encoding +# + +SET NAMES ujis; +SET character_set_database = ucs2; +SET collation_connection = ucs2_general_ci; + +CREATE TABLE `ԣa` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣb` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣa` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣb` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣa` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣb` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣa` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣb` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣa` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣb` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣa` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣb` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣa` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣb` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣa` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣb` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣa` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣb` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣa` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣb` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣa` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣb` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣa` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣb` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = heap; + +#insert the following data in each table +# jisx0201 hankaku-katakana data +# jisx0208 data +# jisx0212 supplemental character data + +INSERT INTO `ԣa` VALUES (''),(''),(''); +INSERT INTO `ԣb` VALUES (''); +INSERT INTO `ԣa` VALUES (''),(''),(''); +INSERT INTO `ԣb` VALUES (''); +INSERT INTO `ԣa` VALUES (''),(''),(''); +INSERT INTO `ԣb` VALUES (''); +INSERT INTO `ԣa` VALUES (''),(''),(''); +INSERT INTO `ԣb` VALUES (''); +INSERT INTO `ԣa` VALUES (''),(''),(''); +INSERT INTO `ԣb` VALUES (''); +INSERT INTO `ԣa` VALUES (''),(''),(''); +INSERT INTO `ԣb` VALUES (''); +INSERT INTO `ԣa` VALUES (''),(''),(''); +INSERT INTO `ԣb` VALUES (''); +INSERT INTO `ԣa` VALUES (''),(''),(''); +INSERT INTO `ԣb` VALUES (''); +INSERT INTO `ԣa` VALUES (''),(''),(''); +INSERT INTO `ԣb` VALUES (''); +INSERT INTO `ԣa` VALUES (''),(''),(''); +INSERT INTO `ԣb` VALUES (''); +INSERT INTO `ԣa` VALUES (''),(''),(''); +INSERT INTO `ԣb` VALUES (''); +INSERT INTO `ԣa` VALUES (''),(''),(''); +INSERT INTO `ԣb` VALUES (''); + +#Test for innodb +SELECT `ã` FROM `ԣa` WHERE `ã` IN (SELECT `ã` FROM `ԣb`); +SELECT `ã` FROM `ԣa` WHERE EXISTS (SELECT `ã` FROM `ԣb` WHERE `ԣa`.`ã` = `ԣb`.`ã`); +SELECT `ã` FROM `ԣa` WHERE NOT EXISTS (SELECT `ã` FROM `ԣb` WHERE `ԣa`.`ã` = `ԣb`.`ã`); +SELECT `ã` FROM `ԣa` WHERE `ã` IN (SELECT `ã` FROM `ԣb`); +SELECT `ã` FROM `ԣa` WHERE EXISTS (SELECT `ã` FROM `ԣb` WHERE `ԣa`.`ã` = `ԣb`.`ã`); +SELECT `ã` FROM `ԣa` WHERE NOT EXISTS (SELECT `ã` FROM `ԣb` WHERE `ԣa`.`ã` = `ԣb`.`ã`); +SELECT `ã` FROM `ԣa` WHERE `ã` IN (SELECT `ã` FROM `ԣb`); +SELECT `ã` FROM `ԣa` WHERE EXISTS (SELECT `ã` FROM `ԣb` WHERE `ԣa`.`ã` = `ԣb`.`ã`); +SELECT `ã` FROM `ԣa` WHERE NOT EXISTS (SELECT `ã` FROM `ԣb` WHERE `ԣa`.`ã` = `ԣb`.`ã`); +SELECT `ã` FROM `ԣa` WHERE `ã` IN (SELECT `ã` FROM `ԣb`); +SELECT `ã` FROM `ԣa` WHERE EXISTS (SELECT `ã` FROM `ԣb` WHERE `ԣa`.`ã` = `ԣb`.`ã`); +SELECT `ã` FROM `ԣa` WHERE NOT EXISTS (SELECT `ã` FROM `ԣb` WHERE `ԣa`.`ã` = `ԣb`.`ã`); +SELECT `ã` FROM `ԣa` WHERE `ã` IN (SELECT `ã` FROM `ԣb`); +SELECT `ã` FROM `ԣa` WHERE EXISTS (SELECT `ã` FROM `ԣb` WHERE `ԣa`.`ã` = `ԣb`.`ã`); +SELECT `ã` FROM `ԣa` WHERE NOT EXISTS (SELECT `ã` FROM `ԣb` WHERE `ԣa`.`ã` = `ԣb`.`ã`); +SELECT `ã` FROM `ԣa` WHERE `ã` IN (SELECT `ã` FROM `ԣb`); +SELECT `ã` FROM `ԣa` WHERE EXISTS (SELECT `ã` FROM `ԣb` WHERE `ԣa`.`ã` = `ԣb`.`ã`); +SELECT `ã` FROM `ԣa` WHERE NOT EXISTS (SELECT `ã` FROM `ԣb` WHERE `ԣa`.`ã` = `ԣb`.`ã`); +SELECT `ã` FROM `ԣa` WHERE `ã` IN (SELECT `ã` FROM `ԣb`); +SELECT `ã` FROM `ԣa` WHERE EXISTS (SELECT `ã` FROM `ԣb` WHERE `ԣa`.`ã` = `ԣb`.`ã`); +SELECT `ã` FROM `ԣa` WHERE NOT EXISTS (SELECT `ã` FROM `ԣb` WHERE `ԣa`.`ã` = `ԣb`.`ã`); +SELECT `ã` FROM `ԣa` WHERE `ã` IN (SELECT `ã` FROM `ԣb`); +SELECT `ã` FROM `ԣa` WHERE EXISTS (SELECT `ã` FROM `ԣb` WHERE `ԣa`.`ã` = `ԣb`.`ã`); +SELECT `ã` FROM `ԣa` WHERE NOT EXISTS (SELECT `ã` FROM `ԣb` WHERE `ԣa`.`ã` = `ԣb`.`ã`); +SELECT `ã` FROM `ԣa` WHERE `ã` IN (SELECT `ã` FROM `ԣb`); +SELECT `ã` FROM `ԣa` WHERE EXISTS (SELECT `ã` FROM `ԣb` WHERE `ԣa`.`ã` = `ԣb`.`ã`); +SELECT `ã` FROM `ԣa` WHERE NOT EXISTS (SELECT `ã` FROM `ԣb` WHERE `ԣa`.`ã` = `ԣb`.`ã`); +SELECT `ã` FROM `ԣa` WHERE `ã` IN (SELECT `ã` FROM `ԣb`); +SELECT `ã` FROM `ԣa` WHERE EXISTS (SELECT `ã` FROM `ԣb` WHERE `ԣa`.`ã` = `ԣb`.`ã`); +SELECT `ã` FROM `ԣa` WHERE NOT EXISTS (SELECT `ã` FROM `ԣb` WHERE `ԣa`.`ã` = `ԣb`.`ã`); +SELECT `ã` FROM `ԣa` WHERE `ã` IN (SELECT `ã` FROM `ԣb`); +SELECT `ã` FROM `ԣa` WHERE EXISTS (SELECT `ã` FROM `ԣb` WHERE `ԣa`.`ã` = `ԣb`.`ã`); +SELECT `ã` FROM `ԣa` WHERE NOT EXISTS (SELECT `ã` FROM `ԣb` WHERE `ԣa`.`ã` = `ԣb`.`ã`); +SELECT `ã` FROM `ԣa` WHERE `ã` IN (SELECT `ã` FROM `ԣb`); +SELECT `ã` FROM `ԣa` WHERE EXISTS (SELECT `ã` FROM `ԣb` WHERE `ԣa`.`ã` = `ԣb`.`ã`); +SELECT `ã` FROM `ԣa` WHERE NOT EXISTS (SELECT `ã` FROM `ԣb` WHERE `ԣa`.`ã` = `ԣb`.`ã`); + +DROP TABLE `ԣa`; +DROP TABLE `ԣb`; +DROP TABLE `ԣa`; +DROP TABLE `ԣb`; +DROP TABLE `ԣa`; +DROP TABLE `ԣb`; +DROP TABLE `ԣa`; +DROP TABLE `ԣb`; +DROP TABLE `ԣa`; +DROP TABLE `ԣb`; +DROP TABLE `ԣa`; +DROP TABLE `ԣb`; +DROP TABLE `ԣa`; +DROP TABLE `ԣb`; +DROP TABLE `ԣa`; +DROP TABLE `ԣb`; +DROP TABLE `ԣa`; +DROP TABLE `ԣb`; +DROP TABLE `ԣa`; +DROP TABLE `ԣb`; +DROP TABLE `ԣa`; +DROP TABLE `ԣb`; +DROP TABLE `ԣa`; +DROP TABLE `ԣb`; + From 888b665e6cb0cd8ee3b915c66c683afc4ece1963 Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 7 Jan 2005 00:48:38 -0800 Subject: [PATCH 116/157] Added test data, test case and test result files for Japanese characters test. I have put the tests into a separate "suite", the first one actually. Currently this can only be run by the Perl version of mysql-test-run that is not quite finished. It should, or at least will, be able to be run with the line ./mysql-test-run.pl --suite=jp --- mysql-test/suite/jp/r/jp_alter_sjis.result | 647 ++++ mysql-test/suite/jp/r/jp_alter_ucs2.result | 648 ++++ mysql-test/suite/jp/r/jp_alter_ujis.result | 647 ++++ mysql-test/suite/jp/r/jp_alter_utf8.result | 647 ++++ .../suite/jp/r/jp_charlength_sjis.result | 146 + .../suite/jp/r/jp_charlength_ucs2.result | 147 + .../suite/jp/r/jp_charlength_ujis.result | 146 + .../suite/jp/r/jp_charlength_utf8.result | 146 + mysql-test/suite/jp/r/jp_charset_sjis.result | 230 ++ mysql-test/suite/jp/r/jp_charset_ucs2.result | 306 ++ mysql-test/suite/jp/r/jp_charset_ujis.result | 230 ++ mysql-test/suite/jp/r/jp_charset_utf8.result | 230 ++ mysql-test/suite/jp/r/jp_convert_sjis.result | 1046 +++++++ mysql-test/suite/jp/r/jp_convert_ucs2.result | 427 +++ mysql-test/suite/jp/r/jp_convert_ujis.result | 1514 +++++++++ mysql-test/suite/jp/r/jp_convert_utf8.result | 1514 +++++++++ .../suite/jp/r/jp_create_db_sjis.result | 21 + .../suite/jp/r/jp_create_db_ucs2.result | 22 + .../suite/jp/r/jp_create_db_ujis.result | 21 + .../suite/jp/r/jp_create_db_utf8.result | 21 + .../suite/jp/r/jp_create_tbl_sjis.result | 641 ++++ .../suite/jp/r/jp_create_tbl_ucs2.result | 641 ++++ .../suite/jp/r/jp_create_tbl_ujis.result | 641 ++++ .../suite/jp/r/jp_create_tbl_utf8.result | 641 ++++ mysql-test/suite/jp/r/jp_enum_sjis.result | 362 +++ mysql-test/suite/jp/r/jp_enum_ucs2.result | 219 ++ mysql-test/suite/jp/r/jp_enum_ujis.result | 362 +++ mysql-test/suite/jp/r/jp_enum_utf8.result | 362 +++ mysql-test/suite/jp/r/jp_insert_sjis.result | 905 ++++++ mysql-test/suite/jp/r/jp_insert_ucs2.result | 906 ++++++ mysql-test/suite/jp/r/jp_insert_ujis.result | 906 ++++++ mysql-test/suite/jp/r/jp_insert_utf8.result | 905 ++++++ mysql-test/suite/jp/r/jp_instr_sjis.result | 264 ++ mysql-test/suite/jp/r/jp_instr_ucs2.result | 265 ++ mysql-test/suite/jp/r/jp_instr_ujis.result | 264 ++ mysql-test/suite/jp/r/jp_instr_utf8.result | 264 ++ mysql-test/suite/jp/r/jp_join_sjis.result | 578 ++++ mysql-test/suite/jp/r/jp_join_ucs2.result | 579 ++++ mysql-test/suite/jp/r/jp_join_ujis.result | 578 ++++ mysql-test/suite/jp/r/jp_join_utf8.result | 578 ++++ mysql-test/suite/jp/r/jp_left_sjis.result | 626 ++++ mysql-test/suite/jp/r/jp_left_ucs2.result | 627 ++++ mysql-test/suite/jp/r/jp_left_ujis.result | 626 ++++ mysql-test/suite/jp/r/jp_left_utf8.result | 626 ++++ mysql-test/suite/jp/r/jp_length_sjis.result | 146 + mysql-test/suite/jp/r/jp_length_ucs2.result | 147 + mysql-test/suite/jp/r/jp_length_ujis.result | 146 + mysql-test/suite/jp/r/jp_length_utf8.result | 146 + mysql-test/suite/jp/r/jp_like_sjis.result | 322 ++ mysql-test/suite/jp/r/jp_like_ucs2.result | 419 +++ mysql-test/suite/jp/r/jp_like_ujis.result | 322 ++ mysql-test/suite/jp/r/jp_like_utf8.result | 319 ++ mysql-test/suite/jp/r/jp_locate_sjis.result | 264 ++ mysql-test/suite/jp/r/jp_locate_ucs2.result | 265 ++ mysql-test/suite/jp/r/jp_locate_ujis.result | 264 ++ mysql-test/suite/jp/r/jp_locate_utf8.result | 264 ++ mysql-test/suite/jp/r/jp_lpad_sjis.result | 146 + mysql-test/suite/jp/r/jp_lpad_ucs2.result | 147 + mysql-test/suite/jp/r/jp_lpad_ujis.result | 146 + mysql-test/suite/jp/r/jp_lpad_utf8.result | 146 + mysql-test/suite/jp/r/jp_ltrim_sjis.result | 228 ++ mysql-test/suite/jp/r/jp_ltrim_ucs2.result | 229 ++ mysql-test/suite/jp/r/jp_ltrim_ujis.result | 228 ++ mysql-test/suite/jp/r/jp_ltrim_utf8.result | 228 ++ mysql-test/suite/jp/r/jp_ps_sjis.result | 896 ++++++ mysql-test/suite/jp/r/jp_ps_ujis.result | 896 ++++++ mysql-test/suite/jp/r/jp_replace_sjis.result | 230 ++ mysql-test/suite/jp/r/jp_replace_ucs2.result | 231 ++ mysql-test/suite/jp/r/jp_replace_ujis.result | 230 ++ mysql-test/suite/jp/r/jp_replace_utf8.result | 230 ++ mysql-test/suite/jp/r/jp_reverse_sjis.result | 86 + mysql-test/suite/jp/r/jp_reverse_ucs2.result | 87 + mysql-test/suite/jp/r/jp_reverse_ujis.result | 86 + mysql-test/suite/jp/r/jp_reverse_utf8.result | 86 + mysql-test/suite/jp/r/jp_right_sjis.result | 626 ++++ mysql-test/suite/jp/r/jp_right_ucs2.result | 627 ++++ mysql-test/suite/jp/r/jp_right_ujis.result | 626 ++++ mysql-test/suite/jp/r/jp_right_utf8.result | 626 ++++ mysql-test/suite/jp/r/jp_rpad_sjis.result | 146 + mysql-test/suite/jp/r/jp_rpad_ucs2.result | 147 + mysql-test/suite/jp/r/jp_rpad_ujis.result | 146 + mysql-test/suite/jp/r/jp_rpad_utf8.result | 146 + mysql-test/suite/jp/r/jp_rtrim_sjis.result | 228 ++ mysql-test/suite/jp/r/jp_rtrim_ucs2.result | 229 ++ mysql-test/suite/jp/r/jp_rtrim_ujis.result | 228 ++ mysql-test/suite/jp/r/jp_rtrim_utf8.result | 228 ++ mysql-test/suite/jp/r/jp_select_sjis.result | 382 +++ mysql-test/suite/jp/r/jp_select_ucs2.result | 227 ++ mysql-test/suite/jp/r/jp_select_ujis.result | 538 ++++ mysql-test/suite/jp/r/jp_select_utf8.result | 538 ++++ mysql-test/suite/jp/r/jp_subquery_sjis.result | 206 ++ mysql-test/suite/jp/r/jp_subquery_ucs2.result | 207 ++ mysql-test/suite/jp/r/jp_subquery_ujis.result | 206 ++ mysql-test/suite/jp/r/jp_subquery_utf8.result | 206 ++ .../suite/jp/r/jp_substring_sjis.result | 2738 +++++++++++++++++ .../suite/jp/r/jp_substring_ucs2.result | 1395 +++++++++ .../suite/jp/r/jp_substring_ujis.result | 2738 +++++++++++++++++ .../suite/jp/r/jp_substring_utf8.result | 2738 +++++++++++++++++ mysql-test/suite/jp/r/jp_trim_sjis.result | 672 ++++ mysql-test/suite/jp/r/jp_trim_ucs2.result | 673 ++++ mysql-test/suite/jp/r/jp_trim_ujis.result | 672 ++++ mysql-test/suite/jp/r/jp_trim_utf8.result | 672 ++++ mysql-test/suite/jp/r/jp_union_ujis.result | 422 +++ mysql-test/suite/jp/r/jp_update_sjis.result | 98 + mysql-test/suite/jp/r/jp_update_ucs2.result | 99 + mysql-test/suite/jp/r/jp_update_ujis.result | 98 + mysql-test/suite/jp/r/jp_update_utf8.result | 98 + mysql-test/suite/jp/r/jp_where_sjis.result | 118 + mysql-test/suite/jp/r/jp_where_ucs2.result | 163 + mysql-test/suite/jp/r/jp_where_ujis.result | 86 + mysql-test/suite/jp/r/jp_where_utf8.result | 86 + .../suite/jp/std_data/jisx0201_sjis.dat | 10 + .../suite/jp/std_data/jisx0201_ujis.dat | 10 + .../suite/jp/std_data/jisx0201_utf8.dat | 10 + .../suite/jp/std_data/jisx0208_sjis.dat | 66 + .../suite/jp/std_data/jisx0208_sjis3.dat | 5 + .../suite/jp/std_data/jisx0208_ucs2.dat | Bin 0 -> 2782 bytes .../suite/jp/std_data/jisx0208_ujis.dat | 66 + .../suite/jp/std_data/jisx0208_utf8.dat | 66 + .../suite/jp/std_data/jisx0212_ucs2.dat | Bin 0 -> 1682 bytes .../suite/jp/std_data/jisx0212_ujis.dat | 40 + .../suite/jp/std_data/jisx0212_utf8.dat | 40 + mysql-test/suite/jp/t/jp_alter_sjis.test | 416 +++ mysql-test/suite/jp/t/jp_alter_ucs2.test | 419 +++ mysql-test/suite/jp/t/jp_alter_ujis.test | 418 +++ mysql-test/suite/jp/t/jp_alter_utf8.test | 416 +++ mysql-test/suite/jp/t/jp_charlength_sjis.test | 81 + mysql-test/suite/jp/t/jp_charlength_ucs2.test | 83 + mysql-test/suite/jp/t/jp_charlength_ujis.test | 82 + mysql-test/suite/jp/t/jp_charlength_utf8.test | 80 + mysql-test/suite/jp/t/jp_charset_sjis.test | 133 + mysql-test/suite/jp/t/jp_charset_ucs2.test | 221 ++ mysql-test/suite/jp/t/jp_charset_ujis.test | 135 + mysql-test/suite/jp/t/jp_charset_utf8.test | 133 + mysql-test/suite/jp/t/jp_convert_sjis.test | 110 + mysql-test/suite/jp/t/jp_convert_ucs2.test | 203 ++ mysql-test/suite/jp/t/jp_convert_ujis.test | 115 + mysql-test/suite/jp/t/jp_convert_utf8.test | 113 + mysql-test/suite/jp/t/jp_create_db_sjis.test | 26 + mysql-test/suite/jp/t/jp_create_db_ucs2.test | 29 + mysql-test/suite/jp/t/jp_create_db_ujis.test | 28 + mysql-test/suite/jp/t/jp_create_db_utf8.test | 26 + mysql-test/suite/jp/t/jp_create_tbl_sjis.test | 308 ++ mysql-test/suite/jp/t/jp_create_tbl_ucs2.test | 314 ++ mysql-test/suite/jp/t/jp_create_tbl_ujis.test | 314 ++ mysql-test/suite/jp/t/jp_create_tbl_utf8.test | 312 ++ mysql-test/suite/jp/t/jp_enum_sjis.test | 153 + mysql-test/suite/jp/t/jp_enum_ucs2.test | 149 + mysql-test/suite/jp/t/jp_enum_ujis.test | 144 + mysql-test/suite/jp/t/jp_enum_utf8.test | 142 + mysql-test/suite/jp/t/jp_insert_sjis.test | 354 +++ mysql-test/suite/jp/t/jp_insert_ucs2.test | 356 +++ mysql-test/suite/jp/t/jp_insert_ujis.test | 356 +++ mysql-test/suite/jp/t/jp_insert_utf8.test | 353 +++ mysql-test/suite/jp/t/jp_instr_sjis.test | 139 + mysql-test/suite/jp/t/jp_instr_ucs2.test | 141 + mysql-test/suite/jp/t/jp_instr_ujis.test | 140 + mysql-test/suite/jp/t/jp_instr_utf8.test | 138 + mysql-test/suite/jp/t/jp_join_sjis.test | 218 ++ mysql-test/suite/jp/t/jp_join_ucs2.test | 220 ++ mysql-test/suite/jp/t/jp_join_ujis.test | 219 ++ mysql-test/suite/jp/t/jp_join_utf8.test | 217 ++ mysql-test/suite/jp/t/jp_left_sjis.test | 141 + mysql-test/suite/jp/t/jp_left_ucs2.test | 143 + mysql-test/suite/jp/t/jp_left_ujis.test | 142 + mysql-test/suite/jp/t/jp_left_utf8.test | 140 + mysql-test/suite/jp/t/jp_length_sjis.test | 81 + mysql-test/suite/jp/t/jp_length_ucs2.test | 83 + mysql-test/suite/jp/t/jp_length_ujis.test | 82 + mysql-test/suite/jp/t/jp_length_utf8.test | 80 + mysql-test/suite/jp/t/jp_like_sjis.test | 168 + mysql-test/suite/jp/t/jp_like_ucs2.test | 271 ++ mysql-test/suite/jp/t/jp_like_ujis.test | 170 + mysql-test/suite/jp/t/jp_like_utf8.test | 168 + mysql-test/suite/jp/t/jp_locate_sjis.test | 141 + mysql-test/suite/jp/t/jp_locate_ucs2.test | 144 + mysql-test/suite/jp/t/jp_locate_ujis.test | 143 + mysql-test/suite/jp/t/jp_locate_utf8.test | 141 + mysql-test/suite/jp/t/jp_lpad_sjis.test | 81 + mysql-test/suite/jp/t/jp_lpad_ucs2.test | 83 + mysql-test/suite/jp/t/jp_lpad_ujis.test | 82 + mysql-test/suite/jp/t/jp_lpad_utf8.test | 80 + mysql-test/suite/jp/t/jp_ltrim_sjis.test | 163 + mysql-test/suite/jp/t/jp_ltrim_ucs2.test | 165 + mysql-test/suite/jp/t/jp_ltrim_ujis.test | 164 + mysql-test/suite/jp/t/jp_ltrim_utf8.test | 162 + mysql-test/suite/jp/t/jp_ps_sjis.test | 454 +++ mysql-test/suite/jp/t/jp_ps_ujis.test | 455 +++ mysql-test/suite/jp/t/jp_replace_sjis.test | 129 + mysql-test/suite/jp/t/jp_replace_ucs2.test | 131 + mysql-test/suite/jp/t/jp_replace_ujis.test | 130 + mysql-test/suite/jp/t/jp_replace_utf8.test | 128 + mysql-test/suite/jp/t/jp_reverse_sjis.test | 81 + mysql-test/suite/jp/t/jp_reverse_ucs2.test | 83 + mysql-test/suite/jp/t/jp_reverse_ujis.test | 82 + mysql-test/suite/jp/t/jp_reverse_utf8.test | 80 + mysql-test/suite/jp/t/jp_right_sjis.test | 141 + mysql-test/suite/jp/t/jp_right_ucs2.test | 143 + mysql-test/suite/jp/t/jp_right_ujis.test | 142 + mysql-test/suite/jp/t/jp_right_utf8.test | 140 + mysql-test/suite/jp/t/jp_rpad_sjis.test | 81 + mysql-test/suite/jp/t/jp_rpad_ucs2.test | 83 + mysql-test/suite/jp/t/jp_rpad_ujis.test | 82 + mysql-test/suite/jp/t/jp_rpad_utf8.test | 80 + mysql-test/suite/jp/t/jp_rtrim_sjis.test | 163 + mysql-test/suite/jp/t/jp_rtrim_ucs2.test | 165 + mysql-test/suite/jp/t/jp_rtrim_ujis.test | 164 + mysql-test/suite/jp/t/jp_rtrim_utf8.test | 162 + mysql-test/suite/jp/t/jp_select_sjis.test | 83 + mysql-test/suite/jp/t/jp_select_ucs2.test | 172 ++ mysql-test/suite/jp/t/jp_select_ujis.test | 84 + mysql-test/suite/jp/t/jp_select_utf8.test | 82 + mysql-test/suite/jp/t/jp_subquery_sjis.test | 140 + mysql-test/suite/jp/t/jp_subquery_utf8.test | 139 + mysql-test/suite/jp/t/jp_substring_sjis.test | 413 +++ mysql-test/suite/jp/t/jp_substring_ucs2.test | 418 +++ mysql-test/suite/jp/t/jp_substring_ujis.test | 414 +++ mysql-test/suite/jp/t/jp_substring_utf8.test | 412 +++ mysql-test/suite/jp/t/jp_trim_sjis.test | 219 ++ mysql-test/suite/jp/t/jp_trim_ucs2.test | 221 ++ mysql-test/suite/jp/t/jp_trim_ujis.test | 220 ++ mysql-test/suite/jp/t/jp_trim_utf8.test | 218 ++ mysql-test/suite/jp/t/jp_union_ujis.test | 129 + mysql-test/suite/jp/t/jp_update_sjis.test | 94 + mysql-test/suite/jp/t/jp_update_ucs2.test | 96 + mysql-test/suite/jp/t/jp_update_ujis.test | 95 + mysql-test/suite/jp/t/jp_update_utf8.test | 93 + mysql-test/suite/jp/t/jp_where_sjis.test | 104 + mysql-test/suite/jp/t/jp_where_ucs2.test | 175 ++ mysql-test/suite/jp/t/jp_where_ujis.test | 87 + mysql-test/suite/jp/t/jp_where_utf8.test | 85 + 231 files changed, 68758 insertions(+) create mode 100755 mysql-test/suite/jp/r/jp_alter_sjis.result create mode 100755 mysql-test/suite/jp/r/jp_alter_ucs2.result create mode 100755 mysql-test/suite/jp/r/jp_alter_ujis.result create mode 100755 mysql-test/suite/jp/r/jp_alter_utf8.result create mode 100755 mysql-test/suite/jp/r/jp_charlength_sjis.result create mode 100755 mysql-test/suite/jp/r/jp_charlength_ucs2.result create mode 100755 mysql-test/suite/jp/r/jp_charlength_ujis.result create mode 100755 mysql-test/suite/jp/r/jp_charlength_utf8.result create mode 100755 mysql-test/suite/jp/r/jp_charset_sjis.result create mode 100755 mysql-test/suite/jp/r/jp_charset_ucs2.result create mode 100755 mysql-test/suite/jp/r/jp_charset_ujis.result create mode 100755 mysql-test/suite/jp/r/jp_charset_utf8.result create mode 100755 mysql-test/suite/jp/r/jp_convert_sjis.result create mode 100755 mysql-test/suite/jp/r/jp_convert_ucs2.result create mode 100755 mysql-test/suite/jp/r/jp_convert_ujis.result create mode 100755 mysql-test/suite/jp/r/jp_convert_utf8.result create mode 100755 mysql-test/suite/jp/r/jp_create_db_sjis.result create mode 100755 mysql-test/suite/jp/r/jp_create_db_ucs2.result create mode 100755 mysql-test/suite/jp/r/jp_create_db_ujis.result create mode 100755 mysql-test/suite/jp/r/jp_create_db_utf8.result create mode 100755 mysql-test/suite/jp/r/jp_create_tbl_sjis.result create mode 100755 mysql-test/suite/jp/r/jp_create_tbl_ucs2.result create mode 100755 mysql-test/suite/jp/r/jp_create_tbl_ujis.result create mode 100755 mysql-test/suite/jp/r/jp_create_tbl_utf8.result create mode 100755 mysql-test/suite/jp/r/jp_enum_sjis.result create mode 100755 mysql-test/suite/jp/r/jp_enum_ucs2.result create mode 100755 mysql-test/suite/jp/r/jp_enum_ujis.result create mode 100755 mysql-test/suite/jp/r/jp_enum_utf8.result create mode 100755 mysql-test/suite/jp/r/jp_insert_sjis.result create mode 100755 mysql-test/suite/jp/r/jp_insert_ucs2.result create mode 100755 mysql-test/suite/jp/r/jp_insert_ujis.result create mode 100755 mysql-test/suite/jp/r/jp_insert_utf8.result create mode 100755 mysql-test/suite/jp/r/jp_instr_sjis.result create mode 100755 mysql-test/suite/jp/r/jp_instr_ucs2.result create mode 100755 mysql-test/suite/jp/r/jp_instr_ujis.result create mode 100755 mysql-test/suite/jp/r/jp_instr_utf8.result create mode 100755 mysql-test/suite/jp/r/jp_join_sjis.result create mode 100755 mysql-test/suite/jp/r/jp_join_ucs2.result create mode 100755 mysql-test/suite/jp/r/jp_join_ujis.result create mode 100755 mysql-test/suite/jp/r/jp_join_utf8.result create mode 100755 mysql-test/suite/jp/r/jp_left_sjis.result create mode 100755 mysql-test/suite/jp/r/jp_left_ucs2.result create mode 100755 mysql-test/suite/jp/r/jp_left_ujis.result create mode 100755 mysql-test/suite/jp/r/jp_left_utf8.result create mode 100755 mysql-test/suite/jp/r/jp_length_sjis.result create mode 100755 mysql-test/suite/jp/r/jp_length_ucs2.result create mode 100755 mysql-test/suite/jp/r/jp_length_ujis.result create mode 100755 mysql-test/suite/jp/r/jp_length_utf8.result create mode 100755 mysql-test/suite/jp/r/jp_like_sjis.result create mode 100755 mysql-test/suite/jp/r/jp_like_ucs2.result create mode 100755 mysql-test/suite/jp/r/jp_like_ujis.result create mode 100755 mysql-test/suite/jp/r/jp_like_utf8.result create mode 100755 mysql-test/suite/jp/r/jp_locate_sjis.result create mode 100755 mysql-test/suite/jp/r/jp_locate_ucs2.result create mode 100755 mysql-test/suite/jp/r/jp_locate_ujis.result create mode 100755 mysql-test/suite/jp/r/jp_locate_utf8.result create mode 100755 mysql-test/suite/jp/r/jp_lpad_sjis.result create mode 100755 mysql-test/suite/jp/r/jp_lpad_ucs2.result create mode 100755 mysql-test/suite/jp/r/jp_lpad_ujis.result create mode 100755 mysql-test/suite/jp/r/jp_lpad_utf8.result create mode 100755 mysql-test/suite/jp/r/jp_ltrim_sjis.result create mode 100755 mysql-test/suite/jp/r/jp_ltrim_ucs2.result create mode 100755 mysql-test/suite/jp/r/jp_ltrim_ujis.result create mode 100755 mysql-test/suite/jp/r/jp_ltrim_utf8.result create mode 100755 mysql-test/suite/jp/r/jp_ps_sjis.result create mode 100755 mysql-test/suite/jp/r/jp_ps_ujis.result create mode 100755 mysql-test/suite/jp/r/jp_replace_sjis.result create mode 100755 mysql-test/suite/jp/r/jp_replace_ucs2.result create mode 100755 mysql-test/suite/jp/r/jp_replace_ujis.result create mode 100755 mysql-test/suite/jp/r/jp_replace_utf8.result create mode 100755 mysql-test/suite/jp/r/jp_reverse_sjis.result create mode 100755 mysql-test/suite/jp/r/jp_reverse_ucs2.result create mode 100755 mysql-test/suite/jp/r/jp_reverse_ujis.result create mode 100755 mysql-test/suite/jp/r/jp_reverse_utf8.result create mode 100755 mysql-test/suite/jp/r/jp_right_sjis.result create mode 100755 mysql-test/suite/jp/r/jp_right_ucs2.result create mode 100755 mysql-test/suite/jp/r/jp_right_ujis.result create mode 100755 mysql-test/suite/jp/r/jp_right_utf8.result create mode 100755 mysql-test/suite/jp/r/jp_rpad_sjis.result create mode 100755 mysql-test/suite/jp/r/jp_rpad_ucs2.result create mode 100755 mysql-test/suite/jp/r/jp_rpad_ujis.result create mode 100755 mysql-test/suite/jp/r/jp_rpad_utf8.result create mode 100755 mysql-test/suite/jp/r/jp_rtrim_sjis.result create mode 100755 mysql-test/suite/jp/r/jp_rtrim_ucs2.result create mode 100755 mysql-test/suite/jp/r/jp_rtrim_ujis.result create mode 100755 mysql-test/suite/jp/r/jp_rtrim_utf8.result create mode 100755 mysql-test/suite/jp/r/jp_select_sjis.result create mode 100755 mysql-test/suite/jp/r/jp_select_ucs2.result create mode 100755 mysql-test/suite/jp/r/jp_select_ujis.result create mode 100755 mysql-test/suite/jp/r/jp_select_utf8.result create mode 100755 mysql-test/suite/jp/r/jp_subquery_sjis.result create mode 100755 mysql-test/suite/jp/r/jp_subquery_ucs2.result create mode 100755 mysql-test/suite/jp/r/jp_subquery_ujis.result create mode 100755 mysql-test/suite/jp/r/jp_subquery_utf8.result create mode 100755 mysql-test/suite/jp/r/jp_substring_sjis.result create mode 100755 mysql-test/suite/jp/r/jp_substring_ucs2.result create mode 100755 mysql-test/suite/jp/r/jp_substring_ujis.result create mode 100755 mysql-test/suite/jp/r/jp_substring_utf8.result create mode 100755 mysql-test/suite/jp/r/jp_trim_sjis.result create mode 100755 mysql-test/suite/jp/r/jp_trim_ucs2.result create mode 100755 mysql-test/suite/jp/r/jp_trim_ujis.result create mode 100755 mysql-test/suite/jp/r/jp_trim_utf8.result create mode 100755 mysql-test/suite/jp/r/jp_union_ujis.result create mode 100755 mysql-test/suite/jp/r/jp_update_sjis.result create mode 100755 mysql-test/suite/jp/r/jp_update_ucs2.result create mode 100755 mysql-test/suite/jp/r/jp_update_ujis.result create mode 100755 mysql-test/suite/jp/r/jp_update_utf8.result create mode 100755 mysql-test/suite/jp/r/jp_where_sjis.result create mode 100755 mysql-test/suite/jp/r/jp_where_ucs2.result create mode 100755 mysql-test/suite/jp/r/jp_where_ujis.result create mode 100755 mysql-test/suite/jp/r/jp_where_utf8.result create mode 100755 mysql-test/suite/jp/std_data/jisx0201_sjis.dat create mode 100755 mysql-test/suite/jp/std_data/jisx0201_ujis.dat create mode 100755 mysql-test/suite/jp/std_data/jisx0201_utf8.dat create mode 100755 mysql-test/suite/jp/std_data/jisx0208_sjis.dat create mode 100755 mysql-test/suite/jp/std_data/jisx0208_sjis3.dat create mode 100755 mysql-test/suite/jp/std_data/jisx0208_ucs2.dat create mode 100755 mysql-test/suite/jp/std_data/jisx0208_ujis.dat create mode 100755 mysql-test/suite/jp/std_data/jisx0208_utf8.dat create mode 100755 mysql-test/suite/jp/std_data/jisx0212_ucs2.dat create mode 100755 mysql-test/suite/jp/std_data/jisx0212_ujis.dat create mode 100755 mysql-test/suite/jp/std_data/jisx0212_utf8.dat create mode 100755 mysql-test/suite/jp/t/jp_alter_sjis.test create mode 100755 mysql-test/suite/jp/t/jp_alter_ucs2.test create mode 100755 mysql-test/suite/jp/t/jp_alter_ujis.test create mode 100755 mysql-test/suite/jp/t/jp_alter_utf8.test create mode 100755 mysql-test/suite/jp/t/jp_charlength_sjis.test create mode 100755 mysql-test/suite/jp/t/jp_charlength_ucs2.test create mode 100755 mysql-test/suite/jp/t/jp_charlength_ujis.test create mode 100755 mysql-test/suite/jp/t/jp_charlength_utf8.test create mode 100755 mysql-test/suite/jp/t/jp_charset_sjis.test create mode 100755 mysql-test/suite/jp/t/jp_charset_ucs2.test create mode 100755 mysql-test/suite/jp/t/jp_charset_ujis.test create mode 100755 mysql-test/suite/jp/t/jp_charset_utf8.test create mode 100755 mysql-test/suite/jp/t/jp_convert_sjis.test create mode 100755 mysql-test/suite/jp/t/jp_convert_ucs2.test create mode 100755 mysql-test/suite/jp/t/jp_convert_ujis.test create mode 100755 mysql-test/suite/jp/t/jp_convert_utf8.test create mode 100755 mysql-test/suite/jp/t/jp_create_db_sjis.test create mode 100755 mysql-test/suite/jp/t/jp_create_db_ucs2.test create mode 100755 mysql-test/suite/jp/t/jp_create_db_ujis.test create mode 100755 mysql-test/suite/jp/t/jp_create_db_utf8.test create mode 100755 mysql-test/suite/jp/t/jp_create_tbl_sjis.test create mode 100755 mysql-test/suite/jp/t/jp_create_tbl_ucs2.test create mode 100755 mysql-test/suite/jp/t/jp_create_tbl_ujis.test create mode 100755 mysql-test/suite/jp/t/jp_create_tbl_utf8.test create mode 100755 mysql-test/suite/jp/t/jp_enum_sjis.test create mode 100755 mysql-test/suite/jp/t/jp_enum_ucs2.test create mode 100755 mysql-test/suite/jp/t/jp_enum_ujis.test create mode 100755 mysql-test/suite/jp/t/jp_enum_utf8.test create mode 100755 mysql-test/suite/jp/t/jp_insert_sjis.test create mode 100755 mysql-test/suite/jp/t/jp_insert_ucs2.test create mode 100755 mysql-test/suite/jp/t/jp_insert_ujis.test create mode 100755 mysql-test/suite/jp/t/jp_insert_utf8.test create mode 100755 mysql-test/suite/jp/t/jp_instr_sjis.test create mode 100755 mysql-test/suite/jp/t/jp_instr_ucs2.test create mode 100755 mysql-test/suite/jp/t/jp_instr_ujis.test create mode 100755 mysql-test/suite/jp/t/jp_instr_utf8.test create mode 100755 mysql-test/suite/jp/t/jp_join_sjis.test create mode 100755 mysql-test/suite/jp/t/jp_join_ucs2.test create mode 100755 mysql-test/suite/jp/t/jp_join_ujis.test create mode 100755 mysql-test/suite/jp/t/jp_join_utf8.test create mode 100755 mysql-test/suite/jp/t/jp_left_sjis.test create mode 100755 mysql-test/suite/jp/t/jp_left_ucs2.test create mode 100755 mysql-test/suite/jp/t/jp_left_ujis.test create mode 100755 mysql-test/suite/jp/t/jp_left_utf8.test create mode 100755 mysql-test/suite/jp/t/jp_length_sjis.test create mode 100755 mysql-test/suite/jp/t/jp_length_ucs2.test create mode 100755 mysql-test/suite/jp/t/jp_length_ujis.test create mode 100755 mysql-test/suite/jp/t/jp_length_utf8.test create mode 100755 mysql-test/suite/jp/t/jp_like_sjis.test create mode 100755 mysql-test/suite/jp/t/jp_like_ucs2.test create mode 100755 mysql-test/suite/jp/t/jp_like_ujis.test create mode 100755 mysql-test/suite/jp/t/jp_like_utf8.test create mode 100755 mysql-test/suite/jp/t/jp_locate_sjis.test create mode 100755 mysql-test/suite/jp/t/jp_locate_ucs2.test create mode 100755 mysql-test/suite/jp/t/jp_locate_ujis.test create mode 100755 mysql-test/suite/jp/t/jp_locate_utf8.test create mode 100755 mysql-test/suite/jp/t/jp_lpad_sjis.test create mode 100755 mysql-test/suite/jp/t/jp_lpad_ucs2.test create mode 100755 mysql-test/suite/jp/t/jp_lpad_ujis.test create mode 100755 mysql-test/suite/jp/t/jp_lpad_utf8.test create mode 100755 mysql-test/suite/jp/t/jp_ltrim_sjis.test create mode 100755 mysql-test/suite/jp/t/jp_ltrim_ucs2.test create mode 100755 mysql-test/suite/jp/t/jp_ltrim_ujis.test create mode 100755 mysql-test/suite/jp/t/jp_ltrim_utf8.test create mode 100755 mysql-test/suite/jp/t/jp_ps_sjis.test create mode 100755 mysql-test/suite/jp/t/jp_ps_ujis.test create mode 100755 mysql-test/suite/jp/t/jp_replace_sjis.test create mode 100755 mysql-test/suite/jp/t/jp_replace_ucs2.test create mode 100755 mysql-test/suite/jp/t/jp_replace_ujis.test create mode 100755 mysql-test/suite/jp/t/jp_replace_utf8.test create mode 100755 mysql-test/suite/jp/t/jp_reverse_sjis.test create mode 100755 mysql-test/suite/jp/t/jp_reverse_ucs2.test create mode 100755 mysql-test/suite/jp/t/jp_reverse_ujis.test create mode 100755 mysql-test/suite/jp/t/jp_reverse_utf8.test create mode 100755 mysql-test/suite/jp/t/jp_right_sjis.test create mode 100755 mysql-test/suite/jp/t/jp_right_ucs2.test create mode 100755 mysql-test/suite/jp/t/jp_right_ujis.test create mode 100755 mysql-test/suite/jp/t/jp_right_utf8.test create mode 100755 mysql-test/suite/jp/t/jp_rpad_sjis.test create mode 100755 mysql-test/suite/jp/t/jp_rpad_ucs2.test create mode 100755 mysql-test/suite/jp/t/jp_rpad_ujis.test create mode 100755 mysql-test/suite/jp/t/jp_rpad_utf8.test create mode 100755 mysql-test/suite/jp/t/jp_rtrim_sjis.test create mode 100755 mysql-test/suite/jp/t/jp_rtrim_ucs2.test create mode 100755 mysql-test/suite/jp/t/jp_rtrim_ujis.test create mode 100755 mysql-test/suite/jp/t/jp_rtrim_utf8.test create mode 100755 mysql-test/suite/jp/t/jp_select_sjis.test create mode 100755 mysql-test/suite/jp/t/jp_select_ucs2.test create mode 100755 mysql-test/suite/jp/t/jp_select_ujis.test create mode 100755 mysql-test/suite/jp/t/jp_select_utf8.test create mode 100755 mysql-test/suite/jp/t/jp_subquery_sjis.test create mode 100755 mysql-test/suite/jp/t/jp_subquery_utf8.test create mode 100755 mysql-test/suite/jp/t/jp_substring_sjis.test create mode 100755 mysql-test/suite/jp/t/jp_substring_ucs2.test create mode 100755 mysql-test/suite/jp/t/jp_substring_ujis.test create mode 100755 mysql-test/suite/jp/t/jp_substring_utf8.test create mode 100755 mysql-test/suite/jp/t/jp_trim_sjis.test create mode 100755 mysql-test/suite/jp/t/jp_trim_ucs2.test create mode 100755 mysql-test/suite/jp/t/jp_trim_ujis.test create mode 100755 mysql-test/suite/jp/t/jp_trim_utf8.test create mode 100755 mysql-test/suite/jp/t/jp_union_ujis.test create mode 100755 mysql-test/suite/jp/t/jp_update_sjis.test create mode 100755 mysql-test/suite/jp/t/jp_update_ucs2.test create mode 100755 mysql-test/suite/jp/t/jp_update_ujis.test create mode 100755 mysql-test/suite/jp/t/jp_update_utf8.test create mode 100755 mysql-test/suite/jp/t/jp_where_sjis.test create mode 100755 mysql-test/suite/jp/t/jp_where_ucs2.test create mode 100755 mysql-test/suite/jp/t/jp_where_ujis.test create mode 100755 mysql-test/suite/jp/t/jp_where_utf8.test diff --git a/mysql-test/suite/jp/r/jp_alter_sjis.result b/mysql-test/suite/jp/r/jp_alter_sjis.result new file mode 100755 index 00000000000..f970508229a --- /dev/null +++ b/mysql-test/suite/jp/r/jp_alter_sjis.result @@ -0,0 +1,647 @@ +SET NAMES sjis; +SET character_set_database = sjis; +DROP TABLE IF EXISTS ``; +DROP TABLE IF EXISTS ``; +DROP TABLE IF EXISTS ``; +DROP TABLE IF EXISTS ``; +DROP TABLE IF EXISTS `\\\`; +DROP TABLE IF EXISTS `\\\`; +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = sjis engine=INNODB; +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = sjis engine=INNODB; +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = sjis engine=INNODB; +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = sjis engine=INNODB; +CREATE TABLE `\\\`(`\\\` char(5)) DEFAULT CHARSET = sjis engine=INNODB; +CREATE TABLE `\\\`(`\\\` char(5)) DEFAULT CHARSET = sjis engine=INNODB; +INSERT INTO `` VALUES (''),(''),(''); +INSERT INTO `` VALUES (''),(''),(''); +INSERT INTO `\\\` VALUES ('\\\\\'),('\\\\\'),('\\\\\'); +ALTER TABLE `` ADD `` char(1) FIRST; +ALTER TABLE `` ADD `` char(1) AFTER ``; +ALTER TABLE `` ADD `` char(1); +ALTER TABLE `` ADD INDEX (``); +ALTER TABLE `` ADD PRIMARY KEY (``); +ALTER TABLE `` ADD UNIQUE (``); +ALTER TABLE `` CHANGE `` `` char(1); +ALTER TABLE `` MODIFY `` char(6); +SELECT * FROM ``; + +NULL NULL NULL +NULL NULL NULL +NULL NULL NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES MUL NULL + char(6) PRI + char(1) YES MUL NULL + char(1) YES NULL +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL, + `` char(6) NOT NULL default '', + `` char(1) default NULL, + `` char(1) default NULL, + PRIMARY KEY (``), + UNIQUE KEY `` (``), + KEY `` (``) +) ENGINE=InnoDB DEFAULT CHARSET=sjis +ALTER TABLE `` DROP INDEX ``; +ALTER TABLE `` DROP PRIMARY KEY; +ALTER TABLE `` DROP INDEX ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; +SELECT * FROM ``; + + + + +DESC ``; +Field Type Null Key Default Extra + char(6) +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(6) NOT NULL default '' +) ENGINE=InnoDB DEFAULT CHARSET=sjis +ALTER TABLE `` ADD `` char(1) FIRST; +ALTER TABLE `` ADD `` char(1) AFTER ``; +ALTER TABLE `` ADD `` char(1); +ALTER TABLE `` ADD INDEX (``); +ALTER TABLE `` ADD PRIMARY KEY (``); +ALTER TABLE `` ADD UNIQUE (``); +ALTER TABLE `` CHANGE `` `` char(1); +ALTER TABLE `` MODIFY `` char(6); +SELECT * FROM ``; + +NULL NULL NULL +NULL NULL NULL +NULL NULL NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES MUL NULL + char(6) PRI + char(1) YES MUL NULL + char(1) YES NULL +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL, + `` char(6) NOT NULL default '', + `` char(1) default NULL, + `` char(1) default NULL, + PRIMARY KEY (``), + UNIQUE KEY `` (``), + KEY `` (``) +) ENGINE=InnoDB DEFAULT CHARSET=sjis +ALTER TABLE `` DROP INDEX ``; +ALTER TABLE `` DROP PRIMARY KEY; +ALTER TABLE `` DROP INDEX ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; +SELECT * FROM ``; + + + + +DESC ``; +Field Type Null Key Default Extra + char(6) +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(6) NOT NULL default '' +) ENGINE=InnoDB DEFAULT CHARSET=sjis +ALTER TABLE `\\\` ADD `\\\` char(1) FIRST; +ALTER TABLE `\\\` ADD `\\\` char(1) AFTER `\\\`; +ALTER TABLE `\\\` ADD `\\\` char(1); +ALTER TABLE `\\\` ADD INDEX (`\\\`); +ALTER TABLE `\\\` ADD PRIMARY KEY (`\\\`); +ALTER TABLE `\\\` ADD UNIQUE (`\\\`); +ALTER TABLE `\\\` CHANGE `\\\` `\\` char(1); +ALTER TABLE `\\\` MODIFY `\\\` char(6); +SELECT * FROM `\\\`; +\\ \\\ \\\ \\\ +NULL \\\\\ NULL NULL +NULL \\\\\ NULL NULL +NULL \\\\\ NULL NULL +DESC `\\\`; +Field Type Null Key Default Extra +\\ char(1) YES MUL NULL +\\\ char(6) PRI +\\\ char(1) YES MUL NULL +\\\ char(1) YES NULL +SHOW CREATE TABLE `\\\`; +Table Create Table +\\\ CREATE TABLE `\\\` ( + `\\` char(1) default NULL, + `\\\` char(6) NOT NULL default '', + `\\\` char(1) default NULL, + `\\\` char(1) default NULL, + PRIMARY KEY (`\\\`), + UNIQUE KEY `\\\` (`\\\`), + KEY `\\\` (`\\`) +) ENGINE=InnoDB DEFAULT CHARSET=sjis +ALTER TABLE `\\\` DROP INDEX `\\\`; +ALTER TABLE `\\\` DROP PRIMARY KEY; +ALTER TABLE `\\\` DROP INDEX `\\\`; +ALTER TABLE `\\\` DROP `\\`; +ALTER TABLE `\\\` DROP `\\\`; +ALTER TABLE `\\\` DROP `\\\`; +SELECT * FROM `\\\`; +\\\ +\\\\\ +\\\\\ +\\\\\ +DESC `\\\`; +Field Type Null Key Default Extra +\\\ char(6) +SHOW CREATE TABLE `\\\`; +Table Create Table +\\\ CREATE TABLE `\\\` ( + `\\\` char(6) NOT NULL default '' +) ENGINE=InnoDB DEFAULT CHARSET=sjis +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE `\\\`; +DROP TABLE `\\\`; +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = sjis engine=MYISAM; +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = sjis engine=MYISAM; +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = sjis engine=MYISAM; +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = sjis engine=MYISAM; +CREATE TABLE `\\\`(`\\\` char(5)) DEFAULT CHARSET = sjis engine=MYISAM; +CREATE TABLE `\\\`(`\\\` char(5)) DEFAULT CHARSET = sjis engine=MYISAM; +INSERT INTO `` VALUES (''),(''),(''); +INSERT INTO `` VALUES (''),(''),(''); +INSERT INTO `\\\` VALUES ('\\\\\'),('\\\\\'),('\\\\\'); +ALTER TABLE `` ADD `` char(1) FIRST; +ALTER TABLE `` ADD `` char(1) AFTER ``; +ALTER TABLE `` ADD `` char(1); +ALTER TABLE `` ADD INDEX (``); +ALTER TABLE `` ADD PRIMARY KEY (``); +ALTER TABLE `` ADD UNIQUE (``); +ALTER TABLE `` CHANGE `` `` char(1); +ALTER TABLE `` MODIFY `` char(6); +SELECT * FROM ``; + +NULL NULL NULL +NULL NULL NULL +NULL NULL NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES MUL NULL + char(6) PRI + char(1) YES MUL NULL + char(1) YES NULL +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL, + `` char(6) NOT NULL default '', + `` char(1) default NULL, + `` char(1) default NULL, + PRIMARY KEY (``), + UNIQUE KEY `` (``), + KEY `` (``) +) ENGINE=MyISAM DEFAULT CHARSET=sjis +ALTER TABLE `` DROP INDEX ``; +ALTER TABLE `` DROP PRIMARY KEY; +ALTER TABLE `` DROP INDEX ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; +SELECT * FROM ``; + + + + +DESC ``; +Field Type Null Key Default Extra + char(6) +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(6) NOT NULL default '' +) ENGINE=MyISAM DEFAULT CHARSET=sjis +ALTER TABLE `` ADD `` char(1) FIRST; +ALTER TABLE `` ADD `` char(1) AFTER ``; +ALTER TABLE `` ADD `` char(1); +ALTER TABLE `` ADD INDEX (``); +ALTER TABLE `` ADD PRIMARY KEY (``); +ALTER TABLE `` ADD UNIQUE (``); +ALTER TABLE `` CHANGE `` `` char(1); +ALTER TABLE `` MODIFY `` char(6); +SELECT * FROM ``; + +NULL NULL NULL +NULL NULL NULL +NULL NULL NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES MUL NULL + char(6) PRI + char(1) YES MUL NULL + char(1) YES NULL +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL, + `` char(6) NOT NULL default '', + `` char(1) default NULL, + `` char(1) default NULL, + PRIMARY KEY (``), + UNIQUE KEY `` (``), + KEY `` (``) +) ENGINE=MyISAM DEFAULT CHARSET=sjis +ALTER TABLE `` DROP INDEX ``; +ALTER TABLE `` DROP PRIMARY KEY; +ALTER TABLE `` DROP INDEX ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; +SELECT * FROM ``; + + + + +DESC ``; +Field Type Null Key Default Extra + char(6) +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(6) NOT NULL default '' +) ENGINE=MyISAM DEFAULT CHARSET=sjis +ALTER TABLE `\\\` ADD `\\\` char(1) FIRST; +ALTER TABLE `\\\` ADD `\\\` char(1) AFTER `\\\`; +ALTER TABLE `\\\` ADD `\\\` char(1); +ALTER TABLE `\\\` ADD INDEX (`\\\`); +ALTER TABLE `\\\` ADD PRIMARY KEY (`\\\`); +ALTER TABLE `\\\` ADD UNIQUE (`\\\`); +ALTER TABLE `\\\` CHANGE `\\\` `\\` char(1); +ALTER TABLE `\\\` MODIFY `\\\` char(6); +SELECT * FROM `\\\`; +\\ \\\ \\\ \\\ +NULL \\\\\ NULL NULL +NULL \\\\\ NULL NULL +NULL \\\\\ NULL NULL +DESC `\\\`; +Field Type Null Key Default Extra +\\ char(1) YES MUL NULL +\\\ char(6) PRI +\\\ char(1) YES MUL NULL +\\\ char(1) YES NULL +SHOW CREATE TABLE `\\\`; +Table Create Table +\\\ CREATE TABLE `\\\` ( + `\\` char(1) default NULL, + `\\\` char(6) NOT NULL default '', + `\\\` char(1) default NULL, + `\\\` char(1) default NULL, + PRIMARY KEY (`\\\`), + UNIQUE KEY `\\\` (`\\\`), + KEY `\\\` (`\\`) +) ENGINE=MyISAM DEFAULT CHARSET=sjis +ALTER TABLE `\\\` DROP INDEX `\\\`; +ALTER TABLE `\\\` DROP PRIMARY KEY; +ALTER TABLE `\\\` DROP INDEX `\\\`; +ALTER TABLE `\\\` DROP `\\`; +ALTER TABLE `\\\` DROP `\\\`; +ALTER TABLE `\\\` DROP `\\\`; +SELECT * FROM `\\\`; +\\\ +\\\\\ +\\\\\ +\\\\\ +DESC `\\\`; +Field Type Null Key Default Extra +\\\ char(6) +SHOW CREATE TABLE `\\\`; +Table Create Table +\\\ CREATE TABLE `\\\` ( + `\\\` char(6) NOT NULL default '' +) ENGINE=MyISAM DEFAULT CHARSET=sjis +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE `\\\`; +DROP TABLE `\\\`; +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = sjis engine=HEAP; +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = sjis engine=HEAP; +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = sjis engine=HEAP; +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = sjis engine=HEAP; +CREATE TABLE `\\\`(`\\\` char(5)) DEFAULT CHARSET = sjis engine=HEAP; +CREATE TABLE `\\\`(`\\\` char(5)) DEFAULT CHARSET = sjis engine=HEAP; +INSERT INTO `` VALUES (''),(''),(''); +INSERT INTO `` VALUES (''),(''),(''); +INSERT INTO `\\\` VALUES ('\\\\\'),('\\\\\'),('\\\\\'); +ALTER TABLE `` ADD `` char(1) FIRST; +ALTER TABLE `` ADD `` char(1) AFTER ``; +ALTER TABLE `` ADD `` char(1); +ALTER TABLE `` ADD INDEX (``); +ALTER TABLE `` ADD PRIMARY KEY (``); +ALTER TABLE `` ADD UNIQUE (``); +ALTER TABLE `` CHANGE `` `` char(1); +ALTER TABLE `` MODIFY `` char(6); +SELECT * FROM ``; + +NULL NULL NULL +NULL NULL NULL +NULL NULL NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES MUL NULL + char(6) PRI + char(1) YES MUL NULL + char(1) YES NULL +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL, + `` char(6) NOT NULL default '', + `` char(1) default NULL, + `` char(1) default NULL, + PRIMARY KEY (``), + UNIQUE KEY `` (``), + KEY `` (``) +) ENGINE=HEAP DEFAULT CHARSET=sjis +ALTER TABLE `` DROP INDEX ``; +ALTER TABLE `` DROP PRIMARY KEY; +ALTER TABLE `` DROP INDEX ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; +SELECT * FROM ``; + + + + +DESC ``; +Field Type Null Key Default Extra + char(6) +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(6) NOT NULL default '' +) ENGINE=HEAP DEFAULT CHARSET=sjis +ALTER TABLE `` ADD `` char(1) FIRST; +ALTER TABLE `` ADD `` char(1) AFTER ``; +ALTER TABLE `` ADD `` char(1); +ALTER TABLE `` ADD INDEX (``); +ALTER TABLE `` ADD PRIMARY KEY (``); +ALTER TABLE `` ADD UNIQUE (``); +ALTER TABLE `` CHANGE `` `` char(1); +ALTER TABLE `` MODIFY `` char(6); +SELECT * FROM ``; + +NULL NULL NULL +NULL NULL NULL +NULL NULL NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES MUL NULL + char(6) PRI + char(1) YES MUL NULL + char(1) YES NULL +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL, + `` char(6) NOT NULL default '', + `` char(1) default NULL, + `` char(1) default NULL, + PRIMARY KEY (``), + UNIQUE KEY `` (``), + KEY `` (``) +) ENGINE=HEAP DEFAULT CHARSET=sjis +ALTER TABLE `` DROP INDEX ``; +ALTER TABLE `` DROP PRIMARY KEY; +ALTER TABLE `` DROP INDEX ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; +SELECT * FROM ``; + + + + +DESC ``; +Field Type Null Key Default Extra + char(6) +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(6) NOT NULL default '' +) ENGINE=HEAP DEFAULT CHARSET=sjis +ALTER TABLE `\\\` ADD `\\\` char(1) FIRST; +ALTER TABLE `\\\` ADD `\\\` char(1) AFTER `\\\`; +ALTER TABLE `\\\` ADD `\\\` char(1); +ALTER TABLE `\\\` ADD INDEX (`\\\`); +ALTER TABLE `\\\` ADD PRIMARY KEY (`\\\`); +ALTER TABLE `\\\` ADD UNIQUE (`\\\`); +ALTER TABLE `\\\` CHANGE `\\\` `\\` char(1); +ALTER TABLE `\\\` MODIFY `\\\` char(6); +SELECT * FROM `\\\`; +\\ \\\ \\\ \\\ +NULL \\\\\ NULL NULL +NULL \\\\\ NULL NULL +NULL \\\\\ NULL NULL +DESC `\\\`; +Field Type Null Key Default Extra +\\ char(1) YES MUL NULL +\\\ char(6) PRI +\\\ char(1) YES MUL NULL +\\\ char(1) YES NULL +SHOW CREATE TABLE `\\\`; +Table Create Table +\\\ CREATE TABLE `\\\` ( + `\\` char(1) default NULL, + `\\\` char(6) NOT NULL default '', + `\\\` char(1) default NULL, + `\\\` char(1) default NULL, + PRIMARY KEY (`\\\`), + UNIQUE KEY `\\\` (`\\\`), + KEY `\\\` (`\\`) +) ENGINE=HEAP DEFAULT CHARSET=sjis +ALTER TABLE `\\\` DROP INDEX `\\\`; +ALTER TABLE `\\\` DROP PRIMARY KEY; +ALTER TABLE `\\\` DROP INDEX `\\\`; +ALTER TABLE `\\\` DROP `\\`; +ALTER TABLE `\\\` DROP `\\\`; +ALTER TABLE `\\\` DROP `\\\`; +SELECT * FROM `\\\`; +\\\ +\\\\\ +\\\\\ +\\\\\ +DESC `\\\`; +Field Type Null Key Default Extra +\\\ char(6) +SHOW CREATE TABLE `\\\`; +Table Create Table +\\\ CREATE TABLE `\\\` ( + `\\\` char(6) NOT NULL default '' +) ENGINE=HEAP DEFAULT CHARSET=sjis +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE `\\\`; +DROP TABLE `\\\`; +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = sjis engine=BDB; +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = sjis engine=BDB; +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = sjis engine=BDB; +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = sjis engine=BDB; +CREATE TABLE `\\\`(`\\\` char(5)) DEFAULT CHARSET = sjis engine=BDB; +CREATE TABLE `\\\`(`\\\` char(5)) DEFAULT CHARSET = sjis engine=BDB; +INSERT INTO `` VALUES (''),(''),(''); +INSERT INTO `` VALUES (''),(''),(''); +INSERT INTO `\\\` VALUES ('\\\\\'),('\\\\\'),('\\\\\'); +ALTER TABLE `` ADD `` char(1) FIRST; +ALTER TABLE `` ADD `` char(1) AFTER ``; +ALTER TABLE `` ADD `` char(1); +ALTER TABLE `` ADD INDEX (``); +ALTER TABLE `` ADD PRIMARY KEY (``); +ALTER TABLE `` CHANGE `` `` char(1); +ALTER TABLE `` MODIFY `` char(6); +SELECT * FROM ``; + +NULL NULL NULL +NULL NULL NULL +NULL NULL NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES MUL NULL + char(6) PRI + char(1) YES NULL + char(1) YES NULL +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL, + `` char(6) NOT NULL default '', + `` char(1) default NULL, + `` char(1) default NULL, + PRIMARY KEY (``), + KEY `` (``) +) ENGINE=BerkeleyDB DEFAULT CHARSET=sjis +ALTER TABLE `` DROP INDEX ``; +ALTER TABLE `` DROP PRIMARY KEY; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; +SELECT * FROM ``; + + + + +DESC ``; +Field Type Null Key Default Extra + char(6) +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(6) NOT NULL default '' +) ENGINE=BerkeleyDB DEFAULT CHARSET=sjis +ALTER TABLE `` ADD `` char(1) FIRST; +ALTER TABLE `` ADD `` char(1) AFTER ``; +ALTER TABLE `` ADD `` char(1); +ALTER TABLE `` ADD INDEX (``); +ALTER TABLE `` ADD PRIMARY KEY (``); +ALTER TABLE `` CHANGE `` `` char(1); +ALTER TABLE `` MODIFY `` char(6); +SELECT * FROM ``; + +NULL NULL NULL +NULL NULL NULL +NULL NULL NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES MUL NULL + char(6) PRI + char(1) YES NULL + char(1) YES NULL +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL, + `` char(6) NOT NULL default '', + `` char(1) default NULL, + `` char(1) default NULL, + PRIMARY KEY (``), + KEY `` (``) +) ENGINE=BerkeleyDB DEFAULT CHARSET=sjis +ALTER TABLE `` DROP INDEX ``; +ALTER TABLE `` DROP PRIMARY KEY; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; +SELECT * FROM ``; + + + + +DESC ``; +Field Type Null Key Default Extra + char(6) +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(6) NOT NULL default '' +) ENGINE=BerkeleyDB DEFAULT CHARSET=sjis +ALTER TABLE `\\\` ADD `\\\` char(1) FIRST; +ALTER TABLE `\\\` ADD `\\\` char(1) AFTER `\\\`; +ALTER TABLE `\\\` ADD `\\\` char(1); +ALTER TABLE `\\\` ADD INDEX (`\\\`); +ALTER TABLE `\\\` ADD PRIMARY KEY (`\\\`); +ALTER TABLE `\\\` CHANGE `\\\` `\\` char(1); +ALTER TABLE `\\\` MODIFY `\\\` char(6); +SELECT * FROM `\\\`; +\\ \\\ \\\ \\\ +NULL \\\\\ NULL NULL +NULL \\\\\ NULL NULL +NULL \\\\\ NULL NULL +DESC `\\\`; +Field Type Null Key Default Extra +\\ char(1) YES MUL NULL +\\\ char(6) PRI +\\\ char(1) YES NULL +\\\ char(1) YES NULL +SHOW CREATE TABLE `\\\`; +Table Create Table +\\\ CREATE TABLE `\\\` ( + `\\` char(1) default NULL, + `\\\` char(6) NOT NULL default '', + `\\\` char(1) default NULL, + `\\\` char(1) default NULL, + PRIMARY KEY (`\\\`), + KEY `\\\` (`\\`) +) ENGINE=BerkeleyDB DEFAULT CHARSET=sjis +ALTER TABLE `\\\` DROP INDEX `\\\`; +ALTER TABLE `\\\` DROP PRIMARY KEY; +ALTER TABLE `\\\` DROP `\\`; +ALTER TABLE `\\\` DROP `\\\`; +ALTER TABLE `\\\` DROP `\\\`; +SELECT * FROM `\\\`; +\\\ +\\\\\ +\\\\\ +\\\\\ +DESC `\\\`; +Field Type Null Key Default Extra +\\\ char(6) +SHOW CREATE TABLE `\\\`; +Table Create Table +\\\ CREATE TABLE `\\\` ( + `\\\` char(6) NOT NULL default '' +) ENGINE=BerkeleyDB DEFAULT CHARSET=sjis +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE `\\\`; +DROP TABLE `\\\`; diff --git a/mysql-test/suite/jp/r/jp_alter_ucs2.result b/mysql-test/suite/jp/r/jp_alter_ucs2.result new file mode 100755 index 00000000000..2756e5a758d --- /dev/null +++ b/mysql-test/suite/jp/r/jp_alter_ucs2.result @@ -0,0 +1,648 @@ +DROP TABLE IF EXISTS ``; +DROP TABLE IF EXISTS ``; +DROP TABLE IF EXISTS ``; +DROP TABLE IF EXISTS ``; +DROP TABLE IF EXISTS `ݏݏ`; +DROP TABLE IF EXISTS `ޏޏ`; +SET NAMES ujis; +SET character_set_database = ucs2; +SET collation_connection = ucs2_general_ci; +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = ucs2 engine=INNODB; +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = ucs2 engine=INNODB; +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = ucs2 engine=INNODB; +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = ucs2 engine=INNODB; +CREATE TABLE `ݏݏ`(`` char(5)) DEFAULT CHARSET = ucs2 engine=INNODB; +CREATE TABLE `ޏޏ`(`` char(5)) DEFAULT CHARSET = ucs2 engine=INNODB; +INSERT INTO `` VALUES (''),(''),(''); +INSERT INTO `` VALUES (''),(''),(''); +INSERT INTO `ݏݏ` VALUES (''),(''),(''); +ALTER TABLE `` ADD `` char(1) FIRST; +ALTER TABLE `` ADD `` char(1) AFTER ``; +ALTER TABLE `` ADD `` char(1); +ALTER TABLE `` ADD INDEX (``); +ALTER TABLE `` ADD PRIMARY KEY (``); +ALTER TABLE `` ADD UNIQUE (``); +ALTER TABLE `` CHANGE `` `` char(1); +ALTER TABLE `` MODIFY `` char(6); +SELECT * FROM ``; + +NULL NULL NULL +NULL NULL NULL +NULL NULL NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES MUL NULL + char(6) PRI + char(1) YES MUL NULL + char(1) YES NULL +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL, + `` char(6) NOT NULL default '', + `` char(1) default NULL, + `` char(1) default NULL, + PRIMARY KEY (``), + UNIQUE KEY `` (``), + KEY `` (``) +) ENGINE=InnoDB DEFAULT CHARSET=ucs2 +ALTER TABLE `` DROP INDEX ``; +ALTER TABLE `` DROP PRIMARY KEY; +ALTER TABLE `` DROP INDEX ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; +SELECT * FROM ``; + + + + +DESC ``; +Field Type Null Key Default Extra + char(6) +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(6) NOT NULL default '' +) ENGINE=InnoDB DEFAULT CHARSET=ucs2 +ALTER TABLE `` ADD `` char(1) FIRST; +ALTER TABLE `` ADD `` char(1) AFTER ``; +ALTER TABLE `` ADD `` char(1); +ALTER TABLE `` ADD INDEX (``); +ALTER TABLE `` ADD PRIMARY KEY (``); +ALTER TABLE `` ADD UNIQUE (``); +ALTER TABLE `` CHANGE `` `` char(1); +ALTER TABLE `` MODIFY `` char(6); +SELECT * FROM ``; + +NULL NULL NULL +NULL NULL NULL +NULL NULL NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES MUL NULL + char(6) PRI + char(1) YES MUL NULL + char(1) YES NULL +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL, + `` char(6) NOT NULL default '', + `` char(1) default NULL, + `` char(1) default NULL, + PRIMARY KEY (``), + UNIQUE KEY `` (``), + KEY `` (``) +) ENGINE=InnoDB DEFAULT CHARSET=ucs2 +ALTER TABLE `` DROP INDEX ``; +ALTER TABLE `` DROP PRIMARY KEY; +ALTER TABLE `` DROP INDEX ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; +SELECT * FROM ``; + + + + +DESC ``; +Field Type Null Key Default Extra + char(6) +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(6) NOT NULL default '' +) ENGINE=InnoDB DEFAULT CHARSET=ucs2 +ALTER TABLE `ݏݏ` ADD `` char(1) FIRST; +ALTER TABLE `ݏݏ` ADD `` char(1) AFTER ``; +ALTER TABLE `ݏݏ` ADD `` char(1); +ALTER TABLE `ݏݏ` ADD INDEX (``); +ALTER TABLE `ݏݏ` ADD PRIMARY KEY (``); +ALTER TABLE `ݏݏ` ADD UNIQUE (``); +ALTER TABLE `ݏݏ` CHANGE `` `` char(1); +ALTER TABLE `ݏݏ` MODIFY `` char(6); +SELECT * FROM `ݏݏ`; + +NULL NULL NULL +NULL NULL NULL +NULL NULL NULL +DESC `ݏݏ`; +Field Type Null Key Default Extra + char(1) YES MUL NULL + char(6) PRI + char(1) YES MUL NULL + char(1) YES NULL +SHOW CREATE TABLE `ݏݏ`; +Table Create Table +ݏݏ CREATE TABLE `ݏݏ` ( + `` char(1) default NULL, + `` char(6) NOT NULL default '', + `` char(1) default NULL, + `` char(1) default NULL, + PRIMARY KEY (``), + UNIQUE KEY `` (``), + KEY `` (``) +) ENGINE=InnoDB DEFAULT CHARSET=ucs2 +ALTER TABLE `ݏݏ` DROP INDEX ``; +ALTER TABLE `ݏݏ` DROP PRIMARY KEY; +ALTER TABLE `ݏݏ` DROP INDEX ``; +ALTER TABLE `ݏݏ` DROP ``; +ALTER TABLE `ݏݏ` DROP ``; +ALTER TABLE `ݏݏ` DROP ``; +SELECT * FROM `ݏݏ`; + + + + +DESC `ݏݏ`; +Field Type Null Key Default Extra + char(6) +SHOW CREATE TABLE `ݏݏ`; +Table Create Table +ݏݏ CREATE TABLE `ݏݏ` ( + `` char(6) NOT NULL default '' +) ENGINE=InnoDB DEFAULT CHARSET=ucs2 +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE `ݏݏ`; +DROP TABLE `ޏޏ`; +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = ucs2 engine=MYISAM; +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = ucs2 engine=MYISAM; +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = ucs2 engine=MYISAM; +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = ucs2 engine=MYISAM; +CREATE TABLE `ݏݏ`(`` char(5)) DEFAULT CHARSET = ucs2 engine=MYISAM; +CREATE TABLE `ޏޏ`(`` char(5)) DEFAULT CHARSET = ucs2 engine=MYISAM; +INSERT INTO `` VALUES (''),(''),(''); +INSERT INTO `` VALUES (''),(''),(''); +INSERT INTO `ݏݏ` VALUES (''),(''),(''); +ALTER TABLE `` ADD `` char(1) FIRST; +ALTER TABLE `` ADD `` char(1) AFTER ``; +ALTER TABLE `` ADD `` char(1); +ALTER TABLE `` ADD INDEX (``); +ALTER TABLE `` ADD PRIMARY KEY (``); +ALTER TABLE `` ADD UNIQUE (``); +ALTER TABLE `` CHANGE `` `` char(1); +ALTER TABLE `` MODIFY `` char(6); +SELECT * FROM ``; + +NULL NULL NULL +NULL NULL NULL +NULL NULL NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES MUL NULL + char(6) PRI + char(1) YES MUL NULL + char(1) YES NULL +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL, + `` char(6) NOT NULL default '', + `` char(1) default NULL, + `` char(1) default NULL, + PRIMARY KEY (``), + UNIQUE KEY `` (``), + KEY `` (``) +) ENGINE=MyISAM DEFAULT CHARSET=ucs2 +ALTER TABLE `` DROP INDEX ``; +ALTER TABLE `` DROP PRIMARY KEY; +ALTER TABLE `` DROP INDEX ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; +SELECT * FROM ``; + + + + +DESC ``; +Field Type Null Key Default Extra + char(6) +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(6) NOT NULL default '' +) ENGINE=MyISAM DEFAULT CHARSET=ucs2 +ALTER TABLE `` ADD `` char(1) FIRST; +ALTER TABLE `` ADD `` char(1) AFTER ``; +ALTER TABLE `` ADD `` char(1); +ALTER TABLE `` ADD INDEX (``); +ALTER TABLE `` ADD PRIMARY KEY (``); +ALTER TABLE `` ADD UNIQUE (``); +ALTER TABLE `` CHANGE `` `` char(1); +ALTER TABLE `` MODIFY `` char(6); +SELECT * FROM ``; + +NULL NULL NULL +NULL NULL NULL +NULL NULL NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES MUL NULL + char(6) PRI + char(1) YES MUL NULL + char(1) YES NULL +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL, + `` char(6) NOT NULL default '', + `` char(1) default NULL, + `` char(1) default NULL, + PRIMARY KEY (``), + UNIQUE KEY `` (``), + KEY `` (``) +) ENGINE=MyISAM DEFAULT CHARSET=ucs2 +ALTER TABLE `` DROP INDEX ``; +ALTER TABLE `` DROP PRIMARY KEY; +ALTER TABLE `` DROP INDEX ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; +SELECT * FROM ``; + + + + +DESC ``; +Field Type Null Key Default Extra + char(6) +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(6) NOT NULL default '' +) ENGINE=MyISAM DEFAULT CHARSET=ucs2 +ALTER TABLE `ݏݏ` ADD `` char(1) FIRST; +ALTER TABLE `ݏݏ` ADD `` char(1) AFTER ``; +ALTER TABLE `ݏݏ` ADD `` char(1); +ALTER TABLE `ݏݏ` ADD INDEX (``); +ALTER TABLE `ݏݏ` ADD PRIMARY KEY (``); +ALTER TABLE `ݏݏ` ADD UNIQUE (``); +ALTER TABLE `ݏݏ` CHANGE `` `` char(1); +ALTER TABLE `ݏݏ` MODIFY `` char(6); +SELECT * FROM `ݏݏ`; + +NULL NULL NULL +NULL NULL NULL +NULL NULL NULL +DESC `ݏݏ`; +Field Type Null Key Default Extra + char(1) YES MUL NULL + char(6) PRI + char(1) YES MUL NULL + char(1) YES NULL +SHOW CREATE TABLE `ݏݏ`; +Table Create Table +ݏݏ CREATE TABLE `ݏݏ` ( + `` char(1) default NULL, + `` char(6) NOT NULL default '', + `` char(1) default NULL, + `` char(1) default NULL, + PRIMARY KEY (``), + UNIQUE KEY `` (``), + KEY `` (``) +) ENGINE=MyISAM DEFAULT CHARSET=ucs2 +ALTER TABLE `ݏݏ` DROP INDEX ``; +ALTER TABLE `ݏݏ` DROP PRIMARY KEY; +ALTER TABLE `ݏݏ` DROP INDEX ``; +ALTER TABLE `ݏݏ` DROP ``; +ALTER TABLE `ݏݏ` DROP ``; +ALTER TABLE `ݏݏ` DROP ``; +SELECT * FROM `ݏݏ`; + + + + +DESC `ݏݏ`; +Field Type Null Key Default Extra + char(6) +SHOW CREATE TABLE `ݏݏ`; +Table Create Table +ݏݏ CREATE TABLE `ݏݏ` ( + `` char(6) NOT NULL default '' +) ENGINE=MyISAM DEFAULT CHARSET=ucs2 +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE `ݏݏ`; +DROP TABLE `ޏޏ`; +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = ucs2 engine=HEAP; +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = ucs2 engine=HEAP; +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = ucs2 engine=HEAP; +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = ucs2 engine=HEAP; +CREATE TABLE `ݏݏ`(`` char(5)) DEFAULT CHARSET = ucs2 engine=HEAP; +CREATE TABLE `ޏޏ`(`` char(5)) DEFAULT CHARSET = ucs2 engine=HEAP; +INSERT INTO `` VALUES (''),(''),(''); +INSERT INTO `` VALUES (''),(''),(''); +INSERT INTO `ݏݏ` VALUES (''),(''),(''); +ALTER TABLE `` ADD `` char(1) FIRST; +ALTER TABLE `` ADD `` char(1) AFTER ``; +ALTER TABLE `` ADD `` char(1); +ALTER TABLE `` ADD INDEX (``); +ALTER TABLE `` ADD PRIMARY KEY (``); +ALTER TABLE `` ADD UNIQUE (``); +ALTER TABLE `` CHANGE `` `` char(1); +ALTER TABLE `` MODIFY `` char(6); +SELECT * FROM ``; + +NULL NULL NULL +NULL NULL NULL +NULL NULL NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES MUL NULL + char(6) PRI + char(1) YES MUL NULL + char(1) YES NULL +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL, + `` char(6) NOT NULL default '', + `` char(1) default NULL, + `` char(1) default NULL, + PRIMARY KEY (``), + UNIQUE KEY `` (``), + KEY `` (``) +) ENGINE=HEAP DEFAULT CHARSET=ucs2 +ALTER TABLE `` DROP INDEX ``; +ALTER TABLE `` DROP PRIMARY KEY; +ALTER TABLE `` DROP INDEX ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; +SELECT * FROM ``; + + + + +DESC ``; +Field Type Null Key Default Extra + char(6) +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(6) NOT NULL default '' +) ENGINE=HEAP DEFAULT CHARSET=ucs2 +ALTER TABLE `` ADD `` char(1) FIRST; +ALTER TABLE `` ADD `` char(1) AFTER ``; +ALTER TABLE `` ADD `` char(1); +ALTER TABLE `` ADD INDEX (``); +ALTER TABLE `` ADD PRIMARY KEY (``); +ALTER TABLE `` ADD UNIQUE (``); +ALTER TABLE `` CHANGE `` `` char(1); +ALTER TABLE `` MODIFY `` char(6); +SELECT * FROM ``; + +NULL NULL NULL +NULL NULL NULL +NULL NULL NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES MUL NULL + char(6) PRI + char(1) YES MUL NULL + char(1) YES NULL +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL, + `` char(6) NOT NULL default '', + `` char(1) default NULL, + `` char(1) default NULL, + PRIMARY KEY (``), + UNIQUE KEY `` (``), + KEY `` (``) +) ENGINE=HEAP DEFAULT CHARSET=ucs2 +ALTER TABLE `` DROP INDEX ``; +ALTER TABLE `` DROP PRIMARY KEY; +ALTER TABLE `` DROP INDEX ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; +SELECT * FROM ``; + + + + +DESC ``; +Field Type Null Key Default Extra + char(6) +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(6) NOT NULL default '' +) ENGINE=HEAP DEFAULT CHARSET=ucs2 +ALTER TABLE `ݏݏ` ADD `` char(1) FIRST; +ALTER TABLE `ݏݏ` ADD `` char(1) AFTER ``; +ALTER TABLE `ݏݏ` ADD `` char(1); +ALTER TABLE `ݏݏ` ADD INDEX (``); +ALTER TABLE `ݏݏ` ADD PRIMARY KEY (``); +ALTER TABLE `ݏݏ` ADD UNIQUE (``); +ALTER TABLE `ݏݏ` CHANGE `` `` char(1); +ALTER TABLE `ݏݏ` MODIFY `` char(6); +SELECT * FROM `ݏݏ`; + +NULL NULL NULL +NULL NULL NULL +NULL NULL NULL +DESC `ݏݏ`; +Field Type Null Key Default Extra + char(1) YES MUL NULL + char(6) PRI + char(1) YES MUL NULL + char(1) YES NULL +SHOW CREATE TABLE `ݏݏ`; +Table Create Table +ݏݏ CREATE TABLE `ݏݏ` ( + `` char(1) default NULL, + `` char(6) NOT NULL default '', + `` char(1) default NULL, + `` char(1) default NULL, + PRIMARY KEY (``), + UNIQUE KEY `` (``), + KEY `` (``) +) ENGINE=HEAP DEFAULT CHARSET=ucs2 +ALTER TABLE `ݏݏ` DROP INDEX ``; +ALTER TABLE `ݏݏ` DROP PRIMARY KEY; +ALTER TABLE `ݏݏ` DROP INDEX ``; +ALTER TABLE `ݏݏ` DROP ``; +ALTER TABLE `ݏݏ` DROP ``; +ALTER TABLE `ݏݏ` DROP ``; +SELECT * FROM `ݏݏ`; + + + + +DESC `ݏݏ`; +Field Type Null Key Default Extra + char(6) +SHOW CREATE TABLE `ݏݏ`; +Table Create Table +ݏݏ CREATE TABLE `ݏݏ` ( + `` char(6) NOT NULL default '' +) ENGINE=HEAP DEFAULT CHARSET=ucs2 +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE `ݏݏ`; +DROP TABLE `ޏޏ`; +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = ucs2 engine=BDB; +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = ucs2 engine=BDB; +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = ucs2 engine=BDB; +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = ucs2 engine=BDB; +CREATE TABLE `ݏݏ`(`` char(5)) DEFAULT CHARSET = ucs2 engine=BDB; +CREATE TABLE `ޏޏ`(`` char(5)) DEFAULT CHARSET = ucs2 engine=BDB; +INSERT INTO `` VALUES (''),(''),(''); +INSERT INTO `` VALUES (''),(''),(''); +INSERT INTO `ݏݏ` VALUES (''),(''),(''); +ALTER TABLE `` ADD `` char(1) FIRST; +ALTER TABLE `` ADD `` char(1) AFTER ``; +ALTER TABLE `` ADD `` char(1); +ALTER TABLE `` ADD INDEX (``); +ALTER TABLE `` ADD PRIMARY KEY (``); +ALTER TABLE `` CHANGE `` `` char(1); +ALTER TABLE `` MODIFY `` char(6); +SELECT * FROM ``; + +NULL NULL NULL +NULL NULL NULL +NULL NULL NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES MUL NULL + char(6) PRI + char(1) YES NULL + char(1) YES NULL +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL, + `` char(6) NOT NULL default '', + `` char(1) default NULL, + `` char(1) default NULL, + PRIMARY KEY (``), + KEY `` (``) +) ENGINE=BerkeleyDB DEFAULT CHARSET=ucs2 +ALTER TABLE `` DROP INDEX ``; +ALTER TABLE `` DROP PRIMARY KEY; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; +SELECT * FROM ``; + + + + +DESC ``; +Field Type Null Key Default Extra + char(6) +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(6) NOT NULL default '' +) ENGINE=BerkeleyDB DEFAULT CHARSET=ucs2 +ALTER TABLE `` ADD `` char(1) FIRST; +ALTER TABLE `` ADD `` char(1) AFTER ``; +ALTER TABLE `` ADD `` char(1); +ALTER TABLE `` ADD INDEX (``); +ALTER TABLE `` ADD PRIMARY KEY (``); +ALTER TABLE `` CHANGE `` `` char(1); +ALTER TABLE `` MODIFY `` char(6); +SELECT * FROM ``; + +NULL NULL NULL +NULL NULL NULL +NULL NULL NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES MUL NULL + char(6) PRI + char(1) YES NULL + char(1) YES NULL +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL, + `` char(6) NOT NULL default '', + `` char(1) default NULL, + `` char(1) default NULL, + PRIMARY KEY (``), + KEY `` (``) +) ENGINE=BerkeleyDB DEFAULT CHARSET=ucs2 +ALTER TABLE `` DROP INDEX ``; +ALTER TABLE `` DROP PRIMARY KEY; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; +SELECT * FROM ``; + + + + +DESC ``; +Field Type Null Key Default Extra + char(6) +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(6) NOT NULL default '' +) ENGINE=BerkeleyDB DEFAULT CHARSET=ucs2 +ALTER TABLE `ݏݏ` ADD `` char(1) FIRST; +ALTER TABLE `ݏݏ` ADD `` char(1) AFTER ``; +ALTER TABLE `ݏݏ` ADD `` char(1); +ALTER TABLE `ݏݏ` ADD INDEX (``); +ALTER TABLE `ݏݏ` ADD PRIMARY KEY (``); +ALTER TABLE `ݏݏ` CHANGE `` `` char(1); +ALTER TABLE `ݏݏ` MODIFY `` char(6); +SELECT * FROM `ݏݏ`; + +NULL NULL NULL +NULL NULL NULL +NULL NULL NULL +DESC `ݏݏ`; +Field Type Null Key Default Extra + char(1) YES MUL NULL + char(6) PRI + char(1) YES NULL + char(1) YES NULL +SHOW CREATE TABLE `ݏݏ`; +Table Create Table +ݏݏ CREATE TABLE `ݏݏ` ( + `` char(1) default NULL, + `` char(6) NOT NULL default '', + `` char(1) default NULL, + `` char(1) default NULL, + PRIMARY KEY (``), + KEY `` (``) +) ENGINE=BerkeleyDB DEFAULT CHARSET=ucs2 +ALTER TABLE `ݏݏ` DROP INDEX ``; +ALTER TABLE `ݏݏ` DROP PRIMARY KEY; +ALTER TABLE `ݏݏ` DROP ``; +ALTER TABLE `ݏݏ` DROP ``; +ALTER TABLE `ݏݏ` DROP ``; +SELECT * FROM `ݏݏ`; + + + + +DESC `ݏݏ`; +Field Type Null Key Default Extra + char(6) +SHOW CREATE TABLE `ݏݏ`; +Table Create Table +ݏݏ CREATE TABLE `ݏݏ` ( + `` char(6) NOT NULL default '' +) ENGINE=BerkeleyDB DEFAULT CHARSET=ucs2 +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE `ݏݏ`; +DROP TABLE `ޏޏ`; diff --git a/mysql-test/suite/jp/r/jp_alter_ujis.result b/mysql-test/suite/jp/r/jp_alter_ujis.result new file mode 100755 index 00000000000..afa3c79cbce --- /dev/null +++ b/mysql-test/suite/jp/r/jp_alter_ujis.result @@ -0,0 +1,647 @@ +DROP TABLE IF EXISTS ``; +DROP TABLE IF EXISTS ``; +DROP TABLE IF EXISTS ``; +DROP TABLE IF EXISTS ``; +DROP TABLE IF EXISTS `ݏݏ`; +DROP TABLE IF EXISTS `ޏޏ`; +SET NAMES ujis; +SET character_set_database = ujis; +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = ujis engine=INNODB; +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = ujis engine=INNODB; +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = ujis engine=INNODB; +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = ujis engine=INNODB; +CREATE TABLE `ݏݏ`(`` char(5)) DEFAULT CHARSET = ujis engine=INNODB; +CREATE TABLE `ޏޏ`(`` char(5)) DEFAULT CHARSET = ujis engine=INNODB; +INSERT INTO `` VALUES (''),(''),(''); +INSERT INTO `` VALUES (''),(''),(''); +INSERT INTO `ݏݏ` VALUES (''),(''),(''); +ALTER TABLE `` ADD `` char(1) FIRST; +ALTER TABLE `` ADD `` char(1) AFTER ``; +ALTER TABLE `` ADD `` char(1); +ALTER TABLE `` ADD INDEX (``); +ALTER TABLE `` ADD PRIMARY KEY (``); +ALTER TABLE `` ADD UNIQUE (``); +ALTER TABLE `` CHANGE `` `` char(1); +ALTER TABLE `` MODIFY `` char(6); +SELECT * FROM ``; + +NULL NULL NULL +NULL NULL NULL +NULL NULL NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES MUL NULL + char(6) PRI + char(1) YES MUL NULL + char(1) YES NULL +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL, + `` char(6) NOT NULL default '', + `` char(1) default NULL, + `` char(1) default NULL, + PRIMARY KEY (``), + UNIQUE KEY `` (``), + KEY `` (``) +) ENGINE=InnoDB DEFAULT CHARSET=ujis +ALTER TABLE `` DROP INDEX ``; +ALTER TABLE `` DROP PRIMARY KEY; +ALTER TABLE `` DROP INDEX ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; +SELECT * FROM ``; + + + + +DESC ``; +Field Type Null Key Default Extra + char(6) +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(6) NOT NULL default '' +) ENGINE=InnoDB DEFAULT CHARSET=ujis +ALTER TABLE `` ADD `` char(1) FIRST; +ALTER TABLE `` ADD `` char(1) AFTER ``; +ALTER TABLE `` ADD `` char(1); +ALTER TABLE `` ADD INDEX (``); +ALTER TABLE `` ADD PRIMARY KEY (``); +ALTER TABLE `` ADD UNIQUE (``); +ALTER TABLE `` CHANGE `` `` char(1); +ALTER TABLE `` MODIFY `` char(6); +SELECT * FROM ``; + +NULL NULL NULL +NULL NULL NULL +NULL NULL NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES MUL NULL + char(6) PRI + char(1) YES MUL NULL + char(1) YES NULL +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL, + `` char(6) NOT NULL default '', + `` char(1) default NULL, + `` char(1) default NULL, + PRIMARY KEY (``), + UNIQUE KEY `` (``), + KEY `` (``) +) ENGINE=InnoDB DEFAULT CHARSET=ujis +ALTER TABLE `` DROP INDEX ``; +ALTER TABLE `` DROP PRIMARY KEY; +ALTER TABLE `` DROP INDEX ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; +SELECT * FROM ``; + + + + +DESC ``; +Field Type Null Key Default Extra + char(6) +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(6) NOT NULL default '' +) ENGINE=InnoDB DEFAULT CHARSET=ujis +ALTER TABLE `ݏݏ` ADD `` char(1) FIRST; +ALTER TABLE `ݏݏ` ADD `` char(1) AFTER ``; +ALTER TABLE `ݏݏ` ADD `` char(1); +ALTER TABLE `ݏݏ` ADD INDEX (``); +ALTER TABLE `ݏݏ` ADD PRIMARY KEY (``); +ALTER TABLE `ݏݏ` ADD UNIQUE (``); +ALTER TABLE `ݏݏ` CHANGE `` `` char(1); +ALTER TABLE `ݏݏ` MODIFY `` char(6); +SELECT * FROM `ݏݏ`; + +NULL NULL NULL +NULL NULL NULL +NULL NULL NULL +DESC `ݏݏ`; +Field Type Null Key Default Extra + char(1) YES MUL NULL + char(6) PRI + char(1) YES MUL NULL + char(1) YES NULL +SHOW CREATE TABLE `ݏݏ`; +Table Create Table +ݏݏ CREATE TABLE `ݏݏ` ( + `` char(1) default NULL, + `` char(6) NOT NULL default '', + `` char(1) default NULL, + `` char(1) default NULL, + PRIMARY KEY (``), + UNIQUE KEY `` (``), + KEY `` (``) +) ENGINE=InnoDB DEFAULT CHARSET=ujis +ALTER TABLE `ݏݏ` DROP INDEX ``; +ALTER TABLE `ݏݏ` DROP PRIMARY KEY; +ALTER TABLE `ݏݏ` DROP INDEX ``; +ALTER TABLE `ݏݏ` DROP ``; +ALTER TABLE `ݏݏ` DROP ``; +ALTER TABLE `ݏݏ` DROP ``; +SELECT * FROM `ݏݏ`; + + + + +DESC `ݏݏ`; +Field Type Null Key Default Extra + char(6) +SHOW CREATE TABLE `ݏݏ`; +Table Create Table +ݏݏ CREATE TABLE `ݏݏ` ( + `` char(6) NOT NULL default '' +) ENGINE=InnoDB DEFAULT CHARSET=ujis +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE `ݏݏ`; +DROP TABLE `ޏޏ`; +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = ujis engine=MYISAM; +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = ujis engine=MYISAM; +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = ujis engine=MYISAM; +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = ujis engine=MYISAM; +CREATE TABLE `ݏݏ`(`` char(5)) DEFAULT CHARSET = ujis engine=MYISAM; +CREATE TABLE `ޏޏ`(`` char(5)) DEFAULT CHARSET = ujis engine=MYISAM; +INSERT INTO `` VALUES (''),(''),(''); +INSERT INTO `` VALUES (''),(''),(''); +INSERT INTO `ݏݏ` VALUES (''),(''),(''); +ALTER TABLE `` ADD `` char(1) FIRST; +ALTER TABLE `` ADD `` char(1) AFTER ``; +ALTER TABLE `` ADD `` char(1); +ALTER TABLE `` ADD INDEX (``); +ALTER TABLE `` ADD PRIMARY KEY (``); +ALTER TABLE `` ADD UNIQUE (``); +ALTER TABLE `` CHANGE `` `` char(1); +ALTER TABLE `` MODIFY `` char(6); +SELECT * FROM ``; + +NULL NULL NULL +NULL NULL NULL +NULL NULL NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES MUL NULL + char(6) PRI + char(1) YES MUL NULL + char(1) YES NULL +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL, + `` char(6) NOT NULL default '', + `` char(1) default NULL, + `` char(1) default NULL, + PRIMARY KEY (``), + UNIQUE KEY `` (``), + KEY `` (``) +) ENGINE=MyISAM DEFAULT CHARSET=ujis +ALTER TABLE `` DROP INDEX ``; +ALTER TABLE `` DROP PRIMARY KEY; +ALTER TABLE `` DROP INDEX ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; +SELECT * FROM ``; + + + + +DESC ``; +Field Type Null Key Default Extra + char(6) +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(6) NOT NULL default '' +) ENGINE=MyISAM DEFAULT CHARSET=ujis +ALTER TABLE `` ADD `` char(1) FIRST; +ALTER TABLE `` ADD `` char(1) AFTER ``; +ALTER TABLE `` ADD `` char(1); +ALTER TABLE `` ADD INDEX (``); +ALTER TABLE `` ADD PRIMARY KEY (``); +ALTER TABLE `` ADD UNIQUE (``); +ALTER TABLE `` CHANGE `` `` char(1); +ALTER TABLE `` MODIFY `` char(6); +SELECT * FROM ``; + +NULL NULL NULL +NULL NULL NULL +NULL NULL NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES MUL NULL + char(6) PRI + char(1) YES MUL NULL + char(1) YES NULL +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL, + `` char(6) NOT NULL default '', + `` char(1) default NULL, + `` char(1) default NULL, + PRIMARY KEY (``), + UNIQUE KEY `` (``), + KEY `` (``) +) ENGINE=MyISAM DEFAULT CHARSET=ujis +ALTER TABLE `` DROP INDEX ``; +ALTER TABLE `` DROP PRIMARY KEY; +ALTER TABLE `` DROP INDEX ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; +SELECT * FROM ``; + + + + +DESC ``; +Field Type Null Key Default Extra + char(6) +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(6) NOT NULL default '' +) ENGINE=MyISAM DEFAULT CHARSET=ujis +ALTER TABLE `ݏݏ` ADD `` char(1) FIRST; +ALTER TABLE `ݏݏ` ADD `` char(1) AFTER ``; +ALTER TABLE `ݏݏ` ADD `` char(1); +ALTER TABLE `ݏݏ` ADD INDEX (``); +ALTER TABLE `ݏݏ` ADD PRIMARY KEY (``); +ALTER TABLE `ݏݏ` ADD UNIQUE (``); +ALTER TABLE `ݏݏ` CHANGE `` `` char(1); +ALTER TABLE `ݏݏ` MODIFY `` char(6); +SELECT * FROM `ݏݏ`; + +NULL NULL NULL +NULL NULL NULL +NULL NULL NULL +DESC `ݏݏ`; +Field Type Null Key Default Extra + char(1) YES MUL NULL + char(6) PRI + char(1) YES MUL NULL + char(1) YES NULL +SHOW CREATE TABLE `ݏݏ`; +Table Create Table +ݏݏ CREATE TABLE `ݏݏ` ( + `` char(1) default NULL, + `` char(6) NOT NULL default '', + `` char(1) default NULL, + `` char(1) default NULL, + PRIMARY KEY (``), + UNIQUE KEY `` (``), + KEY `` (``) +) ENGINE=MyISAM DEFAULT CHARSET=ujis +ALTER TABLE `ݏݏ` DROP INDEX ``; +ALTER TABLE `ݏݏ` DROP PRIMARY KEY; +ALTER TABLE `ݏݏ` DROP INDEX ``; +ALTER TABLE `ݏݏ` DROP ``; +ALTER TABLE `ݏݏ` DROP ``; +ALTER TABLE `ݏݏ` DROP ``; +SELECT * FROM `ݏݏ`; + + + + +DESC `ݏݏ`; +Field Type Null Key Default Extra + char(6) +SHOW CREATE TABLE `ݏݏ`; +Table Create Table +ݏݏ CREATE TABLE `ݏݏ` ( + `` char(6) NOT NULL default '' +) ENGINE=MyISAM DEFAULT CHARSET=ujis +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE `ݏݏ`; +DROP TABLE `ޏޏ`; +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = ujis engine=HEAP; +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = ujis engine=HEAP; +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = ujis engine=HEAP; +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = ujis engine=HEAP; +CREATE TABLE `ݏݏ`(`` char(5)) DEFAULT CHARSET = ujis engine=HEAP; +CREATE TABLE `ޏޏ`(`` char(5)) DEFAULT CHARSET = ujis engine=HEAP; +INSERT INTO `` VALUES (''),(''),(''); +INSERT INTO `` VALUES (''),(''),(''); +INSERT INTO `ݏݏ` VALUES (''),(''),(''); +ALTER TABLE `` ADD `` char(1) FIRST; +ALTER TABLE `` ADD `` char(1) AFTER ``; +ALTER TABLE `` ADD `` char(1); +ALTER TABLE `` ADD INDEX (``); +ALTER TABLE `` ADD PRIMARY KEY (``); +ALTER TABLE `` ADD UNIQUE (``); +ALTER TABLE `` CHANGE `` `` char(1); +ALTER TABLE `` MODIFY `` char(6); +SELECT * FROM ``; + +NULL NULL NULL +NULL NULL NULL +NULL NULL NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES MUL NULL + char(6) PRI + char(1) YES MUL NULL + char(1) YES NULL +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL, + `` char(6) NOT NULL default '', + `` char(1) default NULL, + `` char(1) default NULL, + PRIMARY KEY (``), + UNIQUE KEY `` (``), + KEY `` (``) +) ENGINE=HEAP DEFAULT CHARSET=ujis +ALTER TABLE `` DROP INDEX ``; +ALTER TABLE `` DROP PRIMARY KEY; +ALTER TABLE `` DROP INDEX ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; +SELECT * FROM ``; + + + + +DESC ``; +Field Type Null Key Default Extra + char(6) +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(6) NOT NULL default '' +) ENGINE=HEAP DEFAULT CHARSET=ujis +ALTER TABLE `` ADD `` char(1) FIRST; +ALTER TABLE `` ADD `` char(1) AFTER ``; +ALTER TABLE `` ADD `` char(1); +ALTER TABLE `` ADD INDEX (``); +ALTER TABLE `` ADD PRIMARY KEY (``); +ALTER TABLE `` ADD UNIQUE (``); +ALTER TABLE `` CHANGE `` `` char(1); +ALTER TABLE `` MODIFY `` char(6); +SELECT * FROM ``; + +NULL NULL NULL +NULL NULL NULL +NULL NULL NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES MUL NULL + char(6) PRI + char(1) YES MUL NULL + char(1) YES NULL +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL, + `` char(6) NOT NULL default '', + `` char(1) default NULL, + `` char(1) default NULL, + PRIMARY KEY (``), + UNIQUE KEY `` (``), + KEY `` (``) +) ENGINE=HEAP DEFAULT CHARSET=ujis +ALTER TABLE `` DROP INDEX ``; +ALTER TABLE `` DROP PRIMARY KEY; +ALTER TABLE `` DROP INDEX ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; +SELECT * FROM ``; + + + + +DESC ``; +Field Type Null Key Default Extra + char(6) +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(6) NOT NULL default '' +) ENGINE=HEAP DEFAULT CHARSET=ujis +ALTER TABLE `ݏݏ` ADD `` char(1) FIRST; +ALTER TABLE `ݏݏ` ADD `` char(1) AFTER ``; +ALTER TABLE `ݏݏ` ADD `` char(1); +ALTER TABLE `ݏݏ` ADD INDEX (``); +ALTER TABLE `ݏݏ` ADD PRIMARY KEY (``); +ALTER TABLE `ݏݏ` ADD UNIQUE (``); +ALTER TABLE `ݏݏ` CHANGE `` `` char(1); +ALTER TABLE `ݏݏ` MODIFY `` char(6); +SELECT * FROM `ݏݏ`; + +NULL NULL NULL +NULL NULL NULL +NULL NULL NULL +DESC `ݏݏ`; +Field Type Null Key Default Extra + char(1) YES MUL NULL + char(6) PRI + char(1) YES MUL NULL + char(1) YES NULL +SHOW CREATE TABLE `ݏݏ`; +Table Create Table +ݏݏ CREATE TABLE `ݏݏ` ( + `` char(1) default NULL, + `` char(6) NOT NULL default '', + `` char(1) default NULL, + `` char(1) default NULL, + PRIMARY KEY (``), + UNIQUE KEY `` (``), + KEY `` (``) +) ENGINE=HEAP DEFAULT CHARSET=ujis +ALTER TABLE `ݏݏ` DROP INDEX ``; +ALTER TABLE `ݏݏ` DROP PRIMARY KEY; +ALTER TABLE `ݏݏ` DROP INDEX ``; +ALTER TABLE `ݏݏ` DROP ``; +ALTER TABLE `ݏݏ` DROP ``; +ALTER TABLE `ݏݏ` DROP ``; +SELECT * FROM `ݏݏ`; + + + + +DESC `ݏݏ`; +Field Type Null Key Default Extra + char(6) +SHOW CREATE TABLE `ݏݏ`; +Table Create Table +ݏݏ CREATE TABLE `ݏݏ` ( + `` char(6) NOT NULL default '' +) ENGINE=HEAP DEFAULT CHARSET=ujis +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE `ݏݏ`; +DROP TABLE `ޏޏ`; +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = ujis engine=BDB; +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = ujis engine=BDB; +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = ujis engine=BDB; +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = ujis engine=BDB; +CREATE TABLE `ݏݏ`(`` char(5)) DEFAULT CHARSET = ujis engine=BDB; +CREATE TABLE `ޏޏ`(`` char(5)) DEFAULT CHARSET = ujis engine=BDB; +INSERT INTO `` VALUES (''),(''),(''); +INSERT INTO `` VALUES (''),(''),(''); +INSERT INTO `ݏݏ` VALUES (''),(''),(''); +ALTER TABLE `` ADD `` char(1) FIRST; +ALTER TABLE `` ADD `` char(1) AFTER ``; +ALTER TABLE `` ADD `` char(1); +ALTER TABLE `` ADD INDEX (``); +ALTER TABLE `` ADD PRIMARY KEY (``); +ALTER TABLE `` CHANGE `` `` char(1); +ALTER TABLE `` MODIFY `` char(6); +SELECT * FROM ``; + +NULL NULL NULL +NULL NULL NULL +NULL NULL NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES MUL NULL + char(6) PRI + char(1) YES NULL + char(1) YES NULL +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL, + `` char(6) NOT NULL default '', + `` char(1) default NULL, + `` char(1) default NULL, + PRIMARY KEY (``), + KEY `` (``) +) ENGINE=BerkeleyDB DEFAULT CHARSET=ujis +ALTER TABLE `` DROP INDEX ``; +ALTER TABLE `` DROP PRIMARY KEY; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; +SELECT * FROM ``; + + + + +DESC ``; +Field Type Null Key Default Extra + char(6) +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(6) NOT NULL default '' +) ENGINE=BerkeleyDB DEFAULT CHARSET=ujis +ALTER TABLE `` ADD `` char(1) FIRST; +ALTER TABLE `` ADD `` char(1) AFTER ``; +ALTER TABLE `` ADD `` char(1); +ALTER TABLE `` ADD INDEX (``); +ALTER TABLE `` ADD PRIMARY KEY (``); +ALTER TABLE `` CHANGE `` `` char(1); +ALTER TABLE `` MODIFY `` char(6); +SELECT * FROM ``; + +NULL NULL NULL +NULL NULL NULL +NULL NULL NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES MUL NULL + char(6) PRI + char(1) YES NULL + char(1) YES NULL +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL, + `` char(6) NOT NULL default '', + `` char(1) default NULL, + `` char(1) default NULL, + PRIMARY KEY (``), + KEY `` (``) +) ENGINE=BerkeleyDB DEFAULT CHARSET=ujis +ALTER TABLE `` DROP INDEX ``; +ALTER TABLE `` DROP PRIMARY KEY; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; +SELECT * FROM ``; + + + + +DESC ``; +Field Type Null Key Default Extra + char(6) +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(6) NOT NULL default '' +) ENGINE=BerkeleyDB DEFAULT CHARSET=ujis +ALTER TABLE `ݏݏ` ADD `` char(1) FIRST; +ALTER TABLE `ݏݏ` ADD `` char(1) AFTER ``; +ALTER TABLE `ݏݏ` ADD `` char(1); +ALTER TABLE `ݏݏ` ADD INDEX (``); +ALTER TABLE `ݏݏ` ADD PRIMARY KEY (``); +ALTER TABLE `ݏݏ` CHANGE `` `` char(1); +ALTER TABLE `ݏݏ` MODIFY `` char(6); +SELECT * FROM `ݏݏ`; + +NULL NULL NULL +NULL NULL NULL +NULL NULL NULL +DESC `ݏݏ`; +Field Type Null Key Default Extra + char(1) YES MUL NULL + char(6) PRI + char(1) YES NULL + char(1) YES NULL +SHOW CREATE TABLE `ݏݏ`; +Table Create Table +ݏݏ CREATE TABLE `ݏݏ` ( + `` char(1) default NULL, + `` char(6) NOT NULL default '', + `` char(1) default NULL, + `` char(1) default NULL, + PRIMARY KEY (``), + KEY `` (``) +) ENGINE=BerkeleyDB DEFAULT CHARSET=ujis +ALTER TABLE `ݏݏ` DROP INDEX ``; +ALTER TABLE `ݏݏ` DROP PRIMARY KEY; +ALTER TABLE `ݏݏ` DROP ``; +ALTER TABLE `ݏݏ` DROP ``; +ALTER TABLE `ݏݏ` DROP ``; +SELECT * FROM `ݏݏ`; + + + + +DESC `ݏݏ`; +Field Type Null Key Default Extra + char(6) +SHOW CREATE TABLE `ݏݏ`; +Table Create Table +ݏݏ CREATE TABLE `ݏݏ` ( + `` char(6) NOT NULL default '' +) ENGINE=BerkeleyDB DEFAULT CHARSET=ujis +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE `ݏݏ`; +DROP TABLE `ޏޏ`; diff --git a/mysql-test/suite/jp/r/jp_alter_utf8.result b/mysql-test/suite/jp/r/jp_alter_utf8.result new file mode 100755 index 00000000000..19475e06a87 --- /dev/null +++ b/mysql-test/suite/jp/r/jp_alter_utf8.result @@ -0,0 +1,647 @@ +DROP TABLE IF EXISTS `アアア`; +DROP TABLE IF EXISTS `イイイ`; +DROP TABLE IF EXISTS `あああ`; +DROP TABLE IF EXISTS `いいい`; +DROP TABLE IF EXISTS `龖龖龖`; +DROP TABLE IF EXISTS `龗龗龗`; +SET NAMES utf8; +SET character_set_database = utf8; +CREATE TABLE `アアア`(`キキキ` char(5)) DEFAULT CHARSET = utf8 engine=INNODB; +CREATE TABLE `イイイ`(`ケケケ` char(5)) DEFAULT CHARSET = utf8 engine=INNODB; +CREATE TABLE `あああ`(`ききき` char(5)) DEFAULT CHARSET = utf8 engine=INNODB; +CREATE TABLE `いいい`(`けけけ` char(5)) DEFAULT CHARSET = utf8 engine=INNODB; +CREATE TABLE `龖龖龖`(`丂丂丂` char(5)) DEFAULT CHARSET = utf8 engine=INNODB; +CREATE TABLE `龗龗龗`(`乚乚乚` char(5)) DEFAULT CHARSET = utf8 engine=INNODB; +INSERT INTO `アアア` VALUES ('アアアアア'),('イイイイイ'),('ウウウウウ'); +INSERT INTO `あああ` VALUES ('あああああ'),('いいいいい'),('ううううう'); +INSERT INTO `龖龖龖` VALUES ('丂丂丂丂丂'),('丄丄丄丄丄'),('丅丅丅丅丅'); +ALTER TABLE `アアア` ADD `カカカ` char(1) FIRST; +ALTER TABLE `アアア` ADD `ククク` char(1) AFTER `キキキ`; +ALTER TABLE `アアア` ADD `ケケケ` char(1); +ALTER TABLE `アアア` ADD INDEX (`カカカ`); +ALTER TABLE `アアア` ADD PRIMARY KEY (`キキキ`); +ALTER TABLE `アアア` ADD UNIQUE (`ククク`); +ALTER TABLE `アアア` CHANGE `カカカ` `カカ` char(1); +ALTER TABLE `アアア` MODIFY `キキキ` char(6); +SELECT * FROM `アアア`; +カカ キキキ ククク ケケケ +NULL アアアアア NULL NULL +NULL イイイイイ NULL NULL +NULL ウウウウウ NULL NULL +DESC `アアア`; +Field Type Null Key Default Extra +カカ char(1) YES MUL NULL +キキキ char(6) PRI +ククク char(1) YES MUL NULL +ケケケ char(1) YES NULL +SHOW CREATE TABLE `アアア`; +Table Create Table +アアア CREATE TABLE `アアア` ( + `カカ` char(1) default NULL, + `キキキ` char(6) NOT NULL default '', + `ククク` char(1) default NULL, + `ケケケ` char(1) default NULL, + PRIMARY KEY (`キキキ`), + UNIQUE KEY `ククク` (`ククク`), + KEY `カカカ` (`カカ`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 +ALTER TABLE `アアア` DROP INDEX `カカカ`; +ALTER TABLE `アアア` DROP PRIMARY KEY; +ALTER TABLE `アアア` DROP INDEX `ククク`; +ALTER TABLE `アアア` DROP `カカ`; +ALTER TABLE `アアア` DROP `ククク`; +ALTER TABLE `アアア` DROP `ケケケ`; +SELECT * FROM `アアア`; +キキキ +アアアアア +イイイイイ +ウウウウウ +DESC `アアア`; +Field Type Null Key Default Extra +キキキ char(6) +SHOW CREATE TABLE `アアア`; +Table Create Table +アアア CREATE TABLE `アアア` ( + `キキキ` char(6) NOT NULL default '' +) ENGINE=InnoDB DEFAULT CHARSET=utf8 +ALTER TABLE `あああ` ADD `かかか` char(1) FIRST; +ALTER TABLE `あああ` ADD `くくく` char(1) AFTER `ききき`; +ALTER TABLE `あああ` ADD `けけけ` char(1); +ALTER TABLE `あああ` ADD INDEX (`かかか`); +ALTER TABLE `あああ` ADD PRIMARY KEY (`ききき`); +ALTER TABLE `あああ` ADD UNIQUE (`くくく`); +ALTER TABLE `あああ` CHANGE `かかか` `かか` char(1); +ALTER TABLE `あああ` MODIFY `ききき` char(6); +SELECT * FROM `あああ`; +かか ききき くくく けけけ +NULL あああああ NULL NULL +NULL いいいいい NULL NULL +NULL ううううう NULL NULL +DESC `あああ`; +Field Type Null Key Default Extra +かか char(1) YES MUL NULL +ききき char(6) PRI +くくく char(1) YES MUL NULL +けけけ char(1) YES NULL +SHOW CREATE TABLE `あああ`; +Table Create Table +あああ CREATE TABLE `あああ` ( + `かか` char(1) default NULL, + `ききき` char(6) NOT NULL default '', + `くくく` char(1) default NULL, + `けけけ` char(1) default NULL, + PRIMARY KEY (`ききき`), + UNIQUE KEY `くくく` (`くくく`), + KEY `かかか` (`かか`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 +ALTER TABLE `あああ` DROP INDEX `かかか`; +ALTER TABLE `あああ` DROP PRIMARY KEY; +ALTER TABLE `あああ` DROP INDEX `くくく`; +ALTER TABLE `あああ` DROP `かか`; +ALTER TABLE `あああ` DROP `くくく`; +ALTER TABLE `あああ` DROP `けけけ`; +SELECT * FROM `あああ`; +ききき +あああああ +いいいいい +ううううう +DESC `あああ`; +Field Type Null Key Default Extra +ききき char(6) +SHOW CREATE TABLE `あああ`; +Table Create Table +あああ CREATE TABLE `あああ` ( + `ききき` char(6) NOT NULL default '' +) ENGINE=InnoDB DEFAULT CHARSET=utf8 +ALTER TABLE `龖龖龖` ADD `丄丄丄` char(1) FIRST; +ALTER TABLE `龖龖龖` ADD `丅丅丅` char(1) AFTER `丂丂丂`; +ALTER TABLE `龖龖龖` ADD `乚乚乚` char(1); +ALTER TABLE `龖龖龖` ADD INDEX (`丄丄丄`); +ALTER TABLE `龖龖龖` ADD PRIMARY KEY (`丂丂丂`); +ALTER TABLE `龖龖龖` ADD UNIQUE (`丅丅丅`); +ALTER TABLE `龖龖龖` CHANGE `丄丄丄` `丄丄` char(1); +ALTER TABLE `龖龖龖` MODIFY `丂丂丂` char(6); +SELECT * FROM `龖龖龖`; +丄丄 丂丂丂 丅丅丅 乚乚乚 +NULL 丂丂丂丂丂 NULL NULL +NULL 丄丄丄丄丄 NULL NULL +NULL 丅丅丅丅丅 NULL NULL +DESC `龖龖龖`; +Field Type Null Key Default Extra +丄丄 char(1) YES MUL NULL +丂丂丂 char(6) PRI +丅丅丅 char(1) YES MUL NULL +乚乚乚 char(1) YES NULL +SHOW CREATE TABLE `龖龖龖`; +Table Create Table +龖龖龖 CREATE TABLE `龖龖龖` ( + `丄丄` char(1) default NULL, + `丂丂丂` char(6) NOT NULL default '', + `丅丅丅` char(1) default NULL, + `乚乚乚` char(1) default NULL, + PRIMARY KEY (`丂丂丂`), + UNIQUE KEY `丅丅丅` (`丅丅丅`), + KEY `丄丄丄` (`丄丄`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 +ALTER TABLE `龖龖龖` DROP INDEX `丄丄丄`; +ALTER TABLE `龖龖龖` DROP PRIMARY KEY; +ALTER TABLE `龖龖龖` DROP INDEX `丅丅丅`; +ALTER TABLE `龖龖龖` DROP `丄丄`; +ALTER TABLE `龖龖龖` DROP `丅丅丅`; +ALTER TABLE `龖龖龖` DROP `乚乚乚`; +SELECT * FROM `龖龖龖`; +丂丂丂 +丂丂丂丂丂 +丄丄丄丄丄 +丅丅丅丅丅 +DESC `龖龖龖`; +Field Type Null Key Default Extra +丂丂丂 char(6) +SHOW CREATE TABLE `龖龖龖`; +Table Create Table +龖龖龖 CREATE TABLE `龖龖龖` ( + `丂丂丂` char(6) NOT NULL default '' +) ENGINE=InnoDB DEFAULT CHARSET=utf8 +DROP TABLE `アアア`; +DROP TABLE `イイイ`; +DROP TABLE `あああ`; +DROP TABLE `いいい`; +DROP TABLE `龖龖龖`; +DROP TABLE `龗龗龗`; +CREATE TABLE `アアア`(`キキキ` char(5)) DEFAULT CHARSET = utf8 engine=MYISAM; +CREATE TABLE `イイイ`(`ケケケ` char(5)) DEFAULT CHARSET = utf8 engine=MYISAM; +CREATE TABLE `あああ`(`ききき` char(5)) DEFAULT CHARSET = utf8 engine=MYISAM; +CREATE TABLE `いいい`(`けけけ` char(5)) DEFAULT CHARSET = utf8 engine=MYISAM; +CREATE TABLE `龖龖龖`(`丂丂丂` char(5)) DEFAULT CHARSET = utf8 engine=MYISAM; +CREATE TABLE `龗龗龗`(`乚乚乚` char(5)) DEFAULT CHARSET = utf8 engine=MYISAM; +INSERT INTO `アアア` VALUES ('アアアアア'),('イイイイイ'),('ウウウウウ'); +INSERT INTO `あああ` VALUES ('あああああ'),('いいいいい'),('ううううう'); +INSERT INTO `龖龖龖` VALUES ('丂丂丂丂丂'),('丄丄丄丄丄'),('丅丅丅丅丅'); +ALTER TABLE `アアア` ADD `カカカ` char(1) FIRST; +ALTER TABLE `アアア` ADD `ククク` char(1) AFTER `キキキ`; +ALTER TABLE `アアア` ADD `ケケケ` char(1); +ALTER TABLE `アアア` ADD INDEX (`カカカ`); +ALTER TABLE `アアア` ADD PRIMARY KEY (`キキキ`); +ALTER TABLE `アアア` ADD UNIQUE (`ククク`); +ALTER TABLE `アアア` CHANGE `カカカ` `カカ` char(1); +ALTER TABLE `アアア` MODIFY `キキキ` char(6); +SELECT * FROM `アアア`; +カカ キキキ ククク ケケケ +NULL アアアアア NULL NULL +NULL イイイイイ NULL NULL +NULL ウウウウウ NULL NULL +DESC `アアア`; +Field Type Null Key Default Extra +カカ char(1) YES MUL NULL +キキキ char(6) PRI +ククク char(1) YES MUL NULL +ケケケ char(1) YES NULL +SHOW CREATE TABLE `アアア`; +Table Create Table +アアア CREATE TABLE `アアア` ( + `カカ` char(1) default NULL, + `キキキ` char(6) NOT NULL default '', + `ククク` char(1) default NULL, + `ケケケ` char(1) default NULL, + PRIMARY KEY (`キキキ`), + UNIQUE KEY `ククク` (`ククク`), + KEY `カカカ` (`カカ`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 +ALTER TABLE `アアア` DROP INDEX `カカカ`; +ALTER TABLE `アアア` DROP PRIMARY KEY; +ALTER TABLE `アアア` DROP INDEX `ククク`; +ALTER TABLE `アアア` DROP `カカ`; +ALTER TABLE `アアア` DROP `ククク`; +ALTER TABLE `アアア` DROP `ケケケ`; +SELECT * FROM `アアア`; +キキキ +アアアアア +イイイイイ +ウウウウウ +DESC `アアア`; +Field Type Null Key Default Extra +キキキ char(6) +SHOW CREATE TABLE `アアア`; +Table Create Table +アアア CREATE TABLE `アアア` ( + `キキキ` char(6) NOT NULL default '' +) ENGINE=MyISAM DEFAULT CHARSET=utf8 +ALTER TABLE `あああ` ADD `かかか` char(1) FIRST; +ALTER TABLE `あああ` ADD `くくく` char(1) AFTER `ききき`; +ALTER TABLE `あああ` ADD `けけけ` char(1); +ALTER TABLE `あああ` ADD INDEX (`かかか`); +ALTER TABLE `あああ` ADD PRIMARY KEY (`ききき`); +ALTER TABLE `あああ` ADD UNIQUE (`くくく`); +ALTER TABLE `あああ` CHANGE `かかか` `かか` char(1); +ALTER TABLE `あああ` MODIFY `ききき` char(6); +SELECT * FROM `あああ`; +かか ききき くくく けけけ +NULL あああああ NULL NULL +NULL いいいいい NULL NULL +NULL ううううう NULL NULL +DESC `あああ`; +Field Type Null Key Default Extra +かか char(1) YES MUL NULL +ききき char(6) PRI +くくく char(1) YES MUL NULL +けけけ char(1) YES NULL +SHOW CREATE TABLE `あああ`; +Table Create Table +あああ CREATE TABLE `あああ` ( + `かか` char(1) default NULL, + `ききき` char(6) NOT NULL default '', + `くくく` char(1) default NULL, + `けけけ` char(1) default NULL, + PRIMARY KEY (`ききき`), + UNIQUE KEY `くくく` (`くくく`), + KEY `かかか` (`かか`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 +ALTER TABLE `あああ` DROP INDEX `かかか`; +ALTER TABLE `あああ` DROP PRIMARY KEY; +ALTER TABLE `あああ` DROP INDEX `くくく`; +ALTER TABLE `あああ` DROP `かか`; +ALTER TABLE `あああ` DROP `くくく`; +ALTER TABLE `あああ` DROP `けけけ`; +SELECT * FROM `あああ`; +ききき +あああああ +いいいいい +ううううう +DESC `あああ`; +Field Type Null Key Default Extra +ききき char(6) +SHOW CREATE TABLE `あああ`; +Table Create Table +あああ CREATE TABLE `あああ` ( + `ききき` char(6) NOT NULL default '' +) ENGINE=MyISAM DEFAULT CHARSET=utf8 +ALTER TABLE `龖龖龖` ADD `丄丄丄` char(1) FIRST; +ALTER TABLE `龖龖龖` ADD `丅丅丅` char(1) AFTER `丂丂丂`; +ALTER TABLE `龖龖龖` ADD `乚乚乚` char(1); +ALTER TABLE `龖龖龖` ADD INDEX (`丄丄丄`); +ALTER TABLE `龖龖龖` ADD PRIMARY KEY (`丂丂丂`); +ALTER TABLE `龖龖龖` ADD UNIQUE (`丅丅丅`); +ALTER TABLE `龖龖龖` CHANGE `丄丄丄` `丄丄` char(1); +ALTER TABLE `龖龖龖` MODIFY `丂丂丂` char(6); +SELECT * FROM `龖龖龖`; +丄丄 丂丂丂 丅丅丅 乚乚乚 +NULL 丂丂丂丂丂 NULL NULL +NULL 丄丄丄丄丄 NULL NULL +NULL 丅丅丅丅丅 NULL NULL +DESC `龖龖龖`; +Field Type Null Key Default Extra +丄丄 char(1) YES MUL NULL +丂丂丂 char(6) PRI +丅丅丅 char(1) YES MUL NULL +乚乚乚 char(1) YES NULL +SHOW CREATE TABLE `龖龖龖`; +Table Create Table +龖龖龖 CREATE TABLE `龖龖龖` ( + `丄丄` char(1) default NULL, + `丂丂丂` char(6) NOT NULL default '', + `丅丅丅` char(1) default NULL, + `乚乚乚` char(1) default NULL, + PRIMARY KEY (`丂丂丂`), + UNIQUE KEY `丅丅丅` (`丅丅丅`), + KEY `丄丄丄` (`丄丄`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 +ALTER TABLE `龖龖龖` DROP INDEX `丄丄丄`; +ALTER TABLE `龖龖龖` DROP PRIMARY KEY; +ALTER TABLE `龖龖龖` DROP INDEX `丅丅丅`; +ALTER TABLE `龖龖龖` DROP `丄丄`; +ALTER TABLE `龖龖龖` DROP `丅丅丅`; +ALTER TABLE `龖龖龖` DROP `乚乚乚`; +SELECT * FROM `龖龖龖`; +丂丂丂 +丂丂丂丂丂 +丄丄丄丄丄 +丅丅丅丅丅 +DESC `龖龖龖`; +Field Type Null Key Default Extra +丂丂丂 char(6) +SHOW CREATE TABLE `龖龖龖`; +Table Create Table +龖龖龖 CREATE TABLE `龖龖龖` ( + `丂丂丂` char(6) NOT NULL default '' +) ENGINE=MyISAM DEFAULT CHARSET=utf8 +DROP TABLE `アアア`; +DROP TABLE `イイイ`; +DROP TABLE `あああ`; +DROP TABLE `いいい`; +DROP TABLE `龖龖龖`; +DROP TABLE `龗龗龗`; +CREATE TABLE `アアア`(`キキキ` char(5)) DEFAULT CHARSET = utf8 engine=HEAP; +CREATE TABLE `イイイ`(`ケケケ` char(5)) DEFAULT CHARSET = utf8 engine=HEAP; +CREATE TABLE `あああ`(`ききき` char(5)) DEFAULT CHARSET = utf8 engine=HEAP; +CREATE TABLE `いいい`(`けけけ` char(5)) DEFAULT CHARSET = utf8 engine=HEAP; +CREATE TABLE `龖龖龖`(`丂丂丂` char(5)) DEFAULT CHARSET = utf8 engine=HEAP; +CREATE TABLE `龗龗龗`(`乚乚乚` char(5)) DEFAULT CHARSET = utf8 engine=HEAP; +INSERT INTO `アアア` VALUES ('アアアアア'),('イイイイイ'),('ウウウウウ'); +INSERT INTO `あああ` VALUES ('あああああ'),('いいいいい'),('ううううう'); +INSERT INTO `龖龖龖` VALUES ('丂丂丂丂丂'),('丄丄丄丄丄'),('丅丅丅丅丅'); +ALTER TABLE `アアア` ADD `カカカ` char(1) FIRST; +ALTER TABLE `アアア` ADD `ククク` char(1) AFTER `キキキ`; +ALTER TABLE `アアア` ADD `ケケケ` char(1); +ALTER TABLE `アアア` ADD INDEX (`カカカ`); +ALTER TABLE `アアア` ADD PRIMARY KEY (`キキキ`); +ALTER TABLE `アアア` ADD UNIQUE (`ククク`); +ALTER TABLE `アアア` CHANGE `カカカ` `カカ` char(1); +ALTER TABLE `アアア` MODIFY `キキキ` char(6); +SELECT * FROM `アアア`; +カカ キキキ ククク ケケケ +NULL アアアアア NULL NULL +NULL イイイイイ NULL NULL +NULL ウウウウウ NULL NULL +DESC `アアア`; +Field Type Null Key Default Extra +カカ char(1) YES MUL NULL +キキキ char(6) PRI +ククク char(1) YES MUL NULL +ケケケ char(1) YES NULL +SHOW CREATE TABLE `アアア`; +Table Create Table +アアア CREATE TABLE `アアア` ( + `カカ` char(1) default NULL, + `キキキ` char(6) NOT NULL default '', + `ククク` char(1) default NULL, + `ケケケ` char(1) default NULL, + PRIMARY KEY (`キキキ`), + UNIQUE KEY `ククク` (`ククク`), + KEY `カカカ` (`カカ`) +) ENGINE=HEAP DEFAULT CHARSET=utf8 +ALTER TABLE `アアア` DROP INDEX `カカカ`; +ALTER TABLE `アアア` DROP PRIMARY KEY; +ALTER TABLE `アアア` DROP INDEX `ククク`; +ALTER TABLE `アアア` DROP `カカ`; +ALTER TABLE `アアア` DROP `ククク`; +ALTER TABLE `アアア` DROP `ケケケ`; +SELECT * FROM `アアア`; +キキキ +アアアアア +イイイイイ +ウウウウウ +DESC `アアア`; +Field Type Null Key Default Extra +キキキ char(6) +SHOW CREATE TABLE `アアア`; +Table Create Table +アアア CREATE TABLE `アアア` ( + `キキキ` char(6) NOT NULL default '' +) ENGINE=HEAP DEFAULT CHARSET=utf8 +ALTER TABLE `あああ` ADD `かかか` char(1) FIRST; +ALTER TABLE `あああ` ADD `くくく` char(1) AFTER `ききき`; +ALTER TABLE `あああ` ADD `けけけ` char(1); +ALTER TABLE `あああ` ADD INDEX (`かかか`); +ALTER TABLE `あああ` ADD PRIMARY KEY (`ききき`); +ALTER TABLE `あああ` ADD UNIQUE (`くくく`); +ALTER TABLE `あああ` CHANGE `かかか` `かか` char(1); +ALTER TABLE `あああ` MODIFY `ききき` char(6); +SELECT * FROM `あああ`; +かか ききき くくく けけけ +NULL あああああ NULL NULL +NULL いいいいい NULL NULL +NULL ううううう NULL NULL +DESC `あああ`; +Field Type Null Key Default Extra +かか char(1) YES MUL NULL +ききき char(6) PRI +くくく char(1) YES MUL NULL +けけけ char(1) YES NULL +SHOW CREATE TABLE `あああ`; +Table Create Table +あああ CREATE TABLE `あああ` ( + `かか` char(1) default NULL, + `ききき` char(6) NOT NULL default '', + `くくく` char(1) default NULL, + `けけけ` char(1) default NULL, + PRIMARY KEY (`ききき`), + UNIQUE KEY `くくく` (`くくく`), + KEY `かかか` (`かか`) +) ENGINE=HEAP DEFAULT CHARSET=utf8 +ALTER TABLE `あああ` DROP INDEX `かかか`; +ALTER TABLE `あああ` DROP PRIMARY KEY; +ALTER TABLE `あああ` DROP INDEX `くくく`; +ALTER TABLE `あああ` DROP `かか`; +ALTER TABLE `あああ` DROP `くくく`; +ALTER TABLE `あああ` DROP `けけけ`; +SELECT * FROM `あああ`; +ききき +あああああ +いいいいい +ううううう +DESC `あああ`; +Field Type Null Key Default Extra +ききき char(6) +SHOW CREATE TABLE `あああ`; +Table Create Table +あああ CREATE TABLE `あああ` ( + `ききき` char(6) NOT NULL default '' +) ENGINE=HEAP DEFAULT CHARSET=utf8 +ALTER TABLE `龖龖龖` ADD `丄丄丄` char(1) FIRST; +ALTER TABLE `龖龖龖` ADD `丅丅丅` char(1) AFTER `丂丂丂`; +ALTER TABLE `龖龖龖` ADD `乚乚乚` char(1); +ALTER TABLE `龖龖龖` ADD INDEX (`丄丄丄`); +ALTER TABLE `龖龖龖` ADD PRIMARY KEY (`丂丂丂`); +ALTER TABLE `龖龖龖` ADD UNIQUE (`丅丅丅`); +ALTER TABLE `龖龖龖` CHANGE `丄丄丄` `丄丄` char(1); +ALTER TABLE `龖龖龖` MODIFY `丂丂丂` char(6); +SELECT * FROM `龖龖龖`; +丄丄 丂丂丂 丅丅丅 乚乚乚 +NULL 丂丂丂丂丂 NULL NULL +NULL 丄丄丄丄丄 NULL NULL +NULL 丅丅丅丅丅 NULL NULL +DESC `龖龖龖`; +Field Type Null Key Default Extra +丄丄 char(1) YES MUL NULL +丂丂丂 char(6) PRI +丅丅丅 char(1) YES MUL NULL +乚乚乚 char(1) YES NULL +SHOW CREATE TABLE `龖龖龖`; +Table Create Table +龖龖龖 CREATE TABLE `龖龖龖` ( + `丄丄` char(1) default NULL, + `丂丂丂` char(6) NOT NULL default '', + `丅丅丅` char(1) default NULL, + `乚乚乚` char(1) default NULL, + PRIMARY KEY (`丂丂丂`), + UNIQUE KEY `丅丅丅` (`丅丅丅`), + KEY `丄丄丄` (`丄丄`) +) ENGINE=HEAP DEFAULT CHARSET=utf8 +ALTER TABLE `龖龖龖` DROP INDEX `丄丄丄`; +ALTER TABLE `龖龖龖` DROP PRIMARY KEY; +ALTER TABLE `龖龖龖` DROP INDEX `丅丅丅`; +ALTER TABLE `龖龖龖` DROP `丄丄`; +ALTER TABLE `龖龖龖` DROP `丅丅丅`; +ALTER TABLE `龖龖龖` DROP `乚乚乚`; +SELECT * FROM `龖龖龖`; +丂丂丂 +丂丂丂丂丂 +丄丄丄丄丄 +丅丅丅丅丅 +DESC `龖龖龖`; +Field Type Null Key Default Extra +丂丂丂 char(6) +SHOW CREATE TABLE `龖龖龖`; +Table Create Table +龖龖龖 CREATE TABLE `龖龖龖` ( + `丂丂丂` char(6) NOT NULL default '' +) ENGINE=HEAP DEFAULT CHARSET=utf8 +DROP TABLE `アアア`; +DROP TABLE `イイイ`; +DROP TABLE `あああ`; +DROP TABLE `いいい`; +DROP TABLE `龖龖龖`; +DROP TABLE `龗龗龗`; +CREATE TABLE `アアア`(`キキキ` char(5)) DEFAULT CHARSET = utf8 engine=BDB; +CREATE TABLE `イイイ`(`ケケケ` char(5)) DEFAULT CHARSET = utf8 engine=BDB; +CREATE TABLE `あああ`(`ききき` char(5)) DEFAULT CHARSET = utf8 engine=BDB; +CREATE TABLE `いいい`(`けけけ` char(5)) DEFAULT CHARSET = utf8 engine=BDB; +CREATE TABLE `龖龖龖`(`丂丂丂` char(5)) DEFAULT CHARSET = utf8 engine=BDB; +CREATE TABLE `龗龗龗`(`乚乚乚` char(5)) DEFAULT CHARSET = utf8 engine=BDB; +INSERT INTO `アアア` VALUES ('アアアアア'),('イイイイイ'),('ウウウウウ'); +INSERT INTO `あああ` VALUES ('あああああ'),('いいいいい'),('ううううう'); +INSERT INTO `龖龖龖` VALUES ('丂丂丂丂丂'),('丄丄丄丄丄'),('丅丅丅丅丅'); +ALTER TABLE `アアア` ADD `カカカ` char(1) FIRST; +ALTER TABLE `アアア` ADD `ククク` char(1) AFTER `キキキ`; +ALTER TABLE `アアア` ADD `ケケケ` char(1); +ALTER TABLE `アアア` ADD INDEX (`カカカ`); +ALTER TABLE `アアア` ADD PRIMARY KEY (`キキキ`); +ALTER TABLE `アアア` CHANGE `カカカ` `カカ` char(1); +ALTER TABLE `アアア` MODIFY `キキキ` char(6); +SELECT * FROM `アアア`; +カカ キキキ ククク ケケケ +NULL アアアアア NULL NULL +NULL イイイイイ NULL NULL +NULL ウウウウウ NULL NULL +DESC `アアア`; +Field Type Null Key Default Extra +カカ char(1) YES MUL NULL +キキキ char(6) PRI +ククク char(1) YES NULL +ケケケ char(1) YES NULL +SHOW CREATE TABLE `アアア`; +Table Create Table +アアア CREATE TABLE `アアア` ( + `カカ` char(1) default NULL, + `キキキ` char(6) NOT NULL default '', + `ククク` char(1) default NULL, + `ケケケ` char(1) default NULL, + PRIMARY KEY (`キキキ`), + KEY `カカカ` (`カカ`) +) ENGINE=BerkeleyDB DEFAULT CHARSET=utf8 +ALTER TABLE `アアア` DROP INDEX `カカカ`; +ALTER TABLE `アアア` DROP PRIMARY KEY; +ALTER TABLE `アアア` DROP `カカ`; +ALTER TABLE `アアア` DROP `ククク`; +ALTER TABLE `アアア` DROP `ケケケ`; +SELECT * FROM `アアア`; +キキキ +アアアアア +イイイイイ +ウウウウウ +DESC `アアア`; +Field Type Null Key Default Extra +キキキ char(6) +SHOW CREATE TABLE `アアア`; +Table Create Table +アアア CREATE TABLE `アアア` ( + `キキキ` char(6) NOT NULL default '' +) ENGINE=BerkeleyDB DEFAULT CHARSET=utf8 +ALTER TABLE `あああ` ADD `かかか` char(1) FIRST; +ALTER TABLE `あああ` ADD `くくく` char(1) AFTER `ききき`; +ALTER TABLE `あああ` ADD `けけけ` char(1); +ALTER TABLE `あああ` ADD INDEX (`かかか`); +ALTER TABLE `あああ` ADD PRIMARY KEY (`ききき`); +ALTER TABLE `あああ` CHANGE `かかか` `かか` char(1); +ALTER TABLE `あああ` MODIFY `ききき` char(6); +SELECT * FROM `あああ`; +かか ききき くくく けけけ +NULL あああああ NULL NULL +NULL いいいいい NULL NULL +NULL ううううう NULL NULL +DESC `あああ`; +Field Type Null Key Default Extra +かか char(1) YES MUL NULL +ききき char(6) PRI +くくく char(1) YES NULL +けけけ char(1) YES NULL +SHOW CREATE TABLE `あああ`; +Table Create Table +あああ CREATE TABLE `あああ` ( + `かか` char(1) default NULL, + `ききき` char(6) NOT NULL default '', + `くくく` char(1) default NULL, + `けけけ` char(1) default NULL, + PRIMARY KEY (`ききき`), + KEY `かかか` (`かか`) +) ENGINE=BerkeleyDB DEFAULT CHARSET=utf8 +ALTER TABLE `あああ` DROP INDEX `かかか`; +ALTER TABLE `あああ` DROP PRIMARY KEY; +ALTER TABLE `あああ` DROP `かか`; +ALTER TABLE `あああ` DROP `くくく`; +ALTER TABLE `あああ` DROP `けけけ`; +SELECT * FROM `あああ`; +ききき +あああああ +いいいいい +ううううう +DESC `あああ`; +Field Type Null Key Default Extra +ききき char(6) +SHOW CREATE TABLE `あああ`; +Table Create Table +あああ CREATE TABLE `あああ` ( + `ききき` char(6) NOT NULL default '' +) ENGINE=BerkeleyDB DEFAULT CHARSET=utf8 +ALTER TABLE `龖龖龖` ADD `丄丄丄` char(1) FIRST; +ALTER TABLE `龖龖龖` ADD `丅丅丅` char(1) AFTER `丂丂丂`; +ALTER TABLE `龖龖龖` ADD `乚乚乚` char(1); +ALTER TABLE `龖龖龖` ADD INDEX (`丄丄丄`); +ALTER TABLE `龖龖龖` ADD PRIMARY KEY (`丂丂丂`); +ALTER TABLE `龖龖龖` CHANGE `丄丄丄` `丄丄` char(1); +ALTER TABLE `龖龖龖` MODIFY `丂丂丂` char(6); +SELECT * FROM `龖龖龖`; +丄丄 丂丂丂 丅丅丅 乚乚乚 +NULL 丂丂丂丂丂 NULL NULL +NULL 丄丄丄丄丄 NULL NULL +NULL 丅丅丅丅丅 NULL NULL +DESC `龖龖龖`; +Field Type Null Key Default Extra +丄丄 char(1) YES MUL NULL +丂丂丂 char(6) PRI +丅丅丅 char(1) YES NULL +乚乚乚 char(1) YES NULL +SHOW CREATE TABLE `龖龖龖`; +Table Create Table +龖龖龖 CREATE TABLE `龖龖龖` ( + `丄丄` char(1) default NULL, + `丂丂丂` char(6) NOT NULL default '', + `丅丅丅` char(1) default NULL, + `乚乚乚` char(1) default NULL, + PRIMARY KEY (`丂丂丂`), + KEY `丄丄丄` (`丄丄`) +) ENGINE=BerkeleyDB DEFAULT CHARSET=utf8 +ALTER TABLE `龖龖龖` DROP INDEX `丄丄丄`; +ALTER TABLE `龖龖龖` DROP PRIMARY KEY; +ALTER TABLE `龖龖龖` DROP `丄丄`; +ALTER TABLE `龖龖龖` DROP `丅丅丅`; +ALTER TABLE `龖龖龖` DROP `乚乚乚`; +SELECT * FROM `龖龖龖`; +丂丂丂 +丂丂丂丂丂 +丄丄丄丄丄 +丅丅丅丅丅 +DESC `龖龖龖`; +Field Type Null Key Default Extra +丂丂丂 char(6) +SHOW CREATE TABLE `龖龖龖`; +Table Create Table +龖龖龖 CREATE TABLE `龖龖龖` ( + `丂丂丂` char(6) NOT NULL default '' +) ENGINE=BerkeleyDB DEFAULT CHARSET=utf8 +DROP TABLE `アアア`; +DROP TABLE `イイイ`; +DROP TABLE `あああ`; +DROP TABLE `いいい`; +DROP TABLE `龖龖龖`; +DROP TABLE `龗龗龗`; diff --git a/mysql-test/suite/jp/r/jp_charlength_sjis.result b/mysql-test/suite/jp/r/jp_charlength_sjis.result new file mode 100755 index 00000000000..57d538ef8d0 --- /dev/null +++ b/mysql-test/suite/jp/r/jp_charlength_sjis.result @@ -0,0 +1,146 @@ +drop table if exists `sP`; +drop table if exists `sQ`; +drop table if exists `sR`; +drop table if exists `sS`; +drop table if exists `sT`; +drop table if exists `sU`; +drop table if exists `sV`; +drop table if exists `sW`; +drop table if exists `sX`; +drop table if exists `sPO`; +drop table if exists `sPP`; +drop table if exists `sPQ`; +SET NAMES sjis; +SET character_set_database = sjis; +CREATE TABLE `sP` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sQ` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sR` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sS` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sT` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sU` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sV` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sW` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sX` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sPO` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +CREATE TABLE `sPP` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +CREATE TABLE `sPQ` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +INSERT INTO `sP` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sQ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sR` VALUES ('\\\\\'),('\\\\'),('\\\'),('\\'),('\'),(''); +INSERT INTO `sS` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sT` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sU` VALUES ('\\\\\'),('\\\\'),('\\\'),('\\'),('\'),(''); +INSERT INTO `sV` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sW` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sX` VALUES ('\\\\\'),('\\\\'),('\\\'),('\\'),('\'),(''); +INSERT INTO `sPO` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sPP` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sPQ` VALUES ('\\\\\'),('\\\\'),('\\\'),('\\'),('\'),(''); +SELECT `bP`, CHAR_LENGTH(`bP`) FROM `sP`; +bP CHAR_LENGTH(`bP`) + 0 + 1 + 2 + 3 + 4 + 5 +SELECT `bP`, CHAR_LENGTH(`bP`) FROM `sQ`; +bP CHAR_LENGTH(`bP`) + 0 + 1 + 2 + 3 + 4 + 5 +SELECT `bP`, CHAR_LENGTH(`bP`) FROM `sR`; +bP CHAR_LENGTH(`bP`) + 0 +\ 1 +\\ 2 +\\\ 3 +\\\\ 4 +\\\\\ 5 +SELECT `bP`, CHAR_LENGTH(`bP`) FROM `sS`; +bP CHAR_LENGTH(`bP`) + 0 + 1 + 2 + 3 + 4 + 5 +SELECT `bP`, CHAR_LENGTH(`bP`) FROM `sT`; +bP CHAR_LENGTH(`bP`) + 0 + 1 + 2 + 3 + 4 + 5 +SELECT `bP`, CHAR_LENGTH(`bP`) FROM `sU`; +bP CHAR_LENGTH(`bP`) + 0 +\ 1 +\\ 2 +\\\ 3 +\\\\ 4 +\\\\\ 5 +SELECT `bP`, CHAR_LENGTH(`bP`) FROM `sV`; +bP CHAR_LENGTH(`bP`) + 5 + 4 + 3 + 2 + 1 + 0 +SELECT `bP`, CHAR_LENGTH(`bP`) FROM `sW`; +bP CHAR_LENGTH(`bP`) + 5 + 4 + 3 + 2 + 1 + 0 +SELECT `bP`, CHAR_LENGTH(`bP`) FROM `sX`; +bP CHAR_LENGTH(`bP`) +\\\\\ 5 +\\\\ 4 +\\\ 3 +\\ 2 +\ 1 + 0 +SELECT `bP`, CHAR_LENGTH(`bP`) FROM `sPO`; +bP CHAR_LENGTH(`bP`) + 5 + 4 + 3 + 2 + 1 + 0 +SELECT `bP`, CHAR_LENGTH(`bP`) FROM `sPP`; +bP CHAR_LENGTH(`bP`) + 5 + 4 + 3 + 2 + 1 + 0 +SELECT `bP`, CHAR_LENGTH(`bP`) FROM `sPQ`; +bP CHAR_LENGTH(`bP`) +\\\\\ 5 +\\\\ 4 +\\\ 3 +\\ 2 +\ 1 + 0 +DROP TABLE `sP`; +DROP TABLE `sQ`; +DROP TABLE `sR`; +DROP TABLE `sS`; +DROP TABLE `sT`; +DROP TABLE `sU`; +DROP TABLE `sV`; +DROP TABLE `sW`; +DROP TABLE `sX`; +DROP TABLE `sPO`; +DROP TABLE `sPP`; +DROP TABLE `sPQ`; diff --git a/mysql-test/suite/jp/r/jp_charlength_ucs2.result b/mysql-test/suite/jp/r/jp_charlength_ucs2.result new file mode 100755 index 00000000000..3695ee5159a --- /dev/null +++ b/mysql-test/suite/jp/r/jp_charlength_ucs2.result @@ -0,0 +1,147 @@ +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +SET NAMES ujis; +SET character_set_database = ucs2; +SET collation_connection = ucs2_general_ci; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +SELECT `ã`, CHAR_LENGTH(`ã`) FROM `ԣ`; +ã CHAR_LENGTH(`ã`) + 0 + 1 + 2 + 3 + 4 + 5 +SELECT `ã`, CHAR_LENGTH(`ã`) FROM `ԣ`; +ã CHAR_LENGTH(`ã`) + 0 + 1 + 2 + 3 + 4 + 5 +SELECT `ã`, CHAR_LENGTH(`ã`) FROM `ԣ`; +ã CHAR_LENGTH(`ã`) + 0 + 1 +܏ 2 +܏ݏ 3 +܏ݏޏ 4 +܏ݏޏߏ 5 +SELECT `ã`, CHAR_LENGTH(`ã`) FROM `ԣ`; +ã CHAR_LENGTH(`ã`) + 0 + 1 + 2 + 3 + 4 + 5 +SELECT `ã`, CHAR_LENGTH(`ã`) FROM `ԣ`; +ã CHAR_LENGTH(`ã`) + 0 + 1 + 2 + 3 + 4 + 5 +SELECT `ã`, CHAR_LENGTH(`ã`) FROM `ԣ`; +ã CHAR_LENGTH(`ã`) + 0 + 1 +܏ 2 +܏ݏ 3 +܏ݏޏ 4 +܏ݏޏߏ 5 +SELECT `ã`, CHAR_LENGTH(`ã`) FROM `ԣ`; +ã CHAR_LENGTH(`ã`) + 5 + 4 + 3 + 2 + 1 + 0 +SELECT `ã`, CHAR_LENGTH(`ã`) FROM `ԣ`; +ã CHAR_LENGTH(`ã`) + 5 + 4 + 3 + 2 + 1 + 0 +SELECT `ã`, CHAR_LENGTH(`ã`) FROM `ԣ`; +ã CHAR_LENGTH(`ã`) +܏ݏޏߏ 5 +܏ݏޏ 4 +܏ݏ 3 +܏ 2 + 1 + 0 +SELECT `ã`, CHAR_LENGTH(`ã`) FROM `ԣ`; +ã CHAR_LENGTH(`ã`) + 5 + 4 + 3 + 2 + 1 + 0 +SELECT `ã`, CHAR_LENGTH(`ã`) FROM `ԣ`; +ã CHAR_LENGTH(`ã`) + 5 + 4 + 3 + 2 + 1 + 0 +SELECT `ã`, CHAR_LENGTH(`ã`) FROM `ԣ`; +ã CHAR_LENGTH(`ã`) +܏ݏޏߏ 5 +܏ݏޏ 4 +܏ݏ 3 +܏ 2 + 1 + 0 +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; diff --git a/mysql-test/suite/jp/r/jp_charlength_ujis.result b/mysql-test/suite/jp/r/jp_charlength_ujis.result new file mode 100755 index 00000000000..ccfbf4fa3a1 --- /dev/null +++ b/mysql-test/suite/jp/r/jp_charlength_ujis.result @@ -0,0 +1,146 @@ +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +SET NAMES ujis; +SET character_set_database = ujis; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +SELECT `ã`, CHAR_LENGTH(`ã`) FROM `ԣ`; +ã CHAR_LENGTH(`ã`) + 0 + 1 + 2 + 3 + 4 + 5 +SELECT `ã`, CHAR_LENGTH(`ã`) FROM `ԣ`; +ã CHAR_LENGTH(`ã`) + 0 + 1 + 2 + 3 + 4 + 5 +SELECT `ã`, CHAR_LENGTH(`ã`) FROM `ԣ`; +ã CHAR_LENGTH(`ã`) + 0 + 1 +܏ 2 +܏ݏ 3 +܏ݏޏ 4 +܏ݏޏߏ 5 +SELECT `ã`, CHAR_LENGTH(`ã`) FROM `ԣ`; +ã CHAR_LENGTH(`ã`) + 0 + 1 + 2 + 3 + 4 + 5 +SELECT `ã`, CHAR_LENGTH(`ã`) FROM `ԣ`; +ã CHAR_LENGTH(`ã`) + 0 + 1 + 2 + 3 + 4 + 5 +SELECT `ã`, CHAR_LENGTH(`ã`) FROM `ԣ`; +ã CHAR_LENGTH(`ã`) + 0 + 1 +܏ 2 +܏ݏ 3 +܏ݏޏ 4 +܏ݏޏߏ 5 +SELECT `ã`, CHAR_LENGTH(`ã`) FROM `ԣ`; +ã CHAR_LENGTH(`ã`) + 5 + 4 + 3 + 2 + 1 + 0 +SELECT `ã`, CHAR_LENGTH(`ã`) FROM `ԣ`; +ã CHAR_LENGTH(`ã`) + 5 + 4 + 3 + 2 + 1 + 0 +SELECT `ã`, CHAR_LENGTH(`ã`) FROM `ԣ`; +ã CHAR_LENGTH(`ã`) +܏ݏޏߏ 5 +܏ݏޏ 4 +܏ݏ 3 +܏ 2 + 1 + 0 +SELECT `ã`, CHAR_LENGTH(`ã`) FROM `ԣ`; +ã CHAR_LENGTH(`ã`) + 5 + 4 + 3 + 2 + 1 + 0 +SELECT `ã`, CHAR_LENGTH(`ã`) FROM `ԣ`; +ã CHAR_LENGTH(`ã`) + 5 + 4 + 3 + 2 + 1 + 0 +SELECT `ã`, CHAR_LENGTH(`ã`) FROM `ԣ`; +ã CHAR_LENGTH(`ã`) +܏ݏޏߏ 5 +܏ݏޏ 4 +܏ݏ 3 +܏ 2 + 1 + 0 +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; diff --git a/mysql-test/suite/jp/r/jp_charlength_utf8.result b/mysql-test/suite/jp/r/jp_charlength_utf8.result new file mode 100755 index 00000000000..d4d7f68f933 --- /dev/null +++ b/mysql-test/suite/jp/r/jp_charlength_utf8.result @@ -0,0 +1,146 @@ +drop table if exists `T1`; +drop table if exists `T2`; +drop table if exists `T3`; +drop table if exists `T4`; +drop table if exists `T5`; +drop table if exists `T6`; +drop table if exists `T7`; +drop table if exists `T8`; +drop table if exists `T9`; +drop table if exists `T10`; +drop table if exists `T11`; +drop table if exists `T12`; +SET NAMES utf8; +SET character_set_database = utf8; +CREATE TABLE `T1` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T2` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T3` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T4` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T5` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T6` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T7` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T8` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T9` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T10` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +CREATE TABLE `T11` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +CREATE TABLE `T12` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +INSERT INTO `T1` VALUES ('アイウエオ'),('アイウエ'),('アイウ'),('アイ'),('ア'),(''); +INSERT INTO `T2` VALUES ('あいうえお'),('あいうえ'),('あいう'),('あい'),('あ'),(''); +INSERT INTO `T3` VALUES ('龔龖龗龞龡'),('龔龖龗龞'),('龔龖龗'),('龔龖'),('龔'),(''); +INSERT INTO `T4` VALUES ('アイウエオ'),('アイウエ'),('アイウ'),('アイ'),('ア'),(''); +INSERT INTO `T5` VALUES ('あいうえお'),('あいうえ'),('あいう'),('あい'),('あ'),(''); +INSERT INTO `T6` VALUES ('龔龖龗龞龡'),('龔龖龗龞'),('龔龖龗'),('龔龖'),('龔'),(''); +INSERT INTO `T7` VALUES ('アイウエオ'),('アイウエ'),('アイウ'),('アイ'),('ア'),(''); +INSERT INTO `T8` VALUES ('あいうえお'),('あいうえ'),('あいう'),('あい'),('あ'),(''); +INSERT INTO `T9` VALUES ('龔龖龗龞龡'),('龔龖龗龞'),('龔龖龗'),('龔龖'),('龔'),(''); +INSERT INTO `T10` VALUES ('アイウエオ'),('アイウエ'),('アイウ'),('アイ'),('ア'),(''); +INSERT INTO `T11` VALUES ('あいうえお'),('あいうえ'),('あいう'),('あい'),('あ'),(''); +INSERT INTO `T12` VALUES ('龔龖龗龞龡'),('龔龖龗龞'),('龔龖龗'),('龔龖'),('龔'),(''); +SELECT `C1`, CHAR_LENGTH(`C1`) FROM `T1`; +C1 CHAR_LENGTH(`C1`) + 0 +ア 1 +アイ 2 +アイウ 3 +アイウエ 4 +アイウエオ 5 +SELECT `C1`, CHAR_LENGTH(`C1`) FROM `T2`; +C1 CHAR_LENGTH(`C1`) + 0 +あ 1 +あい 2 +あいう 3 +あいうえ 4 +あいうえお 5 +SELECT `C1`, CHAR_LENGTH(`C1`) FROM `T3`; +C1 CHAR_LENGTH(`C1`) + 0 +龔 1 +龔龖 2 +龔龖龗 3 +龔龖龗龞 4 +龔龖龗龞龡 5 +SELECT `C1`, CHAR_LENGTH(`C1`) FROM `T4`; +C1 CHAR_LENGTH(`C1`) + 0 +ア 1 +アイ 2 +アイウ 3 +アイウエ 4 +アイウエオ 5 +SELECT `C1`, CHAR_LENGTH(`C1`) FROM `T5`; +C1 CHAR_LENGTH(`C1`) + 0 +あ 1 +あい 2 +あいう 3 +あいうえ 4 +あいうえお 5 +SELECT `C1`, CHAR_LENGTH(`C1`) FROM `T6`; +C1 CHAR_LENGTH(`C1`) + 0 +龔 1 +龔龖 2 +龔龖龗 3 +龔龖龗龞 4 +龔龖龗龞龡 5 +SELECT `C1`, CHAR_LENGTH(`C1`) FROM `T7`; +C1 CHAR_LENGTH(`C1`) +アイウエオ 5 +アイウエ 4 +アイウ 3 +アイ 2 +ア 1 + 0 +SELECT `C1`, CHAR_LENGTH(`C1`) FROM `T8`; +C1 CHAR_LENGTH(`C1`) +あいうえお 5 +あいうえ 4 +あいう 3 +あい 2 +あ 1 + 0 +SELECT `C1`, CHAR_LENGTH(`C1`) FROM `T9`; +C1 CHAR_LENGTH(`C1`) +龔龖龗龞龡 5 +龔龖龗龞 4 +龔龖龗 3 +龔龖 2 +龔 1 + 0 +SELECT `C1`, CHAR_LENGTH(`C1`) FROM `T10`; +C1 CHAR_LENGTH(`C1`) +アイウエオ 5 +アイウエ 4 +アイウ 3 +アイ 2 +ア 1 + 0 +SELECT `C1`, CHAR_LENGTH(`C1`) FROM `T11`; +C1 CHAR_LENGTH(`C1`) +あいうえお 5 +あいうえ 4 +あいう 3 +あい 2 +あ 1 + 0 +SELECT `C1`, CHAR_LENGTH(`C1`) FROM `T12`; +C1 CHAR_LENGTH(`C1`) +龔龖龗龞龡 5 +龔龖龗龞 4 +龔龖龗 3 +龔龖 2 +龔 1 + 0 +DROP TABLE `T1`; +DROP TABLE `T2`; +DROP TABLE `T3`; +DROP TABLE `T4`; +DROP TABLE `T5`; +DROP TABLE `T6`; +DROP TABLE `T7`; +DROP TABLE `T8`; +DROP TABLE `T9`; +DROP TABLE `T10`; +DROP TABLE `T11`; +DROP TABLE `T12`; diff --git a/mysql-test/suite/jp/r/jp_charset_sjis.result b/mysql-test/suite/jp/r/jp_charset_sjis.result new file mode 100755 index 00000000000..80ef24a7334 --- /dev/null +++ b/mysql-test/suite/jp/r/jp_charset_sjis.result @@ -0,0 +1,230 @@ +drop table if exists `sP`; +drop table if exists `sQ`; +drop table if exists `sR`; +drop table if exists `sS`; +drop table if exists `sT`; +drop table if exists `sU`; +drop table if exists `sV`; +drop table if exists `sW`; +drop table if exists `sX`; +drop table if exists `sPO`; +drop table if exists `sPP`; +drop table if exists `sPQ`; +SET NAMES sjis; +SET character_set_database = sjis; +CREATE TABLE `sP` (`bP` char(20)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sQ` (`bP` char(20)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sR` (`bP` char(20)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sS` (`bP` char(20)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sT` (`bP` char(20)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sU` (`bP` char(20)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sV` (`bP` char(20)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sW` (`bP` char(20)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sX` (`bP` char(20)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sPO` (`bP` char(20)) DEFAULT CHARSET = sjis engine = bdb; +CREATE TABLE `sPP` (`bP` char(20)) DEFAULT CHARSET = sjis engine = bdb; +CREATE TABLE `sPQ` (`bP` char(20)) DEFAULT CHARSET = sjis engine = bdb; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_sjis.dat' INTO TABLE `sP`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_sjis.dat' INTO TABLE `sQ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_sjis2.dat' INTO TABLE `sR`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_sjis.dat' INTO TABLE `sS`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_sjis.dat' INTO TABLE `sT`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_sjis2.dat' INTO TABLE `sU`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_sjis.dat' INTO TABLE `sV`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_sjis.dat' INTO TABLE `sW`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_sjis2.dat' INTO TABLE `sX`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_sjis.dat' INTO TABLE `sPO`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_sjis.dat' INTO TABLE `sPP`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_sjis2.dat' INTO TABLE `sPQ`; +SELECT DISTINCT CHARSET(`bP`) FROM `sP`; +CHARSET(`bP`) +sjis +SELECT DISTINCT CHARSET(`bP`) FROM `sQ`; +CHARSET(`bP`) +sjis +SELECT DISTINCT CHARSET(`bP`) FROM `sR`; +CHARSET(`bP`) +sjis +SELECT DISTINCT CHARSET(CONVERT(`bP` USING utf8)) FROM `sP`; +CHARSET(CONVERT(`bP` USING utf8)) +utf8 +SELECT DISTINCT CHARSET(CONVERT(`bP` USING ucs2)) FROM `sP`; +CHARSET(CONVERT(`bP` USING ucs2)) +ucs2 +SELECT DISTINCT CHARSET(CONVERT(`bP` USING sjis)) FROM `sP`; +CHARSET(CONVERT(`bP` USING sjis)) +sjis +SELECT DISTINCT CHARSET(CONVERT(`bP` USING ujis)) FROM `sP`; +CHARSET(CONVERT(`bP` USING ujis)) +ujis +SELECT DISTINCT CHARSET(CONVERT(`bP` USING utf8)) FROM `sQ`; +CHARSET(CONVERT(`bP` USING utf8)) +utf8 +SELECT DISTINCT CHARSET(CONVERT(`bP` USING ucs2)) FROM `sQ`; +CHARSET(CONVERT(`bP` USING ucs2)) +ucs2 +SELECT DISTINCT CHARSET(CONVERT(`bP` USING sjis)) FROM `sQ`; +CHARSET(CONVERT(`bP` USING sjis)) +sjis +SELECT DISTINCT CHARSET(CONVERT(`bP` USING ujis)) FROM `sQ`; +CHARSET(CONVERT(`bP` USING ujis)) +ujis +SELECT DISTINCT CHARSET(CONVERT(`bP` USING utf8)) FROM `sR`; +CHARSET(CONVERT(`bP` USING utf8)) +utf8 +SELECT DISTINCT CHARSET(CONVERT(`bP` USING ucs2)) FROM `sR`; +CHARSET(CONVERT(`bP` USING ucs2)) +ucs2 +SELECT DISTINCT CHARSET(CONVERT(`bP` USING sjis)) FROM `sR`; +CHARSET(CONVERT(`bP` USING sjis)) +sjis +SELECT DISTINCT CHARSET(CONVERT(`bP` USING ujis)) FROM `sR`; +CHARSET(CONVERT(`bP` USING ujis)) +ujis +SELECT DISTINCT CHARSET(`bP`) FROM `sS`; +CHARSET(`bP`) +sjis +SELECT DISTINCT CHARSET(`bP`) FROM `sT`; +CHARSET(`bP`) +sjis +SELECT DISTINCT CHARSET(`bP`) FROM `sU`; +CHARSET(`bP`) +sjis +SELECT DISTINCT CHARSET(CONVERT(`bP` USING utf8)) FROM `sS`; +CHARSET(CONVERT(`bP` USING utf8)) +utf8 +SELECT DISTINCT CHARSET(CONVERT(`bP` USING ucs2)) FROM `sS`; +CHARSET(CONVERT(`bP` USING ucs2)) +ucs2 +SELECT DISTINCT CHARSET(CONVERT(`bP` USING sjis)) FROM `sS`; +CHARSET(CONVERT(`bP` USING sjis)) +sjis +SELECT DISTINCT CHARSET(CONVERT(`bP` USING ujis)) FROM `sS`; +CHARSET(CONVERT(`bP` USING ujis)) +ujis +SELECT DISTINCT CHARSET(CONVERT(`bP` USING utf8)) FROM `sT`; +CHARSET(CONVERT(`bP` USING utf8)) +utf8 +SELECT DISTINCT CHARSET(CONVERT(`bP` USING ucs2)) FROM `sT`; +CHARSET(CONVERT(`bP` USING ucs2)) +ucs2 +SELECT DISTINCT CHARSET(CONVERT(`bP` USING sjis)) FROM `sT`; +CHARSET(CONVERT(`bP` USING sjis)) +sjis +SELECT DISTINCT CHARSET(CONVERT(`bP` USING ujis)) FROM `sT`; +CHARSET(CONVERT(`bP` USING ujis)) +ujis +SELECT DISTINCT CHARSET(CONVERT(`bP` USING utf8)) FROM `sU`; +CHARSET(CONVERT(`bP` USING utf8)) +utf8 +SELECT DISTINCT CHARSET(CONVERT(`bP` USING ucs2)) FROM `sU`; +CHARSET(CONVERT(`bP` USING ucs2)) +ucs2 +SELECT DISTINCT CHARSET(CONVERT(`bP` USING sjis)) FROM `sU`; +CHARSET(CONVERT(`bP` USING sjis)) +sjis +SELECT DISTINCT CHARSET(CONVERT(`bP` USING ujis)) FROM `sU`; +CHARSET(CONVERT(`bP` USING ujis)) +ujis +SELECT DISTINCT CHARSET(`bP`) FROM `sV`; +CHARSET(`bP`) +sjis +SELECT DISTINCT CHARSET(`bP`) FROM `sW`; +CHARSET(`bP`) +sjis +SELECT DISTINCT CHARSET(`bP`) FROM `sX`; +CHARSET(`bP`) +sjis +SELECT DISTINCT CHARSET(CONVERT(`bP` USING utf8)) FROM `sV`; +CHARSET(CONVERT(`bP` USING utf8)) +utf8 +SELECT DISTINCT CHARSET(CONVERT(`bP` USING ucs2)) FROM `sV`; +CHARSET(CONVERT(`bP` USING ucs2)) +ucs2 +SELECT DISTINCT CHARSET(CONVERT(`bP` USING sjis)) FROM `sV`; +CHARSET(CONVERT(`bP` USING sjis)) +sjis +SELECT DISTINCT CHARSET(CONVERT(`bP` USING ujis)) FROM `sV`; +CHARSET(CONVERT(`bP` USING ujis)) +ujis +SELECT DISTINCT CHARSET(CONVERT(`bP` USING utf8)) FROM `sW`; +CHARSET(CONVERT(`bP` USING utf8)) +utf8 +SELECT DISTINCT CHARSET(CONVERT(`bP` USING ucs2)) FROM `sW`; +CHARSET(CONVERT(`bP` USING ucs2)) +ucs2 +SELECT DISTINCT CHARSET(CONVERT(`bP` USING sjis)) FROM `sW`; +CHARSET(CONVERT(`bP` USING sjis)) +sjis +SELECT DISTINCT CHARSET(CONVERT(`bP` USING ujis)) FROM `sW`; +CHARSET(CONVERT(`bP` USING ujis)) +ujis +SELECT DISTINCT CHARSET(CONVERT(`bP` USING utf8)) FROM `sX`; +CHARSET(CONVERT(`bP` USING utf8)) +utf8 +SELECT DISTINCT CHARSET(CONVERT(`bP` USING ucs2)) FROM `sX`; +CHARSET(CONVERT(`bP` USING ucs2)) +ucs2 +SELECT DISTINCT CHARSET(CONVERT(`bP` USING sjis)) FROM `sX`; +CHARSET(CONVERT(`bP` USING sjis)) +sjis +SELECT DISTINCT CHARSET(CONVERT(`bP` USING ujis)) FROM `sX`; +CHARSET(CONVERT(`bP` USING ujis)) +ujis +SELECT DISTINCT CHARSET(`bP`) FROM `sPO`; +CHARSET(`bP`) +sjis +SELECT DISTINCT CHARSET(`bP`) FROM `sPP`; +CHARSET(`bP`) +sjis +SELECT DISTINCT CHARSET(`bP`) FROM `sPQ`; +CHARSET(`bP`) +sjis +SELECT DISTINCT CHARSET(CONVERT(`bP` USING utf8)) FROM `sPO`; +CHARSET(CONVERT(`bP` USING utf8)) +utf8 +SELECT DISTINCT CHARSET(CONVERT(`bP` USING ucs2)) FROM `sPO`; +CHARSET(CONVERT(`bP` USING ucs2)) +ucs2 +SELECT DISTINCT CHARSET(CONVERT(`bP` USING sjis)) FROM `sPO`; +CHARSET(CONVERT(`bP` USING sjis)) +sjis +SELECT DISTINCT CHARSET(CONVERT(`bP` USING ujis)) FROM `sPO`; +CHARSET(CONVERT(`bP` USING ujis)) +ujis +SELECT DISTINCT CHARSET(CONVERT(`bP` USING utf8)) FROM `sPP`; +CHARSET(CONVERT(`bP` USING utf8)) +utf8 +SELECT DISTINCT CHARSET(CONVERT(`bP` USING ucs2)) FROM `sPP`; +CHARSET(CONVERT(`bP` USING ucs2)) +ucs2 +SELECT DISTINCT CHARSET(CONVERT(`bP` USING sjis)) FROM `sPP`; +CHARSET(CONVERT(`bP` USING sjis)) +sjis +SELECT DISTINCT CHARSET(CONVERT(`bP` USING ujis)) FROM `sPP`; +CHARSET(CONVERT(`bP` USING ujis)) +ujis +SELECT DISTINCT CHARSET(CONVERT(`bP` USING utf8)) FROM `sPQ`; +CHARSET(CONVERT(`bP` USING utf8)) +utf8 +SELECT DISTINCT CHARSET(CONVERT(`bP` USING ucs2)) FROM `sPQ`; +CHARSET(CONVERT(`bP` USING ucs2)) +ucs2 +SELECT DISTINCT CHARSET(CONVERT(`bP` USING sjis)) FROM `sPQ`; +CHARSET(CONVERT(`bP` USING sjis)) +sjis +SELECT DISTINCT CHARSET(CONVERT(`bP` USING ujis)) FROM `sPQ`; +CHARSET(CONVERT(`bP` USING ujis)) +ujis +drop table `sP`; +drop table `sQ`; +drop table `sR`; +drop table `sS`; +drop table `sT`; +drop table `sU`; +drop table `sV`; +drop table `sW`; +drop table `sX`; +drop table `sPO`; +drop table `sPP`; +drop table `sPQ`; diff --git a/mysql-test/suite/jp/r/jp_charset_ucs2.result b/mysql-test/suite/jp/r/jp_charset_ucs2.result new file mode 100755 index 00000000000..d121e98fc00 --- /dev/null +++ b/mysql-test/suite/jp/r/jp_charset_ucs2.result @@ -0,0 +1,306 @@ +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +SET NAMES ujis; +SET character_set_database = ucs2; +CREATE TABLE `ԣ` (`ã` char(20)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(20)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(20)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(20)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(20)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(20)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(20)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(20)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(20)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(20)) DEFAULT CHARSET = ucs2 engine = bdb; +CREATE TABLE `ԣ` (`ã` char(20)) DEFAULT CHARSET = ucs2 engine = bdb; +CREATE TABLE `ԣ` (`ã` char(20)) DEFAULT CHARSET = ucs2 engine = bdb; +INSERT INTO `ԣ` VALUES +('PQRSTUVWXYZ[\\]^_') +,(' ') +,('') +,('ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ') +,('ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ'); +INSERT INTO `ԣ` VALUES +('¡áġšơ') +,('ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ') +,('') +,('') +,('') +,('СТУФХЦЧШЩЪЫЬЭЮЯабвг') +,(''); +INSERT INTO `ԣ` VALUES +('Ïġ') +,('ÏďŏƏ') +,('ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ') +,('܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰') +,('') +,('ÏďŏƏ') +,('ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ'); +INSERT INTO `ԣ` VALUES +('PQRSTUVWXYZ[\\]^_') +,(' ') +,('') +,('ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ') +,('ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ'); +INSERT INTO `ԣ` VALUES +('¡áġšơ') +,('ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ') +,('') +,('') +,('') +,('СТУФХЦЧШЩЪЫЬЭЮЯабвг') +,(''); +INSERT INTO `ԣ` VALUES +('Ïġ') +,('ÏďŏƏ') +,('ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ') +,('܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰') +,('') +,('ÏďŏƏ') +,('ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ'); +INSERT INTO `ԣ` VALUES +('PQRSTUVWXYZ[\\]^_') +,(' ') +,('') +,('ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ') +,('ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ'); +INSERT INTO `ԣ` VALUES +('¡áġšơ') +,('ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ') +,('') +,('') +,('') +,('СТУФХЦЧШЩЪЫЬЭЮЯабвг') +,(''); +INSERT INTO `ԣ` VALUES +('Ïġ') +,('ÏďŏƏ') +,('ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ') +,('܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰') +,('') +,('ÏďŏƏ') +,('ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ'); +INSERT INTO `ԣ` VALUES +('PQRSTUVWXYZ[\\]^_') +,(' ') +,('') +,('ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ') +,('ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ'); +INSERT INTO `ԣ` VALUES +('¡áġšơ') +,('ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ') +,('') +,('') +,('') +,('СТУФХЦЧШЩЪЫЬЭЮЯабвг') +,(''); +INSERT INTO `ԣ` VALUES +('Ïġ') +,('ÏďŏƏ') +,('ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ') +,('܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰') +,('') +,('ÏďŏƏ') +,('ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ'); +SELECT DISTINCT CHARSET(`ã`) FROM `ԣ`; +CHARSET(`ã`) +ucs2 +SELECT DISTINCT CHARSET(`ã`) FROM `ԣ`; +CHARSET(`ã`) +ucs2 +SELECT DISTINCT CHARSET(`ã`) FROM `ԣ`; +CHARSET(`ã`) +ucs2 +SELECT DISTINCT CHARSET(CONVERT(`ã` USING utf8)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING utf8)) +utf8 +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ucs2)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING ucs2)) +ucs2 +SELECT DISTINCT CHARSET(CONVERT(`ã` USING sjis)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING sjis)) +sjis +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ujis)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING ujis)) +ujis +SELECT DISTINCT CHARSET(CONVERT(`ã` USING utf8)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING utf8)) +utf8 +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ucs2)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING ucs2)) +ucs2 +SELECT DISTINCT CHARSET(CONVERT(`ã` USING sjis)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING sjis)) +sjis +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ujis)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING ujis)) +ujis +SELECT DISTINCT CHARSET(CONVERT(`ã` USING utf8)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING utf8)) +utf8 +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ucs2)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING ucs2)) +ucs2 +SELECT DISTINCT CHARSET(CONVERT(`ã` USING sjis)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING sjis)) +sjis +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ujis)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING ujis)) +ujis +SELECT DISTINCT CHARSET(`ã`) FROM `ԣ`; +CHARSET(`ã`) +ucs2 +SELECT DISTINCT CHARSET(`ã`) FROM `ԣ`; +CHARSET(`ã`) +ucs2 +SELECT DISTINCT CHARSET(`ã`) FROM `ԣ`; +CHARSET(`ã`) +ucs2 +SELECT DISTINCT CHARSET(CONVERT(`ã` USING utf8)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING utf8)) +utf8 +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ucs2)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING ucs2)) +ucs2 +SELECT DISTINCT CHARSET(CONVERT(`ã` USING sjis)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING sjis)) +sjis +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ujis)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING ujis)) +ujis +SELECT DISTINCT CHARSET(CONVERT(`ã` USING utf8)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING utf8)) +utf8 +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ucs2)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING ucs2)) +ucs2 +SELECT DISTINCT CHARSET(CONVERT(`ã` USING sjis)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING sjis)) +sjis +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ujis)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING ujis)) +ujis +SELECT DISTINCT CHARSET(CONVERT(`ã` USING utf8)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING utf8)) +utf8 +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ucs2)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING ucs2)) +ucs2 +SELECT DISTINCT CHARSET(CONVERT(`ã` USING sjis)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING sjis)) +sjis +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ujis)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING ujis)) +ujis +SELECT DISTINCT CHARSET(`ã`) FROM `ԣ`; +CHARSET(`ã`) +ucs2 +SELECT DISTINCT CHARSET(`ã`) FROM `ԣ`; +CHARSET(`ã`) +ucs2 +SELECT DISTINCT CHARSET(`ã`) FROM `ԣ`; +CHARSET(`ã`) +ucs2 +SELECT DISTINCT CHARSET(CONVERT(`ã` USING utf8)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING utf8)) +utf8 +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ucs2)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING ucs2)) +ucs2 +SELECT DISTINCT CHARSET(CONVERT(`ã` USING sjis)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING sjis)) +sjis +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ujis)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING ujis)) +ujis +SELECT DISTINCT CHARSET(CONVERT(`ã` USING utf8)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING utf8)) +utf8 +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ucs2)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING ucs2)) +ucs2 +SELECT DISTINCT CHARSET(CONVERT(`ã` USING sjis)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING sjis)) +sjis +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ujis)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING ujis)) +ujis +SELECT DISTINCT CHARSET(CONVERT(`ã` USING utf8)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING utf8)) +utf8 +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ucs2)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING ucs2)) +ucs2 +SELECT DISTINCT CHARSET(CONVERT(`ã` USING sjis)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING sjis)) +sjis +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ujis)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING ujis)) +ujis +SELECT DISTINCT CHARSET(`ã`) FROM `ԣ`; +CHARSET(`ã`) +ucs2 +SELECT DISTINCT CHARSET(`ã`) FROM `ԣ`; +CHARSET(`ã`) +ucs2 +SELECT DISTINCT CHARSET(`ã`) FROM `ԣ`; +CHARSET(`ã`) +ucs2 +SELECT DISTINCT CHARSET(CONVERT(`ã` USING utf8)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING utf8)) +utf8 +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ucs2)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING ucs2)) +ucs2 +SELECT DISTINCT CHARSET(CONVERT(`ã` USING sjis)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING sjis)) +sjis +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ujis)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING ujis)) +ujis +SELECT DISTINCT CHARSET(CONVERT(`ã` USING utf8)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING utf8)) +utf8 +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ucs2)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING ucs2)) +ucs2 +SELECT DISTINCT CHARSET(CONVERT(`ã` USING sjis)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING sjis)) +sjis +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ujis)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING ujis)) +ujis +SELECT DISTINCT CHARSET(CONVERT(`ã` USING utf8)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING utf8)) +utf8 +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ucs2)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING ucs2)) +ucs2 +SELECT DISTINCT CHARSET(CONVERT(`ã` USING sjis)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING sjis)) +sjis +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ujis)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING ujis)) +ujis +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; diff --git a/mysql-test/suite/jp/r/jp_charset_ujis.result b/mysql-test/suite/jp/r/jp_charset_ujis.result new file mode 100755 index 00000000000..964477896bd --- /dev/null +++ b/mysql-test/suite/jp/r/jp_charset_ujis.result @@ -0,0 +1,230 @@ +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +SET NAMES ujis; +SET character_set_database = ujis; +CREATE TABLE `ԣ` (`ã` char(20)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(20)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(20)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(20)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(20)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(20)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(20)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(20)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(20)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(20)) DEFAULT CHARSET = ujis engine = bdb; +CREATE TABLE `ԣ` (`ã` char(20)) DEFAULT CHARSET = ujis engine = bdb; +CREATE TABLE `ԣ` (`ã` char(20)) DEFAULT CHARSET = ujis engine = bdb; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_ujis.dat' INTO TABLE `ԣ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_ujis.dat' INTO TABLE `ԣ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0212_ujis.dat' INTO TABLE `ԣ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_ujis.dat' INTO TABLE `ԣ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_ujis.dat' INTO TABLE `ԣ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0212_ujis.dat' INTO TABLE `ԣ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_ujis.dat' INTO TABLE `ԣ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_ujis.dat' INTO TABLE `ԣ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0212_ujis.dat' INTO TABLE `ԣ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_ujis.dat' INTO TABLE `ԣ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_ujis.dat' INTO TABLE `ԣ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0212_ujis.dat' INTO TABLE `ԣ`; +SELECT DISTINCT CHARSET(`ã`) FROM `ԣ`; +CHARSET(`ã`) +ujis +SELECT DISTINCT CHARSET(`ã`) FROM `ԣ`; +CHARSET(`ã`) +ujis +SELECT DISTINCT CHARSET(`ã`) FROM `ԣ`; +CHARSET(`ã`) +ujis +SELECT DISTINCT CHARSET(CONVERT(`ã` USING utf8)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING utf8)) +utf8 +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ucs2)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING ucs2)) +ucs2 +SELECT DISTINCT CHARSET(CONVERT(`ã` USING sjis)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING sjis)) +sjis +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ujis)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING ujis)) +ujis +SELECT DISTINCT CHARSET(CONVERT(`ã` USING utf8)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING utf8)) +utf8 +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ucs2)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING ucs2)) +ucs2 +SELECT DISTINCT CHARSET(CONVERT(`ã` USING sjis)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING sjis)) +sjis +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ujis)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING ujis)) +ujis +SELECT DISTINCT CHARSET(CONVERT(`ã` USING utf8)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING utf8)) +utf8 +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ucs2)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING ucs2)) +ucs2 +SELECT DISTINCT CHARSET(CONVERT(`ã` USING sjis)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING sjis)) +sjis +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ujis)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING ujis)) +ujis +SELECT DISTINCT CHARSET(`ã`) FROM `ԣ`; +CHARSET(`ã`) +ujis +SELECT DISTINCT CHARSET(`ã`) FROM `ԣ`; +CHARSET(`ã`) +ujis +SELECT DISTINCT CHARSET(`ã`) FROM `ԣ`; +CHARSET(`ã`) +ujis +SELECT DISTINCT CHARSET(CONVERT(`ã` USING utf8)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING utf8)) +utf8 +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ucs2)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING ucs2)) +ucs2 +SELECT DISTINCT CHARSET(CONVERT(`ã` USING sjis)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING sjis)) +sjis +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ujis)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING ujis)) +ujis +SELECT DISTINCT CHARSET(CONVERT(`ã` USING utf8)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING utf8)) +utf8 +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ucs2)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING ucs2)) +ucs2 +SELECT DISTINCT CHARSET(CONVERT(`ã` USING sjis)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING sjis)) +sjis +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ujis)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING ujis)) +ujis +SELECT DISTINCT CHARSET(CONVERT(`ã` USING utf8)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING utf8)) +utf8 +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ucs2)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING ucs2)) +ucs2 +SELECT DISTINCT CHARSET(CONVERT(`ã` USING sjis)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING sjis)) +sjis +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ujis)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING ujis)) +ujis +SELECT DISTINCT CHARSET(`ã`) FROM `ԣ`; +CHARSET(`ã`) +ujis +SELECT DISTINCT CHARSET(`ã`) FROM `ԣ`; +CHARSET(`ã`) +ujis +SELECT DISTINCT CHARSET(`ã`) FROM `ԣ`; +CHARSET(`ã`) +ujis +SELECT DISTINCT CHARSET(CONVERT(`ã` USING utf8)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING utf8)) +utf8 +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ucs2)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING ucs2)) +ucs2 +SELECT DISTINCT CHARSET(CONVERT(`ã` USING sjis)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING sjis)) +sjis +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ujis)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING ujis)) +ujis +SELECT DISTINCT CHARSET(CONVERT(`ã` USING utf8)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING utf8)) +utf8 +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ucs2)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING ucs2)) +ucs2 +SELECT DISTINCT CHARSET(CONVERT(`ã` USING sjis)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING sjis)) +sjis +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ujis)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING ujis)) +ujis +SELECT DISTINCT CHARSET(CONVERT(`ã` USING utf8)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING utf8)) +utf8 +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ucs2)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING ucs2)) +ucs2 +SELECT DISTINCT CHARSET(CONVERT(`ã` USING sjis)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING sjis)) +sjis +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ujis)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING ujis)) +ujis +SELECT DISTINCT CHARSET(`ã`) FROM `ԣ`; +CHARSET(`ã`) +ujis +SELECT DISTINCT CHARSET(`ã`) FROM `ԣ`; +CHARSET(`ã`) +ujis +SELECT DISTINCT CHARSET(`ã`) FROM `ԣ`; +CHARSET(`ã`) +ujis +SELECT DISTINCT CHARSET(CONVERT(`ã` USING utf8)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING utf8)) +utf8 +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ucs2)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING ucs2)) +ucs2 +SELECT DISTINCT CHARSET(CONVERT(`ã` USING sjis)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING sjis)) +sjis +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ujis)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING ujis)) +ujis +SELECT DISTINCT CHARSET(CONVERT(`ã` USING utf8)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING utf8)) +utf8 +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ucs2)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING ucs2)) +ucs2 +SELECT DISTINCT CHARSET(CONVERT(`ã` USING sjis)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING sjis)) +sjis +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ujis)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING ujis)) +ujis +SELECT DISTINCT CHARSET(CONVERT(`ã` USING utf8)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING utf8)) +utf8 +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ucs2)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING ucs2)) +ucs2 +SELECT DISTINCT CHARSET(CONVERT(`ã` USING sjis)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING sjis)) +sjis +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ujis)) FROM `ԣ`; +CHARSET(CONVERT(`ã` USING ujis)) +ujis +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; diff --git a/mysql-test/suite/jp/r/jp_charset_utf8.result b/mysql-test/suite/jp/r/jp_charset_utf8.result new file mode 100755 index 00000000000..2fdd3fb1a6b --- /dev/null +++ b/mysql-test/suite/jp/r/jp_charset_utf8.result @@ -0,0 +1,230 @@ +drop table if exists `T1`; +drop table if exists `T2`; +drop table if exists `T3`; +drop table if exists `T4`; +drop table if exists `T5`; +drop table if exists `T6`; +drop table if exists `T7`; +drop table if exists `T8`; +drop table if exists `T9`; +drop table if exists `T10`; +drop table if exists `T11`; +drop table if exists `T12`; +SET NAMES utf8; +SET character_set_database = utf8; +CREATE TABLE `T1` (`C1` char(20)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T2` (`C1` char(20)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T3` (`C1` char(20)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T4` (`C1` char(20)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T5` (`C1` char(20)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T6` (`C1` char(20)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T7` (`C1` char(20)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T8` (`C1` char(20)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T9` (`C1` char(20)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T10` (`C1` char(20)) DEFAULT CHARSET = utf8 engine = bdb; +CREATE TABLE `T11` (`C1` char(20)) DEFAULT CHARSET = utf8 engine = bdb; +CREATE TABLE `T12` (`C1` char(20)) DEFAULT CHARSET = utf8 engine = bdb; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_utf8.dat' INTO TABLE `T1`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_utf8.dat' INTO TABLE `T2`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0212_utf8.dat' INTO TABLE `T3`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_utf8.dat' INTO TABLE `T4`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_utf8.dat' INTO TABLE `T5`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0212_utf8.dat' INTO TABLE `T6`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_utf8.dat' INTO TABLE `T7`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_utf8.dat' INTO TABLE `T8`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0212_utf8.dat' INTO TABLE `T9`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_utf8.dat' INTO TABLE `T10`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_utf8.dat' INTO TABLE `T11`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0212_utf8.dat' INTO TABLE `T12`; +SELECT DISTINCT CHARSET(`C1`) FROM `T1`; +CHARSET(`C1`) +utf8 +SELECT DISTINCT CHARSET(`C1`) FROM `T2`; +CHARSET(`C1`) +utf8 +SELECT DISTINCT CHARSET(`C1`) FROM `T3`; +CHARSET(`C1`) +utf8 +SELECT DISTINCT CHARSET(CONVERT(`C1` USING utf8)) FROM `T1`; +CHARSET(CONVERT(`C1` USING utf8)) +utf8 +SELECT DISTINCT CHARSET(CONVERT(`C1` USING ucs2)) FROM `T1`; +CHARSET(CONVERT(`C1` USING ucs2)) +ucs2 +SELECT DISTINCT CHARSET(CONVERT(`C1` USING sjis)) FROM `T1`; +CHARSET(CONVERT(`C1` USING sjis)) +sjis +SELECT DISTINCT CHARSET(CONVERT(`C1` USING ujis)) FROM `T1`; +CHARSET(CONVERT(`C1` USING ujis)) +ujis +SELECT DISTINCT CHARSET(CONVERT(`C1` USING utf8)) FROM `T2`; +CHARSET(CONVERT(`C1` USING utf8)) +utf8 +SELECT DISTINCT CHARSET(CONVERT(`C1` USING ucs2)) FROM `T2`; +CHARSET(CONVERT(`C1` USING ucs2)) +ucs2 +SELECT DISTINCT CHARSET(CONVERT(`C1` USING sjis)) FROM `T2`; +CHARSET(CONVERT(`C1` USING sjis)) +sjis +SELECT DISTINCT CHARSET(CONVERT(`C1` USING ujis)) FROM `T2`; +CHARSET(CONVERT(`C1` USING ujis)) +ujis +SELECT DISTINCT CHARSET(CONVERT(`C1` USING utf8)) FROM `T3`; +CHARSET(CONVERT(`C1` USING utf8)) +utf8 +SELECT DISTINCT CHARSET(CONVERT(`C1` USING ucs2)) FROM `T3`; +CHARSET(CONVERT(`C1` USING ucs2)) +ucs2 +SELECT DISTINCT CHARSET(CONVERT(`C1` USING sjis)) FROM `T3`; +CHARSET(CONVERT(`C1` USING sjis)) +sjis +SELECT DISTINCT CHARSET(CONVERT(`C1` USING ujis)) FROM `T3`; +CHARSET(CONVERT(`C1` USING ujis)) +ujis +SELECT DISTINCT CHARSET(`C1`) FROM `T4`; +CHARSET(`C1`) +utf8 +SELECT DISTINCT CHARSET(`C1`) FROM `T5`; +CHARSET(`C1`) +utf8 +SELECT DISTINCT CHARSET(`C1`) FROM `T6`; +CHARSET(`C1`) +utf8 +SELECT DISTINCT CHARSET(CONVERT(`C1` USING utf8)) FROM `T4`; +CHARSET(CONVERT(`C1` USING utf8)) +utf8 +SELECT DISTINCT CHARSET(CONVERT(`C1` USING ucs2)) FROM `T4`; +CHARSET(CONVERT(`C1` USING ucs2)) +ucs2 +SELECT DISTINCT CHARSET(CONVERT(`C1` USING sjis)) FROM `T4`; +CHARSET(CONVERT(`C1` USING sjis)) +sjis +SELECT DISTINCT CHARSET(CONVERT(`C1` USING ujis)) FROM `T4`; +CHARSET(CONVERT(`C1` USING ujis)) +ujis +SELECT DISTINCT CHARSET(CONVERT(`C1` USING utf8)) FROM `T5`; +CHARSET(CONVERT(`C1` USING utf8)) +utf8 +SELECT DISTINCT CHARSET(CONVERT(`C1` USING ucs2)) FROM `T5`; +CHARSET(CONVERT(`C1` USING ucs2)) +ucs2 +SELECT DISTINCT CHARSET(CONVERT(`C1` USING sjis)) FROM `T5`; +CHARSET(CONVERT(`C1` USING sjis)) +sjis +SELECT DISTINCT CHARSET(CONVERT(`C1` USING ujis)) FROM `T5`; +CHARSET(CONVERT(`C1` USING ujis)) +ujis +SELECT DISTINCT CHARSET(CONVERT(`C1` USING utf8)) FROM `T6`; +CHARSET(CONVERT(`C1` USING utf8)) +utf8 +SELECT DISTINCT CHARSET(CONVERT(`C1` USING ucs2)) FROM `T6`; +CHARSET(CONVERT(`C1` USING ucs2)) +ucs2 +SELECT DISTINCT CHARSET(CONVERT(`C1` USING sjis)) FROM `T6`; +CHARSET(CONVERT(`C1` USING sjis)) +sjis +SELECT DISTINCT CHARSET(CONVERT(`C1` USING ujis)) FROM `T6`; +CHARSET(CONVERT(`C1` USING ujis)) +ujis +SELECT DISTINCT CHARSET(`C1`) FROM `T7`; +CHARSET(`C1`) +utf8 +SELECT DISTINCT CHARSET(`C1`) FROM `T8`; +CHARSET(`C1`) +utf8 +SELECT DISTINCT CHARSET(`C1`) FROM `T9`; +CHARSET(`C1`) +utf8 +SELECT DISTINCT CHARSET(CONVERT(`C1` USING utf8)) FROM `T7`; +CHARSET(CONVERT(`C1` USING utf8)) +utf8 +SELECT DISTINCT CHARSET(CONVERT(`C1` USING ucs2)) FROM `T7`; +CHARSET(CONVERT(`C1` USING ucs2)) +ucs2 +SELECT DISTINCT CHARSET(CONVERT(`C1` USING sjis)) FROM `T7`; +CHARSET(CONVERT(`C1` USING sjis)) +sjis +SELECT DISTINCT CHARSET(CONVERT(`C1` USING ujis)) FROM `T7`; +CHARSET(CONVERT(`C1` USING ujis)) +ujis +SELECT DISTINCT CHARSET(CONVERT(`C1` USING utf8)) FROM `T8`; +CHARSET(CONVERT(`C1` USING utf8)) +utf8 +SELECT DISTINCT CHARSET(CONVERT(`C1` USING ucs2)) FROM `T8`; +CHARSET(CONVERT(`C1` USING ucs2)) +ucs2 +SELECT DISTINCT CHARSET(CONVERT(`C1` USING sjis)) FROM `T8`; +CHARSET(CONVERT(`C1` USING sjis)) +sjis +SELECT DISTINCT CHARSET(CONVERT(`C1` USING ujis)) FROM `T8`; +CHARSET(CONVERT(`C1` USING ujis)) +ujis +SELECT DISTINCT CHARSET(CONVERT(`C1` USING utf8)) FROM `T9`; +CHARSET(CONVERT(`C1` USING utf8)) +utf8 +SELECT DISTINCT CHARSET(CONVERT(`C1` USING ucs2)) FROM `T9`; +CHARSET(CONVERT(`C1` USING ucs2)) +ucs2 +SELECT DISTINCT CHARSET(CONVERT(`C1` USING sjis)) FROM `T9`; +CHARSET(CONVERT(`C1` USING sjis)) +sjis +SELECT DISTINCT CHARSET(CONVERT(`C1` USING ujis)) FROM `T9`; +CHARSET(CONVERT(`C1` USING ujis)) +ujis +SELECT DISTINCT CHARSET(`C1`) FROM `T10`; +CHARSET(`C1`) +utf8 +SELECT DISTINCT CHARSET(`C1`) FROM `T11`; +CHARSET(`C1`) +utf8 +SELECT DISTINCT CHARSET(`C1`) FROM `T12`; +CHARSET(`C1`) +utf8 +SELECT DISTINCT CHARSET(CONVERT(`C1` USING utf8)) FROM `T10`; +CHARSET(CONVERT(`C1` USING utf8)) +utf8 +SELECT DISTINCT CHARSET(CONVERT(`C1` USING ucs2)) FROM `T10`; +CHARSET(CONVERT(`C1` USING ucs2)) +ucs2 +SELECT DISTINCT CHARSET(CONVERT(`C1` USING sjis)) FROM `T10`; +CHARSET(CONVERT(`C1` USING sjis)) +sjis +SELECT DISTINCT CHARSET(CONVERT(`C1` USING ujis)) FROM `T10`; +CHARSET(CONVERT(`C1` USING ujis)) +ujis +SELECT DISTINCT CHARSET(CONVERT(`C1` USING utf8)) FROM `T11`; +CHARSET(CONVERT(`C1` USING utf8)) +utf8 +SELECT DISTINCT CHARSET(CONVERT(`C1` USING ucs2)) FROM `T11`; +CHARSET(CONVERT(`C1` USING ucs2)) +ucs2 +SELECT DISTINCT CHARSET(CONVERT(`C1` USING sjis)) FROM `T11`; +CHARSET(CONVERT(`C1` USING sjis)) +sjis +SELECT DISTINCT CHARSET(CONVERT(`C1` USING ujis)) FROM `T11`; +CHARSET(CONVERT(`C1` USING ujis)) +ujis +SELECT DISTINCT CHARSET(CONVERT(`C1` USING utf8)) FROM `T12`; +CHARSET(CONVERT(`C1` USING utf8)) +utf8 +SELECT DISTINCT CHARSET(CONVERT(`C1` USING ucs2)) FROM `T12`; +CHARSET(CONVERT(`C1` USING ucs2)) +ucs2 +SELECT DISTINCT CHARSET(CONVERT(`C1` USING sjis)) FROM `T12`; +CHARSET(CONVERT(`C1` USING sjis)) +sjis +SELECT DISTINCT CHARSET(CONVERT(`C1` USING ujis)) FROM `T12`; +CHARSET(CONVERT(`C1` USING ujis)) +ujis +drop table `T1`; +drop table `T2`; +drop table `T3`; +drop table `T4`; +drop table `T5`; +drop table `T6`; +drop table `T7`; +drop table `T8`; +drop table `T9`; +drop table `T10`; +drop table `T11`; +drop table `T12`; diff --git a/mysql-test/suite/jp/r/jp_convert_sjis.result b/mysql-test/suite/jp/r/jp_convert_sjis.result new file mode 100755 index 00000000000..8c9df3606c8 --- /dev/null +++ b/mysql-test/suite/jp/r/jp_convert_sjis.result @@ -0,0 +1,1046 @@ +SET NAMES sjis; +SET character_set_database = sjis; +drop table if exists `sP`; +drop table if exists `sQ`; +drop table if exists `sR`; +drop table if exists `sS`; +drop table if exists `sT`; +drop table if exists `sU`; +drop table if exists `sV`; +drop table if exists `sW`; +drop table if exists `sX`; +drop table if exists `sPO`; +drop table if exists `sPP`; +drop table if exists `sPQ`; +CREATE TABLE `sP` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sQ` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sR` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sS` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sT` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sU` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sV` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sW` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sX` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sPO` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +CREATE TABLE `sPP` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +CREATE TABLE `sPQ` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_sjis.dat' INTO TABLE `sP`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_sjis.dat' INTO TABLE `sQ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_sjis2.dat' INTO TABLE `sR`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_sjis.dat' INTO TABLE `sS`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_sjis.dat' INTO TABLE `sT`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_sjis2.dat' INTO TABLE `sU`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_sjis.dat' INTO TABLE `sV`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_sjis.dat' INTO TABLE `sW`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_sjis2.dat' INTO TABLE `sX`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_sjis.dat' INTO TABLE `sPO`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_sjis.dat' INTO TABLE `sPP`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_sjis2.dat' INTO TABLE `sPQ`; +SELECT `bP`, CONVERT(`bP` using utf8) FROM `sP`; +bP CONVERT(`bP` using utf8) + !"#$%&'()*+,-./ !"#$%&'()*+,-./ + +0123456789:;<=>? 0123456789:;<=>? +@ABCDEFGHIJKLMNO @ABCDEFGHIJKLMNO +abcdefghijklmno abcdefghijklmno +PQRSTUVWXYZ[\]^_ PQRSTUVWXYZ[_]^_ +pqrstuvwxyz{|}~ pqrstuvwxyz{|}~ + + + +SELECT `bP`, CONVERT(`bP` using ucs2) FROM `sP`; +bP CONVERT(`bP` using ucs2) + !"#$%&'()*+,-./ !"#$%&'()*+,-./ + +0123456789:;<=>? 0123456789:;<=>? +@ABCDEFGHIJKLMNO @ABCDEFGHIJKLMNO +abcdefghijklmno abcdefghijklmno +PQRSTUVWXYZ[\]^_ PQRSTUVWXYZ[_]^_ +pqrstuvwxyz{|}~ pqrstuvwxyz{|}~ + + + +SELECT `bP`, CONVERT(`bP` using ujis) FROM `sP`; +bP CONVERT(`bP` using ujis) + !"#$%&'()*+,-./ !"#$%&'()*+,-./ + +0123456789:;<=>? 0123456789:;<=>? +@ABCDEFGHIJKLMNO @ABCDEFGHIJKLMNO +abcdefghijklmno abcdefghijklmno +PQRSTUVWXYZ[\]^_ PQRSTUVWXYZ[_]^_ +pqrstuvwxyz{|}~ pqrstuvwxyz{|}~ + + + +SELECT `bP`, CONVERT(`bP` using utf8) FROM `sQ`; +bP CONVERT(`bP` using utf8) +@@ABCDEFGHIJKLMNOPQR @@ABCDEFGHIJKLMNOPQR +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEOPQR EEEEEEEEEEEEEEEEOPQR +EEEEEEEEEpqrstuvwxyz EEEEEEEEEpqrstuvwxyz +EEEEEEEEEEEE EEEEEEEEEEEE +EEEEE EEEEE +EEȁɁʁˁ́́΁EEEEEEEEEEE EEȁɁʁˁ́́΁EEEEEEEEEEE +EEEEEEEEEE@ EEEEEEEEEE@ +EEEEEE EEEEEE +E E +E@ABCDEFGHIJKLMNOPQR E@ABCDEFGHIJKLMNOPQR +E E +E@ABCDEFGHIJKLMNOPQR E@ABCDEFGHIJKLMNOPQR +E E +E E +E@ABCDEFGHIJKLMNOPQR E@ABCDEFGHIJKLMNOPQR +E E +E@ABCDEFGHIJKLMNOPQR E@ABCDEFGHIJKLMNOPQR +E꤁EEEEEEEEEEEEE E꤁EEEEEEEEEEEEE +STUVWXYZ[\]^_`abcdef STUVWXYZ[\]^_`abcdef +ghijklmnopqrstuvwxyz ghijklmnopqrstuvwxyz +{]}~ {]}~ +EEEEE EEEEE +ځہ܁݁ށ߁EEEEE ځہ܁݁ށ߁EEEEE +STUVWXEEEEEEE`abcdef STUVWXEEEEEEE`abcdef +ghijklmnopqrstuvwxyE ghijklmnopqrstuvwxyE +EEEEEEEEE EEEEEEEEE +‚ÂĂ ‚ÂĂ +ƂǂȂɂʂ˂̂͂΂ςЂт҂ӂԂՂւׂ؂ ƂǂȂɂʂ˂̂͂΂ςЂт҂ӂԂՂւׂ؂ +ڂۂ܂݂ނ߂ ڂۂ܂݂ނ߂ +EEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEE +STUVWXYZ[\]^_`abcdef STUVWXYZ[\]^_`abcdef +ghijklmnopqrstuvwxyz ghijklmnopqrstuvwxyz +{|}~ {|}~ +EEEEEEEEEEEEE EEEEEEEEEEEEE +EEEEEEEEƒÃă EEEEEEEEƒÃă +ƃǃȃɃʃ˃̃̓΃σЃу҃ӃԃՃցEEE ƃǃȃɃʃ˃̃̓΃σЃу҃ӃԃՃցEEE +STUVWXYZ[\]^_`EEEEEE STUVWXYZ[\]^_`EEEEEE +{|}~ {|}~ +EEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEE +EEEEEEE EEEEEEE +ˆÈĈ ˆÈĈ +ƈLjȈɈʈˈ͈̈ΈψЈш҈ӈԈՈֈ׈؈ ƈLjȈɈʈˈ͈̈ΈψЈш҈ӈԈՈֈ׈؈ +ڈۈ܈݈ވ߈ ڈۈ܈݈ވ߈ +EEEEE EEEEE +STUVWXYZ[\]^_`abcdef STUVWXYZ[\]^_`abcdef +ghijklmnopqrEEEEEEEE ghijklmnopqrEEEEEEEE +˜ØĘ ˜ØĘ +ƘǘȘɘʘ˘̘͘ΘϘИјҘӘԘ՘֘טؘ ƘǘȘɘʘ˘̘͘ΘϘИјҘӘԘ՘֘טؘ +ژۘܘݘޘߘ ژۘܘݘޘߘ +EEEEE EEEEE +STUVWXYZ[\]^_`abcdef STUVWXYZ[\]^_`abcdef +ghijklmnopqrstuvwxyz ghijklmnopqrstuvwxyz +{|}~ {|}~ +ꞁEEEEE ꞁEEEEE +SELECT `bP`, CONVERT(`bP` using ucs2) FROM `sQ`; +bP CONVERT(`bP` using ucs2) +@@ABCDEFGHIJKLMNOPQR @@ABCDEFGHIJKLMNOPQR +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEOPQR EEEEEEEEEEEEEEEEOPQR +EEEEEEEEEpqrstuvwxyz EEEEEEEEEpqrstuvwxyz +EEEEEEEEEEEE EEEEEEEEEEEE +EEEEE EEEEE +EEȁɁʁˁ́́΁EEEEEEEEEEE EEȁɁʁˁ́́΁EEEEEEEEEEE +EEEEEEEEEE@ EEEEEEEEEE@ +EEEEEE EEEEEE +E E +E@ABCDEFGHIJKLMNOPQR E@ABCDEFGHIJKLMNOPQR +E E +E@ABCDEFGHIJKLMNOPQR E@ABCDEFGHIJKLMNOPQR +E E +E E +E@ABCDEFGHIJKLMNOPQR E@ABCDEFGHIJKLMNOPQR +E E +E@ABCDEFGHIJKLMNOPQR E@ABCDEFGHIJKLMNOPQR +E꤁EEEEEEEEEEEEE E꤁EEEEEEEEEEEEE +STUVWXYZ[\]^_`abcdef STUVWXYZ[\]^_`abcdef +ghijklmnopqrstuvwxyz ghijklmnopqrstuvwxyz +{]}~ {]}~ +EEEEE EEEEE +ځہ܁݁ށ߁EEEEE ځہ܁݁ށ߁EEEEE +STUVWXEEEEEEE`abcdef STUVWXEEEEEEE`abcdef +ghijklmnopqrstuvwxyE ghijklmnopqrstuvwxyE +EEEEEEEEE EEEEEEEEE +‚ÂĂ ‚ÂĂ +ƂǂȂɂʂ˂̂͂΂ςЂт҂ӂԂՂւׂ؂ ƂǂȂɂʂ˂̂͂΂ςЂт҂ӂԂՂւׂ؂ +ڂۂ܂݂ނ߂ ڂۂ܂݂ނ߂ +EEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEE +STUVWXYZ[\]^_`abcdef STUVWXYZ[\]^_`abcdef +ghijklmnopqrstuvwxyz ghijklmnopqrstuvwxyz +{|}~ {|}~ +EEEEEEEEEEEEE EEEEEEEEEEEEE +EEEEEEEEƒÃă EEEEEEEEƒÃă +ƃǃȃɃʃ˃̃̓΃σЃу҃ӃԃՃցEEE ƃǃȃɃʃ˃̃̓΃σЃу҃ӃԃՃցEEE +STUVWXYZ[\]^_`EEEEEE STUVWXYZ[\]^_`EEEEEE +{|}~ {|}~ +EEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEE +EEEEEEE EEEEEEE +ˆÈĈ ˆÈĈ +ƈLjȈɈʈˈ͈̈ΈψЈш҈ӈԈՈֈ׈؈ ƈLjȈɈʈˈ͈̈ΈψЈш҈ӈԈՈֈ׈؈ +ڈۈ܈݈ވ߈ ڈۈ܈݈ވ߈ +EEEEE EEEEE +STUVWXYZ[\]^_`abcdef STUVWXYZ[\]^_`abcdef +ghijklmnopqrEEEEEEEE ghijklmnopqrEEEEEEEE +˜ØĘ ˜ØĘ +ƘǘȘɘʘ˘̘͘ΘϘИјҘӘԘ՘֘טؘ ƘǘȘɘʘ˘̘͘ΘϘИјҘӘԘ՘֘טؘ +ژۘܘݘޘߘ ژۘܘݘޘߘ +EEEEE EEEEE +STUVWXYZ[\]^_`abcdef STUVWXYZ[\]^_`abcdef +ghijklmnopqrstuvwxyz ghijklmnopqrstuvwxyz +{|}~ {|}~ +ꞁEEEEE ꞁEEEEE +SELECT `bP`, CONVERT(`bP` using ujis) FROM `sQ`; +bP CONVERT(`bP` using ujis) +@@ABCDEFGHIJKLMNOPQR @@ABCDEFGHIJKLMNOPQR +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEOPQR EEEEEEEEEEEEEEEEOPQR +EEEEEEEEEpqrstuvwxyz EEEEEEEEEpqrstuvwxyz +EEEEEEEEEEEE EEEEEEEEEEEE +EEEEE EEEEE +EEȁɁʁˁ́́΁EEEEEEEEEEE EEȁɁʁˁ́́΁EEEEEEEEEEE +EEEEEEEEEE@ EEEEEEEEEE@ +EEEEEE EEEEEE +E E +E@ABCDEFGHIJKLMNOPQR E@ABCDEFGHIJKLMNOPQR +E E +E@ABCDEFGHIJKLMNOPQR E@ABCDEFGHIJKLMNOPQR +E E +E E +E@ABCDEFGHIJKLMNOPQR E@ABCDEFGHIJKLMNOPQR +E E +E@ABCDEFGHIJKLMNOPQR E@ABCDEFGHIJKLMNOPQR +E꤁EEEEEEEEEEEEE E꤁EEEEEEEEEEEEE +STUVWXYZ[\]^_`abcdef STUVWXYZ[\]^_`abcdef +ghijklmnopqrstuvwxyz ghijklmnopqrstuvwxyz +{]}~ {]}~ +EEEEE EEEEE +ځہ܁݁ށ߁EEEEE ځہ܁݁ށ߁EEEEE +STUVWXEEEEEEE`abcdef STUVWXEEEEEEE`abcdef +ghijklmnopqrstuvwxyE ghijklmnopqrstuvwxyE +EEEEEEEEE EEEEEEEEE +‚ÂĂ ‚ÂĂ +ƂǂȂɂʂ˂̂͂΂ςЂт҂ӂԂՂւׂ؂ ƂǂȂɂʂ˂̂͂΂ςЂт҂ӂԂՂւׂ؂ +ڂۂ܂݂ނ߂ ڂۂ܂݂ނ߂ +EEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEE +STUVWXYZ[\]^_`abcdef STUVWXYZ[\]^_`abcdef +ghijklmnopqrstuvwxyz ghijklmnopqrstuvwxyz +{|}~ {|}~ +EEEEEEEEEEEEE EEEEEEEEEEEEE +EEEEEEEEƒÃă EEEEEEEEƒÃă +ƃǃȃɃʃ˃̃̓΃σЃу҃ӃԃՃցEEE ƃǃȃɃʃ˃̃̓΃σЃу҃ӃԃՃցEEE +STUVWXYZ[\]^_`EEEEEE STUVWXYZ[\]^_`EEEEEE +{|}~ {|}~ +EEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEE +EEEEEEE EEEEEEE +ˆÈĈ ˆÈĈ +ƈLjȈɈʈˈ͈̈ΈψЈш҈ӈԈՈֈ׈؈ ƈLjȈɈʈˈ͈̈ΈψЈш҈ӈԈՈֈ׈؈ +ڈۈ܈݈ވ߈ ڈۈ܈݈ވ߈ +EEEEE EEEEE +STUVWXYZ[\]^_`abcdef STUVWXYZ[\]^_`abcdef +ghijklmnopqrEEEEEEEE ghijklmnopqrEEEEEEEE +˜ØĘ ˜ØĘ +ƘǘȘɘʘ˘̘͘ΘϘИјҘӘԘ՘֘טؘ ƘǘȘɘʘ˘̘͘ΘϘИјҘӘԘ՘֘טؘ +ژۘܘݘޘߘ ژۘܘݘޘߘ +EEEEE EEEEE +STUVWXYZ[\]^_`abcdef STUVWXYZ[\]^_`abcdef +ghijklmnopqrstuvwxyz ghijklmnopqrstuvwxyz +{|}~ {|}~ +ꞁEEEEE ꞁEEEEE +SELECT `bP`, CONVERT(`bP` using utf8) FROM `sR`; +bP CONVERT(`bP` using utf8) +\\\\\\\\\\\\\\\\\\\\ \\\\\\\\\\\\\\\\\\\\ +SELECT `bP`, CONVERT(`bP` using ucs2) FROM `sR`; +bP CONVERT(`bP` using ucs2) +\\\\\\\\\\\\\\\\\\\\ \\\\\\\\\\\\\\\\\\\\ +SELECT `bP`, CONVERT(`bP` using ujis) FROM `sR`; +bP CONVERT(`bP` using ujis) +\\\\\\\\\\\\\\\\\\\\ \\\\\\\\\\\\\\\\\\\\ +SELECT `bP`, CONVERT(`bP` using utf8) FROM `sS`; +bP CONVERT(`bP` using utf8) + !"#$%&'()*+,-./ !"#$%&'()*+,-./ + +0123456789:;<=>? 0123456789:;<=>? +@ABCDEFGHIJKLMNO @ABCDEFGHIJKLMNO +abcdefghijklmno abcdefghijklmno +PQRSTUVWXYZ[\]^_ PQRSTUVWXYZ[_]^_ +pqrstuvwxyz{|}~ pqrstuvwxyz{|}~ + + + +SELECT `bP`, CONVERT(`bP` using ucs2) FROM `sS`; +bP CONVERT(`bP` using ucs2) + !"#$%&'()*+,-./ !"#$%&'()*+,-./ + +0123456789:;<=>? 0123456789:;<=>? +@ABCDEFGHIJKLMNO @ABCDEFGHIJKLMNO +abcdefghijklmno abcdefghijklmno +PQRSTUVWXYZ[\]^_ PQRSTUVWXYZ[_]^_ +pqrstuvwxyz{|}~ pqrstuvwxyz{|}~ + + + +SELECT `bP`, CONVERT(`bP` using ujis) FROM `sS`; +bP CONVERT(`bP` using ujis) + !"#$%&'()*+,-./ !"#$%&'()*+,-./ + +0123456789:;<=>? 0123456789:;<=>? +@ABCDEFGHIJKLMNO @ABCDEFGHIJKLMNO +abcdefghijklmno abcdefghijklmno +PQRSTUVWXYZ[\]^_ PQRSTUVWXYZ[_]^_ +pqrstuvwxyz{|}~ pqrstuvwxyz{|}~ + + + +SELECT `bP`, CONVERT(`bP` using utf8) FROM `sT`; +bP CONVERT(`bP` using utf8) +@@ABCDEFGHIJKLMNOPQR @@ABCDEFGHIJKLMNOPQR +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEOPQR EEEEEEEEEEEEEEEEOPQR +EEEEEEEEEpqrstuvwxyz EEEEEEEEEpqrstuvwxyz +EEEEEEEEEEEE EEEEEEEEEEEE +EEEEE EEEEE +EEȁɁʁˁ́́΁EEEEEEEEEEE EEȁɁʁˁ́́΁EEEEEEEEEEE +EEEEEEEEEE@ EEEEEEEEEE@ +EEEEEE EEEEEE +E E +E@ABCDEFGHIJKLMNOPQR E@ABCDEFGHIJKLMNOPQR +E E +E@ABCDEFGHIJKLMNOPQR E@ABCDEFGHIJKLMNOPQR +E E +E E +E@ABCDEFGHIJKLMNOPQR E@ABCDEFGHIJKLMNOPQR +E E +E@ABCDEFGHIJKLMNOPQR E@ABCDEFGHIJKLMNOPQR +E꤁EEEEEEEEEEEEE E꤁EEEEEEEEEEEEE +STUVWXYZ[\]^_`abcdef STUVWXYZ[\]^_`abcdef +ghijklmnopqrstuvwxyz ghijklmnopqrstuvwxyz +{]}~ {]}~ +EEEEE EEEEE +ځہ܁݁ށ߁EEEEE ځہ܁݁ށ߁EEEEE +STUVWXEEEEEEE`abcdef STUVWXEEEEEEE`abcdef +ghijklmnopqrstuvwxyE ghijklmnopqrstuvwxyE +EEEEEEEEE EEEEEEEEE +‚ÂĂ ‚ÂĂ +ƂǂȂɂʂ˂̂͂΂ςЂт҂ӂԂՂւׂ؂ ƂǂȂɂʂ˂̂͂΂ςЂт҂ӂԂՂւׂ؂ +ڂۂ܂݂ނ߂ ڂۂ܂݂ނ߂ +EEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEE +STUVWXYZ[\]^_`abcdef STUVWXYZ[\]^_`abcdef +ghijklmnopqrstuvwxyz ghijklmnopqrstuvwxyz +{|}~ {|}~ +EEEEEEEEEEEEE EEEEEEEEEEEEE +EEEEEEEEƒÃă EEEEEEEEƒÃă +ƃǃȃɃʃ˃̃̓΃σЃу҃ӃԃՃցEEE ƃǃȃɃʃ˃̃̓΃σЃу҃ӃԃՃցEEE +STUVWXYZ[\]^_`EEEEEE STUVWXYZ[\]^_`EEEEEE +{|}~ {|}~ +EEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEE +EEEEEEE EEEEEEE +ˆÈĈ ˆÈĈ +ƈLjȈɈʈˈ͈̈ΈψЈш҈ӈԈՈֈ׈؈ ƈLjȈɈʈˈ͈̈ΈψЈш҈ӈԈՈֈ׈؈ +ڈۈ܈݈ވ߈ ڈۈ܈݈ވ߈ +EEEEE EEEEE +STUVWXYZ[\]^_`abcdef STUVWXYZ[\]^_`abcdef +ghijklmnopqrEEEEEEEE ghijklmnopqrEEEEEEEE +˜ØĘ ˜ØĘ +ƘǘȘɘʘ˘̘͘ΘϘИјҘӘԘ՘֘טؘ ƘǘȘɘʘ˘̘͘ΘϘИјҘӘԘ՘֘טؘ +ژۘܘݘޘߘ ژۘܘݘޘߘ +EEEEE EEEEE +STUVWXYZ[\]^_`abcdef STUVWXYZ[\]^_`abcdef +ghijklmnopqrstuvwxyz ghijklmnopqrstuvwxyz +{|}~ {|}~ +ꞁEEEEE ꞁEEEEE +SELECT `bP`, CONVERT(`bP` using ucs2) FROM `sT`; +bP CONVERT(`bP` using ucs2) +@@ABCDEFGHIJKLMNOPQR @@ABCDEFGHIJKLMNOPQR +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEOPQR EEEEEEEEEEEEEEEEOPQR +EEEEEEEEEpqrstuvwxyz EEEEEEEEEpqrstuvwxyz +EEEEEEEEEEEE EEEEEEEEEEEE +EEEEE EEEEE +EEȁɁʁˁ́́΁EEEEEEEEEEE EEȁɁʁˁ́́΁EEEEEEEEEEE +EEEEEEEEEE@ EEEEEEEEEE@ +EEEEEE EEEEEE +E E +E@ABCDEFGHIJKLMNOPQR E@ABCDEFGHIJKLMNOPQR +E E +E@ABCDEFGHIJKLMNOPQR E@ABCDEFGHIJKLMNOPQR +E E +E E +E@ABCDEFGHIJKLMNOPQR E@ABCDEFGHIJKLMNOPQR +E E +E@ABCDEFGHIJKLMNOPQR E@ABCDEFGHIJKLMNOPQR +E꤁EEEEEEEEEEEEE E꤁EEEEEEEEEEEEE +STUVWXYZ[\]^_`abcdef STUVWXYZ[\]^_`abcdef +ghijklmnopqrstuvwxyz ghijklmnopqrstuvwxyz +{]}~ {]}~ +EEEEE EEEEE +ځہ܁݁ށ߁EEEEE ځہ܁݁ށ߁EEEEE +STUVWXEEEEEEE`abcdef STUVWXEEEEEEE`abcdef +ghijklmnopqrstuvwxyE ghijklmnopqrstuvwxyE +EEEEEEEEE EEEEEEEEE +‚ÂĂ ‚ÂĂ +ƂǂȂɂʂ˂̂͂΂ςЂт҂ӂԂՂւׂ؂ ƂǂȂɂʂ˂̂͂΂ςЂт҂ӂԂՂւׂ؂ +ڂۂ܂݂ނ߂ ڂۂ܂݂ނ߂ +EEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEE +STUVWXYZ[\]^_`abcdef STUVWXYZ[\]^_`abcdef +ghijklmnopqrstuvwxyz ghijklmnopqrstuvwxyz +{|}~ {|}~ +EEEEEEEEEEEEE EEEEEEEEEEEEE +EEEEEEEEƒÃă EEEEEEEEƒÃă +ƃǃȃɃʃ˃̃̓΃σЃу҃ӃԃՃցEEE ƃǃȃɃʃ˃̃̓΃σЃу҃ӃԃՃցEEE +STUVWXYZ[\]^_`EEEEEE STUVWXYZ[\]^_`EEEEEE +{|}~ {|}~ +EEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEE +EEEEEEE EEEEEEE +ˆÈĈ ˆÈĈ +ƈLjȈɈʈˈ͈̈ΈψЈш҈ӈԈՈֈ׈؈ ƈLjȈɈʈˈ͈̈ΈψЈш҈ӈԈՈֈ׈؈ +ڈۈ܈݈ވ߈ ڈۈ܈݈ވ߈ +EEEEE EEEEE +STUVWXYZ[\]^_`abcdef STUVWXYZ[\]^_`abcdef +ghijklmnopqrEEEEEEEE ghijklmnopqrEEEEEEEE +˜ØĘ ˜ØĘ +ƘǘȘɘʘ˘̘͘ΘϘИјҘӘԘ՘֘טؘ ƘǘȘɘʘ˘̘͘ΘϘИјҘӘԘ՘֘טؘ +ژۘܘݘޘߘ ژۘܘݘޘߘ +EEEEE EEEEE +STUVWXYZ[\]^_`abcdef STUVWXYZ[\]^_`abcdef +ghijklmnopqrstuvwxyz ghijklmnopqrstuvwxyz +{|}~ {|}~ +ꞁEEEEE ꞁEEEEE +SELECT `bP`, CONVERT(`bP` using ujis) FROM `sT`; +bP CONVERT(`bP` using ujis) +@@ABCDEFGHIJKLMNOPQR @@ABCDEFGHIJKLMNOPQR +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEOPQR EEEEEEEEEEEEEEEEOPQR +EEEEEEEEEpqrstuvwxyz EEEEEEEEEpqrstuvwxyz +EEEEEEEEEEEE EEEEEEEEEEEE +EEEEE EEEEE +EEȁɁʁˁ́́΁EEEEEEEEEEE EEȁɁʁˁ́́΁EEEEEEEEEEE +EEEEEEEEEE@ EEEEEEEEEE@ +EEEEEE EEEEEE +E E +E@ABCDEFGHIJKLMNOPQR E@ABCDEFGHIJKLMNOPQR +E E +E@ABCDEFGHIJKLMNOPQR E@ABCDEFGHIJKLMNOPQR +E E +E E +E@ABCDEFGHIJKLMNOPQR E@ABCDEFGHIJKLMNOPQR +E E +E@ABCDEFGHIJKLMNOPQR E@ABCDEFGHIJKLMNOPQR +E꤁EEEEEEEEEEEEE E꤁EEEEEEEEEEEEE +STUVWXYZ[\]^_`abcdef STUVWXYZ[\]^_`abcdef +ghijklmnopqrstuvwxyz ghijklmnopqrstuvwxyz +{]}~ {]}~ +EEEEE EEEEE +ځہ܁݁ށ߁EEEEE ځہ܁݁ށ߁EEEEE +STUVWXEEEEEEE`abcdef STUVWXEEEEEEE`abcdef +ghijklmnopqrstuvwxyE ghijklmnopqrstuvwxyE +EEEEEEEEE EEEEEEEEE +‚ÂĂ ‚ÂĂ +ƂǂȂɂʂ˂̂͂΂ςЂт҂ӂԂՂւׂ؂ ƂǂȂɂʂ˂̂͂΂ςЂт҂ӂԂՂւׂ؂ +ڂۂ܂݂ނ߂ ڂۂ܂݂ނ߂ +EEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEE +STUVWXYZ[\]^_`abcdef STUVWXYZ[\]^_`abcdef +ghijklmnopqrstuvwxyz ghijklmnopqrstuvwxyz +{|}~ {|}~ +EEEEEEEEEEEEE EEEEEEEEEEEEE +EEEEEEEEƒÃă EEEEEEEEƒÃă +ƃǃȃɃʃ˃̃̓΃σЃу҃ӃԃՃցEEE ƃǃȃɃʃ˃̃̓΃σЃу҃ӃԃՃցEEE +STUVWXYZ[\]^_`EEEEEE STUVWXYZ[\]^_`EEEEEE +{|}~ {|}~ +EEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEE +EEEEEEE EEEEEEE +ˆÈĈ ˆÈĈ +ƈLjȈɈʈˈ͈̈ΈψЈш҈ӈԈՈֈ׈؈ ƈLjȈɈʈˈ͈̈ΈψЈш҈ӈԈՈֈ׈؈ +ڈۈ܈݈ވ߈ ڈۈ܈݈ވ߈ +EEEEE EEEEE +STUVWXYZ[\]^_`abcdef STUVWXYZ[\]^_`abcdef +ghijklmnopqrEEEEEEEE ghijklmnopqrEEEEEEEE +˜ØĘ ˜ØĘ +ƘǘȘɘʘ˘̘͘ΘϘИјҘӘԘ՘֘טؘ ƘǘȘɘʘ˘̘͘ΘϘИјҘӘԘ՘֘טؘ +ژۘܘݘޘߘ ژۘܘݘޘߘ +EEEEE EEEEE +STUVWXYZ[\]^_`abcdef STUVWXYZ[\]^_`abcdef +ghijklmnopqrstuvwxyz ghijklmnopqrstuvwxyz +{|}~ {|}~ +ꞁEEEEE ꞁEEEEE +SELECT `bP`, CONVERT(`bP` using utf8) FROM `sU`; +bP CONVERT(`bP` using utf8) +\\\\\\\\\\\\\\\\\\\\ \\\\\\\\\\\\\\\\\\\\ +SELECT `bP`, CONVERT(`bP` using ucs2) FROM `sU`; +bP CONVERT(`bP` using ucs2) +\\\\\\\\\\\\\\\\\\\\ \\\\\\\\\\\\\\\\\\\\ +SELECT `bP`, CONVERT(`bP` using ujis) FROM `sU`; +bP CONVERT(`bP` using ujis) +\\\\\\\\\\\\\\\\\\\\ \\\\\\\\\\\\\\\\\\\\ +SELECT `bP`, CONVERT(`bP` using utf8) FROM `sV`; +bP CONVERT(`bP` using utf8) + !"#$%&'()*+,-./ !"#$%&'()*+,-./ +0123456789:;<=>? 0123456789:;<=>? +@ABCDEFGHIJKLMNO @ABCDEFGHIJKLMNO +PQRSTUVWXYZ[\]^_ PQRSTUVWXYZ[_]^_ +abcdefghijklmno abcdefghijklmno +pqrstuvwxyz{|}~ pqrstuvwxyz{|}~ + + + + +SELECT `bP`, CONVERT(`bP` using ucs2) FROM `sV`; +bP CONVERT(`bP` using ucs2) + !"#$%&'()*+,-./ !"#$%&'()*+,-./ +0123456789:;<=>? 0123456789:;<=>? +@ABCDEFGHIJKLMNO @ABCDEFGHIJKLMNO +PQRSTUVWXYZ[\]^_ PQRSTUVWXYZ[_]^_ +abcdefghijklmno abcdefghijklmno +pqrstuvwxyz{|}~ pqrstuvwxyz{|}~ + + + + +SELECT `bP`, CONVERT(`bP` using ujis) FROM `sV`; +bP CONVERT(`bP` using ujis) + !"#$%&'()*+,-./ !"#$%&'()*+,-./ +0123456789:;<=>? 0123456789:;<=>? +@ABCDEFGHIJKLMNO @ABCDEFGHIJKLMNO +PQRSTUVWXYZ[\]^_ PQRSTUVWXYZ[_]^_ +abcdefghijklmno abcdefghijklmno +pqrstuvwxyz{|}~ pqrstuvwxyz{|}~ + + + + +SELECT `bP`, CONVERT(`bP` using utf8) FROM `sW`; +bP CONVERT(`bP` using utf8) +@@ABCDEFGHIJKLMNOPQR @@ABCDEFGHIJKLMNOPQR +STUVWXYZ[\]^_`abcdef STUVWXYZ[\]^_`abcdef +ghijklmnopqrstuvwxyz ghijklmnopqrstuvwxyz +{]}~ {]}~ +EEEEE EEEEE +EEEEEE EEEEEE +EEEEEEEEEEEE EEEEEEEEEEEE +EEȁɁʁˁ́́΁EEEEEEEEEEE EEȁɁʁˁ́́΁EEEEEEEEEEE +ځہ܁݁ށ߁EEEEE ځہ܁݁ށ߁EEEEE +EEEEEEEEEE@ EEEEEEEEEE@ +EEEEEEEEEEEEEEEEOPQR EEEEEEEEEEEEEEEEOPQR +STUVWXEEEEEEE`abcdef STUVWXEEEEEEE`abcdef +ghijklmnopqrstuvwxyE ghijklmnopqrstuvwxyE +EEEEE EEEEE +EEEEEEEEE EEEEEEEEE +E E +‚ÂĂ ‚ÂĂ +ƂǂȂɂʂ˂̂͂΂ςЂт҂ӂԂՂւׂ؂ ƂǂȂɂʂ˂̂͂΂ςЂт҂ӂԂՂւׂ؂ +ڂۂ܂݂ނ߂ ڂۂ܂݂ނ߂ +EEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEE +E@ABCDEFGHIJKLMNOPQR E@ABCDEFGHIJKLMNOPQR +STUVWXYZ[\]^_`abcdef STUVWXYZ[\]^_`abcdef +ghijklmnopqrstuvwxyz ghijklmnopqrstuvwxyz +{|}~ {|}~ +EEEEEEEEEEEEE EEEEEEEEEEEEE +E E +EEEEEEEEƒÃă EEEEEEEEƒÃă +ƃǃȃɃʃ˃̃̓΃σЃу҃ӃԃՃցEEE ƃǃȃɃʃ˃̃̓΃σЃу҃ӃԃՃցEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +E@ABCDEFGHIJKLMNOPQR E@ABCDEFGHIJKLMNOPQR +STUVWXYZ[\]^_`EEEEEE STUVWXYZ[\]^_`EEEEEE +EEEEEEEEEpqrstuvwxyz EEEEEEEEEpqrstuvwxyz +{|}~ {|}~ +EEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEE +E E +EEEEEEE EEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +E E +ˆÈĈ ˆÈĈ +ƈLjȈɈʈˈ͈̈ΈψЈш҈ӈԈՈֈ׈؈ ƈLjȈɈʈˈ͈̈ΈψЈш҈ӈԈՈֈ׈؈ +ڈۈ܈݈ވ߈ ڈۈ܈݈ވ߈ +EEEEE EEEEE +E@ABCDEFGHIJKLMNOPQR E@ABCDEFGHIJKLMNOPQR +STUVWXYZ[\]^_`abcdef STUVWXYZ[\]^_`abcdef +ghijklmnopqrEEEEEEEE ghijklmnopqrEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +E E +˜ØĘ ˜ØĘ +ƘǘȘɘʘ˘̘͘ΘϘИјҘӘԘ՘֘טؘ ƘǘȘɘʘ˘̘͘ΘϘИјҘӘԘ՘֘טؘ +ژۘܘݘޘߘ ژۘܘݘޘߘ +EEEEE EEEEE +E@ABCDEFGHIJKLMNOPQR E@ABCDEFGHIJKLMNOPQR +STUVWXYZ[\]^_`abcdef STUVWXYZ[\]^_`abcdef +ghijklmnopqrstuvwxyz ghijklmnopqrstuvwxyz +{|}~ {|}~ +ꞁEEEEE ꞁEEEEE +E꤁EEEEEEEEEEEEE E꤁EEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +SELECT `bP`, CONVERT(`bP` using ucs2) FROM `sW`; +bP CONVERT(`bP` using ucs2) +@@ABCDEFGHIJKLMNOPQR @@ABCDEFGHIJKLMNOPQR +STUVWXYZ[\]^_`abcdef STUVWXYZ[\]^_`abcdef +ghijklmnopqrstuvwxyz ghijklmnopqrstuvwxyz +{]}~ {]}~ +EEEEE EEEEE +EEEEEE EEEEEE +EEEEEEEEEEEE EEEEEEEEEEEE +EEȁɁʁˁ́́΁EEEEEEEEEEE EEȁɁʁˁ́́΁EEEEEEEEEEE +ځہ܁݁ށ߁EEEEE ځہ܁݁ށ߁EEEEE +EEEEEEEEEE@ EEEEEEEEEE@ +EEEEEEEEEEEEEEEEOPQR EEEEEEEEEEEEEEEEOPQR +STUVWXEEEEEEE`abcdef STUVWXEEEEEEE`abcdef +ghijklmnopqrstuvwxyE ghijklmnopqrstuvwxyE +EEEEE EEEEE +EEEEEEEEE EEEEEEEEE +E E +‚ÂĂ ‚ÂĂ +ƂǂȂɂʂ˂̂͂΂ςЂт҂ӂԂՂւׂ؂ ƂǂȂɂʂ˂̂͂΂ςЂт҂ӂԂՂւׂ؂ +ڂۂ܂݂ނ߂ ڂۂ܂݂ނ߂ +EEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEE +E@ABCDEFGHIJKLMNOPQR E@ABCDEFGHIJKLMNOPQR +STUVWXYZ[\]^_`abcdef STUVWXYZ[\]^_`abcdef +ghijklmnopqrstuvwxyz ghijklmnopqrstuvwxyz +{|}~ {|}~ +EEEEEEEEEEEEE EEEEEEEEEEEEE +E E +EEEEEEEEƒÃă EEEEEEEEƒÃă +ƃǃȃɃʃ˃̃̓΃σЃу҃ӃԃՃցEEE ƃǃȃɃʃ˃̃̓΃σЃу҃ӃԃՃցEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +E@ABCDEFGHIJKLMNOPQR E@ABCDEFGHIJKLMNOPQR +STUVWXYZ[\]^_`EEEEEE STUVWXYZ[\]^_`EEEEEE +EEEEEEEEEpqrstuvwxyz EEEEEEEEEpqrstuvwxyz +{|}~ {|}~ +EEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEE +E E +EEEEEEE EEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +E E +ˆÈĈ ˆÈĈ +ƈLjȈɈʈˈ͈̈ΈψЈш҈ӈԈՈֈ׈؈ ƈLjȈɈʈˈ͈̈ΈψЈш҈ӈԈՈֈ׈؈ +ڈۈ܈݈ވ߈ ڈۈ܈݈ވ߈ +EEEEE EEEEE +E@ABCDEFGHIJKLMNOPQR E@ABCDEFGHIJKLMNOPQR +STUVWXYZ[\]^_`abcdef STUVWXYZ[\]^_`abcdef +ghijklmnopqrEEEEEEEE ghijklmnopqrEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +E E +˜ØĘ ˜ØĘ +ƘǘȘɘʘ˘̘͘ΘϘИјҘӘԘ՘֘טؘ ƘǘȘɘʘ˘̘͘ΘϘИјҘӘԘ՘֘טؘ +ژۘܘݘޘߘ ژۘܘݘޘߘ +EEEEE EEEEE +E@ABCDEFGHIJKLMNOPQR E@ABCDEFGHIJKLMNOPQR +STUVWXYZ[\]^_`abcdef STUVWXYZ[\]^_`abcdef +ghijklmnopqrstuvwxyz ghijklmnopqrstuvwxyz +{|}~ {|}~ +ꞁEEEEE ꞁEEEEE +E꤁EEEEEEEEEEEEE E꤁EEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +SELECT `bP`, CONVERT(`bP` using ujis) FROM `sW`; +bP CONVERT(`bP` using ujis) +@@ABCDEFGHIJKLMNOPQR @@ABCDEFGHIJKLMNOPQR +STUVWXYZ[\]^_`abcdef STUVWXYZ[\]^_`abcdef +ghijklmnopqrstuvwxyz ghijklmnopqrstuvwxyz +{]}~ {]}~ +EEEEE EEEEE +EEEEEE EEEEEE +EEEEEEEEEEEE EEEEEEEEEEEE +EEȁɁʁˁ́́΁EEEEEEEEEEE EEȁɁʁˁ́́΁EEEEEEEEEEE +ځہ܁݁ށ߁EEEEE ځہ܁݁ށ߁EEEEE +EEEEEEEEEE@ EEEEEEEEEE@ +EEEEEEEEEEEEEEEEOPQR EEEEEEEEEEEEEEEEOPQR +STUVWXEEEEEEE`abcdef STUVWXEEEEEEE`abcdef +ghijklmnopqrstuvwxyE ghijklmnopqrstuvwxyE +EEEEE EEEEE +EEEEEEEEE EEEEEEEEE +E E +‚ÂĂ ‚ÂĂ +ƂǂȂɂʂ˂̂͂΂ςЂт҂ӂԂՂւׂ؂ ƂǂȂɂʂ˂̂͂΂ςЂт҂ӂԂՂւׂ؂ +ڂۂ܂݂ނ߂ ڂۂ܂݂ނ߂ +EEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEE +E@ABCDEFGHIJKLMNOPQR E@ABCDEFGHIJKLMNOPQR +STUVWXYZ[\]^_`abcdef STUVWXYZ[\]^_`abcdef +ghijklmnopqrstuvwxyz ghijklmnopqrstuvwxyz +{|}~ {|}~ +EEEEEEEEEEEEE EEEEEEEEEEEEE +E E +EEEEEEEEƒÃă EEEEEEEEƒÃă +ƃǃȃɃʃ˃̃̓΃σЃу҃ӃԃՃցEEE ƃǃȃɃʃ˃̃̓΃σЃу҃ӃԃՃցEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +E@ABCDEFGHIJKLMNOPQR E@ABCDEFGHIJKLMNOPQR +STUVWXYZ[\]^_`EEEEEE STUVWXYZ[\]^_`EEEEEE +EEEEEEEEEpqrstuvwxyz EEEEEEEEEpqrstuvwxyz +{|}~ {|}~ +EEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEE +E E +EEEEEEE EEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +E E +ˆÈĈ ˆÈĈ +ƈLjȈɈʈˈ͈̈ΈψЈш҈ӈԈՈֈ׈؈ ƈLjȈɈʈˈ͈̈ΈψЈш҈ӈԈՈֈ׈؈ +ڈۈ܈݈ވ߈ ڈۈ܈݈ވ߈ +EEEEE EEEEE +E@ABCDEFGHIJKLMNOPQR E@ABCDEFGHIJKLMNOPQR +STUVWXYZ[\]^_`abcdef STUVWXYZ[\]^_`abcdef +ghijklmnopqrEEEEEEEE ghijklmnopqrEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +E E +˜ØĘ ˜ØĘ +ƘǘȘɘʘ˘̘͘ΘϘИјҘӘԘ՘֘טؘ ƘǘȘɘʘ˘̘͘ΘϘИјҘӘԘ՘֘טؘ +ژۘܘݘޘߘ ژۘܘݘޘߘ +EEEEE EEEEE +E@ABCDEFGHIJKLMNOPQR E@ABCDEFGHIJKLMNOPQR +STUVWXYZ[\]^_`abcdef STUVWXYZ[\]^_`abcdef +ghijklmnopqrstuvwxyz ghijklmnopqrstuvwxyz +{|}~ {|}~ +ꞁEEEEE ꞁEEEEE +E꤁EEEEEEEEEEEEE E꤁EEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +SELECT `bP`, CONVERT(`bP` using utf8) FROM `sX`; +bP CONVERT(`bP` using utf8) +\\\\\\\\\\\\\\\\\\\\ \\\\\\\\\\\\\\\\\\\\ +SELECT `bP`, CONVERT(`bP` using ucs2) FROM `sX`; +bP CONVERT(`bP` using ucs2) +\\\\\\\\\\\\\\\\\\\\ \\\\\\\\\\\\\\\\\\\\ +SELECT `bP`, CONVERT(`bP` using ujis) FROM `sX`; +bP CONVERT(`bP` using ujis) +\\\\\\\\\\\\\\\\\\\\ \\\\\\\\\\\\\\\\\\\\ +SELECT `bP`, CONVERT(`bP` using utf8) FROM `sPO`; +bP CONVERT(`bP` using utf8) + !"#$%&'()*+,-./ !"#$%&'()*+,-./ +0123456789:;<=>? 0123456789:;<=>? +@ABCDEFGHIJKLMNO @ABCDEFGHIJKLMNO +PQRSTUVWXYZ[\]^_ PQRSTUVWXYZ[_]^_ +abcdefghijklmno abcdefghijklmno +pqrstuvwxyz{|}~ pqrstuvwxyz{|}~ + + + + +SELECT `bP`, CONVERT(`bP` using ucs2) FROM `sPO`; +bP CONVERT(`bP` using ucs2) + !"#$%&'()*+,-./ !"#$%&'()*+,-./ +0123456789:;<=>? 0123456789:;<=>? +@ABCDEFGHIJKLMNO @ABCDEFGHIJKLMNO +PQRSTUVWXYZ[\]^_ PQRSTUVWXYZ[_]^_ +abcdefghijklmno abcdefghijklmno +pqrstuvwxyz{|}~ pqrstuvwxyz{|}~ + + + + +SELECT `bP`, CONVERT(`bP` using ujis) FROM `sPO`; +bP CONVERT(`bP` using ujis) + !"#$%&'()*+,-./ !"#$%&'()*+,-./ +0123456789:;<=>? 0123456789:;<=>? +@ABCDEFGHIJKLMNO @ABCDEFGHIJKLMNO +PQRSTUVWXYZ[\]^_ PQRSTUVWXYZ[_]^_ +abcdefghijklmno abcdefghijklmno +pqrstuvwxyz{|}~ pqrstuvwxyz{|}~ + + + + +SELECT `bP`, CONVERT(`bP` using utf8) FROM `sPP`; +bP CONVERT(`bP` using utf8) +@@ABCDEFGHIJKLMNOPQR @@ABCDEFGHIJKLMNOPQR +STUVWXYZ[\]^_`abcdef STUVWXYZ[\]^_`abcdef +ghijklmnopqrstuvwxyz ghijklmnopqrstuvwxyz +{]}~ {]}~ +EEEEE EEEEE +EEEEEE EEEEEE +EEEEEEEEEEEE EEEEEEEEEEEE +EEȁɁʁˁ́́΁EEEEEEEEEEE EEȁɁʁˁ́́΁EEEEEEEEEEE +ځہ܁݁ށ߁EEEEE ځہ܁݁ށ߁EEEEE +EEEEEEEEEE@ EEEEEEEEEE@ +EEEEEEEEEEEEEEEEOPQR EEEEEEEEEEEEEEEEOPQR +STUVWXEEEEEEE`abcdef STUVWXEEEEEEE`abcdef +ghijklmnopqrstuvwxyE ghijklmnopqrstuvwxyE +EEEEE EEEEE +EEEEEEEEE EEEEEEEEE +E E +‚ÂĂ ‚ÂĂ +ƂǂȂɂʂ˂̂͂΂ςЂт҂ӂԂՂւׂ؂ ƂǂȂɂʂ˂̂͂΂ςЂт҂ӂԂՂւׂ؂ +ڂۂ܂݂ނ߂ ڂۂ܂݂ނ߂ +EEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEE +E@ABCDEFGHIJKLMNOPQR E@ABCDEFGHIJKLMNOPQR +STUVWXYZ[\]^_`abcdef STUVWXYZ[\]^_`abcdef +ghijklmnopqrstuvwxyz ghijklmnopqrstuvwxyz +{|}~ {|}~ +EEEEEEEEEEEEE EEEEEEEEEEEEE +E E +EEEEEEEEƒÃă EEEEEEEEƒÃă +ƃǃȃɃʃ˃̃̓΃σЃу҃ӃԃՃցEEE ƃǃȃɃʃ˃̃̓΃σЃу҃ӃԃՃցEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +E@ABCDEFGHIJKLMNOPQR E@ABCDEFGHIJKLMNOPQR +STUVWXYZ[\]^_`EEEEEE STUVWXYZ[\]^_`EEEEEE +EEEEEEEEEpqrstuvwxyz EEEEEEEEEpqrstuvwxyz +{|}~ {|}~ +EEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEE +E E +EEEEEEE EEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +E E +ˆÈĈ ˆÈĈ +ƈLjȈɈʈˈ͈̈ΈψЈш҈ӈԈՈֈ׈؈ ƈLjȈɈʈˈ͈̈ΈψЈш҈ӈԈՈֈ׈؈ +ڈۈ܈݈ވ߈ ڈۈ܈݈ވ߈ +EEEEE EEEEE +E@ABCDEFGHIJKLMNOPQR E@ABCDEFGHIJKLMNOPQR +STUVWXYZ[\]^_`abcdef STUVWXYZ[\]^_`abcdef +ghijklmnopqrEEEEEEEE ghijklmnopqrEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +E E +˜ØĘ ˜ØĘ +ƘǘȘɘʘ˘̘͘ΘϘИјҘӘԘ՘֘טؘ ƘǘȘɘʘ˘̘͘ΘϘИјҘӘԘ՘֘טؘ +ژۘܘݘޘߘ ژۘܘݘޘߘ +EEEEE EEEEE +E@ABCDEFGHIJKLMNOPQR E@ABCDEFGHIJKLMNOPQR +STUVWXYZ[\]^_`abcdef STUVWXYZ[\]^_`abcdef +ghijklmnopqrstuvwxyz ghijklmnopqrstuvwxyz +{|}~ {|}~ +ꞁEEEEE ꞁEEEEE +E꤁EEEEEEEEEEEEE E꤁EEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +SELECT `bP`, CONVERT(`bP` using ucs2) FROM `sPP`; +bP CONVERT(`bP` using ucs2) +@@ABCDEFGHIJKLMNOPQR @@ABCDEFGHIJKLMNOPQR +STUVWXYZ[\]^_`abcdef STUVWXYZ[\]^_`abcdef +ghijklmnopqrstuvwxyz ghijklmnopqrstuvwxyz +{]}~ {]}~ +EEEEE EEEEE +EEEEEE EEEEEE +EEEEEEEEEEEE EEEEEEEEEEEE +EEȁɁʁˁ́́΁EEEEEEEEEEE EEȁɁʁˁ́́΁EEEEEEEEEEE +ځہ܁݁ށ߁EEEEE ځہ܁݁ށ߁EEEEE +EEEEEEEEEE@ EEEEEEEEEE@ +EEEEEEEEEEEEEEEEOPQR EEEEEEEEEEEEEEEEOPQR +STUVWXEEEEEEE`abcdef STUVWXEEEEEEE`abcdef +ghijklmnopqrstuvwxyE ghijklmnopqrstuvwxyE +EEEEE EEEEE +EEEEEEEEE EEEEEEEEE +E E +‚ÂĂ ‚ÂĂ +ƂǂȂɂʂ˂̂͂΂ςЂт҂ӂԂՂւׂ؂ ƂǂȂɂʂ˂̂͂΂ςЂт҂ӂԂՂւׂ؂ +ڂۂ܂݂ނ߂ ڂۂ܂݂ނ߂ +EEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEE +E@ABCDEFGHIJKLMNOPQR E@ABCDEFGHIJKLMNOPQR +STUVWXYZ[\]^_`abcdef STUVWXYZ[\]^_`abcdef +ghijklmnopqrstuvwxyz ghijklmnopqrstuvwxyz +{|}~ {|}~ +EEEEEEEEEEEEE EEEEEEEEEEEEE +E E +EEEEEEEEƒÃă EEEEEEEEƒÃă +ƃǃȃɃʃ˃̃̓΃σЃу҃ӃԃՃցEEE ƃǃȃɃʃ˃̃̓΃σЃу҃ӃԃՃցEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +E@ABCDEFGHIJKLMNOPQR E@ABCDEFGHIJKLMNOPQR +STUVWXYZ[\]^_`EEEEEE STUVWXYZ[\]^_`EEEEEE +EEEEEEEEEpqrstuvwxyz EEEEEEEEEpqrstuvwxyz +{|}~ {|}~ +EEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEE +E E +EEEEEEE EEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +E E +ˆÈĈ ˆÈĈ +ƈLjȈɈʈˈ͈̈ΈψЈш҈ӈԈՈֈ׈؈ ƈLjȈɈʈˈ͈̈ΈψЈш҈ӈԈՈֈ׈؈ +ڈۈ܈݈ވ߈ ڈۈ܈݈ވ߈ +EEEEE EEEEE +E@ABCDEFGHIJKLMNOPQR E@ABCDEFGHIJKLMNOPQR +STUVWXYZ[\]^_`abcdef STUVWXYZ[\]^_`abcdef +ghijklmnopqrEEEEEEEE ghijklmnopqrEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +E E +˜ØĘ ˜ØĘ +ƘǘȘɘʘ˘̘͘ΘϘИјҘӘԘ՘֘טؘ ƘǘȘɘʘ˘̘͘ΘϘИјҘӘԘ՘֘טؘ +ژۘܘݘޘߘ ژۘܘݘޘߘ +EEEEE EEEEE +E@ABCDEFGHIJKLMNOPQR E@ABCDEFGHIJKLMNOPQR +STUVWXYZ[\]^_`abcdef STUVWXYZ[\]^_`abcdef +ghijklmnopqrstuvwxyz ghijklmnopqrstuvwxyz +{|}~ {|}~ +ꞁEEEEE ꞁEEEEE +E꤁EEEEEEEEEEEEE E꤁EEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +SELECT `bP`, CONVERT(`bP` using ujis) FROM `sPP`; +bP CONVERT(`bP` using ujis) +@@ABCDEFGHIJKLMNOPQR @@ABCDEFGHIJKLMNOPQR +STUVWXYZ[\]^_`abcdef STUVWXYZ[\]^_`abcdef +ghijklmnopqrstuvwxyz ghijklmnopqrstuvwxyz +{]}~ {]}~ +EEEEE EEEEE +EEEEEE EEEEEE +EEEEEEEEEEEE EEEEEEEEEEEE +EEȁɁʁˁ́́΁EEEEEEEEEEE EEȁɁʁˁ́́΁EEEEEEEEEEE +ځہ܁݁ށ߁EEEEE ځہ܁݁ށ߁EEEEE +EEEEEEEEEE@ EEEEEEEEEE@ +EEEEEEEEEEEEEEEEOPQR EEEEEEEEEEEEEEEEOPQR +STUVWXEEEEEEE`abcdef STUVWXEEEEEEE`abcdef +ghijklmnopqrstuvwxyE ghijklmnopqrstuvwxyE +EEEEE EEEEE +EEEEEEEEE EEEEEEEEE +E E +‚ÂĂ ‚ÂĂ +ƂǂȂɂʂ˂̂͂΂ςЂт҂ӂԂՂւׂ؂ ƂǂȂɂʂ˂̂͂΂ςЂт҂ӂԂՂւׂ؂ +ڂۂ܂݂ނ߂ ڂۂ܂݂ނ߂ +EEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEE +E@ABCDEFGHIJKLMNOPQR E@ABCDEFGHIJKLMNOPQR +STUVWXYZ[\]^_`abcdef STUVWXYZ[\]^_`abcdef +ghijklmnopqrstuvwxyz ghijklmnopqrstuvwxyz +{|}~ {|}~ +EEEEEEEEEEEEE EEEEEEEEEEEEE +E E +EEEEEEEEƒÃă EEEEEEEEƒÃă +ƃǃȃɃʃ˃̃̓΃σЃу҃ӃԃՃցEEE ƃǃȃɃʃ˃̃̓΃σЃу҃ӃԃՃցEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +E@ABCDEFGHIJKLMNOPQR E@ABCDEFGHIJKLMNOPQR +STUVWXYZ[\]^_`EEEEEE STUVWXYZ[\]^_`EEEEEE +EEEEEEEEEpqrstuvwxyz EEEEEEEEEpqrstuvwxyz +{|}~ {|}~ +EEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEE +E E +EEEEEEE EEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +E E +ˆÈĈ ˆÈĈ +ƈLjȈɈʈˈ͈̈ΈψЈш҈ӈԈՈֈ׈؈ ƈLjȈɈʈˈ͈̈ΈψЈш҈ӈԈՈֈ׈؈ +ڈۈ܈݈ވ߈ ڈۈ܈݈ވ߈ +EEEEE EEEEE +E@ABCDEFGHIJKLMNOPQR E@ABCDEFGHIJKLMNOPQR +STUVWXYZ[\]^_`abcdef STUVWXYZ[\]^_`abcdef +ghijklmnopqrEEEEEEEE ghijklmnopqrEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +E E +˜ØĘ ˜ØĘ +ƘǘȘɘʘ˘̘͘ΘϘИјҘӘԘ՘֘טؘ ƘǘȘɘʘ˘̘͘ΘϘИјҘӘԘ՘֘טؘ +ژۘܘݘޘߘ ژۘܘݘޘߘ +EEEEE EEEEE +E@ABCDEFGHIJKLMNOPQR E@ABCDEFGHIJKLMNOPQR +STUVWXYZ[\]^_`abcdef STUVWXYZ[\]^_`abcdef +ghijklmnopqrstuvwxyz ghijklmnopqrstuvwxyz +{|}~ {|}~ +ꞁEEEEE ꞁEEEEE +E꤁EEEEEEEEEEEEE E꤁EEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEE +SELECT `bP`, CONVERT(`bP` using utf8) FROM `sPQ`; +bP CONVERT(`bP` using utf8) +\\\\\\\\\\\\\\\\\\\\ \\\\\\\\\\\\\\\\\\\\ +SELECT `bP`, CONVERT(`bP` using ucs2) FROM `sPQ`; +bP CONVERT(`bP` using ucs2) +\\\\\\\\\\\\\\\\\\\\ \\\\\\\\\\\\\\\\\\\\ +SELECT `bP`, CONVERT(`bP` using ujis) FROM `sPQ`; +bP CONVERT(`bP` using ujis) +\\\\\\\\\\\\\\\\\\\\ \\\\\\\\\\\\\\\\\\\\ +drop table `sP`; +drop table `sQ`; +drop table `sR`; +drop table `sS`; +drop table `sT`; +drop table `sU`; +drop table `sV`; +drop table `sW`; +drop table `sX`; +drop table `sPO`; +drop table `sPP`; +drop table `sPQ`; diff --git a/mysql-test/suite/jp/r/jp_convert_ucs2.result b/mysql-test/suite/jp/r/jp_convert_ucs2.result new file mode 100755 index 00000000000..92c2032993e --- /dev/null +++ b/mysql-test/suite/jp/r/jp_convert_ucs2.result @@ -0,0 +1,427 @@ +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +SET NAMES ujis; +SET character_set_database = ucs2; +SET collation_connection = ucs2_general_ci; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +INSERT INTO `ԣ` VALUES +('PQRSTUVWXYZ[\\]^_') +,(' ') +,('') +,('ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ') +,('ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ'); +INSERT INTO `ԣ` VALUES +('¡áġšơ') +,('ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ') +,('') +,('') +,('') +,('СТУФХЦЧШЩЪЫЬЭЮЯабвг') +,(''); +INSERT INTO `ԣ` VALUES +('Ïġ') +,('ÏďŏƏ') +,('ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ') +,('܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰') +,('') +,('ÏďŏƏ') +,('ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ'); +INSERT INTO `ԣ` VALUES +('PQRSTUVWXYZ[\\]^_') +,(' ') +,('') +,('ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ') +,('ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ'); +INSERT INTO `ԣ` VALUES +('¡áġšơ') +,('ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ') +,('') +,('') +,('') +,('СТУФХЦЧШЩЪЫЬЭЮЯабвг') +,(''); +INSERT INTO `ԣ` VALUES +('Ïġ') +,('ÏďŏƏ') +,('ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ') +,('܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰') +,('') +,('ÏďŏƏ') +,('ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ'); +INSERT INTO `ԣ` VALUES +('PQRSTUVWXYZ[\\]^_') +,(' ') +,('') +,('ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ') +,('ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ'); +INSERT INTO `ԣ` VALUES +('¡áġšơ') +,('ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ') +,('') +,('') +,('') +,('СТУФХЦЧШЩЪЫЬЭЮЯабвг') +,(''); +INSERT INTO `ԣ` VALUES +('Ïġ') +,('ÏďŏƏ') +,('ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ') +,('܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰') +,('') +,('ÏďŏƏ') +,('ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ'); +INSERT INTO `ԣ` VALUES +('PQRSTUVWXYZ[\\]^_') +,(' ') +,('') +,('ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ') +,('ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ'); +INSERT INTO `ԣ` VALUES +('¡áġšơ') +,('ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ') +,('') +,('') +,('') +,('СТУФХЦЧШЩЪЫЬЭЮЯабвг') +,(''); +INSERT INTO `ԣ` VALUES +('Ïġ') +,('ÏďŏƏ') +,('ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ') +,('܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰') +,('') +,('ÏďŏƏ') +,('ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ'); +SELECT `ã`, CONVERT(`ã` using utf8) FROM `ԣ`; +ã CONVERT(`ã` using utf8) + +PQRSTUVWXYZ[\]^_ PQRSTUVWXYZ[\]^_ + +ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ +ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ +SELECT `ã`, CONVERT(`ã` using ucs2) FROM `ԣ`; +ã CONVERT(`ã` using ucs2) + +PQRSTUVWXYZ[\]^_ PQRSTUVWXYZ[\]^_ + +ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ +ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ +SELECT `ã`, CONVERT(`ã` using sjis) FROM `ԣ`; +ã CONVERT(`ã` using sjis) + +PQRSTUVWXYZ[\]^_ PQRSTUVWXYZ[\]^_ + +ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ +ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ +SELECT `ã`, CONVERT(`ã` using utf8) FROM `ԣ`; +ã CONVERT(`ã` using utf8) +ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ + + + +СТУФХЦЧШЩЪЫЬЭЮЯабвг СТУФХЦЧШЩЪЫЬЭЮЯабвг + +\¡áġšơ \¡áġšơ +SELECT `ã`, CONVERT(`ã` using ucs2) FROM `ԣ`; +ã CONVERT(`ã` using ucs2) +ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ + + + +СТУФХЦЧШЩЪЫЬЭЮЯабвг СТУФХЦЧШЩЪЫЬЭЮЯабвг + +\¡áġšơ \¡áġšơ +SELECT `ã`, CONVERT(`ã` using sjis) FROM `ԣ`; +ã CONVERT(`ã` using sjis) +ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ + + + +СТУФХЦЧШЩЪЫЬЭЮЯабвг СТУФХЦЧШЩЪЫЬЭЮЯабвг + +\¡áġšơ \¡áġšơ +SELECT `ã`, CONVERT(`ã` using utf8) FROM `ԣ`; +ã CONVERT(`ã` using utf8) +~Ïġ ~Ïġ + +ÏďŏƏ ÏďŏƏ +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ +܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰 ܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰 +ÏďŏƏ ÏďŏƏ +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ +SELECT `ã`, CONVERT(`ã` using ucs2) FROM `ԣ`; +ã CONVERT(`ã` using ucs2) +~Ïġ ~Ïġ + +ÏďŏƏ ÏďŏƏ +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ +܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰 ܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰 +ÏďŏƏ ÏďŏƏ +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ +SELECT `ã`, CONVERT(`ã` using sjis) FROM `ԣ`; +ã CONVERT(`ã` using sjis) +~Ïġ ??~????? + ??????????????????? +ÏďŏƏ ???????????????????? +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ ???????????????????? +܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰 ???????????????????? +ÏďŏƏ ???????????????????? +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ ???????????????????? +SELECT `ã`, CONVERT(`ã` using utf8) FROM `ԣ`; +ã CONVERT(`ã` using utf8) + +PQRSTUVWXYZ[\]^_ PQRSTUVWXYZ[\]^_ + +ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ +ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ +SELECT `ã`, CONVERT(`ã` using ucs2) FROM `ԣ`; +ã CONVERT(`ã` using ucs2) + +PQRSTUVWXYZ[\]^_ PQRSTUVWXYZ[\]^_ + +ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ +ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ +SELECT `ã`, CONVERT(`ã` using sjis) FROM `ԣ`; +ã CONVERT(`ã` using sjis) + +PQRSTUVWXYZ[\]^_ PQRSTUVWXYZ[\]^_ + +ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ +ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ +SELECT `ã`, CONVERT(`ã` using utf8) FROM `ԣ`; +ã CONVERT(`ã` using utf8) +ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ + + + +СТУФХЦЧШЩЪЫЬЭЮЯабвг СТУФХЦЧШЩЪЫЬЭЮЯабвг + +\¡áġšơ \¡áġšơ +SELECT `ã`, CONVERT(`ã` using ucs2) FROM `ԣ`; +ã CONVERT(`ã` using ucs2) +ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ + + + +СТУФХЦЧШЩЪЫЬЭЮЯабвг СТУФХЦЧШЩЪЫЬЭЮЯабвг + +\¡áġšơ \¡áġšơ +SELECT `ã`, CONVERT(`ã` using sjis) FROM `ԣ`; +ã CONVERT(`ã` using sjis) +ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ + + + +СТУФХЦЧШЩЪЫЬЭЮЯабвг СТУФХЦЧШЩЪЫЬЭЮЯабвг + +\¡áġšơ \¡áġšơ +SELECT `ã`, CONVERT(`ã` using utf8) FROM `ԣ`; +ã CONVERT(`ã` using utf8) +~Ïġ ~Ïġ + +ÏďŏƏ ÏďŏƏ +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ +܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰 ܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰 +ÏďŏƏ ÏďŏƏ +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ +SELECT `ã`, CONVERT(`ã` using ucs2) FROM `ԣ`; +ã CONVERT(`ã` using ucs2) +~Ïġ ~Ïġ + +ÏďŏƏ ÏďŏƏ +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ +܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰 ܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰 +ÏďŏƏ ÏďŏƏ +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ +SELECT `ã`, CONVERT(`ã` using sjis) FROM `ԣ`; +ã CONVERT(`ã` using sjis) +~Ïġ ??~????? + ??????????????????? +ÏďŏƏ ???????????????????? +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ ???????????????????? +܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰 ???????????????????? +ÏďŏƏ ???????????????????? +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ ???????????????????? +SELECT `ã`, CONVERT(`ã` using utf8) FROM `ԣ`; +ã CONVERT(`ã` using utf8) +PQRSTUVWXYZ[\]^_ PQRSTUVWXYZ[\]^_ + + +ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ +ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ +SELECT `ã`, CONVERT(`ã` using ucs2) FROM `ԣ`; +ã CONVERT(`ã` using ucs2) +PQRSTUVWXYZ[\]^_ PQRSTUVWXYZ[\]^_ + + +ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ +ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ +SELECT `ã`, CONVERT(`ã` using sjis) FROM `ԣ`; +ã CONVERT(`ã` using sjis) +PQRSTUVWXYZ[\]^_ PQRSTUVWXYZ[\]^_ + + +ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ +ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ +SELECT `ã`, CONVERT(`ã` using utf8) FROM `ԣ`; +ã CONVERT(`ã` using utf8) +\¡áġšơ \¡áġšơ +ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ + + + +СТУФХЦЧШЩЪЫЬЭЮЯабвг СТУФХЦЧШЩЪЫЬЭЮЯабвг + +SELECT `ã`, CONVERT(`ã` using ucs2) FROM `ԣ`; +ã CONVERT(`ã` using ucs2) +\¡áġšơ \¡áġšơ +ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ + + + +СТУФХЦЧШЩЪЫЬЭЮЯабвг СТУФХЦЧШЩЪЫЬЭЮЯабвг + +SELECT `ã`, CONVERT(`ã` using sjis) FROM `ԣ`; +ã CONVERT(`ã` using sjis) +\¡áġšơ \¡áġšơ +ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ + + + +СТУФХЦЧШЩЪЫЬЭЮЯабвг СТУФХЦЧШЩЪЫЬЭЮЯабвг + +SELECT `ã`, CONVERT(`ã` using utf8) FROM `ԣ`; +ã CONVERT(`ã` using utf8) +~Ïġ ~Ïġ +ÏďŏƏ ÏďŏƏ +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ +܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰 ܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰 + +ÏďŏƏ ÏďŏƏ +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ +SELECT `ã`, CONVERT(`ã` using ucs2) FROM `ԣ`; +ã CONVERT(`ã` using ucs2) +~Ïġ ~Ïġ +ÏďŏƏ ÏďŏƏ +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ +܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰 ܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰 + +ÏďŏƏ ÏďŏƏ +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ +SELECT `ã`, CONVERT(`ã` using sjis) FROM `ԣ`; +ã CONVERT(`ã` using sjis) +~Ïġ ??~????? +ÏďŏƏ ???????????????????? +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ ???????????????????? +܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰 ???????????????????? + ??????????????????? +ÏďŏƏ ???????????????????? +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ ???????????????????? +SELECT `ã`, CONVERT(`ã` using utf8) FROM `ԣ`; +ã CONVERT(`ã` using utf8) +PQRSTUVWXYZ[\]^_ PQRSTUVWXYZ[\]^_ + + +ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ +ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ +SELECT `ã`, CONVERT(`ã` using ucs2) FROM `ԣ`; +ã CONVERT(`ã` using ucs2) +PQRSTUVWXYZ[\]^_ PQRSTUVWXYZ[\]^_ + + +ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ +ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ +SELECT `ã`, CONVERT(`ã` using sjis) FROM `ԣ`; +ã CONVERT(`ã` using sjis) +PQRSTUVWXYZ[\]^_ PQRSTUVWXYZ[\]^_ + + +ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ +ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ +SELECT `ã`, CONVERT(`ã` using utf8) FROM `ԣ`; +ã CONVERT(`ã` using utf8) +\¡áġšơ \¡áġšơ +ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ + + + +СТУФХЦЧШЩЪЫЬЭЮЯабвг СТУФХЦЧШЩЪЫЬЭЮЯабвг + +SELECT `ã`, CONVERT(`ã` using ucs2) FROM `ԣ`; +ã CONVERT(`ã` using ucs2) +\¡áġšơ \¡áġšơ +ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ + + + +СТУФХЦЧШЩЪЫЬЭЮЯабвг СТУФХЦЧШЩЪЫЬЭЮЯабвг + +SELECT `ã`, CONVERT(`ã` using sjis) FROM `ԣ`; +ã CONVERT(`ã` using sjis) +\¡áġšơ \¡áġšơ +ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ + + + +СТУФХЦЧШЩЪЫЬЭЮЯабвг СТУФХЦЧШЩЪЫЬЭЮЯабвг + +SELECT `ã`, CONVERT(`ã` using utf8) FROM `ԣ`; +ã CONVERT(`ã` using utf8) +~Ïġ ~Ïġ +ÏďŏƏ ÏďŏƏ +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ +܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰 ܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰 + +ÏďŏƏ ÏďŏƏ +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ +SELECT `ã`, CONVERT(`ã` using ucs2) FROM `ԣ`; +ã CONVERT(`ã` using ucs2) +~Ïġ ~Ïġ +ÏďŏƏ ÏďŏƏ +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ +܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰 ܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰 + +ÏďŏƏ ÏďŏƏ +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ +SELECT `ã`, CONVERT(`ã` using sjis) FROM `ԣ`; +ã CONVERT(`ã` using sjis) +~Ïġ ??~????? +ÏďŏƏ ???????????????????? +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ ???????????????????? +܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰 ???????????????????? + ??????????????????? +ÏďŏƏ ???????????????????? +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ ???????????????????? +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; diff --git a/mysql-test/suite/jp/r/jp_convert_ujis.result b/mysql-test/suite/jp/r/jp_convert_ujis.result new file mode 100755 index 00000000000..55f2ab0aea3 --- /dev/null +++ b/mysql-test/suite/jp/r/jp_convert_ujis.result @@ -0,0 +1,1514 @@ +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +SET NAMES ujis; +SET character_set_database = ujis; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_ujis.dat' INTO TABLE `ԣ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_ujis.dat' INTO TABLE `ԣ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0212_ujis.dat' INTO TABLE `ԣ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_ujis.dat' INTO TABLE `ԣ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_ujis.dat' INTO TABLE `ԣ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0212_ujis.dat' INTO TABLE `ԣ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_ujis.dat' INTO TABLE `ԣ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_ujis.dat' INTO TABLE `ԣ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0212_ujis.dat' INTO TABLE `ԣ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_ujis.dat' INTO TABLE `ԣ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_ujis.dat' INTO TABLE `ԣ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0212_ujis.dat' INTO TABLE `ԣ`; +SELECT `ã`, CONVERT(`ã` using utf8) FROM `ԣ`; +ã CONVERT(`ã` using utf8) + !"#$%&'()*+,-./ !"#$%&'()*+,-./ + +0123456789:;<=>? 0123456789:;<=>? +@ABCDEFGHIJKLMNO @ABCDEFGHIJKLMNO +abcdefghijklmno abcdefghijklmno +PQRSTUVWXYZ[\]^_ PQRSTUVWXYZ[\]^_ +pqrstuvwxyz{|}~ pqrstuvwxyz{|}~ + +ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ +ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ +SELECT `ã`, CONVERT(`ã` using ucs2) FROM `ԣ`; +ã CONVERT(`ã` using ucs2) + !"#$%&'()*+,-./ !"#$%&'()*+,-./ + +0123456789:;<=>? 0123456789:;<=>? +@ABCDEFGHIJKLMNO @ABCDEFGHIJKLMNO +abcdefghijklmno abcdefghijklmno +PQRSTUVWXYZ[\]^_ PQRSTUVWXYZ[\]^_ +pqrstuvwxyz{|}~ pqrstuvwxyz{|}~ + +ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ +ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ +SELECT `ã`, CONVERT(`ã` using sjis) FROM `ԣ`; +ã CONVERT(`ã` using sjis) + !"#$%&'()*+,-./ !"#$%&'()*+,-./ + +0123456789:;<=>? 0123456789:;<=>? +@ABCDEFGHIJKLMNO @ABCDEFGHIJKLMNO +abcdefghijklmno abcdefghijklmno +PQRSTUVWXYZ[\]^_ PQRSTUVWXYZ[\]^_ +pqrstuvwxyz{|}~ pqrstuvwxyz{|}~ + +ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ +ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ +SELECT `ã`, CONVERT(`ã` using utf8) FROM `ԣ`; +ã CONVERT(`ã` using utf8) + + + + + + + + + + + + + + +ѧҧӧԧէ֧קا٧ڧ ѧҧӧԧէ֧קا٧ڧ + + +ʢˢ̢͢΢ϢС ʢˢ̢͢΢ϢС + + + + + + + + +ϡϢϣϤϥϦϧϨϩϪϫϬϭϮϯϰϱϲϳ ϡϢϣϤϥϦϧϨϩϪϫϬϭϮϯϰϱϲϳ +СТУФХЦЧШЩЪЫЬЭЮЯабвг СТУФХЦЧШЩЪЫЬЭЮЯабвг + + +¡áġšơ \¡áġšơ +ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ +ܡޡߡ ܡޡߡ + +ܢݢޢߢꡦ ܢݢޢߢꡦ +£ãģţƣ £ãģţƣ +ȣɣʣˣ̣ͣΣϣУѣңӣԣգ֣ףأ٣ڡ ȣɣʣˣ̣ͣΣϣУѣңӣԣգ֣ףأ٣ڡ + +¤äĤŤƤ ¤äĤŤƤ +Ȥɤʤˤ̤ͤΤϤФѤҤӤԤդ֤פؤ٤ڤ Ȥɤʤˤ̤ͤΤϤФѤҤӤԤդ֤פؤ٤ڤ +ܤݤޤߤ ܤݤޤߤ +󡦡 󡦡 +¥åĥťƥ ¥åĥťƥ +ȥɥʥ˥̥ͥΥϥХѥҥӥԥե֥ץإ٥ڥ ȥɥʥ˥̥ͥΥϥХѥҥӥԥե֥ץإ٥ڥ +ܥݥޥߥ ܥݥޥߥ + +¦æĦŦƦ ¦æĦŦƦ +Ȧɦʦ˦̦ͦΦϦЦѦҦӦԦզ֦צء Ȧɦʦ˦̦ͦΦϦЦѦҦӦԦզ֦צء + +ܧݧާߧ ܧݧާߧ +񡦡 񡦡 + +°ðİŰư °ðİŰư +Ȱɰʰ˰̰ͰΰϰаѰҰӰ԰հְװذٰڰ Ȱɰʰ˰̰ͰΰϰаѰҰӰ԰հְװذٰڰ +ܰݰް߰ ܰݰް߰ + +ϴϵ϶ϷϸϹϺϻϼϽϾϿ ϴϵ϶ϷϸϹϺϻϼϽϾϿ +ӡ ӡ +дежзийклмноп дежзийклмноп + + + + + + + +SELECT `ã`, CONVERT(`ã` using ucs2) FROM `ԣ`; +ã CONVERT(`ã` using ucs2) + + + + + + + + + + + + + + +ѧҧӧԧէ֧קا٧ڧ ѧҧӧԧէ֧קا٧ڧ + + +ʢˢ̢͢΢ϢС ʢˢ̢͢΢ϢС + + + + + + + + +ϡϢϣϤϥϦϧϨϩϪϫϬϭϮϯϰϱϲϳ ϡϢϣϤϥϦϧϨϩϪϫϬϭϮϯϰϱϲϳ +СТУФХЦЧШЩЪЫЬЭЮЯабвг СТУФХЦЧШЩЪЫЬЭЮЯабвг + + +¡áġšơ \¡áġšơ +ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ +ܡޡߡ ܡޡߡ + +ܢݢޢߢꡦ ܢݢޢߢꡦ +£ãģţƣ £ãģţƣ +ȣɣʣˣ̣ͣΣϣУѣңӣԣգ֣ףأ٣ڡ ȣɣʣˣ̣ͣΣϣУѣңӣԣգ֣ףأ٣ڡ + +¤äĤŤƤ ¤äĤŤƤ +Ȥɤʤˤ̤ͤΤϤФѤҤӤԤդ֤פؤ٤ڤ Ȥɤʤˤ̤ͤΤϤФѤҤӤԤդ֤פؤ٤ڤ +ܤݤޤߤ ܤݤޤߤ +󡦡 󡦡 +¥åĥťƥ ¥åĥťƥ +ȥɥʥ˥̥ͥΥϥХѥҥӥԥե֥ץإ٥ڥ ȥɥʥ˥̥ͥΥϥХѥҥӥԥե֥ץإ٥ڥ +ܥݥޥߥ ܥݥޥߥ + +¦æĦŦƦ ¦æĦŦƦ +Ȧɦʦ˦̦ͦΦϦЦѦҦӦԦզ֦צء Ȧɦʦ˦̦ͦΦϦЦѦҦӦԦզ֦צء + +ܧݧާߧ ܧݧާߧ +񡦡 񡦡 + +°ðİŰư °ðİŰư +Ȱɰʰ˰̰ͰΰϰаѰҰӰ԰հְװذٰڰ Ȱɰʰ˰̰ͰΰϰаѰҰӰ԰հְװذٰڰ +ܰݰް߰ ܰݰް߰ + +ϴϵ϶ϷϸϹϺϻϼϽϾϿ ϴϵ϶ϷϸϹϺϻϼϽϾϿ +ӡ ӡ +дежзийклмноп дежзийклмноп + + + + + + + +SELECT `ã`, CONVERT(`ã` using sjis) FROM `ԣ`; +ã CONVERT(`ã` using sjis) + + + + + + + + + + + + + + +ѧҧӧԧէ֧קا٧ڧ ѧҧӧԧէ֧קا٧ڧ + + +ʢˢ̢͢΢ϢС ʢˢ̢͢΢ϢС + + + + + + + + +ϡϢϣϤϥϦϧϨϩϪϫϬϭϮϯϰϱϲϳ ϡϢϣϤϥϦϧϨϩϪϫϬϭϮϯϰϱϲϳ +СТУФХЦЧШЩЪЫЬЭЮЯабвг СТУФХЦЧШЩЪЫЬЭЮЯабвг + + +¡áġšơ \¡áġšơ +ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ +ܡޡߡ ܡޡߡ + +ܢݢޢߢꡦ ܢݢޢߢꡦ +£ãģţƣ £ãģţƣ +ȣɣʣˣ̣ͣΣϣУѣңӣԣգ֣ףأ٣ڡ ȣɣʣˣ̣ͣΣϣУѣңӣԣգ֣ףأ٣ڡ + +¤äĤŤƤ ¤äĤŤƤ +Ȥɤʤˤ̤ͤΤϤФѤҤӤԤդ֤פؤ٤ڤ Ȥɤʤˤ̤ͤΤϤФѤҤӤԤդ֤פؤ٤ڤ +ܤݤޤߤ ܤݤޤߤ +󡦡 󡦡 +¥åĥťƥ ¥åĥťƥ +ȥɥʥ˥̥ͥΥϥХѥҥӥԥե֥ץإ٥ڥ ȥɥʥ˥̥ͥΥϥХѥҥӥԥե֥ץإ٥ڥ +ܥݥޥߥ ܥݥޥߥ + +¦æĦŦƦ ¦æĦŦƦ +Ȧɦʦ˦̦ͦΦϦЦѦҦӦԦզ֦צء Ȧɦʦ˦̦ͦΦϦЦѦҦӦԦզ֦צء + +ܧݧާߧ ܧݧާߧ +񡦡 񡦡 + +°ðİŰư °ðİŰư +Ȱɰʰ˰̰ͰΰϰаѰҰӰ԰հְװذٰڰ Ȱɰʰ˰̰ͰΰϰаѰҰӰ԰հְװذٰڰ +ܰݰް߰ ܰݰް߰ + +ϴϵ϶ϷϸϹϺϻϼϽϾϿ ϴϵ϶ϷϸϹϺϻϼϽϾϿ +ӡ ӡ +дежзийклмноп дежзийклмноп + + + + + + + +SELECT `ã`, CONVERT(`ã` using utf8) FROM `ԣ`; +ã CONVERT(`ã` using utf8) +񡦡 񡦡 +ȏɏʏˏ̏͏Ρ ȏɏʏˏ̏͏Ρ +ȏɏʏˏ̏͏ΏϏС ȏɏʏˏ̏͏ΏϏС +ÏďŏƏ ÏďŏƏ +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ +܏ݏޏߏᏪ⏪㏪䏪只揪珪菪鏪ꏪ돪쏪폪 ܏ݏޏߏᏪ⏪㏪䏪只揪珪菪鏪ꏪ돪쏪폪 + +áŏƏ áŏƏ +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ +܏ݏޏߏᏫ⏫㏫䏫叫揫珫菫鏫ꏫ돫쏫폫 ܏ݏޏߏᏫ⏫㏫䏫叫揫珫菫鏫ꏫ돫쏫폫 + +ÏďŏƏ ÏďŏƏ +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ +܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰 ܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰 + +ÏďŏƏ ÏďŏƏ +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ +܏ݏޏߏ㡦 ܏ݏޏߏ㡦 +Ïġ ~Ïġ + + + + + + + +Ꮶ⏦㏦䏦塦硦鏦ꡦ졦 Ꮶ⏦㏦䏦塦硦鏦ꡦ졦 +ÏďŏƏ ÏďŏƏ +ÏďŏƏ ÏďŏƏ + +돢쏢폢 돢쏢폢 + + + + + + + + + +SELECT `ã`, CONVERT(`ã` using ucs2) FROM `ԣ`; +ã CONVERT(`ã` using ucs2) +񡦡 񡦡 +ȏɏʏˏ̏͏Ρ ȏɏʏˏ̏͏Ρ +ȏɏʏˏ̏͏ΏϏС ȏɏʏˏ̏͏ΏϏС +ÏďŏƏ ÏďŏƏ +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ +܏ݏޏߏᏪ⏪㏪䏪只揪珪菪鏪ꏪ돪쏪폪 ܏ݏޏߏᏪ⏪㏪䏪只揪珪菪鏪ꏪ돪쏪폪 + +áŏƏ áŏƏ +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ +܏ݏޏߏᏫ⏫㏫䏫叫揫珫菫鏫ꏫ돫쏫폫 ܏ݏޏߏᏫ⏫㏫䏫叫揫珫菫鏫ꏫ돫쏫폫 + +ÏďŏƏ ÏďŏƏ +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ +܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰 ܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰 + +ÏďŏƏ ÏďŏƏ +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ +܏ݏޏߏ㡦 ܏ݏޏߏ㡦 +Ïġ ~Ïġ + + + + + + + +Ꮶ⏦㏦䏦塦硦鏦ꡦ졦 Ꮶ⏦㏦䏦塦硦鏦ꡦ졦 +ÏďŏƏ ÏďŏƏ +ÏďŏƏ ÏďŏƏ + +돢쏢폢 돢쏢폢 + + + + + + + + + +SELECT `ã`, CONVERT(`ã` using sjis) FROM `ԣ`; +ã CONVERT(`ã` using sjis) +񡦡 ?? +ȏɏʏˏ̏͏Ρ ??????? +ȏɏʏˏ̏͏ΏϏС ????????? +ÏďŏƏ ??????????????????? +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ ???????????????????? +܏ݏޏߏᏪ⏪㏪䏪只揪珪菪鏪ꏪ돪쏪폪 ???????????????????? + ???????? +áŏƏ ?????????????????? +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ ???????????????????? +܏ݏޏߏᏫ⏫㏫䏫叫揫珫菫鏫ꏫ돫쏫폫 ???????????????????? + ???????? +ÏďŏƏ ???????????????????? +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ ???????????????????? +܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰 ???????????????????? + ??????????????? +ÏďŏƏ ???????????????????? +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ ???????????????????? +܏ݏޏߏ㡦 ???????? +Ïġ ??~????? + ???????????? + ??????????? + ??????????????????? + ??????????????????? + ??????????????????? + ??????????????????? + ????????????? +Ꮶ⏦㏦䏦塦硦鏦ꡦ졦 ????????? +ÏďŏƏ ??????? +ÏďŏƏ ?????? + ????? +돢쏢폢 ????? + + + + + + + + + +SELECT `ã`, CONVERT(`ã` using utf8) FROM `ԣ`; +ã CONVERT(`ã` using utf8) + !"#$%&'()*+,-./ !"#$%&'()*+,-./ + +0123456789:;<=>? 0123456789:;<=>? +@ABCDEFGHIJKLMNO @ABCDEFGHIJKLMNO +abcdefghijklmno abcdefghijklmno +PQRSTUVWXYZ[\]^_ PQRSTUVWXYZ[\]^_ +pqrstuvwxyz{|}~ pqrstuvwxyz{|}~ + +ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ +ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ +SELECT `ã`, CONVERT(`ã` using ucs2) FROM `ԣ`; +ã CONVERT(`ã` using ucs2) + !"#$%&'()*+,-./ !"#$%&'()*+,-./ + +0123456789:;<=>? 0123456789:;<=>? +@ABCDEFGHIJKLMNO @ABCDEFGHIJKLMNO +abcdefghijklmno abcdefghijklmno +PQRSTUVWXYZ[\]^_ PQRSTUVWXYZ[\]^_ +pqrstuvwxyz{|}~ pqrstuvwxyz{|}~ + +ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ +ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ +SELECT `ã`, CONVERT(`ã` using sjis) FROM `ԣ`; +ã CONVERT(`ã` using sjis) + !"#$%&'()*+,-./ !"#$%&'()*+,-./ + +0123456789:;<=>? 0123456789:;<=>? +@ABCDEFGHIJKLMNO @ABCDEFGHIJKLMNO +abcdefghijklmno abcdefghijklmno +PQRSTUVWXYZ[\]^_ PQRSTUVWXYZ[\]^_ +pqrstuvwxyz{|}~ pqrstuvwxyz{|}~ + +ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ +ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ +SELECT `ã`, CONVERT(`ã` using utf8) FROM `ԣ`; +ã CONVERT(`ã` using utf8) + + + + + + + + + + + + + + +ѧҧӧԧէ֧קا٧ڧ ѧҧӧԧէ֧קا٧ڧ + + +ʢˢ̢͢΢ϢС ʢˢ̢͢΢ϢС + + + + + + + + +ϡϢϣϤϥϦϧϨϩϪϫϬϭϮϯϰϱϲϳ ϡϢϣϤϥϦϧϨϩϪϫϬϭϮϯϰϱϲϳ +СТУФХЦЧШЩЪЫЬЭЮЯабвг СТУФХЦЧШЩЪЫЬЭЮЯабвг + + +¡áġšơ \¡áġšơ +ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ +ܡޡߡ ܡޡߡ + +ܢݢޢߢꡦ ܢݢޢߢꡦ +£ãģţƣ £ãģţƣ +ȣɣʣˣ̣ͣΣϣУѣңӣԣգ֣ףأ٣ڡ ȣɣʣˣ̣ͣΣϣУѣңӣԣգ֣ףأ٣ڡ + +¤äĤŤƤ ¤äĤŤƤ +Ȥɤʤˤ̤ͤΤϤФѤҤӤԤդ֤פؤ٤ڤ Ȥɤʤˤ̤ͤΤϤФѤҤӤԤդ֤פؤ٤ڤ +ܤݤޤߤ ܤݤޤߤ +󡦡 󡦡 +¥åĥťƥ ¥åĥťƥ +ȥɥʥ˥̥ͥΥϥХѥҥӥԥե֥ץإ٥ڥ ȥɥʥ˥̥ͥΥϥХѥҥӥԥե֥ץإ٥ڥ +ܥݥޥߥ ܥݥޥߥ + +¦æĦŦƦ ¦æĦŦƦ +Ȧɦʦ˦̦ͦΦϦЦѦҦӦԦզ֦צء Ȧɦʦ˦̦ͦΦϦЦѦҦӦԦզ֦צء + +ܧݧާߧ ܧݧާߧ +񡦡 񡦡 + +°ðİŰư °ðİŰư +Ȱɰʰ˰̰ͰΰϰаѰҰӰ԰հְװذٰڰ Ȱɰʰ˰̰ͰΰϰаѰҰӰ԰հְװذٰڰ +ܰݰް߰ ܰݰް߰ + +ϴϵ϶ϷϸϹϺϻϼϽϾϿ ϴϵ϶ϷϸϹϺϻϼϽϾϿ +ӡ ӡ +дежзийклмноп дежзийклмноп + + + + + + + +SELECT `ã`, CONVERT(`ã` using ucs2) FROM `ԣ`; +ã CONVERT(`ã` using ucs2) + + + + + + + + + + + + + + +ѧҧӧԧէ֧קا٧ڧ ѧҧӧԧէ֧קا٧ڧ + + +ʢˢ̢͢΢ϢС ʢˢ̢͢΢ϢС + + + + + + + + +ϡϢϣϤϥϦϧϨϩϪϫϬϭϮϯϰϱϲϳ ϡϢϣϤϥϦϧϨϩϪϫϬϭϮϯϰϱϲϳ +СТУФХЦЧШЩЪЫЬЭЮЯабвг СТУФХЦЧШЩЪЫЬЭЮЯабвг + + +¡áġšơ \¡áġšơ +ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ +ܡޡߡ ܡޡߡ + +ܢݢޢߢꡦ ܢݢޢߢꡦ +£ãģţƣ £ãģţƣ +ȣɣʣˣ̣ͣΣϣУѣңӣԣգ֣ףأ٣ڡ ȣɣʣˣ̣ͣΣϣУѣңӣԣգ֣ףأ٣ڡ + +¤äĤŤƤ ¤äĤŤƤ +Ȥɤʤˤ̤ͤΤϤФѤҤӤԤդ֤פؤ٤ڤ Ȥɤʤˤ̤ͤΤϤФѤҤӤԤդ֤פؤ٤ڤ +ܤݤޤߤ ܤݤޤߤ +󡦡 󡦡 +¥åĥťƥ ¥åĥťƥ +ȥɥʥ˥̥ͥΥϥХѥҥӥԥե֥ץإ٥ڥ ȥɥʥ˥̥ͥΥϥХѥҥӥԥե֥ץإ٥ڥ +ܥݥޥߥ ܥݥޥߥ + +¦æĦŦƦ ¦æĦŦƦ +Ȧɦʦ˦̦ͦΦϦЦѦҦӦԦզ֦צء Ȧɦʦ˦̦ͦΦϦЦѦҦӦԦզ֦צء + +ܧݧާߧ ܧݧާߧ +񡦡 񡦡 + +°ðİŰư °ðİŰư +Ȱɰʰ˰̰ͰΰϰаѰҰӰ԰հְװذٰڰ Ȱɰʰ˰̰ͰΰϰаѰҰӰ԰հְװذٰڰ +ܰݰް߰ ܰݰް߰ + +ϴϵ϶ϷϸϹϺϻϼϽϾϿ ϴϵ϶ϷϸϹϺϻϼϽϾϿ +ӡ ӡ +дежзийклмноп дежзийклмноп + + + + + + + +SELECT `ã`, CONVERT(`ã` using sjis) FROM `ԣ`; +ã CONVERT(`ã` using sjis) + + + + + + + + + + + + + + +ѧҧӧԧէ֧קا٧ڧ ѧҧӧԧէ֧קا٧ڧ + + +ʢˢ̢͢΢ϢС ʢˢ̢͢΢ϢС + + + + + + + + +ϡϢϣϤϥϦϧϨϩϪϫϬϭϮϯϰϱϲϳ ϡϢϣϤϥϦϧϨϩϪϫϬϭϮϯϰϱϲϳ +СТУФХЦЧШЩЪЫЬЭЮЯабвг СТУФХЦЧШЩЪЫЬЭЮЯабвг + + +¡áġšơ \¡áġšơ +ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ +ܡޡߡ ܡޡߡ + +ܢݢޢߢꡦ ܢݢޢߢꡦ +£ãģţƣ £ãģţƣ +ȣɣʣˣ̣ͣΣϣУѣңӣԣգ֣ףأ٣ڡ ȣɣʣˣ̣ͣΣϣУѣңӣԣգ֣ףأ٣ڡ + +¤äĤŤƤ ¤äĤŤƤ +Ȥɤʤˤ̤ͤΤϤФѤҤӤԤդ֤פؤ٤ڤ Ȥɤʤˤ̤ͤΤϤФѤҤӤԤդ֤פؤ٤ڤ +ܤݤޤߤ ܤݤޤߤ +󡦡 󡦡 +¥åĥťƥ ¥åĥťƥ +ȥɥʥ˥̥ͥΥϥХѥҥӥԥե֥ץإ٥ڥ ȥɥʥ˥̥ͥΥϥХѥҥӥԥե֥ץإ٥ڥ +ܥݥޥߥ ܥݥޥߥ + +¦æĦŦƦ ¦æĦŦƦ +Ȧɦʦ˦̦ͦΦϦЦѦҦӦԦզ֦צء Ȧɦʦ˦̦ͦΦϦЦѦҦӦԦզ֦צء + +ܧݧާߧ ܧݧާߧ +񡦡 񡦡 + +°ðİŰư °ðİŰư +Ȱɰʰ˰̰ͰΰϰаѰҰӰ԰հְװذٰڰ Ȱɰʰ˰̰ͰΰϰаѰҰӰ԰հְװذٰڰ +ܰݰް߰ ܰݰް߰ + +ϴϵ϶ϷϸϹϺϻϼϽϾϿ ϴϵ϶ϷϸϹϺϻϼϽϾϿ +ӡ ӡ +дежзийклмноп дежзийклмноп + + + + + + + +SELECT `ã`, CONVERT(`ã` using utf8) FROM `ԣ`; +ã CONVERT(`ã` using utf8) +񡦡 񡦡 +ȏɏʏˏ̏͏Ρ ȏɏʏˏ̏͏Ρ +ȏɏʏˏ̏͏ΏϏС ȏɏʏˏ̏͏ΏϏС +ÏďŏƏ ÏďŏƏ +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ +܏ݏޏߏᏪ⏪㏪䏪只揪珪菪鏪ꏪ돪쏪폪 ܏ݏޏߏᏪ⏪㏪䏪只揪珪菪鏪ꏪ돪쏪폪 + +áŏƏ áŏƏ +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ +܏ݏޏߏᏫ⏫㏫䏫叫揫珫菫鏫ꏫ돫쏫폫 ܏ݏޏߏᏫ⏫㏫䏫叫揫珫菫鏫ꏫ돫쏫폫 + +ÏďŏƏ ÏďŏƏ +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ +܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰 ܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰 + +ÏďŏƏ ÏďŏƏ +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ +܏ݏޏߏ㡦 ܏ݏޏߏ㡦 +Ïġ ~Ïġ + + + + + + + +Ꮶ⏦㏦䏦塦硦鏦ꡦ졦 Ꮶ⏦㏦䏦塦硦鏦ꡦ졦 +ÏďŏƏ ÏďŏƏ +ÏďŏƏ ÏďŏƏ + +돢쏢폢 돢쏢폢 + + + + + + + + + +SELECT `ã`, CONVERT(`ã` using ucs2) FROM `ԣ`; +ã CONVERT(`ã` using ucs2) +񡦡 񡦡 +ȏɏʏˏ̏͏Ρ ȏɏʏˏ̏͏Ρ +ȏɏʏˏ̏͏ΏϏС ȏɏʏˏ̏͏ΏϏС +ÏďŏƏ ÏďŏƏ +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ +܏ݏޏߏᏪ⏪㏪䏪只揪珪菪鏪ꏪ돪쏪폪 ܏ݏޏߏᏪ⏪㏪䏪只揪珪菪鏪ꏪ돪쏪폪 + +áŏƏ áŏƏ +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ +܏ݏޏߏᏫ⏫㏫䏫叫揫珫菫鏫ꏫ돫쏫폫 ܏ݏޏߏᏫ⏫㏫䏫叫揫珫菫鏫ꏫ돫쏫폫 + +ÏďŏƏ ÏďŏƏ +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ +܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰 ܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰 + +ÏďŏƏ ÏďŏƏ +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ +܏ݏޏߏ㡦 ܏ݏޏߏ㡦 +Ïġ ~Ïġ + + + + + + + +Ꮶ⏦㏦䏦塦硦鏦ꡦ졦 Ꮶ⏦㏦䏦塦硦鏦ꡦ졦 +ÏďŏƏ ÏďŏƏ +ÏďŏƏ ÏďŏƏ + +돢쏢폢 돢쏢폢 + + + + + + + + + +SELECT `ã`, CONVERT(`ã` using sjis) FROM `ԣ`; +ã CONVERT(`ã` using sjis) +񡦡 ?? +ȏɏʏˏ̏͏Ρ ??????? +ȏɏʏˏ̏͏ΏϏС ????????? +ÏďŏƏ ??????????????????? +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ ???????????????????? +܏ݏޏߏᏪ⏪㏪䏪只揪珪菪鏪ꏪ돪쏪폪 ???????????????????? + ???????? +áŏƏ ?????????????????? +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ ???????????????????? +܏ݏޏߏᏫ⏫㏫䏫叫揫珫菫鏫ꏫ돫쏫폫 ???????????????????? + ???????? +ÏďŏƏ ???????????????????? +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ ???????????????????? +܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰 ???????????????????? + ??????????????? +ÏďŏƏ ???????????????????? +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ ???????????????????? +܏ݏޏߏ㡦 ???????? +Ïġ ??~????? + ???????????? + ??????????? + ??????????????????? + ??????????????????? + ??????????????????? + ??????????????????? + ????????????? +Ꮶ⏦㏦䏦塦硦鏦ꡦ졦 ????????? +ÏďŏƏ ??????? +ÏďŏƏ ?????? + ????? +돢쏢폢 ????? + + + + + + + + + +SELECT `ã`, CONVERT(`ã` using utf8) FROM `ԣ`; +ã CONVERT(`ã` using utf8) + !"#$%&'()*+,-./ !"#$%&'()*+,-./ +0123456789:;<=>? 0123456789:;<=>? +@ABCDEFGHIJKLMNO @ABCDEFGHIJKLMNO +PQRSTUVWXYZ[\]^_ PQRSTUVWXYZ[\]^_ +abcdefghijklmno abcdefghijklmno +pqrstuvwxyz{|}~ pqrstuvwxyz{|}~ + + +ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ +ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ +SELECT `ã`, CONVERT(`ã` using ucs2) FROM `ԣ`; +ã CONVERT(`ã` using ucs2) + !"#$%&'()*+,-./ !"#$%&'()*+,-./ +0123456789:;<=>? 0123456789:;<=>? +@ABCDEFGHIJKLMNO @ABCDEFGHIJKLMNO +PQRSTUVWXYZ[\]^_ PQRSTUVWXYZ[\]^_ +abcdefghijklmno abcdefghijklmno +pqrstuvwxyz{|}~ pqrstuvwxyz{|}~ + + +ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ +ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ +SELECT `ã`, CONVERT(`ã` using sjis) FROM `ԣ`; +ã CONVERT(`ã` using sjis) + !"#$%&'()*+,-./ !"#$%&'()*+,-./ +0123456789:;<=>? 0123456789:;<=>? +@ABCDEFGHIJKLMNO @ABCDEFGHIJKLMNO +PQRSTUVWXYZ[\]^_ PQRSTUVWXYZ[\]^_ +abcdefghijklmno abcdefghijklmno +pqrstuvwxyz{|}~ pqrstuvwxyz{|}~ + + +ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ +ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ +SELECT `ã`, CONVERT(`ã` using utf8) FROM `ԣ`; +ã CONVERT(`ã` using utf8) + +¡áġšơ \¡áġšơ +ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ +ܡޡߡ ܡޡߡ + + + +ʢˢ̢͢΢ϢС ʢˢ̢͢΢ϢС +ܢݢޢߢꡦ ܢݢޢߢꡦ + + +£ãģţƣ £ãģţƣ +ȣɣʣˣ̣ͣΣϣУѣңӣԣգ֣ףأ٣ڡ ȣɣʣˣ̣ͣΣϣУѣңӣԣգ֣ףأ٣ڡ + + + +¤äĤŤƤ ¤äĤŤƤ +Ȥɤʤˤ̤ͤΤϤФѤҤӤԤդ֤פؤ٤ڤ Ȥɤʤˤ̤ͤΤϤФѤҤӤԤդ֤פؤ٤ڤ +ܤݤޤߤ ܤݤޤߤ +󡦡 󡦡 + +¥åĥťƥ ¥åĥťƥ +ȥɥʥ˥̥ͥΥϥХѥҥӥԥե֥ץإ٥ڥ ȥɥʥ˥̥ͥΥϥХѥҥӥԥե֥ץإ٥ڥ +ܥݥޥߥ ܥݥޥߥ + + +¦æĦŦƦ ¦æĦŦƦ +Ȧɦʦ˦̦ͦΦϦЦѦҦӦԦզ֦צء Ȧɦʦ˦̦ͦΦϦЦѦҦӦԦզ֦צء + + + + + +ѧҧӧԧէ֧קا٧ڧ ѧҧӧԧէ֧קا٧ڧ +ܧݧާߧ ܧݧާߧ +񡦡 񡦡 + + + + + + +°ðİŰư °ðİŰư +Ȱɰʰ˰̰ͰΰϰаѰҰӰ԰հְװذٰڰ Ȱɰʰ˰̰ͰΰϰаѰҰӰ԰հְװذٰڰ +ܰݰް߰ ܰݰް߰ + +ϡϢϣϤϥϦϧϨϩϪϫϬϭϮϯϰϱϲϳ ϡϢϣϤϥϦϧϨϩϪϫϬϭϮϯϰϱϲϳ +ϴϵ϶ϷϸϹϺϻϼϽϾϿ ϴϵ϶ϷϸϹϺϻϼϽϾϿ +ӡ ӡ + + +СТУФХЦЧШЩЪЫЬЭЮЯабвг СТУФХЦЧШЩЪЫЬЭЮЯабвг +дежзийклмноп дежзийклмноп + + + + + + + + + + + + + +SELECT `ã`, CONVERT(`ã` using ucs2) FROM `ԣ`; +ã CONVERT(`ã` using ucs2) + +¡áġšơ \¡áġšơ +ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ +ܡޡߡ ܡޡߡ + + + +ʢˢ̢͢΢ϢС ʢˢ̢͢΢ϢС +ܢݢޢߢꡦ ܢݢޢߢꡦ + + +£ãģţƣ £ãģţƣ +ȣɣʣˣ̣ͣΣϣУѣңӣԣգ֣ףأ٣ڡ ȣɣʣˣ̣ͣΣϣУѣңӣԣգ֣ףأ٣ڡ + + + +¤äĤŤƤ ¤äĤŤƤ +Ȥɤʤˤ̤ͤΤϤФѤҤӤԤդ֤פؤ٤ڤ Ȥɤʤˤ̤ͤΤϤФѤҤӤԤդ֤פؤ٤ڤ +ܤݤޤߤ ܤݤޤߤ +󡦡 󡦡 + +¥åĥťƥ ¥åĥťƥ +ȥɥʥ˥̥ͥΥϥХѥҥӥԥե֥ץإ٥ڥ ȥɥʥ˥̥ͥΥϥХѥҥӥԥե֥ץإ٥ڥ +ܥݥޥߥ ܥݥޥߥ + + +¦æĦŦƦ ¦æĦŦƦ +Ȧɦʦ˦̦ͦΦϦЦѦҦӦԦզ֦צء Ȧɦʦ˦̦ͦΦϦЦѦҦӦԦզ֦צء + + + + + +ѧҧӧԧէ֧קا٧ڧ ѧҧӧԧէ֧קا٧ڧ +ܧݧާߧ ܧݧާߧ +񡦡 񡦡 + + + + + + +°ðİŰư °ðİŰư +Ȱɰʰ˰̰ͰΰϰаѰҰӰ԰հְװذٰڰ Ȱɰʰ˰̰ͰΰϰаѰҰӰ԰հְװذٰڰ +ܰݰް߰ ܰݰް߰ + +ϡϢϣϤϥϦϧϨϩϪϫϬϭϮϯϰϱϲϳ ϡϢϣϤϥϦϧϨϩϪϫϬϭϮϯϰϱϲϳ +ϴϵ϶ϷϸϹϺϻϼϽϾϿ ϴϵ϶ϷϸϹϺϻϼϽϾϿ +ӡ ӡ + + +СТУФХЦЧШЩЪЫЬЭЮЯабвг СТУФХЦЧШЩЪЫЬЭЮЯабвг +дежзийклмноп дежзийклмноп + + + + + + + + + + + + + +SELECT `ã`, CONVERT(`ã` using sjis) FROM `ԣ`; +ã CONVERT(`ã` using sjis) + +¡áġšơ \¡áġšơ +ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ +ܡޡߡ ܡޡߡ + + + +ʢˢ̢͢΢ϢС ʢˢ̢͢΢ϢС +ܢݢޢߢꡦ ܢݢޢߢꡦ + + +£ãģţƣ £ãģţƣ +ȣɣʣˣ̣ͣΣϣУѣңӣԣգ֣ףأ٣ڡ ȣɣʣˣ̣ͣΣϣУѣңӣԣգ֣ףأ٣ڡ + + + +¤äĤŤƤ ¤äĤŤƤ +Ȥɤʤˤ̤ͤΤϤФѤҤӤԤդ֤פؤ٤ڤ Ȥɤʤˤ̤ͤΤϤФѤҤӤԤդ֤פؤ٤ڤ +ܤݤޤߤ ܤݤޤߤ +󡦡 󡦡 + +¥åĥťƥ ¥åĥťƥ +ȥɥʥ˥̥ͥΥϥХѥҥӥԥե֥ץإ٥ڥ ȥɥʥ˥̥ͥΥϥХѥҥӥԥե֥ץإ٥ڥ +ܥݥޥߥ ܥݥޥߥ + + +¦æĦŦƦ ¦æĦŦƦ +Ȧɦʦ˦̦ͦΦϦЦѦҦӦԦզ֦צء Ȧɦʦ˦̦ͦΦϦЦѦҦӦԦզ֦צء + + + + + +ѧҧӧԧէ֧קا٧ڧ ѧҧӧԧէ֧קا٧ڧ +ܧݧާߧ ܧݧާߧ +񡦡 񡦡 + + + + + + +°ðİŰư °ðİŰư +Ȱɰʰ˰̰ͰΰϰаѰҰӰ԰հְװذٰڰ Ȱɰʰ˰̰ͰΰϰаѰҰӰ԰հְװذٰڰ +ܰݰް߰ ܰݰް߰ + +ϡϢϣϤϥϦϧϨϩϪϫϬϭϮϯϰϱϲϳ ϡϢϣϤϥϦϧϨϩϪϫϬϭϮϯϰϱϲϳ +ϴϵ϶ϷϸϹϺϻϼϽϾϿ ϴϵ϶ϷϸϹϺϻϼϽϾϿ +ӡ ӡ + + +СТУФХЦЧШЩЪЫЬЭЮЯабвг СТУФХЦЧШЩЪЫЬЭЮЯабвг +дежзийклмноп дежзийклмноп + + + + + + + + + + + + + +SELECT `ã`, CONVERT(`ã` using utf8) FROM `ԣ`; +ã CONVERT(`ã` using utf8) + +Ïġ ~Ïġ + +돢쏢폢 돢쏢폢 +񡦡 񡦡 + + + +Ꮶ⏦㏦䏦塦硦鏦ꡦ졦 Ꮶ⏦㏦䏦塦硦鏦ꡦ졦 + + +ÏďŏƏ ÏďŏƏ +ȏɏʏˏ̏͏Ρ ȏɏʏˏ̏͏Ρ + + + +ÏďŏƏ ÏďŏƏ +ȏɏʏˏ̏͏ΏϏС ȏɏʏˏ̏͏ΏϏС + + + +ÏďŏƏ ÏďŏƏ +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ +܏ݏޏߏᏪ⏪㏪䏪只揪珪菪鏪ꏪ돪쏪폪 ܏ݏޏߏᏪ⏪㏪䏪只揪珪菪鏪ꏪ돪쏪폪 + + +áŏƏ áŏƏ +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ +܏ݏޏߏᏫ⏫㏫䏫叫揫珫菫鏫ꏫ돫쏫폫 ܏ݏޏߏᏫ⏫㏫䏫叫揫珫菫鏫ꏫ돫쏫폫 + + +ÏďŏƏ ÏďŏƏ +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ +܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰 ܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰 + + +ÏďŏƏ ÏďŏƏ +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ +܏ݏޏߏ㡦 ܏ݏޏߏ㡦 + +SELECT `ã`, CONVERT(`ã` using ucs2) FROM `ԣ`; +ã CONVERT(`ã` using ucs2) + +Ïġ ~Ïġ + +돢쏢폢 돢쏢폢 +񡦡 񡦡 + + + +Ꮶ⏦㏦䏦塦硦鏦ꡦ졦 Ꮶ⏦㏦䏦塦硦鏦ꡦ졦 + + +ÏďŏƏ ÏďŏƏ +ȏɏʏˏ̏͏Ρ ȏɏʏˏ̏͏Ρ + + + +ÏďŏƏ ÏďŏƏ +ȏɏʏˏ̏͏ΏϏС ȏɏʏˏ̏͏ΏϏС + + + +ÏďŏƏ ÏďŏƏ +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ +܏ݏޏߏᏪ⏪㏪䏪只揪珪菪鏪ꏪ돪쏪폪 ܏ݏޏߏᏪ⏪㏪䏪只揪珪菪鏪ꏪ돪쏪폪 + + +áŏƏ áŏƏ +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ +܏ݏޏߏᏫ⏫㏫䏫叫揫珫菫鏫ꏫ돫쏫폫 ܏ݏޏߏᏫ⏫㏫䏫叫揫珫菫鏫ꏫ돫쏫폫 + + +ÏďŏƏ ÏďŏƏ +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ +܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰 ܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰 + + +ÏďŏƏ ÏďŏƏ +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ +܏ݏޏߏ㡦 ܏ݏޏߏ㡦 + +SELECT `ã`, CONVERT(`ã` using sjis) FROM `ԣ`; +ã CONVERT(`ã` using sjis) + ????? +Ïġ ??~????? + +돢쏢폢 ????? +񡦡 ?? + + + +Ꮶ⏦㏦䏦塦硦鏦ꡦ졦 ????????? + ???????????? + +ÏďŏƏ ?????? +ȏɏʏˏ̏͏Ρ ??????? + + ????????????? + ??????????? +ÏďŏƏ ??????? +ȏɏʏˏ̏͏ΏϏС ????????? + + + ??????????????????? +ÏďŏƏ ??????????????????? +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ ???????????????????? +܏ݏޏߏᏪ⏪㏪䏪只揪珪菪鏪ꏪ돪쏪폪 ???????????????????? + ???????? + ??????????????????? +áŏƏ ?????????????????? +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ ???????????????????? +܏ݏޏߏᏫ⏫㏫䏫叫揫珫菫鏫ꏫ돫쏫폫 ???????????????????? + ???????? + ??????????????????? +ÏďŏƏ ???????????????????? +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ ???????????????????? +܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰 ???????????????????? + ??????????????? + ??????????????????? +ÏďŏƏ ???????????????????? +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ ???????????????????? +܏ݏޏߏ㡦 ???????? + +SELECT `ã`, CONVERT(`ã` using utf8) FROM `ԣ`; +ã CONVERT(`ã` using utf8) + !"#$%&'()*+,-./ !"#$%&'()*+,-./ +0123456789:;<=>? 0123456789:;<=>? +@ABCDEFGHIJKLMNO @ABCDEFGHIJKLMNO +PQRSTUVWXYZ[\]^_ PQRSTUVWXYZ[\]^_ +abcdefghijklmno abcdefghijklmno +pqrstuvwxyz{|}~ pqrstuvwxyz{|}~ + + +ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ +ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ +SELECT `ã`, CONVERT(`ã` using ucs2) FROM `ԣ`; +ã CONVERT(`ã` using ucs2) + !"#$%&'()*+,-./ !"#$%&'()*+,-./ +0123456789:;<=>? 0123456789:;<=>? +@ABCDEFGHIJKLMNO @ABCDEFGHIJKLMNO +PQRSTUVWXYZ[\]^_ PQRSTUVWXYZ[\]^_ +abcdefghijklmno abcdefghijklmno +pqrstuvwxyz{|}~ pqrstuvwxyz{|}~ + + +ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ +ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ +SELECT `ã`, CONVERT(`ã` using sjis) FROM `ԣ`; +ã CONVERT(`ã` using sjis) + !"#$%&'()*+,-./ !"#$%&'()*+,-./ +0123456789:;<=>? 0123456789:;<=>? +@ABCDEFGHIJKLMNO @ABCDEFGHIJKLMNO +PQRSTUVWXYZ[\]^_ PQRSTUVWXYZ[\]^_ +abcdefghijklmno abcdefghijklmno +pqrstuvwxyz{|}~ pqrstuvwxyz{|}~ + + +ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ +ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ +SELECT `ã`, CONVERT(`ã` using utf8) FROM `ԣ`; +ã CONVERT(`ã` using utf8) + +¡áġšơ \¡áġšơ +ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ +ܡޡߡ ܡޡߡ + + + +ʢˢ̢͢΢ϢС ʢˢ̢͢΢ϢС +ܢݢޢߢꡦ ܢݢޢߢꡦ + + +£ãģţƣ £ãģţƣ +ȣɣʣˣ̣ͣΣϣУѣңӣԣգ֣ףأ٣ڡ ȣɣʣˣ̣ͣΣϣУѣңӣԣգ֣ףأ٣ڡ + + + +¤äĤŤƤ ¤äĤŤƤ +Ȥɤʤˤ̤ͤΤϤФѤҤӤԤդ֤פؤ٤ڤ Ȥɤʤˤ̤ͤΤϤФѤҤӤԤդ֤פؤ٤ڤ +ܤݤޤߤ ܤݤޤߤ +󡦡 󡦡 + +¥åĥťƥ ¥åĥťƥ +ȥɥʥ˥̥ͥΥϥХѥҥӥԥե֥ץإ٥ڥ ȥɥʥ˥̥ͥΥϥХѥҥӥԥե֥ץإ٥ڥ +ܥݥޥߥ ܥݥޥߥ + + +¦æĦŦƦ ¦æĦŦƦ +Ȧɦʦ˦̦ͦΦϦЦѦҦӦԦզ֦צء Ȧɦʦ˦̦ͦΦϦЦѦҦӦԦզ֦צء + + + + + +ѧҧӧԧէ֧קا٧ڧ ѧҧӧԧէ֧קا٧ڧ +ܧݧާߧ ܧݧާߧ +񡦡 񡦡 + + + + + + +°ðİŰư °ðİŰư +Ȱɰʰ˰̰ͰΰϰаѰҰӰ԰հְװذٰڰ Ȱɰʰ˰̰ͰΰϰаѰҰӰ԰հְװذٰڰ +ܰݰް߰ ܰݰް߰ + +ϡϢϣϤϥϦϧϨϩϪϫϬϭϮϯϰϱϲϳ ϡϢϣϤϥϦϧϨϩϪϫϬϭϮϯϰϱϲϳ +ϴϵ϶ϷϸϹϺϻϼϽϾϿ ϴϵ϶ϷϸϹϺϻϼϽϾϿ +ӡ ӡ + + +СТУФХЦЧШЩЪЫЬЭЮЯабвг СТУФХЦЧШЩЪЫЬЭЮЯабвг +дежзийклмноп дежзийклмноп + + + + + + + + + + + + + +SELECT `ã`, CONVERT(`ã` using ucs2) FROM `ԣ`; +ã CONVERT(`ã` using ucs2) + +¡áġšơ \¡áġšơ +ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ +ܡޡߡ ܡޡߡ + + + +ʢˢ̢͢΢ϢС ʢˢ̢͢΢ϢС +ܢݢޢߢꡦ ܢݢޢߢꡦ + + +£ãģţƣ £ãģţƣ +ȣɣʣˣ̣ͣΣϣУѣңӣԣգ֣ףأ٣ڡ ȣɣʣˣ̣ͣΣϣУѣңӣԣգ֣ףأ٣ڡ + + + +¤äĤŤƤ ¤äĤŤƤ +Ȥɤʤˤ̤ͤΤϤФѤҤӤԤդ֤פؤ٤ڤ Ȥɤʤˤ̤ͤΤϤФѤҤӤԤդ֤פؤ٤ڤ +ܤݤޤߤ ܤݤޤߤ +󡦡 󡦡 + +¥åĥťƥ ¥åĥťƥ +ȥɥʥ˥̥ͥΥϥХѥҥӥԥե֥ץإ٥ڥ ȥɥʥ˥̥ͥΥϥХѥҥӥԥե֥ץإ٥ڥ +ܥݥޥߥ ܥݥޥߥ + + +¦æĦŦƦ ¦æĦŦƦ +Ȧɦʦ˦̦ͦΦϦЦѦҦӦԦզ֦צء Ȧɦʦ˦̦ͦΦϦЦѦҦӦԦզ֦צء + + + + + +ѧҧӧԧէ֧קا٧ڧ ѧҧӧԧէ֧קا٧ڧ +ܧݧާߧ ܧݧާߧ +񡦡 񡦡 + + + + + + +°ðİŰư °ðİŰư +Ȱɰʰ˰̰ͰΰϰаѰҰӰ԰հְװذٰڰ Ȱɰʰ˰̰ͰΰϰаѰҰӰ԰հְװذٰڰ +ܰݰް߰ ܰݰް߰ + +ϡϢϣϤϥϦϧϨϩϪϫϬϭϮϯϰϱϲϳ ϡϢϣϤϥϦϧϨϩϪϫϬϭϮϯϰϱϲϳ +ϴϵ϶ϷϸϹϺϻϼϽϾϿ ϴϵ϶ϷϸϹϺϻϼϽϾϿ +ӡ ӡ + + +СТУФХЦЧШЩЪЫЬЭЮЯабвг СТУФХЦЧШЩЪЫЬЭЮЯабвг +дежзийклмноп дежзийклмноп + + + + + + + + + + + + + +SELECT `ã`, CONVERT(`ã` using sjis) FROM `ԣ`; +ã CONVERT(`ã` using sjis) + +¡áġšơ \¡áġšơ +ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ +ܡޡߡ ܡޡߡ + + + +ʢˢ̢͢΢ϢС ʢˢ̢͢΢ϢС +ܢݢޢߢꡦ ܢݢޢߢꡦ + + +£ãģţƣ £ãģţƣ +ȣɣʣˣ̣ͣΣϣУѣңӣԣգ֣ףأ٣ڡ ȣɣʣˣ̣ͣΣϣУѣңӣԣգ֣ףأ٣ڡ + + + +¤äĤŤƤ ¤äĤŤƤ +Ȥɤʤˤ̤ͤΤϤФѤҤӤԤդ֤פؤ٤ڤ Ȥɤʤˤ̤ͤΤϤФѤҤӤԤդ֤פؤ٤ڤ +ܤݤޤߤ ܤݤޤߤ +󡦡 󡦡 + +¥åĥťƥ ¥åĥťƥ +ȥɥʥ˥̥ͥΥϥХѥҥӥԥե֥ץإ٥ڥ ȥɥʥ˥̥ͥΥϥХѥҥӥԥե֥ץإ٥ڥ +ܥݥޥߥ ܥݥޥߥ + + +¦æĦŦƦ ¦æĦŦƦ +Ȧɦʦ˦̦ͦΦϦЦѦҦӦԦզ֦צء Ȧɦʦ˦̦ͦΦϦЦѦҦӦԦզ֦צء + + + + + +ѧҧӧԧէ֧קا٧ڧ ѧҧӧԧէ֧קا٧ڧ +ܧݧާߧ ܧݧާߧ +񡦡 񡦡 + + + + + + +°ðİŰư °ðİŰư +Ȱɰʰ˰̰ͰΰϰаѰҰӰ԰հְװذٰڰ Ȱɰʰ˰̰ͰΰϰаѰҰӰ԰հְװذٰڰ +ܰݰް߰ ܰݰް߰ + +ϡϢϣϤϥϦϧϨϩϪϫϬϭϮϯϰϱϲϳ ϡϢϣϤϥϦϧϨϩϪϫϬϭϮϯϰϱϲϳ +ϴϵ϶ϷϸϹϺϻϼϽϾϿ ϴϵ϶ϷϸϹϺϻϼϽϾϿ +ӡ ӡ + + +СТУФХЦЧШЩЪЫЬЭЮЯабвг СТУФХЦЧШЩЪЫЬЭЮЯабвг +дежзийклмноп дежзийклмноп + + + + + + + + + + + + + +SELECT `ã`, CONVERT(`ã` using utf8) FROM `ԣ`; +ã CONVERT(`ã` using utf8) + +Ïġ ~Ïġ + +돢쏢폢 돢쏢폢 +񡦡 񡦡 + + + +Ꮶ⏦㏦䏦塦硦鏦ꡦ졦 Ꮶ⏦㏦䏦塦硦鏦ꡦ졦 + + +ÏďŏƏ ÏďŏƏ +ȏɏʏˏ̏͏Ρ ȏɏʏˏ̏͏Ρ + + + +ÏďŏƏ ÏďŏƏ +ȏɏʏˏ̏͏ΏϏС ȏɏʏˏ̏͏ΏϏС + + + +ÏďŏƏ ÏďŏƏ +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ +܏ݏޏߏᏪ⏪㏪䏪只揪珪菪鏪ꏪ돪쏪폪 ܏ݏޏߏᏪ⏪㏪䏪只揪珪菪鏪ꏪ돪쏪폪 + + +áŏƏ áŏƏ +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ +܏ݏޏߏᏫ⏫㏫䏫叫揫珫菫鏫ꏫ돫쏫폫 ܏ݏޏߏᏫ⏫㏫䏫叫揫珫菫鏫ꏫ돫쏫폫 + + +ÏďŏƏ ÏďŏƏ +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ +܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰 ܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰 + + +ÏďŏƏ ÏďŏƏ +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ +܏ݏޏߏ㡦 ܏ݏޏߏ㡦 + +SELECT `ã`, CONVERT(`ã` using ucs2) FROM `ԣ`; +ã CONVERT(`ã` using ucs2) + +Ïġ ~Ïġ + +돢쏢폢 돢쏢폢 +񡦡 񡦡 + + + +Ꮶ⏦㏦䏦塦硦鏦ꡦ졦 Ꮶ⏦㏦䏦塦硦鏦ꡦ졦 + + +ÏďŏƏ ÏďŏƏ +ȏɏʏˏ̏͏Ρ ȏɏʏˏ̏͏Ρ + + + +ÏďŏƏ ÏďŏƏ +ȏɏʏˏ̏͏ΏϏС ȏɏʏˏ̏͏ΏϏС + + + +ÏďŏƏ ÏďŏƏ +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ +܏ݏޏߏᏪ⏪㏪䏪只揪珪菪鏪ꏪ돪쏪폪 ܏ݏޏߏᏪ⏪㏪䏪只揪珪菪鏪ꏪ돪쏪폪 + + +áŏƏ áŏƏ +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ +܏ݏޏߏᏫ⏫㏫䏫叫揫珫菫鏫ꏫ돫쏫폫 ܏ݏޏߏᏫ⏫㏫䏫叫揫珫菫鏫ꏫ돫쏫폫 + + +ÏďŏƏ ÏďŏƏ +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ +܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰 ܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰 + + +ÏďŏƏ ÏďŏƏ +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ +܏ݏޏߏ㡦 ܏ݏޏߏ㡦 + +SELECT `ã`, CONVERT(`ã` using sjis) FROM `ԣ`; +ã CONVERT(`ã` using sjis) + ????? +Ïġ ??~????? + +돢쏢폢 ????? +񡦡 ?? + + + +Ꮶ⏦㏦䏦塦硦鏦ꡦ졦 ????????? + ???????????? + +ÏďŏƏ ?????? +ȏɏʏˏ̏͏Ρ ??????? + + ????????????? + ??????????? +ÏďŏƏ ??????? +ȏɏʏˏ̏͏ΏϏС ????????? + + + ??????????????????? +ÏďŏƏ ??????????????????? +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ ???????????????????? +܏ݏޏߏᏪ⏪㏪䏪只揪珪菪鏪ꏪ돪쏪폪 ???????????????????? + ???????? + ??????????????????? +áŏƏ ?????????????????? +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ ???????????????????? +܏ݏޏߏᏫ⏫㏫䏫叫揫珫菫鏫ꏫ돫쏫폫 ???????????????????? + ???????? + ??????????????????? +ÏďŏƏ ???????????????????? +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ ???????????????????? +܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰 ???????????????????? + ??????????????? + ??????????????????? +ÏďŏƏ ???????????????????? +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ ???????????????????? +܏ݏޏߏ㡦 ???????? + +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; diff --git a/mysql-test/suite/jp/r/jp_convert_utf8.result b/mysql-test/suite/jp/r/jp_convert_utf8.result new file mode 100755 index 00000000000..505d6c1cebf --- /dev/null +++ b/mysql-test/suite/jp/r/jp_convert_utf8.result @@ -0,0 +1,1514 @@ +drop table if exists `T1`; +drop table if exists `T2`; +drop table if exists `T3`; +drop table if exists `T4`; +drop table if exists `T5`; +drop table if exists `T6`; +drop table if exists `T7`; +drop table if exists `T8`; +drop table if exists `T9`; +drop table if exists `T10`; +drop table if exists `T11`; +drop table if exists `T12`; +SET NAMES utf8; +SET character_set_database = utf8; +CREATE TABLE `T1` (`C1` char(20), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T2` (`C1` char(20), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T3` (`C1` char(20), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T4` (`C1` char(20), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T5` (`C1` char(20), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T6` (`C1` char(20), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T7` (`C1` char(20), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T8` (`C1` char(20), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T9` (`C1` char(20), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T10` (`C1` char(20), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +CREATE TABLE `T11` (`C1` char(20), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +CREATE TABLE `T12` (`C1` char(20), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_utf8.dat' INTO TABLE `T1`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_utf8.dat' INTO TABLE `T2`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0212_utf8.dat' INTO TABLE `T3`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_utf8.dat' INTO TABLE `T4`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_utf8.dat' INTO TABLE `T5`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0212_utf8.dat' INTO TABLE `T6`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_utf8.dat' INTO TABLE `T7`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_utf8.dat' INTO TABLE `T8`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0212_utf8.dat' INTO TABLE `T9`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_utf8.dat' INTO TABLE `T10`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_utf8.dat' INTO TABLE `T11`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0212_utf8.dat' INTO TABLE `T12`; +SELECT `C1`, CONVERT(`C1` using ujis) FROM `T1`; +C1 CONVERT(`C1` using ujis) + !"#$%&'()*+,-./ !"#$%&'()*+,-./ + 。「」、・ヲァィゥェォャュョッ 。「」、・ヲァィゥェォャュョッ +0123456789:;<=>? 0123456789:;<=>? +@ABCDEFGHIJKLMNO @ABCDEFGHIJKLMNO +abcdefghijklmno abcdefghijklmno +PQRSTUVWXYZ[\]^_ PQRSTUVWXYZ[\]^_ +pqrstuvwxyz{|}~ pqrstuvwxyz{|}~ +ーアイウエオカキクケコサシスセソ ーアイウエオカキクケコサシスセソ +タチツテトナニヌネノハヒフヘホマ タチツテトナニヌネノハヒフヘホマ +ミムメモヤユヨラリルレロワン゙゚ ミムメモヤユヨラリルレロワン゙゚ +SELECT `C1`, CONVERT(`C1` using ucs2) FROM `T1`; +C1 CONVERT(`C1` using ucs2) + !"#$%&'()*+,-./ !"#$%&'()*+,-./ + 。「」、・ヲァィゥェォャュョッ 。「」、・ヲァィゥェォャュョッ +0123456789:;<=>? 0123456789:;<=>? +@ABCDEFGHIJKLMNO @ABCDEFGHIJKLMNO +abcdefghijklmno abcdefghijklmno +PQRSTUVWXYZ[\]^_ PQRSTUVWXYZ[\]^_ +pqrstuvwxyz{|}~ pqrstuvwxyz{|}~ +ーアイウエオカキクケコサシスセソ ーアイウエオカキクケコサシスセソ +タチツテトナニヌネノハヒフヘホマ タチツテトナニヌネノハヒフヘホマ +ミムメモヤユヨラリルレロワン゙゚ ミムメモヤユヨラリルレロワン゙゚ +SELECT `C1`, CONVERT(`C1` using sjis) FROM `T1`; +C1 CONVERT(`C1` using sjis) + !"#$%&'()*+,-./ !"#$%&'()*+,-./ + 。「」、・ヲァィゥェォャュョッ 。「」、・ヲァィゥェォャュョッ +0123456789:;<=>? 0123456789:;<=>? +@ABCDEFGHIJKLMNO @ABCDEFGHIJKLMNO +abcdefghijklmno abcdefghijklmno +PQRSTUVWXYZ[\]^_ PQRSTUVWXYZ[\]^_ +pqrstuvwxyz{|}~ pqrstuvwxyz{|}~ +ーアイウエオカキクケコサシスセソ ーアイウエオカキクケコサシスセソ +タチツテトナニヌネノハヒフヘホマ タチツテトナニヌネノハヒフヘホマ +ミムメモヤユヨラリルレロワン゙゚ ミムメモヤユヨラリルレロワン゙゚ +SELECT `C1`, CONVERT(`C1` using ujis) FROM `T2`; +C1 CONVERT(`C1` using ujis) +θικλμνξοπρστυφχψω・・・ θικλμνξοπρστυφχψω・・・ +ΥΦΧΨΩ・・・・・・・・αβγδεζη ΥΦΧΨΩ・・・・・・・・αβγδεζη +клмнопрстуфхцчшщъыьэ клмнопрстуфхцчшщъыьэ +ТУФХЦЧШЩЪЫЬЭЮЯ・・・・・・ ТУФХЦЧШЩЪЫЬЭЮЯ・・・・・・ +юя・・・・・・・・・・・・・・・・・・ юя・・・・・・・・・・・・・・・・・・ +“”()〔〕[]{}〈〉《》「」『』【】 “”()〔〕[]{}〈〉《》「」『』【】 +∠⊥⌒∂∇≡≒≪≫√∽∝∵∫∬・・・・・ ∠⊥⌒∂∇≡≒≪≫√∽∝∵∫∬・・・・・ +┫┻╋┠┯┨┷┿┝┰┥┸╂・・・・・・・ ┫┻╋┠┯┨┷┿┝┰┥┸╂・・・・・・・ +  、。,.・:;?!゛゜´`¨^ ̄_ヽ   、。,.・:;?!゛゜´`¨^ ̄_ヽ +ごさざしじすずせぜそぞただちぢっつづてで ごさざしじすずせぜそぞただちぢっつづてで +とどなにぬねのはばぱひびぴふぶぷへべぺほ とどなにぬねのはばぱひびぴふぶぷへべぺほ +ぼぽまみむめもゃやゅゆょよらりるれろゎわ ぼぽまみむめもゃやゅゆょよらりるれろゎわ +ゐゑをん・・・・・・・・・・・・・・・・ ゐゑをん・・・・・・・・・・・・・・・・ +ゴサザシジスズセゼソゾタダチヂッツヅテデ ゴサザシジスズセゼソゾタダチヂッツヅテデ +トドナニヌネノハバパヒビピフブプヘベペホ トドナニヌネノハバパヒビピフブプヘベペホ +ボポマミムメモャヤュユョヨラリルレロヮワ ボポマミムメモャヤュユョヨラリルレロヮワ +ヰヱヲンヴヵヶ・・・・・・・・・・・・・ ヰヱヲンヴヵヶ・・・・・・・・・・・・・ +・ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤ ・ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤ +・АБВГДЕЁЖЗИЙКЛМНОПРС ・АБВГДЕЁЖЗИЙКЛМНОПРС +・─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳ ・─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳ +・◆□■△▲▽▼※〒→←↑↓〓・・・・・ ・◆□■△▲▽▼※〒→←↑↓〓・・・・・ +・ぁあぃいぅうぇえぉおかがきぎくぐけげこ ・ぁあぃいぅうぇえぉおかがきぎくぐけげこ +・ァアィイゥウェエォオカガキギクグケゲコ ・ァアィイゥウェエォオカガキギクグケゲコ +・・ʼn♯♭♪†‡¶・・・・◯・・・・  ・・ʼn♯♭♪†‡¶・・・・◯・・・・  +・・∧∨¬⇒⇔∀∃・・・・・・・・・・・ ・・∧∨¬⇒⇔∀∃・・・・・・・・・・・ +・・・・・・∈∋⊆⊇⊂⊃∪∩・・・・・・ ・・・・・・∈∋⊆⊇⊂⊃∪∩・・・・・・ +・・・・・・・・・абвгдеёжзий ・・・・・・・・・абвгдеёжзий +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・0123 ・・・・・・・・・・・・・・・・0123 +・・・・・abcdefghijklmno ・・・・・abcdefghijklmno +・亜唖娃阿哀愛挨姶逢葵茜穐悪握渥旭葦芦鯵 ・亜唖娃阿哀愛挨姶逢葵茜穐悪握渥旭葦芦鯵 +・堯槇遙瑤凜熙・・・・・・・・・・・・・ ・堯槇遙瑤凜熙・・・・・・・・・・・・・ +・弌丐丕个丱丶丼丿乂乖乘亂亅豫亊舒弍于亞 ・弌丐丕个丱丶丼丿乂乖乘亂亅豫亊舒弍于亞 +・蓮連錬呂魯櫓炉賂路露労婁廊弄朗楼榔浪漏 ・蓮連錬呂魯櫓炉賂路露労婁廊弄朗楼榔浪漏 +・鵝鵞鵤鵑鵐鵙鵲鶉鶇鶫鵯鵺鶚鶤鶩鶲鷄鷁鶻 ・鵝鵞鵤鵑鵐鵙鵲鶉鶇鶫鵯鵺鶚鶤鶩鶲鷄鷁鶻 +ヾゝゞ〃仝々〆〇ー―‐/\〜‖|…‥‘’ ヾゝゞ〃仝々〆〇ー―‐/?〜‖|…‥‘’ +亟亠亢亰亳亶从仍仄仆仂仗仞仭仟价伉佚估佛 亟亠亢亰亳亶从仍仄仆仂仗仞仭仟价伉佚估佛 +佝佗佇佶侈侏侘佻佩佰侑佯來侖儘俔俟俎俘俛 佝佗佇佶侈侏侘佻佩佰侑佯來侖儘俔俟俎俘俛 +俑俚俐俤俥倚倨倔倪倥倅伜俶倡倩倬俾俯們倆 俑俚俐俤俥倚倨倔倪倥倅伜俶倡倩倬俾俯們倆 +偃假會偕偐偈做偖偬偸傀傚傅傴傲・・・・・ 偃假會偕偐偈做偖偬偸傀傚傅傴傲・・・・・ +枠鷲亙亘鰐詫藁蕨椀湾碗腕・・・・・・・・ 枠鷲亙亘鰐詫藁蕨椀湾碗腕・・・・・・・・ +梓圧斡扱宛姐虻飴絢綾鮎或粟袷安庵按暗案闇 梓圧斡扱宛姐虻飴絢綾鮎或粟袷安庵按暗案闇 +牢狼篭老聾蝋郎六麓禄肋録論倭和話歪賄脇惑 牢狼篭老聾蝋郎六麓禄肋録論倭和話歪賄脇惑 +移維緯胃萎衣謂違遺医井亥域育郁磯一壱溢逸 移維緯胃萎衣謂違遺医井亥域育郁磯一壱溢逸 +稲茨芋鰯允印咽員因姻引飲淫胤蔭・・・・・ 稲茨芋鰯允印咽員因姻引飲淫胤蔭・・・・・ +鞍杏以伊位依偉囲夷委威尉惟意慰易椅為畏異 鞍杏以伊位依偉囲夷委威尉惟意慰易椅為畏異 +鶸鶺鷆鷏鷂鷙鷓鷸鷦鷭鷯鷽鸚鸛鸞鹵鹹鹽麁麈 鶸鶺鷆鷏鷂鷙鷓鷸鷦鷭鷯鷽鸚鸛鸞鹵鹹鹽麁麈 +麋麌麒麕麑麝麥麩麸麪麭靡黌黎黏黐黔黜點黝 麋麌麒麕麑麝麥麩麸麪麭靡黌黎黏黐黔黜點黝 +黠黥黨黯黴黶黷黹黻黼黽鼇鼈皷鼕鼡鼬鼾齊齒 黠黥黨黯黴黶黷黹黻黼黽鼇鼈皷鼕鼡鼬鼾齊齒 +齔齣齟齠齡齦齧齬齪齷齲齶龕龜龠・・・・・ 齔齣齟齠齡齦齧齬齪齷齲齶龕龜龠・・・・・ +$¢£%#&*@§☆★○●◎◇・・・・・ $¢£%#&*@§☆★○●◎◇・・・・・ ++‐±×÷=≠<>≦≧∞∴♂♀°′″℃¥ +‐±×÷=≠<>≦≧∞∴♂♀°′″℃¥ +456789・・・・・・・ABCDEFG 456789・・・・・・・ABCDEFG +HIJKLMNOPQRSTUVWXYZ・ HIJKLMNOPQRSTUVWXYZ・ +pqrstuvwxyz・・・・・・・・・ pqrstuvwxyz・・・・・・・・・ +SELECT `C1`, CONVERT(`C1` using ucs2) FROM `T2`; +C1 CONVERT(`C1` using ucs2) +θικλμνξοπρστυφχψω・・・ θικλμνξοπρστυφχψω・・・ +ΥΦΧΨΩ・・・・・・・・αβγδεζη ΥΦΧΨΩ・・・・・・・・αβγδεζη +клмнопрстуфхцчшщъыьэ клмнопрстуфхцчшщъыьэ +ТУФХЦЧШЩЪЫЬЭЮЯ・・・・・・ ТУФХЦЧШЩЪЫЬЭЮЯ・・・・・・ +юя・・・・・・・・・・・・・・・・・・ юя・・・・・・・・・・・・・・・・・・ +“”()〔〕[]{}〈〉《》「」『』【】 “”()〔〕[]{}〈〉《》「」『』【】 +∠⊥⌒∂∇≡≒≪≫√∽∝∵∫∬・・・・・ ∠⊥⌒∂∇≡≒≪≫√∽∝∵∫∬・・・・・ +┫┻╋┠┯┨┷┿┝┰┥┸╂・・・・・・・ ┫┻╋┠┯┨┷┿┝┰┥┸╂・・・・・・・ +  、。,.・:;?!゛゜´`¨^ ̄_ヽ   、。,.・:;?!゛゜´`¨^ ̄_ヽ +ごさざしじすずせぜそぞただちぢっつづてで ごさざしじすずせぜそぞただちぢっつづてで +とどなにぬねのはばぱひびぴふぶぷへべぺほ とどなにぬねのはばぱひびぴふぶぷへべぺほ +ぼぽまみむめもゃやゅゆょよらりるれろゎわ ぼぽまみむめもゃやゅゆょよらりるれろゎわ +ゐゑをん・・・・・・・・・・・・・・・・ ゐゑをん・・・・・・・・・・・・・・・・ +ゴサザシジスズセゼソゾタダチヂッツヅテデ ゴサザシジスズセゼソゾタダチヂッツヅテデ +トドナニヌネノハバパヒビピフブプヘベペホ トドナニヌネノハバパヒビピフブプヘベペホ +ボポマミムメモャヤュユョヨラリルレロヮワ ボポマミムメモャヤュユョヨラリルレロヮワ +ヰヱヲンヴヵヶ・・・・・・・・・・・・・ ヰヱヲンヴヵヶ・・・・・・・・・・・・・ +・ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤ ・ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤ +・АБВГДЕЁЖЗИЙКЛМНОПРС ・АБВГДЕЁЖЗИЙКЛМНОПРС +・─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳ ・─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳ +・◆□■△▲▽▼※〒→←↑↓〓・・・・・ ・◆□■△▲▽▼※〒→←↑↓〓・・・・・ +・ぁあぃいぅうぇえぉおかがきぎくぐけげこ ・ぁあぃいぅうぇえぉおかがきぎくぐけげこ +・ァアィイゥウェエォオカガキギクグケゲコ ・ァアィイゥウェエォオカガキギクグケゲコ +・・ʼn♯♭♪†‡¶・・・・◯・・・・  ・・ʼn♯♭♪†‡¶・・・・◯・・・・  +・・∧∨¬⇒⇔∀∃・・・・・・・・・・・ ・・∧∨¬⇒⇔∀∃・・・・・・・・・・・ +・・・・・・∈∋⊆⊇⊂⊃∪∩・・・・・・ ・・・・・・∈∋⊆⊇⊂⊃∪∩・・・・・・ +・・・・・・・・・абвгдеёжзий ・・・・・・・・・абвгдеёжзий +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・0123 ・・・・・・・・・・・・・・・・0123 +・・・・・abcdefghijklmno ・・・・・abcdefghijklmno +・亜唖娃阿哀愛挨姶逢葵茜穐悪握渥旭葦芦鯵 ・亜唖娃阿哀愛挨姶逢葵茜穐悪握渥旭葦芦鯵 +・堯槇遙瑤凜熙・・・・・・・・・・・・・ ・堯槇遙瑤凜熙・・・・・・・・・・・・・ +・弌丐丕个丱丶丼丿乂乖乘亂亅豫亊舒弍于亞 ・弌丐丕个丱丶丼丿乂乖乘亂亅豫亊舒弍于亞 +・蓮連錬呂魯櫓炉賂路露労婁廊弄朗楼榔浪漏 ・蓮連錬呂魯櫓炉賂路露労婁廊弄朗楼榔浪漏 +・鵝鵞鵤鵑鵐鵙鵲鶉鶇鶫鵯鵺鶚鶤鶩鶲鷄鷁鶻 ・鵝鵞鵤鵑鵐鵙鵲鶉鶇鶫鵯鵺鶚鶤鶩鶲鷄鷁鶻 +ヾゝゞ〃仝々〆〇ー―‐/\〜‖|…‥‘’ ヾゝゞ〃仝々〆〇ー―‐/\〜‖|…‥‘’ +亟亠亢亰亳亶从仍仄仆仂仗仞仭仟价伉佚估佛 亟亠亢亰亳亶从仍仄仆仂仗仞仭仟价伉佚估佛 +佝佗佇佶侈侏侘佻佩佰侑佯來侖儘俔俟俎俘俛 佝佗佇佶侈侏侘佻佩佰侑佯來侖儘俔俟俎俘俛 +俑俚俐俤俥倚倨倔倪倥倅伜俶倡倩倬俾俯們倆 俑俚俐俤俥倚倨倔倪倥倅伜俶倡倩倬俾俯們倆 +偃假會偕偐偈做偖偬偸傀傚傅傴傲・・・・・ 偃假會偕偐偈做偖偬偸傀傚傅傴傲・・・・・ +枠鷲亙亘鰐詫藁蕨椀湾碗腕・・・・・・・・ 枠鷲亙亘鰐詫藁蕨椀湾碗腕・・・・・・・・ +梓圧斡扱宛姐虻飴絢綾鮎或粟袷安庵按暗案闇 梓圧斡扱宛姐虻飴絢綾鮎或粟袷安庵按暗案闇 +牢狼篭老聾蝋郎六麓禄肋録論倭和話歪賄脇惑 牢狼篭老聾蝋郎六麓禄肋録論倭和話歪賄脇惑 +移維緯胃萎衣謂違遺医井亥域育郁磯一壱溢逸 移維緯胃萎衣謂違遺医井亥域育郁磯一壱溢逸 +稲茨芋鰯允印咽員因姻引飲淫胤蔭・・・・・ 稲茨芋鰯允印咽員因姻引飲淫胤蔭・・・・・ +鞍杏以伊位依偉囲夷委威尉惟意慰易椅為畏異 鞍杏以伊位依偉囲夷委威尉惟意慰易椅為畏異 +鶸鶺鷆鷏鷂鷙鷓鷸鷦鷭鷯鷽鸚鸛鸞鹵鹹鹽麁麈 鶸鶺鷆鷏鷂鷙鷓鷸鷦鷭鷯鷽鸚鸛鸞鹵鹹鹽麁麈 +麋麌麒麕麑麝麥麩麸麪麭靡黌黎黏黐黔黜點黝 麋麌麒麕麑麝麥麩麸麪麭靡黌黎黏黐黔黜點黝 +黠黥黨黯黴黶黷黹黻黼黽鼇鼈皷鼕鼡鼬鼾齊齒 黠黥黨黯黴黶黷黹黻黼黽鼇鼈皷鼕鼡鼬鼾齊齒 +齔齣齟齠齡齦齧齬齪齷齲齶龕龜龠・・・・・ 齔齣齟齠齡齦齧齬齪齷齲齶龕龜龠・・・・・ +$¢£%#&*@§☆★○●◎◇・・・・・ $¢£%#&*@§☆★○●◎◇・・・・・ ++‐±×÷=≠<>≦≧∞∴♂♀°′″℃¥ +‐±×÷=≠<>≦≧∞∴♂♀°′″℃¥ +456789・・・・・・・ABCDEFG 456789・・・・・・・ABCDEFG +HIJKLMNOPQRSTUVWXYZ・ HIJKLMNOPQRSTUVWXYZ・ +pqrstuvwxyz・・・・・・・・・ pqrstuvwxyz・・・・・・・・・ +SELECT `C1`, CONVERT(`C1` using sjis) FROM `T2`; +C1 CONVERT(`C1` using sjis) +θικλμνξοπρστυφχψω・・・ θικλμνξοπρστυφχψω・・・ +ΥΦΧΨΩ・・・・・・・・αβγδεζη ΥΦΧΨΩ・・・・・・・・αβγδεζη +клмнопрстуфхцчшщъыьэ клмнопрстуфхцчшщъыьэ +ТУФХЦЧШЩЪЫЬЭЮЯ・・・・・・ ТУФХЦЧШЩЪЫЬЭЮЯ・・・・・・ +юя・・・・・・・・・・・・・・・・・・ юя・・・・・・・・・・・・・・・・・・ +“”()〔〕[]{}〈〉《》「」『』【】 “”()〔〕[]{}〈〉《》「」『』【】 +∠⊥⌒∂∇≡≒≪≫√∽∝∵∫∬・・・・・ ∠⊥⌒∂∇≡≒≪≫√∽∝∵∫∬・・・・・ +┫┻╋┠┯┨┷┿┝┰┥┸╂・・・・・・・ ┫┻╋┠┯┨┷┿┝┰┥┸╂・・・・・・・ +  、。,.・:;?!゛゜´`¨^ ̄_ヽ   、。,.・:;?!゛゜´`¨^ ̄_ヽ +ごさざしじすずせぜそぞただちぢっつづてで ごさざしじすずせぜそぞただちぢっつづてで +とどなにぬねのはばぱひびぴふぶぷへべぺほ とどなにぬねのはばぱひびぴふぶぷへべぺほ +ぼぽまみむめもゃやゅゆょよらりるれろゎわ ぼぽまみむめもゃやゅゆょよらりるれろゎわ +ゐゑをん・・・・・・・・・・・・・・・・ ゐゑをん・・・・・・・・・・・・・・・・ +ゴサザシジスズセゼソゾタダチヂッツヅテデ ゴサザシジスズセゼソゾタダチヂッツヅテデ +トドナニヌネノハバパヒビピフブプヘベペホ トドナニヌネノハバパヒビピフブプヘベペホ +ボポマミムメモャヤュユョヨラリルレロヮワ ボポマミムメモャヤュユョヨラリルレロヮワ +ヰヱヲンヴヵヶ・・・・・・・・・・・・・ ヰヱヲンヴヵヶ・・・・・・・・・・・・・ +・ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤ ・ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤ +・АБВГДЕЁЖЗИЙКЛМНОПРС ・АБВГДЕЁЖЗИЙКЛМНОПРС +・─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳ ・─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳ +・◆□■△▲▽▼※〒→←↑↓〓・・・・・ ・◆□■△▲▽▼※〒→←↑↓〓・・・・・ +・ぁあぃいぅうぇえぉおかがきぎくぐけげこ ・ぁあぃいぅうぇえぉおかがきぎくぐけげこ +・ァアィイゥウェエォオカガキギクグケゲコ ・ァアィイゥウェエォオカガキギクグケゲコ +・・ʼn♯♭♪†‡¶・・・・◯・・・・  ・・ʼn♯♭♪†‡¶・・・・◯・・・・  +・・∧∨¬⇒⇔∀∃・・・・・・・・・・・ ・・∧∨¬⇒⇔∀∃・・・・・・・・・・・ +・・・・・・∈∋⊆⊇⊂⊃∪∩・・・・・・ ・・・・・・∈∋⊆⊇⊂⊃∪∩・・・・・・ +・・・・・・・・・абвгдеёжзий ・・・・・・・・・абвгдеёжзий +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・0123 ・・・・・・・・・・・・・・・・0123 +・・・・・abcdefghijklmno ・・・・・abcdefghijklmno +・亜唖娃阿哀愛挨姶逢葵茜穐悪握渥旭葦芦鯵 ・亜唖娃阿哀愛挨姶逢葵茜穐悪握渥旭葦芦鯵 +・堯槇遙瑤凜熙・・・・・・・・・・・・・ ・堯槇遙瑤凜熙・・・・・・・・・・・・・ +・弌丐丕个丱丶丼丿乂乖乘亂亅豫亊舒弍于亞 ・弌丐丕个丱丶丼丿乂乖乘亂亅豫亊舒弍于亞 +・蓮連錬呂魯櫓炉賂路露労婁廊弄朗楼榔浪漏 ・蓮連錬呂魯櫓炉賂路露労婁廊弄朗楼榔浪漏 +・鵝鵞鵤鵑鵐鵙鵲鶉鶇鶫鵯鵺鶚鶤鶩鶲鷄鷁鶻 ・鵝鵞鵤鵑鵐鵙鵲鶉鶇鶫鵯鵺鶚鶤鶩鶲鷄鷁鶻 +ヾゝゞ〃仝々〆〇ー―‐/\〜‖|…‥‘’ ヾゝゞ〃仝々〆〇ー―‐/?〜‖|…‥‘’ +亟亠亢亰亳亶从仍仄仆仂仗仞仭仟价伉佚估佛 亟亠亢亰亳亶从仍仄仆仂仗仞仭仟价伉佚估佛 +佝佗佇佶侈侏侘佻佩佰侑佯來侖儘俔俟俎俘俛 佝佗佇佶侈侏侘佻佩佰侑佯來侖儘俔俟俎俘俛 +俑俚俐俤俥倚倨倔倪倥倅伜俶倡倩倬俾俯們倆 俑俚俐俤俥倚倨倔倪倥倅伜俶倡倩倬俾俯們倆 +偃假會偕偐偈做偖偬偸傀傚傅傴傲・・・・・ 偃假會偕偐偈做偖偬偸傀傚傅傴傲・・・・・ +枠鷲亙亘鰐詫藁蕨椀湾碗腕・・・・・・・・ 枠鷲亙亘鰐詫藁蕨椀湾碗腕・・・・・・・・ +梓圧斡扱宛姐虻飴絢綾鮎或粟袷安庵按暗案闇 梓圧斡扱宛姐虻飴絢綾鮎或粟袷安庵按暗案闇 +牢狼篭老聾蝋郎六麓禄肋録論倭和話歪賄脇惑 牢狼篭老聾蝋郎六麓禄肋録論倭和話歪賄脇惑 +移維緯胃萎衣謂違遺医井亥域育郁磯一壱溢逸 移維緯胃萎衣謂違遺医井亥域育郁磯一壱溢逸 +稲茨芋鰯允印咽員因姻引飲淫胤蔭・・・・・ 稲茨芋鰯允印咽員因姻引飲淫胤蔭・・・・・ +鞍杏以伊位依偉囲夷委威尉惟意慰易椅為畏異 鞍杏以伊位依偉囲夷委威尉惟意慰易椅為畏異 +鶸鶺鷆鷏鷂鷙鷓鷸鷦鷭鷯鷽鸚鸛鸞鹵鹹鹽麁麈 鶸鶺鷆鷏鷂鷙鷓鷸鷦鷭鷯鷽鸚鸛鸞鹵鹹鹽麁麈 +麋麌麒麕麑麝麥麩麸麪麭靡黌黎黏黐黔黜點黝 麋麌麒麕麑麝麥麩麸麪麭靡黌黎黏黐黔黜點黝 +黠黥黨黯黴黶黷黹黻黼黽鼇鼈皷鼕鼡鼬鼾齊齒 黠黥黨黯黴黶黷黹黻黼黽鼇鼈皷鼕鼡鼬鼾齊齒 +齔齣齟齠齡齦齧齬齪齷齲齶龕龜龠・・・・・ 齔齣齟齠齡齦齧齬齪齷齲齶龕龜龠・・・・・ +$¢£%#&*@§☆★○●◎◇・・・・・ $¢£%#&*@§☆★○●◎◇・・・・・ ++‐±×÷=≠<>≦≧∞∴♂♀°′″℃¥ +‐±×÷=≠<>≦≧∞∴♂♀°′″℃¥ +456789・・・・・・・ABCDEFG 456789・・・・・・・ABCDEFG +HIJKLMNOPQRSTUVWXYZ・ HIJKLMNOPQRSTUVWXYZ・ +pqrstuvwxyz・・・・・・・・・ pqrstuvwxyz・・・・・・・・・ +SELECT `C1`, CONVERT(`C1` using ujis) FROM `T3`; +C1 CONVERT(`C1` using ujis) +êěėēęǵĝğ・ġĥíìïîǐ・īįĩ êěėēęǵĝğ・ġĥíìïîǐ・īįĩ +ÊĚĖĒĘ・ĜĞĢĠĤÍÌÏÎǏİĪĮĨ ÊĚĖĒĘ・ĜĞĢĠĤÍÌÏÎǏİĪĮĨ +ĴĶĹĽĻŃŇŅÑÓÒÖÔǑŐŌÕŔŘŖ ĴĶĹĽĻŃŇŅÑÓÒÖÔǑŐŌÕŔŘŖ +ĵķĺľļńňņñóòöôǒőōõŕřŗ ĵķĺľļńňņñóòöôǒőōõŕřŗ +ŚŜŠŞŤŢÚÙÜÛŬǓŰŪŲŮŨǗǛǙ ŚŜŠŞŤŢÚÙÜÛŬǓŰŪŲŮŨǗǛǙ +śŝšşťţúùüûŭǔűūųůũǘǜǚ śŝšşťţúùüûŭǔűūųůũǘǜǚ +ǕŴÝŸŶŹŽŻ・・・・・・・・・・・・ ǕŴÝŸŶŹŽŻ・・・・・・・・・・・・ +ǖŵýÿŷźžż・・・・・・・・・・・・ ǖŵýÿŷźžż・・・・・・・・・・・・ +¤№・・・・・・・・・・・・・・・・・・ ¤№・・・・・・・・・・・・・・・・・・ +łŀʼnŋøœßŧþ・・・・・・・・・・・ łŀʼnŋøœßŧþ・・・・・・・・・・・ +ЈЉЊЋЌЎЏ・・・・・・・・・・・・・ ЈЉЊЋЌЎЏ・・・・・・・・・・・・・ +・ÁÀÄÂĂǍĀĄÅÃĆĈČÇĊĎÉÈË ・ÁÀÄÂĂǍĀĄÅÃĆĈČÇĊĎÉÈË +・áàäâăǎāąåãćĉčçċďéèë ・áàäâăǎāąåãćĉčçċďéèë +・ÆĐ・Ħ・IJ・ŁĿ・ŊØŒ・ŦÞ・・・ ・ÆĐ・Ħ・IJ・ŁĿ・ŊØŒ・ŦÞ・・・ +・˛˚~΄΅・・・・・・・・¡¦¿・・・ ・˛˚?΄΅・・・・・・・・¡¦¿・・・ +・άέήίϊΐόςύϋΰώ・・・・・・・ ・άέήίϊΐόςύϋΰώ・・・・・・・ +・・ђѓєѕіїјљњћќўџ・・・・・ ・・ђѓєѕіїјљњћќўџ・・・・・ +・・・・・ΆΈΉΊΪ・Ό・ΎΫ・Ώ・・・ ・・・・・ΆΈΉΊΪ・Ό・ΎΫ・Ώ・・・ +・・・・・・・・・・・・・æđðħıijĸ ・・・・・・・・・・・・・æđðħıijĸ +・・・・・・・・・・・・・・ЂЃЄЅІЇ ・・・・・・・・・・・・・・ЂЃЄЅІЇ +・・・・・・・・・・・・・・・ºª©®™ ・・・・・・・・・・・・・・・ºª©®™ +・・・・・・・・・・・・・・・˘ˇ¸˙˝ ・・・・・・・・・・・・・・・˘ˇ¸˙˝ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・丂丄丅丌丒丟丣两丨丫丮丯丰丵乀乁乄乇乑 ・丂丄丅丌丒丟丣两丨丫丮丯丰丵乀乁乄乇乑 +・黸黿鼂鼃鼉鼏鼐鼑鼒鼔鼖鼗鼙鼚鼛鼟鼢鼦鼪 ・黸黿鼂鼃鼉鼏鼐鼑鼒鼔鼖鼗鼙鼚鼛鼟鼢鼦鼪 +乚乜乣乨乩乴乵乹乿亍亖亗亝亯亹仃仐仚仛仠 乚乜乣乨乩乴乵乹乿亍亖亗亝亯亹仃仐仚仛仠 +仡仢仨仯仱仳仵份仾仿伀伂伃伈伋伌伒伕伖众 仡仢仨仯仱仳仵份仾仿伀伂伃伈伋伌伒伕伖众 +伙伮伱你伳伵伷伹伻伾佀佂佈佉佋佌佒佔佖佘 伙伮伱你伳伵伷伹伻伾佀佂佈佉佋佌佒佔佖佘 +佟佣佪佬佮佱佷佸佹佺佽佾侁侂侄・・・・・ 佟佣佪佬佮佱佷佸佹佺佽佾侁侂侄・・・・・ +鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃齄齅齆齇齓齕齖 鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃齄齅齆齇齓齕齖 +齗齘齚齝齞齨齩齭齮齯齰齱齳齵齺齽龏龐龑龒 齗齘齚齝齞齨齩齭齮齯齰齱齳齵齺齽龏龐龑龒 +龔龖龗龞龡龢龣龥・・・・・・・・・・・・ 龔龖龗龞龡龢龣龥・・・・・・・・・・・・ +SELECT `C1`, CONVERT(`C1` using ucs2) FROM `T3`; +C1 CONVERT(`C1` using ucs2) +êěėēęǵĝğ・ġĥíìïîǐ・īįĩ êěėēęǵĝğ・ġĥíìïîǐ・īįĩ +ÊĚĖĒĘ・ĜĞĢĠĤÍÌÏÎǏİĪĮĨ ÊĚĖĒĘ・ĜĞĢĠĤÍÌÏÎǏİĪĮĨ +ĴĶĹĽĻŃŇŅÑÓÒÖÔǑŐŌÕŔŘŖ ĴĶĹĽĻŃŇŅÑÓÒÖÔǑŐŌÕŔŘŖ +ĵķĺľļńňņñóòöôǒőōõŕřŗ ĵķĺľļńňņñóòöôǒőōõŕřŗ +ŚŜŠŞŤŢÚÙÜÛŬǓŰŪŲŮŨǗǛǙ ŚŜŠŞŤŢÚÙÜÛŬǓŰŪŲŮŨǗǛǙ +śŝšşťţúùüûŭǔűūųůũǘǜǚ śŝšşťţúùüûŭǔűūųůũǘǜǚ +ǕŴÝŸŶŹŽŻ・・・・・・・・・・・・ ǕŴÝŸŶŹŽŻ・・・・・・・・・・・・ +ǖŵýÿŷźžż・・・・・・・・・・・・ ǖŵýÿŷźžż・・・・・・・・・・・・ +¤№・・・・・・・・・・・・・・・・・・ ¤№・・・・・・・・・・・・・・・・・・ +łŀʼnŋøœßŧþ・・・・・・・・・・・ łŀʼnŋøœßŧþ・・・・・・・・・・・ +ЈЉЊЋЌЎЏ・・・・・・・・・・・・・ ЈЉЊЋЌЎЏ・・・・・・・・・・・・・ +・ÁÀÄÂĂǍĀĄÅÃĆĈČÇĊĎÉÈË ・ÁÀÄÂĂǍĀĄÅÃĆĈČÇĊĎÉÈË +・áàäâăǎāąåãćĉčçċďéèë ・áàäâăǎāąåãćĉčçċďéèë +・ÆĐ・Ħ・IJ・ŁĿ・ŊØŒ・ŦÞ・・・ ・ÆĐ・Ħ・IJ・ŁĿ・ŊØŒ・ŦÞ・・・ +・˛˚~΄΅・・・・・・・・¡¦¿・・・ ・˛˚~΄΅・・・・・・・・¡¦¿・・・ +・άέήίϊΐόςύϋΰώ・・・・・・・ ・άέήίϊΐόςύϋΰώ・・・・・・・ +・・ђѓєѕіїјљњћќўџ・・・・・ ・・ђѓєѕіїјљњћќўџ・・・・・ +・・・・・ΆΈΉΊΪ・Ό・ΎΫ・Ώ・・・ ・・・・・ΆΈΉΊΪ・Ό・ΎΫ・Ώ・・・ +・・・・・・・・・・・・・æđðħıijĸ ・・・・・・・・・・・・・æđðħıijĸ +・・・・・・・・・・・・・・ЂЃЄЅІЇ ・・・・・・・・・・・・・・ЂЃЄЅІЇ +・・・・・・・・・・・・・・・ºª©®™ ・・・・・・・・・・・・・・・ºª©®™ +・・・・・・・・・・・・・・・˘ˇ¸˙˝ ・・・・・・・・・・・・・・・˘ˇ¸˙˝ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・丂丄丅丌丒丟丣两丨丫丮丯丰丵乀乁乄乇乑 ・丂丄丅丌丒丟丣两丨丫丮丯丰丵乀乁乄乇乑 +・黸黿鼂鼃鼉鼏鼐鼑鼒鼔鼖鼗鼙鼚鼛鼟鼢鼦鼪 ・黸黿鼂鼃鼉鼏鼐鼑鼒鼔鼖鼗鼙鼚鼛鼟鼢鼦鼪 +乚乜乣乨乩乴乵乹乿亍亖亗亝亯亹仃仐仚仛仠 乚乜乣乨乩乴乵乹乿亍亖亗亝亯亹仃仐仚仛仠 +仡仢仨仯仱仳仵份仾仿伀伂伃伈伋伌伒伕伖众 仡仢仨仯仱仳仵份仾仿伀伂伃伈伋伌伒伕伖众 +伙伮伱你伳伵伷伹伻伾佀佂佈佉佋佌佒佔佖佘 伙伮伱你伳伵伷伹伻伾佀佂佈佉佋佌佒佔佖佘 +佟佣佪佬佮佱佷佸佹佺佽佾侁侂侄・・・・・ 佟佣佪佬佮佱佷佸佹佺佽佾侁侂侄・・・・・ +鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃齄齅齆齇齓齕齖 鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃齄齅齆齇齓齕齖 +齗齘齚齝齞齨齩齭齮齯齰齱齳齵齺齽龏龐龑龒 齗齘齚齝齞齨齩齭齮齯齰齱齳齵齺齽龏龐龑龒 +龔龖龗龞龡龢龣龥・・・・・・・・・・・・ 龔龖龗龞龡龢龣龥・・・・・・・・・・・・ +SELECT `C1`, CONVERT(`C1` using sjis) FROM `T3`; +C1 CONVERT(`C1` using sjis) +êěėēęǵĝğ・ġĥíìïîǐ・īįĩ ????????・???????・??? +ÊĚĖĒĘ・ĜĞĢĠĤÍÌÏÎǏİĪĮĨ ?????・?????????????? +ĴĶĹĽĻŃŇŅÑÓÒÖÔǑŐŌÕŔŘŖ ???????????????????? +ĵķĺľļńňņñóòöôǒőōõŕřŗ ???????????????????? +ŚŜŠŞŤŢÚÙÜÛŬǓŰŪŲŮŨǗǛǙ ???????????????????? +śŝšşťţúùüûŭǔűūųůũǘǜǚ ???????????????????? +ǕŴÝŸŶŹŽŻ・・・・・・・・・・・・ ????????・・・・・・・・・・・・ +ǖŵýÿŷźžż・・・・・・・・・・・・ ????????・・・・・・・・・・・・ +¤№・・・・・・・・・・・・・・・・・・ ??・・・・・・・・・・・・・・・・・・ +łŀʼnŋøœßŧþ・・・・・・・・・・・ ?????????・・・・・・・・・・・ +ЈЉЊЋЌЎЏ・・・・・・・・・・・・・ ???????・・・・・・・・・・・・・ +・ÁÀÄÂĂǍĀĄÅÃĆĈČÇĊĎÉÈË ・??????????????????? +・áàäâăǎāąåãćĉčçċďéèë ・??????????????????? +・ÆĐ・Ħ・IJ・ŁĿ・ŊØŒ・ŦÞ・・・ ・??・?・?・??・???・??・・・ +・˛˚~΄΅・・・・・・・・¡¦¿・・・ ・?????・・・・・・・・???・・・ +・άέήίϊΐόςύϋΰώ・・・・・・・ ・????????????・・・・・・・ +・・ђѓєѕіїјљњћќўџ・・・・・ ・・?????????????・・・・・ +・・・・・ΆΈΉΊΪ・Ό・ΎΫ・Ώ・・・ ・・・・・?????・?・??・?・・・ +・・・・・・・・・・・・・æđðħıijĸ ・・・・・・・・・・・・・??????? +・・・・・・・・・・・・・・ЂЃЄЅІЇ ・・・・・・・・・・・・・・?????? +・・・・・・・・・・・・・・・ºª©®™ ・・・・・・・・・・・・・・・????? +・・・・・・・・・・・・・・・˘ˇ¸˙˝ ・・・・・・・・・・・・・・・????? +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・丂丄丅丌丒丟丣两丨丫丮丯丰丵乀乁乄乇乑 ・??????????????????? +・黸黿鼂鼃鼉鼏鼐鼑鼒鼔鼖鼗鼙鼚鼛鼟鼢鼦鼪 ・??????????????????? +乚乜乣乨乩乴乵乹乿亍亖亗亝亯亹仃仐仚仛仠 ???????????????????? +仡仢仨仯仱仳仵份仾仿伀伂伃伈伋伌伒伕伖众 ???????????????????? +伙伮伱你伳伵伷伹伻伾佀佂佈佉佋佌佒佔佖佘 ???????????????????? +佟佣佪佬佮佱佷佸佹佺佽佾侁侂侄・・・・・ ???????????????・・・・・ +鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃齄齅齆齇齓齕齖 ???????????????????? +齗齘齚齝齞齨齩齭齮齯齰齱齳齵齺齽龏龐龑龒 ???????????????????? +龔龖龗龞龡龢龣龥・・・・・・・・・・・・ ????????・・・・・・・・・・・・ +SELECT `C1`, CONVERT(`C1` using ujis) FROM `T4`; +C1 CONVERT(`C1` using ujis) + !"#$%&'()*+,-./ !"#$%&'()*+,-./ + 。「」、・ヲァィゥェォャュョッ 。「」、・ヲァィゥェォャュョッ +0123456789:;<=>? 0123456789:;<=>? +@ABCDEFGHIJKLMNO @ABCDEFGHIJKLMNO +abcdefghijklmno abcdefghijklmno +PQRSTUVWXYZ[\]^_ PQRSTUVWXYZ[\]^_ +pqrstuvwxyz{|}~ pqrstuvwxyz{|}~ +ーアイウエオカキクケコサシスセソ ーアイウエオカキクケコサシスセソ +タチツテトナニヌネノハヒフヘホマ タチツテトナニヌネノハヒフヘホマ +ミムメモヤユヨラリルレロワン゙゚ ミムメモヤユヨラリルレロワン゙゚ +SELECT `C1`, CONVERT(`C1` using ucs2) FROM `T4`; +C1 CONVERT(`C1` using ucs2) + !"#$%&'()*+,-./ !"#$%&'()*+,-./ + 。「」、・ヲァィゥェォャュョッ 。「」、・ヲァィゥェォャュョッ +0123456789:;<=>? 0123456789:;<=>? +@ABCDEFGHIJKLMNO @ABCDEFGHIJKLMNO +abcdefghijklmno abcdefghijklmno +PQRSTUVWXYZ[\]^_ PQRSTUVWXYZ[\]^_ +pqrstuvwxyz{|}~ pqrstuvwxyz{|}~ +ーアイウエオカキクケコサシスセソ ーアイウエオカキクケコサシスセソ +タチツテトナニヌネノハヒフヘホマ タチツテトナニヌネノハヒフヘホマ +ミムメモヤユヨラリルレロワン゙゚ ミムメモヤユヨラリルレロワン゙゚ +SELECT `C1`, CONVERT(`C1` using sjis) FROM `T4`; +C1 CONVERT(`C1` using sjis) + !"#$%&'()*+,-./ !"#$%&'()*+,-./ + 。「」、・ヲァィゥェォャュョッ 。「」、・ヲァィゥェォャュョッ +0123456789:;<=>? 0123456789:;<=>? +@ABCDEFGHIJKLMNO @ABCDEFGHIJKLMNO +abcdefghijklmno abcdefghijklmno +PQRSTUVWXYZ[\]^_ PQRSTUVWXYZ[\]^_ +pqrstuvwxyz{|}~ pqrstuvwxyz{|}~ +ーアイウエオカキクケコサシスセソ ーアイウエオカキクケコサシスセソ +タチツテトナニヌネノハヒフヘホマ タチツテトナニヌネノハヒフヘホマ +ミムメモヤユヨラリルレロワン゙゚ ミムメモヤユヨラリルレロワン゙゚ +SELECT `C1`, CONVERT(`C1` using ujis) FROM `T5`; +C1 CONVERT(`C1` using ujis) +θικλμνξοπρστυφχψω・・・ θικλμνξοπρστυφχψω・・・ +ΥΦΧΨΩ・・・・・・・・αβγδεζη ΥΦΧΨΩ・・・・・・・・αβγδεζη +клмнопрстуфхцчшщъыьэ клмнопрстуфхцчшщъыьэ +ТУФХЦЧШЩЪЫЬЭЮЯ・・・・・・ ТУФХЦЧШЩЪЫЬЭЮЯ・・・・・・ +юя・・・・・・・・・・・・・・・・・・ юя・・・・・・・・・・・・・・・・・・ +“”()〔〕[]{}〈〉《》「」『』【】 “”()〔〕[]{}〈〉《》「」『』【】 +∠⊥⌒∂∇≡≒≪≫√∽∝∵∫∬・・・・・ ∠⊥⌒∂∇≡≒≪≫√∽∝∵∫∬・・・・・ +┫┻╋┠┯┨┷┿┝┰┥┸╂・・・・・・・ ┫┻╋┠┯┨┷┿┝┰┥┸╂・・・・・・・ +  、。,.・:;?!゛゜´`¨^ ̄_ヽ   、。,.・:;?!゛゜´`¨^ ̄_ヽ +ごさざしじすずせぜそぞただちぢっつづてで ごさざしじすずせぜそぞただちぢっつづてで +とどなにぬねのはばぱひびぴふぶぷへべぺほ とどなにぬねのはばぱひびぴふぶぷへべぺほ +ぼぽまみむめもゃやゅゆょよらりるれろゎわ ぼぽまみむめもゃやゅゆょよらりるれろゎわ +ゐゑをん・・・・・・・・・・・・・・・・ ゐゑをん・・・・・・・・・・・・・・・・ +ゴサザシジスズセゼソゾタダチヂッツヅテデ ゴサザシジスズセゼソゾタダチヂッツヅテデ +トドナニヌネノハバパヒビピフブプヘベペホ トドナニヌネノハバパヒビピフブプヘベペホ +ボポマミムメモャヤュユョヨラリルレロヮワ ボポマミムメモャヤュユョヨラリルレロヮワ +ヰヱヲンヴヵヶ・・・・・・・・・・・・・ ヰヱヲンヴヵヶ・・・・・・・・・・・・・ +・ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤ ・ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤ +・АБВГДЕЁЖЗИЙКЛМНОПРС ・АБВГДЕЁЖЗИЙКЛМНОПРС +・─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳ ・─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳ +・◆□■△▲▽▼※〒→←↑↓〓・・・・・ ・◆□■△▲▽▼※〒→←↑↓〓・・・・・ +・ぁあぃいぅうぇえぉおかがきぎくぐけげこ ・ぁあぃいぅうぇえぉおかがきぎくぐけげこ +・ァアィイゥウェエォオカガキギクグケゲコ ・ァアィイゥウェエォオカガキギクグケゲコ +・・ʼn♯♭♪†‡¶・・・・◯・・・・  ・・ʼn♯♭♪†‡¶・・・・◯・・・・  +・・∧∨¬⇒⇔∀∃・・・・・・・・・・・ ・・∧∨¬⇒⇔∀∃・・・・・・・・・・・ +・・・・・・∈∋⊆⊇⊂⊃∪∩・・・・・・ ・・・・・・∈∋⊆⊇⊂⊃∪∩・・・・・・ +・・・・・・・・・абвгдеёжзий ・・・・・・・・・абвгдеёжзий +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・0123 ・・・・・・・・・・・・・・・・0123 +・・・・・abcdefghijklmno ・・・・・abcdefghijklmno +・亜唖娃阿哀愛挨姶逢葵茜穐悪握渥旭葦芦鯵 ・亜唖娃阿哀愛挨姶逢葵茜穐悪握渥旭葦芦鯵 +・堯槇遙瑤凜熙・・・・・・・・・・・・・ ・堯槇遙瑤凜熙・・・・・・・・・・・・・ +・弌丐丕个丱丶丼丿乂乖乘亂亅豫亊舒弍于亞 ・弌丐丕个丱丶丼丿乂乖乘亂亅豫亊舒弍于亞 +・蓮連錬呂魯櫓炉賂路露労婁廊弄朗楼榔浪漏 ・蓮連錬呂魯櫓炉賂路露労婁廊弄朗楼榔浪漏 +・鵝鵞鵤鵑鵐鵙鵲鶉鶇鶫鵯鵺鶚鶤鶩鶲鷄鷁鶻 ・鵝鵞鵤鵑鵐鵙鵲鶉鶇鶫鵯鵺鶚鶤鶩鶲鷄鷁鶻 +ヾゝゞ〃仝々〆〇ー―‐/\〜‖|…‥‘’ ヾゝゞ〃仝々〆〇ー―‐/?〜‖|…‥‘’ +亟亠亢亰亳亶从仍仄仆仂仗仞仭仟价伉佚估佛 亟亠亢亰亳亶从仍仄仆仂仗仞仭仟价伉佚估佛 +佝佗佇佶侈侏侘佻佩佰侑佯來侖儘俔俟俎俘俛 佝佗佇佶侈侏侘佻佩佰侑佯來侖儘俔俟俎俘俛 +俑俚俐俤俥倚倨倔倪倥倅伜俶倡倩倬俾俯們倆 俑俚俐俤俥倚倨倔倪倥倅伜俶倡倩倬俾俯們倆 +偃假會偕偐偈做偖偬偸傀傚傅傴傲・・・・・ 偃假會偕偐偈做偖偬偸傀傚傅傴傲・・・・・ +枠鷲亙亘鰐詫藁蕨椀湾碗腕・・・・・・・・ 枠鷲亙亘鰐詫藁蕨椀湾碗腕・・・・・・・・ +梓圧斡扱宛姐虻飴絢綾鮎或粟袷安庵按暗案闇 梓圧斡扱宛姐虻飴絢綾鮎或粟袷安庵按暗案闇 +牢狼篭老聾蝋郎六麓禄肋録論倭和話歪賄脇惑 牢狼篭老聾蝋郎六麓禄肋録論倭和話歪賄脇惑 +移維緯胃萎衣謂違遺医井亥域育郁磯一壱溢逸 移維緯胃萎衣謂違遺医井亥域育郁磯一壱溢逸 +稲茨芋鰯允印咽員因姻引飲淫胤蔭・・・・・ 稲茨芋鰯允印咽員因姻引飲淫胤蔭・・・・・ +鞍杏以伊位依偉囲夷委威尉惟意慰易椅為畏異 鞍杏以伊位依偉囲夷委威尉惟意慰易椅為畏異 +鶸鶺鷆鷏鷂鷙鷓鷸鷦鷭鷯鷽鸚鸛鸞鹵鹹鹽麁麈 鶸鶺鷆鷏鷂鷙鷓鷸鷦鷭鷯鷽鸚鸛鸞鹵鹹鹽麁麈 +麋麌麒麕麑麝麥麩麸麪麭靡黌黎黏黐黔黜點黝 麋麌麒麕麑麝麥麩麸麪麭靡黌黎黏黐黔黜點黝 +黠黥黨黯黴黶黷黹黻黼黽鼇鼈皷鼕鼡鼬鼾齊齒 黠黥黨黯黴黶黷黹黻黼黽鼇鼈皷鼕鼡鼬鼾齊齒 +齔齣齟齠齡齦齧齬齪齷齲齶龕龜龠・・・・・ 齔齣齟齠齡齦齧齬齪齷齲齶龕龜龠・・・・・ +$¢£%#&*@§☆★○●◎◇・・・・・ $¢£%#&*@§☆★○●◎◇・・・・・ ++‐±×÷=≠<>≦≧∞∴♂♀°′″℃¥ +‐±×÷=≠<>≦≧∞∴♂♀°′″℃¥ +456789・・・・・・・ABCDEFG 456789・・・・・・・ABCDEFG +HIJKLMNOPQRSTUVWXYZ・ HIJKLMNOPQRSTUVWXYZ・ +pqrstuvwxyz・・・・・・・・・ pqrstuvwxyz・・・・・・・・・ +SELECT `C1`, CONVERT(`C1` using ucs2) FROM `T5`; +C1 CONVERT(`C1` using ucs2) +θικλμνξοπρστυφχψω・・・ θικλμνξοπρστυφχψω・・・ +ΥΦΧΨΩ・・・・・・・・αβγδεζη ΥΦΧΨΩ・・・・・・・・αβγδεζη +клмнопрстуфхцчшщъыьэ клмнопрстуфхцчшщъыьэ +ТУФХЦЧШЩЪЫЬЭЮЯ・・・・・・ ТУФХЦЧШЩЪЫЬЭЮЯ・・・・・・ +юя・・・・・・・・・・・・・・・・・・ юя・・・・・・・・・・・・・・・・・・ +“”()〔〕[]{}〈〉《》「」『』【】 “”()〔〕[]{}〈〉《》「」『』【】 +∠⊥⌒∂∇≡≒≪≫√∽∝∵∫∬・・・・・ ∠⊥⌒∂∇≡≒≪≫√∽∝∵∫∬・・・・・ +┫┻╋┠┯┨┷┿┝┰┥┸╂・・・・・・・ ┫┻╋┠┯┨┷┿┝┰┥┸╂・・・・・・・ +  、。,.・:;?!゛゜´`¨^ ̄_ヽ   、。,.・:;?!゛゜´`¨^ ̄_ヽ +ごさざしじすずせぜそぞただちぢっつづてで ごさざしじすずせぜそぞただちぢっつづてで +とどなにぬねのはばぱひびぴふぶぷへべぺほ とどなにぬねのはばぱひびぴふぶぷへべぺほ +ぼぽまみむめもゃやゅゆょよらりるれろゎわ ぼぽまみむめもゃやゅゆょよらりるれろゎわ +ゐゑをん・・・・・・・・・・・・・・・・ ゐゑをん・・・・・・・・・・・・・・・・ +ゴサザシジスズセゼソゾタダチヂッツヅテデ ゴサザシジスズセゼソゾタダチヂッツヅテデ +トドナニヌネノハバパヒビピフブプヘベペホ トドナニヌネノハバパヒビピフブプヘベペホ +ボポマミムメモャヤュユョヨラリルレロヮワ ボポマミムメモャヤュユョヨラリルレロヮワ +ヰヱヲンヴヵヶ・・・・・・・・・・・・・ ヰヱヲンヴヵヶ・・・・・・・・・・・・・ +・ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤ ・ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤ +・АБВГДЕЁЖЗИЙКЛМНОПРС ・АБВГДЕЁЖЗИЙКЛМНОПРС +・─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳ ・─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳ +・◆□■△▲▽▼※〒→←↑↓〓・・・・・ ・◆□■△▲▽▼※〒→←↑↓〓・・・・・ +・ぁあぃいぅうぇえぉおかがきぎくぐけげこ ・ぁあぃいぅうぇえぉおかがきぎくぐけげこ +・ァアィイゥウェエォオカガキギクグケゲコ ・ァアィイゥウェエォオカガキギクグケゲコ +・・ʼn♯♭♪†‡¶・・・・◯・・・・  ・・ʼn♯♭♪†‡¶・・・・◯・・・・  +・・∧∨¬⇒⇔∀∃・・・・・・・・・・・ ・・∧∨¬⇒⇔∀∃・・・・・・・・・・・ +・・・・・・∈∋⊆⊇⊂⊃∪∩・・・・・・ ・・・・・・∈∋⊆⊇⊂⊃∪∩・・・・・・ +・・・・・・・・・абвгдеёжзий ・・・・・・・・・абвгдеёжзий +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・0123 ・・・・・・・・・・・・・・・・0123 +・・・・・abcdefghijklmno ・・・・・abcdefghijklmno +・亜唖娃阿哀愛挨姶逢葵茜穐悪握渥旭葦芦鯵 ・亜唖娃阿哀愛挨姶逢葵茜穐悪握渥旭葦芦鯵 +・堯槇遙瑤凜熙・・・・・・・・・・・・・ ・堯槇遙瑤凜熙・・・・・・・・・・・・・ +・弌丐丕个丱丶丼丿乂乖乘亂亅豫亊舒弍于亞 ・弌丐丕个丱丶丼丿乂乖乘亂亅豫亊舒弍于亞 +・蓮連錬呂魯櫓炉賂路露労婁廊弄朗楼榔浪漏 ・蓮連錬呂魯櫓炉賂路露労婁廊弄朗楼榔浪漏 +・鵝鵞鵤鵑鵐鵙鵲鶉鶇鶫鵯鵺鶚鶤鶩鶲鷄鷁鶻 ・鵝鵞鵤鵑鵐鵙鵲鶉鶇鶫鵯鵺鶚鶤鶩鶲鷄鷁鶻 +ヾゝゞ〃仝々〆〇ー―‐/\〜‖|…‥‘’ ヾゝゞ〃仝々〆〇ー―‐/\〜‖|…‥‘’ +亟亠亢亰亳亶从仍仄仆仂仗仞仭仟价伉佚估佛 亟亠亢亰亳亶从仍仄仆仂仗仞仭仟价伉佚估佛 +佝佗佇佶侈侏侘佻佩佰侑佯來侖儘俔俟俎俘俛 佝佗佇佶侈侏侘佻佩佰侑佯來侖儘俔俟俎俘俛 +俑俚俐俤俥倚倨倔倪倥倅伜俶倡倩倬俾俯們倆 俑俚俐俤俥倚倨倔倪倥倅伜俶倡倩倬俾俯們倆 +偃假會偕偐偈做偖偬偸傀傚傅傴傲・・・・・ 偃假會偕偐偈做偖偬偸傀傚傅傴傲・・・・・ +枠鷲亙亘鰐詫藁蕨椀湾碗腕・・・・・・・・ 枠鷲亙亘鰐詫藁蕨椀湾碗腕・・・・・・・・ +梓圧斡扱宛姐虻飴絢綾鮎或粟袷安庵按暗案闇 梓圧斡扱宛姐虻飴絢綾鮎或粟袷安庵按暗案闇 +牢狼篭老聾蝋郎六麓禄肋録論倭和話歪賄脇惑 牢狼篭老聾蝋郎六麓禄肋録論倭和話歪賄脇惑 +移維緯胃萎衣謂違遺医井亥域育郁磯一壱溢逸 移維緯胃萎衣謂違遺医井亥域育郁磯一壱溢逸 +稲茨芋鰯允印咽員因姻引飲淫胤蔭・・・・・ 稲茨芋鰯允印咽員因姻引飲淫胤蔭・・・・・ +鞍杏以伊位依偉囲夷委威尉惟意慰易椅為畏異 鞍杏以伊位依偉囲夷委威尉惟意慰易椅為畏異 +鶸鶺鷆鷏鷂鷙鷓鷸鷦鷭鷯鷽鸚鸛鸞鹵鹹鹽麁麈 鶸鶺鷆鷏鷂鷙鷓鷸鷦鷭鷯鷽鸚鸛鸞鹵鹹鹽麁麈 +麋麌麒麕麑麝麥麩麸麪麭靡黌黎黏黐黔黜點黝 麋麌麒麕麑麝麥麩麸麪麭靡黌黎黏黐黔黜點黝 +黠黥黨黯黴黶黷黹黻黼黽鼇鼈皷鼕鼡鼬鼾齊齒 黠黥黨黯黴黶黷黹黻黼黽鼇鼈皷鼕鼡鼬鼾齊齒 +齔齣齟齠齡齦齧齬齪齷齲齶龕龜龠・・・・・ 齔齣齟齠齡齦齧齬齪齷齲齶龕龜龠・・・・・ +$¢£%#&*@§☆★○●◎◇・・・・・ $¢£%#&*@§☆★○●◎◇・・・・・ ++‐±×÷=≠<>≦≧∞∴♂♀°′″℃¥ +‐±×÷=≠<>≦≧∞∴♂♀°′″℃¥ +456789・・・・・・・ABCDEFG 456789・・・・・・・ABCDEFG +HIJKLMNOPQRSTUVWXYZ・ HIJKLMNOPQRSTUVWXYZ・ +pqrstuvwxyz・・・・・・・・・ pqrstuvwxyz・・・・・・・・・ +SELECT `C1`, CONVERT(`C1` using sjis) FROM `T5`; +C1 CONVERT(`C1` using sjis) +θικλμνξοπρστυφχψω・・・ θικλμνξοπρστυφχψω・・・ +ΥΦΧΨΩ・・・・・・・・αβγδεζη ΥΦΧΨΩ・・・・・・・・αβγδεζη +клмнопрстуфхцчшщъыьэ клмнопрстуфхцчшщъыьэ +ТУФХЦЧШЩЪЫЬЭЮЯ・・・・・・ ТУФХЦЧШЩЪЫЬЭЮЯ・・・・・・ +юя・・・・・・・・・・・・・・・・・・ юя・・・・・・・・・・・・・・・・・・ +“”()〔〕[]{}〈〉《》「」『』【】 “”()〔〕[]{}〈〉《》「」『』【】 +∠⊥⌒∂∇≡≒≪≫√∽∝∵∫∬・・・・・ ∠⊥⌒∂∇≡≒≪≫√∽∝∵∫∬・・・・・ +┫┻╋┠┯┨┷┿┝┰┥┸╂・・・・・・・ ┫┻╋┠┯┨┷┿┝┰┥┸╂・・・・・・・ +  、。,.・:;?!゛゜´`¨^ ̄_ヽ   、。,.・:;?!゛゜´`¨^ ̄_ヽ +ごさざしじすずせぜそぞただちぢっつづてで ごさざしじすずせぜそぞただちぢっつづてで +とどなにぬねのはばぱひびぴふぶぷへべぺほ とどなにぬねのはばぱひびぴふぶぷへべぺほ +ぼぽまみむめもゃやゅゆょよらりるれろゎわ ぼぽまみむめもゃやゅゆょよらりるれろゎわ +ゐゑをん・・・・・・・・・・・・・・・・ ゐゑをん・・・・・・・・・・・・・・・・ +ゴサザシジスズセゼソゾタダチヂッツヅテデ ゴサザシジスズセゼソゾタダチヂッツヅテデ +トドナニヌネノハバパヒビピフブプヘベペホ トドナニヌネノハバパヒビピフブプヘベペホ +ボポマミムメモャヤュユョヨラリルレロヮワ ボポマミムメモャヤュユョヨラリルレロヮワ +ヰヱヲンヴヵヶ・・・・・・・・・・・・・ ヰヱヲンヴヵヶ・・・・・・・・・・・・・ +・ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤ ・ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤ +・АБВГДЕЁЖЗИЙКЛМНОПРС ・АБВГДЕЁЖЗИЙКЛМНОПРС +・─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳ ・─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳ +・◆□■△▲▽▼※〒→←↑↓〓・・・・・ ・◆□■△▲▽▼※〒→←↑↓〓・・・・・ +・ぁあぃいぅうぇえぉおかがきぎくぐけげこ ・ぁあぃいぅうぇえぉおかがきぎくぐけげこ +・ァアィイゥウェエォオカガキギクグケゲコ ・ァアィイゥウェエォオカガキギクグケゲコ +・・ʼn♯♭♪†‡¶・・・・◯・・・・  ・・ʼn♯♭♪†‡¶・・・・◯・・・・  +・・∧∨¬⇒⇔∀∃・・・・・・・・・・・ ・・∧∨¬⇒⇔∀∃・・・・・・・・・・・ +・・・・・・∈∋⊆⊇⊂⊃∪∩・・・・・・ ・・・・・・∈∋⊆⊇⊂⊃∪∩・・・・・・ +・・・・・・・・・абвгдеёжзий ・・・・・・・・・абвгдеёжзий +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・0123 ・・・・・・・・・・・・・・・・0123 +・・・・・abcdefghijklmno ・・・・・abcdefghijklmno +・亜唖娃阿哀愛挨姶逢葵茜穐悪握渥旭葦芦鯵 ・亜唖娃阿哀愛挨姶逢葵茜穐悪握渥旭葦芦鯵 +・堯槇遙瑤凜熙・・・・・・・・・・・・・ ・堯槇遙瑤凜熙・・・・・・・・・・・・・ +・弌丐丕个丱丶丼丿乂乖乘亂亅豫亊舒弍于亞 ・弌丐丕个丱丶丼丿乂乖乘亂亅豫亊舒弍于亞 +・蓮連錬呂魯櫓炉賂路露労婁廊弄朗楼榔浪漏 ・蓮連錬呂魯櫓炉賂路露労婁廊弄朗楼榔浪漏 +・鵝鵞鵤鵑鵐鵙鵲鶉鶇鶫鵯鵺鶚鶤鶩鶲鷄鷁鶻 ・鵝鵞鵤鵑鵐鵙鵲鶉鶇鶫鵯鵺鶚鶤鶩鶲鷄鷁鶻 +ヾゝゞ〃仝々〆〇ー―‐/\〜‖|…‥‘’ ヾゝゞ〃仝々〆〇ー―‐/?〜‖|…‥‘’ +亟亠亢亰亳亶从仍仄仆仂仗仞仭仟价伉佚估佛 亟亠亢亰亳亶从仍仄仆仂仗仞仭仟价伉佚估佛 +佝佗佇佶侈侏侘佻佩佰侑佯來侖儘俔俟俎俘俛 佝佗佇佶侈侏侘佻佩佰侑佯來侖儘俔俟俎俘俛 +俑俚俐俤俥倚倨倔倪倥倅伜俶倡倩倬俾俯們倆 俑俚俐俤俥倚倨倔倪倥倅伜俶倡倩倬俾俯們倆 +偃假會偕偐偈做偖偬偸傀傚傅傴傲・・・・・ 偃假會偕偐偈做偖偬偸傀傚傅傴傲・・・・・ +枠鷲亙亘鰐詫藁蕨椀湾碗腕・・・・・・・・ 枠鷲亙亘鰐詫藁蕨椀湾碗腕・・・・・・・・ +梓圧斡扱宛姐虻飴絢綾鮎或粟袷安庵按暗案闇 梓圧斡扱宛姐虻飴絢綾鮎或粟袷安庵按暗案闇 +牢狼篭老聾蝋郎六麓禄肋録論倭和話歪賄脇惑 牢狼篭老聾蝋郎六麓禄肋録論倭和話歪賄脇惑 +移維緯胃萎衣謂違遺医井亥域育郁磯一壱溢逸 移維緯胃萎衣謂違遺医井亥域育郁磯一壱溢逸 +稲茨芋鰯允印咽員因姻引飲淫胤蔭・・・・・ 稲茨芋鰯允印咽員因姻引飲淫胤蔭・・・・・ +鞍杏以伊位依偉囲夷委威尉惟意慰易椅為畏異 鞍杏以伊位依偉囲夷委威尉惟意慰易椅為畏異 +鶸鶺鷆鷏鷂鷙鷓鷸鷦鷭鷯鷽鸚鸛鸞鹵鹹鹽麁麈 鶸鶺鷆鷏鷂鷙鷓鷸鷦鷭鷯鷽鸚鸛鸞鹵鹹鹽麁麈 +麋麌麒麕麑麝麥麩麸麪麭靡黌黎黏黐黔黜點黝 麋麌麒麕麑麝麥麩麸麪麭靡黌黎黏黐黔黜點黝 +黠黥黨黯黴黶黷黹黻黼黽鼇鼈皷鼕鼡鼬鼾齊齒 黠黥黨黯黴黶黷黹黻黼黽鼇鼈皷鼕鼡鼬鼾齊齒 +齔齣齟齠齡齦齧齬齪齷齲齶龕龜龠・・・・・ 齔齣齟齠齡齦齧齬齪齷齲齶龕龜龠・・・・・ +$¢£%#&*@§☆★○●◎◇・・・・・ $¢£%#&*@§☆★○●◎◇・・・・・ ++‐±×÷=≠<>≦≧∞∴♂♀°′″℃¥ +‐±×÷=≠<>≦≧∞∴♂♀°′″℃¥ +456789・・・・・・・ABCDEFG 456789・・・・・・・ABCDEFG +HIJKLMNOPQRSTUVWXYZ・ HIJKLMNOPQRSTUVWXYZ・ +pqrstuvwxyz・・・・・・・・・ pqrstuvwxyz・・・・・・・・・ +SELECT `C1`, CONVERT(`C1` using ujis) FROM `T6`; +C1 CONVERT(`C1` using ujis) +êěėēęǵĝğ・ġĥíìïîǐ・īįĩ êěėēęǵĝğ・ġĥíìïîǐ・īįĩ +ÊĚĖĒĘ・ĜĞĢĠĤÍÌÏÎǏİĪĮĨ ÊĚĖĒĘ・ĜĞĢĠĤÍÌÏÎǏİĪĮĨ +ĴĶĹĽĻŃŇŅÑÓÒÖÔǑŐŌÕŔŘŖ ĴĶĹĽĻŃŇŅÑÓÒÖÔǑŐŌÕŔŘŖ +ĵķĺľļńňņñóòöôǒőōõŕřŗ ĵķĺľļńňņñóòöôǒőōõŕřŗ +ŚŜŠŞŤŢÚÙÜÛŬǓŰŪŲŮŨǗǛǙ ŚŜŠŞŤŢÚÙÜÛŬǓŰŪŲŮŨǗǛǙ +śŝšşťţúùüûŭǔűūųůũǘǜǚ śŝšşťţúùüûŭǔűūųůũǘǜǚ +ǕŴÝŸŶŹŽŻ・・・・・・・・・・・・ ǕŴÝŸŶŹŽŻ・・・・・・・・・・・・ +ǖŵýÿŷźžż・・・・・・・・・・・・ ǖŵýÿŷźžż・・・・・・・・・・・・ +¤№・・・・・・・・・・・・・・・・・・ ¤№・・・・・・・・・・・・・・・・・・ +łŀʼnŋøœßŧþ・・・・・・・・・・・ łŀʼnŋøœßŧþ・・・・・・・・・・・ +ЈЉЊЋЌЎЏ・・・・・・・・・・・・・ ЈЉЊЋЌЎЏ・・・・・・・・・・・・・ +・ÁÀÄÂĂǍĀĄÅÃĆĈČÇĊĎÉÈË ・ÁÀÄÂĂǍĀĄÅÃĆĈČÇĊĎÉÈË +・áàäâăǎāąåãćĉčçċďéèë ・áàäâăǎāąåãćĉčçċďéèë +・ÆĐ・Ħ・IJ・ŁĿ・ŊØŒ・ŦÞ・・・ ・ÆĐ・Ħ・IJ・ŁĿ・ŊØŒ・ŦÞ・・・ +・˛˚~΄΅・・・・・・・・¡¦¿・・・ ・˛˚?΄΅・・・・・・・・¡¦¿・・・ +・άέήίϊΐόςύϋΰώ・・・・・・・ ・άέήίϊΐόςύϋΰώ・・・・・・・ +・・ђѓєѕіїјљњћќўџ・・・・・ ・・ђѓєѕіїјљњћќўџ・・・・・ +・・・・・ΆΈΉΊΪ・Ό・ΎΫ・Ώ・・・ ・・・・・ΆΈΉΊΪ・Ό・ΎΫ・Ώ・・・ +・・・・・・・・・・・・・æđðħıijĸ ・・・・・・・・・・・・・æđðħıijĸ +・・・・・・・・・・・・・・ЂЃЄЅІЇ ・・・・・・・・・・・・・・ЂЃЄЅІЇ +・・・・・・・・・・・・・・・ºª©®™ ・・・・・・・・・・・・・・・ºª©®™ +・・・・・・・・・・・・・・・˘ˇ¸˙˝ ・・・・・・・・・・・・・・・˘ˇ¸˙˝ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・丂丄丅丌丒丟丣两丨丫丮丯丰丵乀乁乄乇乑 ・丂丄丅丌丒丟丣两丨丫丮丯丰丵乀乁乄乇乑 +・黸黿鼂鼃鼉鼏鼐鼑鼒鼔鼖鼗鼙鼚鼛鼟鼢鼦鼪 ・黸黿鼂鼃鼉鼏鼐鼑鼒鼔鼖鼗鼙鼚鼛鼟鼢鼦鼪 +乚乜乣乨乩乴乵乹乿亍亖亗亝亯亹仃仐仚仛仠 乚乜乣乨乩乴乵乹乿亍亖亗亝亯亹仃仐仚仛仠 +仡仢仨仯仱仳仵份仾仿伀伂伃伈伋伌伒伕伖众 仡仢仨仯仱仳仵份仾仿伀伂伃伈伋伌伒伕伖众 +伙伮伱你伳伵伷伹伻伾佀佂佈佉佋佌佒佔佖佘 伙伮伱你伳伵伷伹伻伾佀佂佈佉佋佌佒佔佖佘 +佟佣佪佬佮佱佷佸佹佺佽佾侁侂侄・・・・・ 佟佣佪佬佮佱佷佸佹佺佽佾侁侂侄・・・・・ +鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃齄齅齆齇齓齕齖 鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃齄齅齆齇齓齕齖 +齗齘齚齝齞齨齩齭齮齯齰齱齳齵齺齽龏龐龑龒 齗齘齚齝齞齨齩齭齮齯齰齱齳齵齺齽龏龐龑龒 +龔龖龗龞龡龢龣龥・・・・・・・・・・・・ 龔龖龗龞龡龢龣龥・・・・・・・・・・・・ +SELECT `C1`, CONVERT(`C1` using ucs2) FROM `T6`; +C1 CONVERT(`C1` using ucs2) +êěėēęǵĝğ・ġĥíìïîǐ・īįĩ êěėēęǵĝğ・ġĥíìïîǐ・īįĩ +ÊĚĖĒĘ・ĜĞĢĠĤÍÌÏÎǏİĪĮĨ ÊĚĖĒĘ・ĜĞĢĠĤÍÌÏÎǏİĪĮĨ +ĴĶĹĽĻŃŇŅÑÓÒÖÔǑŐŌÕŔŘŖ ĴĶĹĽĻŃŇŅÑÓÒÖÔǑŐŌÕŔŘŖ +ĵķĺľļńňņñóòöôǒőōõŕřŗ ĵķĺľļńňņñóòöôǒőōõŕřŗ +ŚŜŠŞŤŢÚÙÜÛŬǓŰŪŲŮŨǗǛǙ ŚŜŠŞŤŢÚÙÜÛŬǓŰŪŲŮŨǗǛǙ +śŝšşťţúùüûŭǔűūųůũǘǜǚ śŝšşťţúùüûŭǔűūųůũǘǜǚ +ǕŴÝŸŶŹŽŻ・・・・・・・・・・・・ ǕŴÝŸŶŹŽŻ・・・・・・・・・・・・ +ǖŵýÿŷźžż・・・・・・・・・・・・ ǖŵýÿŷźžż・・・・・・・・・・・・ +¤№・・・・・・・・・・・・・・・・・・ ¤№・・・・・・・・・・・・・・・・・・ +łŀʼnŋøœßŧþ・・・・・・・・・・・ łŀʼnŋøœßŧþ・・・・・・・・・・・ +ЈЉЊЋЌЎЏ・・・・・・・・・・・・・ ЈЉЊЋЌЎЏ・・・・・・・・・・・・・ +・ÁÀÄÂĂǍĀĄÅÃĆĈČÇĊĎÉÈË ・ÁÀÄÂĂǍĀĄÅÃĆĈČÇĊĎÉÈË +・áàäâăǎāąåãćĉčçċďéèë ・áàäâăǎāąåãćĉčçċďéèë +・ÆĐ・Ħ・IJ・ŁĿ・ŊØŒ・ŦÞ・・・ ・ÆĐ・Ħ・IJ・ŁĿ・ŊØŒ・ŦÞ・・・ +・˛˚~΄΅・・・・・・・・¡¦¿・・・ ・˛˚~΄΅・・・・・・・・¡¦¿・・・ +・άέήίϊΐόςύϋΰώ・・・・・・・ ・άέήίϊΐόςύϋΰώ・・・・・・・ +・・ђѓєѕіїјљњћќўџ・・・・・ ・・ђѓєѕіїјљњћќўџ・・・・・ +・・・・・ΆΈΉΊΪ・Ό・ΎΫ・Ώ・・・ ・・・・・ΆΈΉΊΪ・Ό・ΎΫ・Ώ・・・ +・・・・・・・・・・・・・æđðħıijĸ ・・・・・・・・・・・・・æđðħıijĸ +・・・・・・・・・・・・・・ЂЃЄЅІЇ ・・・・・・・・・・・・・・ЂЃЄЅІЇ +・・・・・・・・・・・・・・・ºª©®™ ・・・・・・・・・・・・・・・ºª©®™ +・・・・・・・・・・・・・・・˘ˇ¸˙˝ ・・・・・・・・・・・・・・・˘ˇ¸˙˝ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・丂丄丅丌丒丟丣两丨丫丮丯丰丵乀乁乄乇乑 ・丂丄丅丌丒丟丣两丨丫丮丯丰丵乀乁乄乇乑 +・黸黿鼂鼃鼉鼏鼐鼑鼒鼔鼖鼗鼙鼚鼛鼟鼢鼦鼪 ・黸黿鼂鼃鼉鼏鼐鼑鼒鼔鼖鼗鼙鼚鼛鼟鼢鼦鼪 +乚乜乣乨乩乴乵乹乿亍亖亗亝亯亹仃仐仚仛仠 乚乜乣乨乩乴乵乹乿亍亖亗亝亯亹仃仐仚仛仠 +仡仢仨仯仱仳仵份仾仿伀伂伃伈伋伌伒伕伖众 仡仢仨仯仱仳仵份仾仿伀伂伃伈伋伌伒伕伖众 +伙伮伱你伳伵伷伹伻伾佀佂佈佉佋佌佒佔佖佘 伙伮伱你伳伵伷伹伻伾佀佂佈佉佋佌佒佔佖佘 +佟佣佪佬佮佱佷佸佹佺佽佾侁侂侄・・・・・ 佟佣佪佬佮佱佷佸佹佺佽佾侁侂侄・・・・・ +鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃齄齅齆齇齓齕齖 鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃齄齅齆齇齓齕齖 +齗齘齚齝齞齨齩齭齮齯齰齱齳齵齺齽龏龐龑龒 齗齘齚齝齞齨齩齭齮齯齰齱齳齵齺齽龏龐龑龒 +龔龖龗龞龡龢龣龥・・・・・・・・・・・・ 龔龖龗龞龡龢龣龥・・・・・・・・・・・・ +SELECT `C1`, CONVERT(`C1` using sjis) FROM `T6`; +C1 CONVERT(`C1` using sjis) +êěėēęǵĝğ・ġĥíìïîǐ・īįĩ ????????・???????・??? +ÊĚĖĒĘ・ĜĞĢĠĤÍÌÏÎǏİĪĮĨ ?????・?????????????? +ĴĶĹĽĻŃŇŅÑÓÒÖÔǑŐŌÕŔŘŖ ???????????????????? +ĵķĺľļńňņñóòöôǒőōõŕřŗ ???????????????????? +ŚŜŠŞŤŢÚÙÜÛŬǓŰŪŲŮŨǗǛǙ ???????????????????? +śŝšşťţúùüûŭǔűūųůũǘǜǚ ???????????????????? +ǕŴÝŸŶŹŽŻ・・・・・・・・・・・・ ????????・・・・・・・・・・・・ +ǖŵýÿŷźžż・・・・・・・・・・・・ ????????・・・・・・・・・・・・ +¤№・・・・・・・・・・・・・・・・・・ ??・・・・・・・・・・・・・・・・・・ +łŀʼnŋøœßŧþ・・・・・・・・・・・ ?????????・・・・・・・・・・・ +ЈЉЊЋЌЎЏ・・・・・・・・・・・・・ ???????・・・・・・・・・・・・・ +・ÁÀÄÂĂǍĀĄÅÃĆĈČÇĊĎÉÈË ・??????????????????? +・áàäâăǎāąåãćĉčçċďéèë ・??????????????????? +・ÆĐ・Ħ・IJ・ŁĿ・ŊØŒ・ŦÞ・・・ ・??・?・?・??・???・??・・・ +・˛˚~΄΅・・・・・・・・¡¦¿・・・ ・?????・・・・・・・・???・・・ +・άέήίϊΐόςύϋΰώ・・・・・・・ ・????????????・・・・・・・ +・・ђѓєѕіїјљњћќўџ・・・・・ ・・?????????????・・・・・ +・・・・・ΆΈΉΊΪ・Ό・ΎΫ・Ώ・・・ ・・・・・?????・?・??・?・・・ +・・・・・・・・・・・・・æđðħıijĸ ・・・・・・・・・・・・・??????? +・・・・・・・・・・・・・・ЂЃЄЅІЇ ・・・・・・・・・・・・・・?????? +・・・・・・・・・・・・・・・ºª©®™ ・・・・・・・・・・・・・・・????? +・・・・・・・・・・・・・・・˘ˇ¸˙˝ ・・・・・・・・・・・・・・・????? +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・丂丄丅丌丒丟丣两丨丫丮丯丰丵乀乁乄乇乑 ・??????????????????? +・黸黿鼂鼃鼉鼏鼐鼑鼒鼔鼖鼗鼙鼚鼛鼟鼢鼦鼪 ・??????????????????? +乚乜乣乨乩乴乵乹乿亍亖亗亝亯亹仃仐仚仛仠 ???????????????????? +仡仢仨仯仱仳仵份仾仿伀伂伃伈伋伌伒伕伖众 ???????????????????? +伙伮伱你伳伵伷伹伻伾佀佂佈佉佋佌佒佔佖佘 ???????????????????? +佟佣佪佬佮佱佷佸佹佺佽佾侁侂侄・・・・・ ???????????????・・・・・ +鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃齄齅齆齇齓齕齖 ???????????????????? +齗齘齚齝齞齨齩齭齮齯齰齱齳齵齺齽龏龐龑龒 ???????????????????? +龔龖龗龞龡龢龣龥・・・・・・・・・・・・ ????????・・・・・・・・・・・・ +SELECT `C1`, CONVERT(`C1` using ujis) FROM `T7`; +C1 CONVERT(`C1` using ujis) + !"#$%&'()*+,-./ !"#$%&'()*+,-./ +0123456789:;<=>? 0123456789:;<=>? +@ABCDEFGHIJKLMNO @ABCDEFGHIJKLMNO +PQRSTUVWXYZ[\]^_ PQRSTUVWXYZ[\]^_ +abcdefghijklmno abcdefghijklmno +pqrstuvwxyz{|}~ pqrstuvwxyz{|}~ + 。「」、・ヲァィゥェォャュョッ 。「」、・ヲァィゥェォャュョッ +ーアイウエオカキクケコサシスセソ ーアイウエオカキクケコサシスセソ +タチツテトナニヌネノハヒフヘホマ タチツテトナニヌネノハヒフヘホマ +ミムメモヤユヨラリルレロワン゙゚ ミムメモヤユヨラリルレロワン゙゚ +SELECT `C1`, CONVERT(`C1` using ucs2) FROM `T7`; +C1 CONVERT(`C1` using ucs2) + !"#$%&'()*+,-./ !"#$%&'()*+,-./ +0123456789:;<=>? 0123456789:;<=>? +@ABCDEFGHIJKLMNO @ABCDEFGHIJKLMNO +PQRSTUVWXYZ[\]^_ PQRSTUVWXYZ[\]^_ +abcdefghijklmno abcdefghijklmno +pqrstuvwxyz{|}~ pqrstuvwxyz{|}~ + 。「」、・ヲァィゥェォャュョッ 。「」、・ヲァィゥェォャュョッ +ーアイウエオカキクケコサシスセソ ーアイウエオカキクケコサシスセソ +タチツテトナニヌネノハヒフヘホマ タチツテトナニヌネノハヒフヘホマ +ミムメモヤユヨラリルレロワン゙゚ ミムメモヤユヨラリルレロワン゙゚ +SELECT `C1`, CONVERT(`C1` using sjis) FROM `T7`; +C1 CONVERT(`C1` using sjis) + !"#$%&'()*+,-./ !"#$%&'()*+,-./ +0123456789:;<=>? 0123456789:;<=>? +@ABCDEFGHIJKLMNO @ABCDEFGHIJKLMNO +PQRSTUVWXYZ[\]^_ PQRSTUVWXYZ[\]^_ +abcdefghijklmno abcdefghijklmno +pqrstuvwxyz{|}~ pqrstuvwxyz{|}~ + 。「」、・ヲァィゥェォャュョッ 。「」、・ヲァィゥェォャュョッ +ーアイウエオカキクケコサシスセソ ーアイウエオカキクケコサシスセソ +タチツテトナニヌネノハヒフヘホマ タチツテトナニヌネノハヒフヘホマ +ミムメモヤユヨラリルレロワン゙゚ ミムメモヤユヨラリルレロワン゙゚ +SELECT `C1`, CONVERT(`C1` using ujis) FROM `T8`; +C1 CONVERT(`C1` using ujis) +  、。,.・:;?!゛゜´`¨^ ̄_ヽ   、。,.・:;?!゛゜´`¨^ ̄_ヽ +ヾゝゞ〃仝々〆〇ー―‐/\〜‖|…‥‘’ ヾゝゞ〃仝々〆〇ー―‐/?〜‖|…‥‘’ +“”()〔〕[]{}〈〉《》「」『』【】 “”()〔〕[]{}〈〉《》「」『』【】 ++‐±×÷=≠<>≦≧∞∴♂♀°′″℃¥ +‐±×÷=≠<>≦≧∞∴♂♀°′″℃¥ +$¢£%#&*@§☆★○●◎◇・・・・・ $¢£%#&*@§☆★○●◎◇・・・・・ +・◆□■△▲▽▼※〒→←↑↓〓・・・・・ ・◆□■△▲▽▼※〒→←↑↓〓・・・・・ +・・・・・・∈∋⊆⊇⊂⊃∪∩・・・・・・ ・・・・・・∈∋⊆⊇⊂⊃∪∩・・・・・・ +・・∧∨¬⇒⇔∀∃・・・・・・・・・・・ ・・∧∨¬⇒⇔∀∃・・・・・・・・・・・ +∠⊥⌒∂∇≡≒≪≫√∽∝∵∫∬・・・・・ ∠⊥⌒∂∇≡≒≪≫√∽∝∵∫∬・・・・・ +・・ʼn♯♭♪†‡¶・・・・◯・・・・  ・・ʼn♯♭♪†‡¶・・・・◯・・・・  +・・・・・・・・・・・・・・・・0123 ・・・・・・・・・・・・・・・・0123 +456789・・・・・・・ABCDEFG 456789・・・・・・・ABCDEFG +HIJKLMNOPQRSTUVWXYZ・ HIJKLMNOPQRSTUVWXYZ・ +・・・・・abcdefghijklmno ・・・・・abcdefghijklmno +pqrstuvwxyz・・・・・・・・・ pqrstuvwxyz・・・・・・・・・ +・ぁあぃいぅうぇえぉおかがきぎくぐけげこ ・ぁあぃいぅうぇえぉおかがきぎくぐけげこ +ごさざしじすずせぜそぞただちぢっつづてで ごさざしじすずせぜそぞただちぢっつづてで +とどなにぬねのはばぱひびぴふぶぷへべぺほ とどなにぬねのはばぱひびぴふぶぷへべぺほ +ぼぽまみむめもゃやゅゆょよらりるれろゎわ ぼぽまみむめもゃやゅゆょよらりるれろゎわ +ゐゑをん・・・・・・・・・・・・・・・・ ゐゑをん・・・・・・・・・・・・・・・・ +・ァアィイゥウェエォオカガキギクグケゲコ ・ァアィイゥウェエォオカガキギクグケゲコ +ゴサザシジスズセゼソゾタダチヂッツヅテデ ゴサザシジスズセゼソゾタダチヂッツヅテデ +トドナニヌネノハバパヒビピフブプヘベペホ トドナニヌネノハバパヒビピフブプヘベペホ +ボポマミムメモャヤュユョヨラリルレロヮワ ボポマミムメモャヤュユョヨラリルレロヮワ +ヰヱヲンヴヵヶ・・・・・・・・・・・・・ ヰヱヲンヴヵヶ・・・・・・・・・・・・・ +・ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤ ・ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤ +ΥΦΧΨΩ・・・・・・・・αβγδεζη ΥΦΧΨΩ・・・・・・・・αβγδεζη +θικλμνξοπρστυφχψω・・・ θικλμνξοπρστυφχψω・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・АБВГДЕЁЖЗИЙКЛМНОПРС ・АБВГДЕЁЖЗИЙКЛМНОПРС +ТУФХЦЧШЩЪЫЬЭЮЯ・・・・・・ ТУФХЦЧШЩЪЫЬЭЮЯ・・・・・・ +・・・・・・・・・абвгдеёжзий ・・・・・・・・・абвгдеёжзий +клмнопрстуфхцчшщъыьэ клмнопрстуфхцчшщъыьэ +юя・・・・・・・・・・・・・・・・・・ юя・・・・・・・・・・・・・・・・・・ +・─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳ ・─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳ +┫┻╋┠┯┨┷┿┝┰┥┸╂・・・・・・・ ┫┻╋┠┯┨┷┿┝┰┥┸╂・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・亜唖娃阿哀愛挨姶逢葵茜穐悪握渥旭葦芦鯵 ・亜唖娃阿哀愛挨姶逢葵茜穐悪握渥旭葦芦鯵 +梓圧斡扱宛姐虻飴絢綾鮎或粟袷安庵按暗案闇 梓圧斡扱宛姐虻飴絢綾鮎或粟袷安庵按暗案闇 +鞍杏以伊位依偉囲夷委威尉惟意慰易椅為畏異 鞍杏以伊位依偉囲夷委威尉惟意慰易椅為畏異 +移維緯胃萎衣謂違遺医井亥域育郁磯一壱溢逸 移維緯胃萎衣謂違遺医井亥域育郁磯一壱溢逸 +稲茨芋鰯允印咽員因姻引飲淫胤蔭・・・・・ 稲茨芋鰯允印咽員因姻引飲淫胤蔭・・・・・ +・蓮連錬呂魯櫓炉賂路露労婁廊弄朗楼榔浪漏 ・蓮連錬呂魯櫓炉賂路露労婁廊弄朗楼榔浪漏 +牢狼篭老聾蝋郎六麓禄肋録論倭和話歪賄脇惑 牢狼篭老聾蝋郎六麓禄肋録論倭和話歪賄脇惑 +枠鷲亙亘鰐詫藁蕨椀湾碗腕・・・・・・・・ 枠鷲亙亘鰐詫藁蕨椀湾碗腕・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・弌丐丕个丱丶丼丿乂乖乘亂亅豫亊舒弍于亞 ・弌丐丕个丱丶丼丿乂乖乘亂亅豫亊舒弍于亞 +亟亠亢亰亳亶从仍仄仆仂仗仞仭仟价伉佚估佛 亟亠亢亰亳亶从仍仄仆仂仗仞仭仟价伉佚估佛 +佝佗佇佶侈侏侘佻佩佰侑佯來侖儘俔俟俎俘俛 佝佗佇佶侈侏侘佻佩佰侑佯來侖儘俔俟俎俘俛 +俑俚俐俤俥倚倨倔倪倥倅伜俶倡倩倬俾俯們倆 俑俚俐俤俥倚倨倔倪倥倅伜俶倡倩倬俾俯們倆 +偃假會偕偐偈做偖偬偸傀傚傅傴傲・・・・・ 偃假會偕偐偈做偖偬偸傀傚傅傴傲・・・・・ +・鵝鵞鵤鵑鵐鵙鵲鶉鶇鶫鵯鵺鶚鶤鶩鶲鷄鷁鶻 ・鵝鵞鵤鵑鵐鵙鵲鶉鶇鶫鵯鵺鶚鶤鶩鶲鷄鷁鶻 +鶸鶺鷆鷏鷂鷙鷓鷸鷦鷭鷯鷽鸚鸛鸞鹵鹹鹽麁麈 鶸鶺鷆鷏鷂鷙鷓鷸鷦鷭鷯鷽鸚鸛鸞鹵鹹鹽麁麈 +麋麌麒麕麑麝麥麩麸麪麭靡黌黎黏黐黔黜點黝 麋麌麒麕麑麝麥麩麸麪麭靡黌黎黏黐黔黜點黝 +黠黥黨黯黴黶黷黹黻黼黽鼇鼈皷鼕鼡鼬鼾齊齒 黠黥黨黯黴黶黷黹黻黼黽鼇鼈皷鼕鼡鼬鼾齊齒 +齔齣齟齠齡齦齧齬齪齷齲齶龕龜龠・・・・・ 齔齣齟齠齡齦齧齬齪齷齲齶龕龜龠・・・・・ +・堯槇遙瑤凜熙・・・・・・・・・・・・・ ・堯槇遙瑤凜熙・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +SELECT `C1`, CONVERT(`C1` using ucs2) FROM `T8`; +C1 CONVERT(`C1` using ucs2) +  、。,.・:;?!゛゜´`¨^ ̄_ヽ   、。,.・:;?!゛゜´`¨^ ̄_ヽ +ヾゝゞ〃仝々〆〇ー―‐/\〜‖|…‥‘’ ヾゝゞ〃仝々〆〇ー―‐/\〜‖|…‥‘’ +“”()〔〕[]{}〈〉《》「」『』【】 “”()〔〕[]{}〈〉《》「」『』【】 ++‐±×÷=≠<>≦≧∞∴♂♀°′″℃¥ +‐±×÷=≠<>≦≧∞∴♂♀°′″℃¥ +$¢£%#&*@§☆★○●◎◇・・・・・ $¢£%#&*@§☆★○●◎◇・・・・・ +・◆□■△▲▽▼※〒→←↑↓〓・・・・・ ・◆□■△▲▽▼※〒→←↑↓〓・・・・・ +・・・・・・∈∋⊆⊇⊂⊃∪∩・・・・・・ ・・・・・・∈∋⊆⊇⊂⊃∪∩・・・・・・ +・・∧∨¬⇒⇔∀∃・・・・・・・・・・・ ・・∧∨¬⇒⇔∀∃・・・・・・・・・・・ +∠⊥⌒∂∇≡≒≪≫√∽∝∵∫∬・・・・・ ∠⊥⌒∂∇≡≒≪≫√∽∝∵∫∬・・・・・ +・・ʼn♯♭♪†‡¶・・・・◯・・・・  ・・ʼn♯♭♪†‡¶・・・・◯・・・・  +・・・・・・・・・・・・・・・・0123 ・・・・・・・・・・・・・・・・0123 +456789・・・・・・・ABCDEFG 456789・・・・・・・ABCDEFG +HIJKLMNOPQRSTUVWXYZ・ HIJKLMNOPQRSTUVWXYZ・ +・・・・・abcdefghijklmno ・・・・・abcdefghijklmno +pqrstuvwxyz・・・・・・・・・ pqrstuvwxyz・・・・・・・・・ +・ぁあぃいぅうぇえぉおかがきぎくぐけげこ ・ぁあぃいぅうぇえぉおかがきぎくぐけげこ +ごさざしじすずせぜそぞただちぢっつづてで ごさざしじすずせぜそぞただちぢっつづてで +とどなにぬねのはばぱひびぴふぶぷへべぺほ とどなにぬねのはばぱひびぴふぶぷへべぺほ +ぼぽまみむめもゃやゅゆょよらりるれろゎわ ぼぽまみむめもゃやゅゆょよらりるれろゎわ +ゐゑをん・・・・・・・・・・・・・・・・ ゐゑをん・・・・・・・・・・・・・・・・ +・ァアィイゥウェエォオカガキギクグケゲコ ・ァアィイゥウェエォオカガキギクグケゲコ +ゴサザシジスズセゼソゾタダチヂッツヅテデ ゴサザシジスズセゼソゾタダチヂッツヅテデ +トドナニヌネノハバパヒビピフブプヘベペホ トドナニヌネノハバパヒビピフブプヘベペホ +ボポマミムメモャヤュユョヨラリルレロヮワ ボポマミムメモャヤュユョヨラリルレロヮワ +ヰヱヲンヴヵヶ・・・・・・・・・・・・・ ヰヱヲンヴヵヶ・・・・・・・・・・・・・ +・ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤ ・ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤ +ΥΦΧΨΩ・・・・・・・・αβγδεζη ΥΦΧΨΩ・・・・・・・・αβγδεζη +θικλμνξοπρστυφχψω・・・ θικλμνξοπρστυφχψω・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・АБВГДЕЁЖЗИЙКЛМНОПРС ・АБВГДЕЁЖЗИЙКЛМНОПРС +ТУФХЦЧШЩЪЫЬЭЮЯ・・・・・・ ТУФХЦЧШЩЪЫЬЭЮЯ・・・・・・ +・・・・・・・・・абвгдеёжзий ・・・・・・・・・абвгдеёжзий +клмнопрстуфхцчшщъыьэ клмнопрстуфхцчшщъыьэ +юя・・・・・・・・・・・・・・・・・・ юя・・・・・・・・・・・・・・・・・・ +・─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳ ・─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳ +┫┻╋┠┯┨┷┿┝┰┥┸╂・・・・・・・ ┫┻╋┠┯┨┷┿┝┰┥┸╂・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・亜唖娃阿哀愛挨姶逢葵茜穐悪握渥旭葦芦鯵 ・亜唖娃阿哀愛挨姶逢葵茜穐悪握渥旭葦芦鯵 +梓圧斡扱宛姐虻飴絢綾鮎或粟袷安庵按暗案闇 梓圧斡扱宛姐虻飴絢綾鮎或粟袷安庵按暗案闇 +鞍杏以伊位依偉囲夷委威尉惟意慰易椅為畏異 鞍杏以伊位依偉囲夷委威尉惟意慰易椅為畏異 +移維緯胃萎衣謂違遺医井亥域育郁磯一壱溢逸 移維緯胃萎衣謂違遺医井亥域育郁磯一壱溢逸 +稲茨芋鰯允印咽員因姻引飲淫胤蔭・・・・・ 稲茨芋鰯允印咽員因姻引飲淫胤蔭・・・・・ +・蓮連錬呂魯櫓炉賂路露労婁廊弄朗楼榔浪漏 ・蓮連錬呂魯櫓炉賂路露労婁廊弄朗楼榔浪漏 +牢狼篭老聾蝋郎六麓禄肋録論倭和話歪賄脇惑 牢狼篭老聾蝋郎六麓禄肋録論倭和話歪賄脇惑 +枠鷲亙亘鰐詫藁蕨椀湾碗腕・・・・・・・・ 枠鷲亙亘鰐詫藁蕨椀湾碗腕・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・弌丐丕个丱丶丼丿乂乖乘亂亅豫亊舒弍于亞 ・弌丐丕个丱丶丼丿乂乖乘亂亅豫亊舒弍于亞 +亟亠亢亰亳亶从仍仄仆仂仗仞仭仟价伉佚估佛 亟亠亢亰亳亶从仍仄仆仂仗仞仭仟价伉佚估佛 +佝佗佇佶侈侏侘佻佩佰侑佯來侖儘俔俟俎俘俛 佝佗佇佶侈侏侘佻佩佰侑佯來侖儘俔俟俎俘俛 +俑俚俐俤俥倚倨倔倪倥倅伜俶倡倩倬俾俯們倆 俑俚俐俤俥倚倨倔倪倥倅伜俶倡倩倬俾俯們倆 +偃假會偕偐偈做偖偬偸傀傚傅傴傲・・・・・ 偃假會偕偐偈做偖偬偸傀傚傅傴傲・・・・・ +・鵝鵞鵤鵑鵐鵙鵲鶉鶇鶫鵯鵺鶚鶤鶩鶲鷄鷁鶻 ・鵝鵞鵤鵑鵐鵙鵲鶉鶇鶫鵯鵺鶚鶤鶩鶲鷄鷁鶻 +鶸鶺鷆鷏鷂鷙鷓鷸鷦鷭鷯鷽鸚鸛鸞鹵鹹鹽麁麈 鶸鶺鷆鷏鷂鷙鷓鷸鷦鷭鷯鷽鸚鸛鸞鹵鹹鹽麁麈 +麋麌麒麕麑麝麥麩麸麪麭靡黌黎黏黐黔黜點黝 麋麌麒麕麑麝麥麩麸麪麭靡黌黎黏黐黔黜點黝 +黠黥黨黯黴黶黷黹黻黼黽鼇鼈皷鼕鼡鼬鼾齊齒 黠黥黨黯黴黶黷黹黻黼黽鼇鼈皷鼕鼡鼬鼾齊齒 +齔齣齟齠齡齦齧齬齪齷齲齶龕龜龠・・・・・ 齔齣齟齠齡齦齧齬齪齷齲齶龕龜龠・・・・・ +・堯槇遙瑤凜熙・・・・・・・・・・・・・ ・堯槇遙瑤凜熙・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +SELECT `C1`, CONVERT(`C1` using sjis) FROM `T8`; +C1 CONVERT(`C1` using sjis) +  、。,.・:;?!゛゜´`¨^ ̄_ヽ   、。,.・:;?!゛゜´`¨^ ̄_ヽ +ヾゝゞ〃仝々〆〇ー―‐/\〜‖|…‥‘’ ヾゝゞ〃仝々〆〇ー―‐/?〜‖|…‥‘’ +“”()〔〕[]{}〈〉《》「」『』【】 “”()〔〕[]{}〈〉《》「」『』【】 ++‐±×÷=≠<>≦≧∞∴♂♀°′″℃¥ +‐±×÷=≠<>≦≧∞∴♂♀°′″℃¥ +$¢£%#&*@§☆★○●◎◇・・・・・ $¢£%#&*@§☆★○●◎◇・・・・・ +・◆□■△▲▽▼※〒→←↑↓〓・・・・・ ・◆□■△▲▽▼※〒→←↑↓〓・・・・・ +・・・・・・∈∋⊆⊇⊂⊃∪∩・・・・・・ ・・・・・・∈∋⊆⊇⊂⊃∪∩・・・・・・ +・・∧∨¬⇒⇔∀∃・・・・・・・・・・・ ・・∧∨¬⇒⇔∀∃・・・・・・・・・・・ +∠⊥⌒∂∇≡≒≪≫√∽∝∵∫∬・・・・・ ∠⊥⌒∂∇≡≒≪≫√∽∝∵∫∬・・・・・ +・・ʼn♯♭♪†‡¶・・・・◯・・・・  ・・ʼn♯♭♪†‡¶・・・・◯・・・・  +・・・・・・・・・・・・・・・・0123 ・・・・・・・・・・・・・・・・0123 +456789・・・・・・・ABCDEFG 456789・・・・・・・ABCDEFG +HIJKLMNOPQRSTUVWXYZ・ HIJKLMNOPQRSTUVWXYZ・ +・・・・・abcdefghijklmno ・・・・・abcdefghijklmno +pqrstuvwxyz・・・・・・・・・ pqrstuvwxyz・・・・・・・・・ +・ぁあぃいぅうぇえぉおかがきぎくぐけげこ ・ぁあぃいぅうぇえぉおかがきぎくぐけげこ +ごさざしじすずせぜそぞただちぢっつづてで ごさざしじすずせぜそぞただちぢっつづてで +とどなにぬねのはばぱひびぴふぶぷへべぺほ とどなにぬねのはばぱひびぴふぶぷへべぺほ +ぼぽまみむめもゃやゅゆょよらりるれろゎわ ぼぽまみむめもゃやゅゆょよらりるれろゎわ +ゐゑをん・・・・・・・・・・・・・・・・ ゐゑをん・・・・・・・・・・・・・・・・ +・ァアィイゥウェエォオカガキギクグケゲコ ・ァアィイゥウェエォオカガキギクグケゲコ +ゴサザシジスズセゼソゾタダチヂッツヅテデ ゴサザシジスズセゼソゾタダチヂッツヅテデ +トドナニヌネノハバパヒビピフブプヘベペホ トドナニヌネノハバパヒビピフブプヘベペホ +ボポマミムメモャヤュユョヨラリルレロヮワ ボポマミムメモャヤュユョヨラリルレロヮワ +ヰヱヲンヴヵヶ・・・・・・・・・・・・・ ヰヱヲンヴヵヶ・・・・・・・・・・・・・ +・ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤ ・ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤ +ΥΦΧΨΩ・・・・・・・・αβγδεζη ΥΦΧΨΩ・・・・・・・・αβγδεζη +θικλμνξοπρστυφχψω・・・ θικλμνξοπρστυφχψω・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・АБВГДЕЁЖЗИЙКЛМНОПРС ・АБВГДЕЁЖЗИЙКЛМНОПРС +ТУФХЦЧШЩЪЫЬЭЮЯ・・・・・・ ТУФХЦЧШЩЪЫЬЭЮЯ・・・・・・ +・・・・・・・・・абвгдеёжзий ・・・・・・・・・абвгдеёжзий +клмнопрстуфхцчшщъыьэ клмнопрстуфхцчшщъыьэ +юя・・・・・・・・・・・・・・・・・・ юя・・・・・・・・・・・・・・・・・・ +・─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳ ・─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳ +┫┻╋┠┯┨┷┿┝┰┥┸╂・・・・・・・ ┫┻╋┠┯┨┷┿┝┰┥┸╂・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・亜唖娃阿哀愛挨姶逢葵茜穐悪握渥旭葦芦鯵 ・亜唖娃阿哀愛挨姶逢葵茜穐悪握渥旭葦芦鯵 +梓圧斡扱宛姐虻飴絢綾鮎或粟袷安庵按暗案闇 梓圧斡扱宛姐虻飴絢綾鮎或粟袷安庵按暗案闇 +鞍杏以伊位依偉囲夷委威尉惟意慰易椅為畏異 鞍杏以伊位依偉囲夷委威尉惟意慰易椅為畏異 +移維緯胃萎衣謂違遺医井亥域育郁磯一壱溢逸 移維緯胃萎衣謂違遺医井亥域育郁磯一壱溢逸 +稲茨芋鰯允印咽員因姻引飲淫胤蔭・・・・・ 稲茨芋鰯允印咽員因姻引飲淫胤蔭・・・・・ +・蓮連錬呂魯櫓炉賂路露労婁廊弄朗楼榔浪漏 ・蓮連錬呂魯櫓炉賂路露労婁廊弄朗楼榔浪漏 +牢狼篭老聾蝋郎六麓禄肋録論倭和話歪賄脇惑 牢狼篭老聾蝋郎六麓禄肋録論倭和話歪賄脇惑 +枠鷲亙亘鰐詫藁蕨椀湾碗腕・・・・・・・・ 枠鷲亙亘鰐詫藁蕨椀湾碗腕・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・弌丐丕个丱丶丼丿乂乖乘亂亅豫亊舒弍于亞 ・弌丐丕个丱丶丼丿乂乖乘亂亅豫亊舒弍于亞 +亟亠亢亰亳亶从仍仄仆仂仗仞仭仟价伉佚估佛 亟亠亢亰亳亶从仍仄仆仂仗仞仭仟价伉佚估佛 +佝佗佇佶侈侏侘佻佩佰侑佯來侖儘俔俟俎俘俛 佝佗佇佶侈侏侘佻佩佰侑佯來侖儘俔俟俎俘俛 +俑俚俐俤俥倚倨倔倪倥倅伜俶倡倩倬俾俯們倆 俑俚俐俤俥倚倨倔倪倥倅伜俶倡倩倬俾俯們倆 +偃假會偕偐偈做偖偬偸傀傚傅傴傲・・・・・ 偃假會偕偐偈做偖偬偸傀傚傅傴傲・・・・・ +・鵝鵞鵤鵑鵐鵙鵲鶉鶇鶫鵯鵺鶚鶤鶩鶲鷄鷁鶻 ・鵝鵞鵤鵑鵐鵙鵲鶉鶇鶫鵯鵺鶚鶤鶩鶲鷄鷁鶻 +鶸鶺鷆鷏鷂鷙鷓鷸鷦鷭鷯鷽鸚鸛鸞鹵鹹鹽麁麈 鶸鶺鷆鷏鷂鷙鷓鷸鷦鷭鷯鷽鸚鸛鸞鹵鹹鹽麁麈 +麋麌麒麕麑麝麥麩麸麪麭靡黌黎黏黐黔黜點黝 麋麌麒麕麑麝麥麩麸麪麭靡黌黎黏黐黔黜點黝 +黠黥黨黯黴黶黷黹黻黼黽鼇鼈皷鼕鼡鼬鼾齊齒 黠黥黨黯黴黶黷黹黻黼黽鼇鼈皷鼕鼡鼬鼾齊齒 +齔齣齟齠齡齦齧齬齪齷齲齶龕龜龠・・・・・ 齔齣齟齠齡齦齧齬齪齷齲齶龕龜龠・・・・・ +・堯槇遙瑤凜熙・・・・・・・・・・・・・ ・堯槇遙瑤凜熙・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +SELECT `C1`, CONVERT(`C1` using ujis) FROM `T9`; +C1 CONVERT(`C1` using ujis) +・・・・・・・・・・・・・・・˘ˇ¸˙˝ ・・・・・・・・・・・・・・・˘ˇ¸˙˝ +・˛˚~΄΅・・・・・・・・¡¦¿・・・ ・˛˚?΄΅・・・・・・・・¡¦¿・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・ºª©®™ ・・・・・・・・・・・・・・・ºª©®™ +¤№・・・・・・・・・・・・・・・・・・ ¤№・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・ΆΈΉΊΪ・Ό・ΎΫ・Ώ・・・ ・・・・・ΆΈΉΊΪ・Ό・ΎΫ・Ώ・・・ +・άέήίϊΐόςύϋΰώ・・・・・・・ ・άέήίϊΐόςύϋΰώ・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・ЂЃЄЅІЇ ・・・・・・・・・・・・・・ЂЃЄЅІЇ +ЈЉЊЋЌЎЏ・・・・・・・・・・・・・ ЈЉЊЋЌЎЏ・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・ђѓєѕіїјљњћќўџ・・・・・ ・・ђѓєѕіїјљњћќўџ・・・・・ +・ÆĐ・Ħ・IJ・ŁĿ・ŊØŒ・ŦÞ・・・ ・ÆĐ・Ħ・IJ・ŁĿ・ŊØŒ・ŦÞ・・・ +・・・・・・・・・・・・・æđðħıijĸ ・・・・・・・・・・・・・æđðħıijĸ +łŀʼnŋøœßŧþ・・・・・・・・・・・ łŀʼnŋøœßŧþ・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・ÁÀÄÂĂǍĀĄÅÃĆĈČÇĊĎÉÈË ・ÁÀÄÂĂǍĀĄÅÃĆĈČÇĊĎÉÈË +ÊĚĖĒĘ・ĜĞĢĠĤÍÌÏÎǏİĪĮĨ ÊĚĖĒĘ・ĜĞĢĠĤÍÌÏÎǏİĪĮĨ +ĴĶĹĽĻŃŇŅÑÓÒÖÔǑŐŌÕŔŘŖ ĴĶĹĽĻŃŇŅÑÓÒÖÔǑŐŌÕŔŘŖ +ŚŜŠŞŤŢÚÙÜÛŬǓŰŪŲŮŨǗǛǙ ŚŜŠŞŤŢÚÙÜÛŬǓŰŪŲŮŨǗǛǙ +ǕŴÝŸŶŹŽŻ・・・・・・・・・・・・ ǕŴÝŸŶŹŽŻ・・・・・・・・・・・・ +・áàäâăǎāąåãćĉčçċďéèë ・áàäâăǎāąåãćĉčçċďéèë +êěėēęǵĝğ・ġĥíìïîǐ・īįĩ êěėēęǵĝğ・ġĥíìïîǐ・īįĩ +ĵķĺľļńňņñóòöôǒőōõŕřŗ ĵķĺľļńňņñóòöôǒőōõŕřŗ +śŝšşťţúùüûŭǔűūųůũǘǜǚ śŝšşťţúùüûŭǔűūųůũǘǜǚ +ǖŵýÿŷźžż・・・・・・・・・・・・ ǖŵýÿŷźžż・・・・・・・・・・・・ +・丂丄丅丌丒丟丣两丨丫丮丯丰丵乀乁乄乇乑 ・丂丄丅丌丒丟丣两丨丫丮丯丰丵乀乁乄乇乑 +乚乜乣乨乩乴乵乹乿亍亖亗亝亯亹仃仐仚仛仠 乚乜乣乨乩乴乵乹乿亍亖亗亝亯亹仃仐仚仛仠 +仡仢仨仯仱仳仵份仾仿伀伂伃伈伋伌伒伕伖众 仡仢仨仯仱仳仵份仾仿伀伂伃伈伋伌伒伕伖众 +伙伮伱你伳伵伷伹伻伾佀佂佈佉佋佌佒佔佖佘 伙伮伱你伳伵伷伹伻伾佀佂佈佉佋佌佒佔佖佘 +佟佣佪佬佮佱佷佸佹佺佽佾侁侂侄・・・・・ 佟佣佪佬佮佱佷佸佹佺佽佾侁侂侄・・・・・ +・黸黿鼂鼃鼉鼏鼐鼑鼒鼔鼖鼗鼙鼚鼛鼟鼢鼦鼪 ・黸黿鼂鼃鼉鼏鼐鼑鼒鼔鼖鼗鼙鼚鼛鼟鼢鼦鼪 +鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃齄齅齆齇齓齕齖 鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃齄齅齆齇齓齕齖 +齗齘齚齝齞齨齩齭齮齯齰齱齳齵齺齽龏龐龑龒 齗齘齚齝齞齨齩齭齮齯齰齱齳齵齺齽龏龐龑龒 +龔龖龗龞龡龢龣龥・・・・・・・・・・・・ 龔龖龗龞龡龢龣龥・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +SELECT `C1`, CONVERT(`C1` using ucs2) FROM `T9`; +C1 CONVERT(`C1` using ucs2) +・・・・・・・・・・・・・・・˘ˇ¸˙˝ ・・・・・・・・・・・・・・・˘ˇ¸˙˝ +・˛˚~΄΅・・・・・・・・¡¦¿・・・ ・˛˚~΄΅・・・・・・・・¡¦¿・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・ºª©®™ ・・・・・・・・・・・・・・・ºª©®™ +¤№・・・・・・・・・・・・・・・・・・ ¤№・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・ΆΈΉΊΪ・Ό・ΎΫ・Ώ・・・ ・・・・・ΆΈΉΊΪ・Ό・ΎΫ・Ώ・・・ +・άέήίϊΐόςύϋΰώ・・・・・・・ ・άέήίϊΐόςύϋΰώ・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・ЂЃЄЅІЇ ・・・・・・・・・・・・・・ЂЃЄЅІЇ +ЈЉЊЋЌЎЏ・・・・・・・・・・・・・ ЈЉЊЋЌЎЏ・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・ђѓєѕіїјљњћќўџ・・・・・ ・・ђѓєѕіїјљњћќўџ・・・・・ +・ÆĐ・Ħ・IJ・ŁĿ・ŊØŒ・ŦÞ・・・ ・ÆĐ・Ħ・IJ・ŁĿ・ŊØŒ・ŦÞ・・・ +・・・・・・・・・・・・・æđðħıijĸ ・・・・・・・・・・・・・æđðħıijĸ +łŀʼnŋøœßŧþ・・・・・・・・・・・ łŀʼnŋøœßŧþ・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・ÁÀÄÂĂǍĀĄÅÃĆĈČÇĊĎÉÈË ・ÁÀÄÂĂǍĀĄÅÃĆĈČÇĊĎÉÈË +ÊĚĖĒĘ・ĜĞĢĠĤÍÌÏÎǏİĪĮĨ ÊĚĖĒĘ・ĜĞĢĠĤÍÌÏÎǏİĪĮĨ +ĴĶĹĽĻŃŇŅÑÓÒÖÔǑŐŌÕŔŘŖ ĴĶĹĽĻŃŇŅÑÓÒÖÔǑŐŌÕŔŘŖ +ŚŜŠŞŤŢÚÙÜÛŬǓŰŪŲŮŨǗǛǙ ŚŜŠŞŤŢÚÙÜÛŬǓŰŪŲŮŨǗǛǙ +ǕŴÝŸŶŹŽŻ・・・・・・・・・・・・ ǕŴÝŸŶŹŽŻ・・・・・・・・・・・・ +・áàäâăǎāąåãćĉčçċďéèë ・áàäâăǎāąåãćĉčçċďéèë +êěėēęǵĝğ・ġĥíìïîǐ・īįĩ êěėēęǵĝğ・ġĥíìïîǐ・īįĩ +ĵķĺľļńňņñóòöôǒőōõŕřŗ ĵķĺľļńňņñóòöôǒőōõŕřŗ +śŝšşťţúùüûŭǔűūųůũǘǜǚ śŝšşťţúùüûŭǔűūųůũǘǜǚ +ǖŵýÿŷźžż・・・・・・・・・・・・ ǖŵýÿŷźžż・・・・・・・・・・・・ +・丂丄丅丌丒丟丣两丨丫丮丯丰丵乀乁乄乇乑 ・丂丄丅丌丒丟丣两丨丫丮丯丰丵乀乁乄乇乑 +乚乜乣乨乩乴乵乹乿亍亖亗亝亯亹仃仐仚仛仠 乚乜乣乨乩乴乵乹乿亍亖亗亝亯亹仃仐仚仛仠 +仡仢仨仯仱仳仵份仾仿伀伂伃伈伋伌伒伕伖众 仡仢仨仯仱仳仵份仾仿伀伂伃伈伋伌伒伕伖众 +伙伮伱你伳伵伷伹伻伾佀佂佈佉佋佌佒佔佖佘 伙伮伱你伳伵伷伹伻伾佀佂佈佉佋佌佒佔佖佘 +佟佣佪佬佮佱佷佸佹佺佽佾侁侂侄・・・・・ 佟佣佪佬佮佱佷佸佹佺佽佾侁侂侄・・・・・ +・黸黿鼂鼃鼉鼏鼐鼑鼒鼔鼖鼗鼙鼚鼛鼟鼢鼦鼪 ・黸黿鼂鼃鼉鼏鼐鼑鼒鼔鼖鼗鼙鼚鼛鼟鼢鼦鼪 +鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃齄齅齆齇齓齕齖 鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃齄齅齆齇齓齕齖 +齗齘齚齝齞齨齩齭齮齯齰齱齳齵齺齽龏龐龑龒 齗齘齚齝齞齨齩齭齮齯齰齱齳齵齺齽龏龐龑龒 +龔龖龗龞龡龢龣龥・・・・・・・・・・・・ 龔龖龗龞龡龢龣龥・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +SELECT `C1`, CONVERT(`C1` using sjis) FROM `T9`; +C1 CONVERT(`C1` using sjis) +・・・・・・・・・・・・・・・˘ˇ¸˙˝ ・・・・・・・・・・・・・・・????? +・˛˚~΄΅・・・・・・・・¡¦¿・・・ ・?????・・・・・・・・???・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・ºª©®™ ・・・・・・・・・・・・・・・????? +¤№・・・・・・・・・・・・・・・・・・ ??・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・ΆΈΉΊΪ・Ό・ΎΫ・Ώ・・・ ・・・・・?????・?・??・?・・・ +・άέήίϊΐόςύϋΰώ・・・・・・・ ・????????????・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・ЂЃЄЅІЇ ・・・・・・・・・・・・・・?????? +ЈЉЊЋЌЎЏ・・・・・・・・・・・・・ ???????・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・ђѓєѕіїјљњћќўџ・・・・・ ・・?????????????・・・・・ +・ÆĐ・Ħ・IJ・ŁĿ・ŊØŒ・ŦÞ・・・ ・??・?・?・??・???・??・・・ +・・・・・・・・・・・・・æđðħıijĸ ・・・・・・・・・・・・・??????? +łŀʼnŋøœßŧþ・・・・・・・・・・・ ?????????・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・ÁÀÄÂĂǍĀĄÅÃĆĈČÇĊĎÉÈË ・??????????????????? +ÊĚĖĒĘ・ĜĞĢĠĤÍÌÏÎǏİĪĮĨ ?????・?????????????? +ĴĶĹĽĻŃŇŅÑÓÒÖÔǑŐŌÕŔŘŖ ???????????????????? +ŚŜŠŞŤŢÚÙÜÛŬǓŰŪŲŮŨǗǛǙ ???????????????????? +ǕŴÝŸŶŹŽŻ・・・・・・・・・・・・ ????????・・・・・・・・・・・・ +・áàäâăǎāąåãćĉčçċďéèë ・??????????????????? +êěėēęǵĝğ・ġĥíìïîǐ・īįĩ ????????・???????・??? +ĵķĺľļńňņñóòöôǒőōõŕřŗ ???????????????????? +śŝšşťţúùüûŭǔűūųůũǘǜǚ ???????????????????? +ǖŵýÿŷźžż・・・・・・・・・・・・ ????????・・・・・・・・・・・・ +・丂丄丅丌丒丟丣两丨丫丮丯丰丵乀乁乄乇乑 ・??????????????????? +乚乜乣乨乩乴乵乹乿亍亖亗亝亯亹仃仐仚仛仠 ???????????????????? +仡仢仨仯仱仳仵份仾仿伀伂伃伈伋伌伒伕伖众 ???????????????????? +伙伮伱你伳伵伷伹伻伾佀佂佈佉佋佌佒佔佖佘 ???????????????????? +佟佣佪佬佮佱佷佸佹佺佽佾侁侂侄・・・・・ ???????????????・・・・・ +・黸黿鼂鼃鼉鼏鼐鼑鼒鼔鼖鼗鼙鼚鼛鼟鼢鼦鼪 ・??????????????????? +鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃齄齅齆齇齓齕齖 ???????????????????? +齗齘齚齝齞齨齩齭齮齯齰齱齳齵齺齽龏龐龑龒 ???????????????????? +龔龖龗龞龡龢龣龥・・・・・・・・・・・・ ????????・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +SELECT `C1`, CONVERT(`C1` using ujis) FROM `T10`; +C1 CONVERT(`C1` using ujis) + !"#$%&'()*+,-./ !"#$%&'()*+,-./ +0123456789:;<=>? 0123456789:;<=>? +@ABCDEFGHIJKLMNO @ABCDEFGHIJKLMNO +PQRSTUVWXYZ[\]^_ PQRSTUVWXYZ[\]^_ +abcdefghijklmno abcdefghijklmno +pqrstuvwxyz{|}~ pqrstuvwxyz{|}~ + 。「」、・ヲァィゥェォャュョッ 。「」、・ヲァィゥェォャュョッ +ーアイウエオカキクケコサシスセソ ーアイウエオカキクケコサシスセソ +タチツテトナニヌネノハヒフヘホマ タチツテトナニヌネノハヒフヘホマ +ミムメモヤユヨラリルレロワン゙゚ ミムメモヤユヨラリルレロワン゙゚ +SELECT `C1`, CONVERT(`C1` using ucs2) FROM `T10`; +C1 CONVERT(`C1` using ucs2) + !"#$%&'()*+,-./ !"#$%&'()*+,-./ +0123456789:;<=>? 0123456789:;<=>? +@ABCDEFGHIJKLMNO @ABCDEFGHIJKLMNO +PQRSTUVWXYZ[\]^_ PQRSTUVWXYZ[\]^_ +abcdefghijklmno abcdefghijklmno +pqrstuvwxyz{|}~ pqrstuvwxyz{|}~ + 。「」、・ヲァィゥェォャュョッ 。「」、・ヲァィゥェォャュョッ +ーアイウエオカキクケコサシスセソ ーアイウエオカキクケコサシスセソ +タチツテトナニヌネノハヒフヘホマ タチツテトナニヌネノハヒフヘホマ +ミムメモヤユヨラリルレロワン゙゚ ミムメモヤユヨラリルレロワン゙゚ +SELECT `C1`, CONVERT(`C1` using sjis) FROM `T10`; +C1 CONVERT(`C1` using sjis) + !"#$%&'()*+,-./ !"#$%&'()*+,-./ +0123456789:;<=>? 0123456789:;<=>? +@ABCDEFGHIJKLMNO @ABCDEFGHIJKLMNO +PQRSTUVWXYZ[\]^_ PQRSTUVWXYZ[\]^_ +abcdefghijklmno abcdefghijklmno +pqrstuvwxyz{|}~ pqrstuvwxyz{|}~ + 。「」、・ヲァィゥェォャュョッ 。「」、・ヲァィゥェォャュョッ +ーアイウエオカキクケコサシスセソ ーアイウエオカキクケコサシスセソ +タチツテトナニヌネノハヒフヘホマ タチツテトナニヌネノハヒフヘホマ +ミムメモヤユヨラリルレロワン゙゚ ミムメモヤユヨラリルレロワン゙゚ +SELECT `C1`, CONVERT(`C1` using ujis) FROM `T11`; +C1 CONVERT(`C1` using ujis) +  、。,.・:;?!゛゜´`¨^ ̄_ヽ   、。,.・:;?!゛゜´`¨^ ̄_ヽ +ヾゝゞ〃仝々〆〇ー―‐/\〜‖|…‥‘’ ヾゝゞ〃仝々〆〇ー―‐/?〜‖|…‥‘’ +“”()〔〕[]{}〈〉《》「」『』【】 “”()〔〕[]{}〈〉《》「」『』【】 ++‐±×÷=≠<>≦≧∞∴♂♀°′″℃¥ +‐±×÷=≠<>≦≧∞∴♂♀°′″℃¥ +$¢£%#&*@§☆★○●◎◇・・・・・ $¢£%#&*@§☆★○●◎◇・・・・・ +・◆□■△▲▽▼※〒→←↑↓〓・・・・・ ・◆□■△▲▽▼※〒→←↑↓〓・・・・・ +・・・・・・∈∋⊆⊇⊂⊃∪∩・・・・・・ ・・・・・・∈∋⊆⊇⊂⊃∪∩・・・・・・ +・・∧∨¬⇒⇔∀∃・・・・・・・・・・・ ・・∧∨¬⇒⇔∀∃・・・・・・・・・・・ +∠⊥⌒∂∇≡≒≪≫√∽∝∵∫∬・・・・・ ∠⊥⌒∂∇≡≒≪≫√∽∝∵∫∬・・・・・ +・・ʼn♯♭♪†‡¶・・・・◯・・・・  ・・ʼn♯♭♪†‡¶・・・・◯・・・・  +・・・・・・・・・・・・・・・・0123 ・・・・・・・・・・・・・・・・0123 +456789・・・・・・・ABCDEFG 456789・・・・・・・ABCDEFG +HIJKLMNOPQRSTUVWXYZ・ HIJKLMNOPQRSTUVWXYZ・ +・・・・・abcdefghijklmno ・・・・・abcdefghijklmno +pqrstuvwxyz・・・・・・・・・ pqrstuvwxyz・・・・・・・・・ +・ぁあぃいぅうぇえぉおかがきぎくぐけげこ ・ぁあぃいぅうぇえぉおかがきぎくぐけげこ +ごさざしじすずせぜそぞただちぢっつづてで ごさざしじすずせぜそぞただちぢっつづてで +とどなにぬねのはばぱひびぴふぶぷへべぺほ とどなにぬねのはばぱひびぴふぶぷへべぺほ +ぼぽまみむめもゃやゅゆょよらりるれろゎわ ぼぽまみむめもゃやゅゆょよらりるれろゎわ +ゐゑをん・・・・・・・・・・・・・・・・ ゐゑをん・・・・・・・・・・・・・・・・ +・ァアィイゥウェエォオカガキギクグケゲコ ・ァアィイゥウェエォオカガキギクグケゲコ +ゴサザシジスズセゼソゾタダチヂッツヅテデ ゴサザシジスズセゼソゾタダチヂッツヅテデ +トドナニヌネノハバパヒビピフブプヘベペホ トドナニヌネノハバパヒビピフブプヘベペホ +ボポマミムメモャヤュユョヨラリルレロヮワ ボポマミムメモャヤュユョヨラリルレロヮワ +ヰヱヲンヴヵヶ・・・・・・・・・・・・・ ヰヱヲンヴヵヶ・・・・・・・・・・・・・ +・ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤ ・ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤ +ΥΦΧΨΩ・・・・・・・・αβγδεζη ΥΦΧΨΩ・・・・・・・・αβγδεζη +θικλμνξοπρστυφχψω・・・ θικλμνξοπρστυφχψω・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・АБВГДЕЁЖЗИЙКЛМНОПРС ・АБВГДЕЁЖЗИЙКЛМНОПРС +ТУФХЦЧШЩЪЫЬЭЮЯ・・・・・・ ТУФХЦЧШЩЪЫЬЭЮЯ・・・・・・ +・・・・・・・・・абвгдеёжзий ・・・・・・・・・абвгдеёжзий +клмнопрстуфхцчшщъыьэ клмнопрстуфхцчшщъыьэ +юя・・・・・・・・・・・・・・・・・・ юя・・・・・・・・・・・・・・・・・・ +・─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳ ・─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳ +┫┻╋┠┯┨┷┿┝┰┥┸╂・・・・・・・ ┫┻╋┠┯┨┷┿┝┰┥┸╂・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・亜唖娃阿哀愛挨姶逢葵茜穐悪握渥旭葦芦鯵 ・亜唖娃阿哀愛挨姶逢葵茜穐悪握渥旭葦芦鯵 +梓圧斡扱宛姐虻飴絢綾鮎或粟袷安庵按暗案闇 梓圧斡扱宛姐虻飴絢綾鮎或粟袷安庵按暗案闇 +鞍杏以伊位依偉囲夷委威尉惟意慰易椅為畏異 鞍杏以伊位依偉囲夷委威尉惟意慰易椅為畏異 +移維緯胃萎衣謂違遺医井亥域育郁磯一壱溢逸 移維緯胃萎衣謂違遺医井亥域育郁磯一壱溢逸 +稲茨芋鰯允印咽員因姻引飲淫胤蔭・・・・・ 稲茨芋鰯允印咽員因姻引飲淫胤蔭・・・・・ +・蓮連錬呂魯櫓炉賂路露労婁廊弄朗楼榔浪漏 ・蓮連錬呂魯櫓炉賂路露労婁廊弄朗楼榔浪漏 +牢狼篭老聾蝋郎六麓禄肋録論倭和話歪賄脇惑 牢狼篭老聾蝋郎六麓禄肋録論倭和話歪賄脇惑 +枠鷲亙亘鰐詫藁蕨椀湾碗腕・・・・・・・・ 枠鷲亙亘鰐詫藁蕨椀湾碗腕・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・弌丐丕个丱丶丼丿乂乖乘亂亅豫亊舒弍于亞 ・弌丐丕个丱丶丼丿乂乖乘亂亅豫亊舒弍于亞 +亟亠亢亰亳亶从仍仄仆仂仗仞仭仟价伉佚估佛 亟亠亢亰亳亶从仍仄仆仂仗仞仭仟价伉佚估佛 +佝佗佇佶侈侏侘佻佩佰侑佯來侖儘俔俟俎俘俛 佝佗佇佶侈侏侘佻佩佰侑佯來侖儘俔俟俎俘俛 +俑俚俐俤俥倚倨倔倪倥倅伜俶倡倩倬俾俯們倆 俑俚俐俤俥倚倨倔倪倥倅伜俶倡倩倬俾俯們倆 +偃假會偕偐偈做偖偬偸傀傚傅傴傲・・・・・ 偃假會偕偐偈做偖偬偸傀傚傅傴傲・・・・・ +・鵝鵞鵤鵑鵐鵙鵲鶉鶇鶫鵯鵺鶚鶤鶩鶲鷄鷁鶻 ・鵝鵞鵤鵑鵐鵙鵲鶉鶇鶫鵯鵺鶚鶤鶩鶲鷄鷁鶻 +鶸鶺鷆鷏鷂鷙鷓鷸鷦鷭鷯鷽鸚鸛鸞鹵鹹鹽麁麈 鶸鶺鷆鷏鷂鷙鷓鷸鷦鷭鷯鷽鸚鸛鸞鹵鹹鹽麁麈 +麋麌麒麕麑麝麥麩麸麪麭靡黌黎黏黐黔黜點黝 麋麌麒麕麑麝麥麩麸麪麭靡黌黎黏黐黔黜點黝 +黠黥黨黯黴黶黷黹黻黼黽鼇鼈皷鼕鼡鼬鼾齊齒 黠黥黨黯黴黶黷黹黻黼黽鼇鼈皷鼕鼡鼬鼾齊齒 +齔齣齟齠齡齦齧齬齪齷齲齶龕龜龠・・・・・ 齔齣齟齠齡齦齧齬齪齷齲齶龕龜龠・・・・・ +・堯槇遙瑤凜熙・・・・・・・・・・・・・ ・堯槇遙瑤凜熙・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +SELECT `C1`, CONVERT(`C1` using ucs2) FROM `T11`; +C1 CONVERT(`C1` using ucs2) +  、。,.・:;?!゛゜´`¨^ ̄_ヽ   、。,.・:;?!゛゜´`¨^ ̄_ヽ +ヾゝゞ〃仝々〆〇ー―‐/\〜‖|…‥‘’ ヾゝゞ〃仝々〆〇ー―‐/\〜‖|…‥‘’ +“”()〔〕[]{}〈〉《》「」『』【】 “”()〔〕[]{}〈〉《》「」『』【】 ++‐±×÷=≠<>≦≧∞∴♂♀°′″℃¥ +‐±×÷=≠<>≦≧∞∴♂♀°′″℃¥ +$¢£%#&*@§☆★○●◎◇・・・・・ $¢£%#&*@§☆★○●◎◇・・・・・ +・◆□■△▲▽▼※〒→←↑↓〓・・・・・ ・◆□■△▲▽▼※〒→←↑↓〓・・・・・ +・・・・・・∈∋⊆⊇⊂⊃∪∩・・・・・・ ・・・・・・∈∋⊆⊇⊂⊃∪∩・・・・・・ +・・∧∨¬⇒⇔∀∃・・・・・・・・・・・ ・・∧∨¬⇒⇔∀∃・・・・・・・・・・・ +∠⊥⌒∂∇≡≒≪≫√∽∝∵∫∬・・・・・ ∠⊥⌒∂∇≡≒≪≫√∽∝∵∫∬・・・・・ +・・ʼn♯♭♪†‡¶・・・・◯・・・・  ・・ʼn♯♭♪†‡¶・・・・◯・・・・  +・・・・・・・・・・・・・・・・0123 ・・・・・・・・・・・・・・・・0123 +456789・・・・・・・ABCDEFG 456789・・・・・・・ABCDEFG +HIJKLMNOPQRSTUVWXYZ・ HIJKLMNOPQRSTUVWXYZ・ +・・・・・abcdefghijklmno ・・・・・abcdefghijklmno +pqrstuvwxyz・・・・・・・・・ pqrstuvwxyz・・・・・・・・・ +・ぁあぃいぅうぇえぉおかがきぎくぐけげこ ・ぁあぃいぅうぇえぉおかがきぎくぐけげこ +ごさざしじすずせぜそぞただちぢっつづてで ごさざしじすずせぜそぞただちぢっつづてで +とどなにぬねのはばぱひびぴふぶぷへべぺほ とどなにぬねのはばぱひびぴふぶぷへべぺほ +ぼぽまみむめもゃやゅゆょよらりるれろゎわ ぼぽまみむめもゃやゅゆょよらりるれろゎわ +ゐゑをん・・・・・・・・・・・・・・・・ ゐゑをん・・・・・・・・・・・・・・・・ +・ァアィイゥウェエォオカガキギクグケゲコ ・ァアィイゥウェエォオカガキギクグケゲコ +ゴサザシジスズセゼソゾタダチヂッツヅテデ ゴサザシジスズセゼソゾタダチヂッツヅテデ +トドナニヌネノハバパヒビピフブプヘベペホ トドナニヌネノハバパヒビピフブプヘベペホ +ボポマミムメモャヤュユョヨラリルレロヮワ ボポマミムメモャヤュユョヨラリルレロヮワ +ヰヱヲンヴヵヶ・・・・・・・・・・・・・ ヰヱヲンヴヵヶ・・・・・・・・・・・・・ +・ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤ ・ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤ +ΥΦΧΨΩ・・・・・・・・αβγδεζη ΥΦΧΨΩ・・・・・・・・αβγδεζη +θικλμνξοπρστυφχψω・・・ θικλμνξοπρστυφχψω・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・АБВГДЕЁЖЗИЙКЛМНОПРС ・АБВГДЕЁЖЗИЙКЛМНОПРС +ТУФХЦЧШЩЪЫЬЭЮЯ・・・・・・ ТУФХЦЧШЩЪЫЬЭЮЯ・・・・・・ +・・・・・・・・・абвгдеёжзий ・・・・・・・・・абвгдеёжзий +клмнопрстуфхцчшщъыьэ клмнопрстуфхцчшщъыьэ +юя・・・・・・・・・・・・・・・・・・ юя・・・・・・・・・・・・・・・・・・ +・─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳ ・─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳ +┫┻╋┠┯┨┷┿┝┰┥┸╂・・・・・・・ ┫┻╋┠┯┨┷┿┝┰┥┸╂・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・亜唖娃阿哀愛挨姶逢葵茜穐悪握渥旭葦芦鯵 ・亜唖娃阿哀愛挨姶逢葵茜穐悪握渥旭葦芦鯵 +梓圧斡扱宛姐虻飴絢綾鮎或粟袷安庵按暗案闇 梓圧斡扱宛姐虻飴絢綾鮎或粟袷安庵按暗案闇 +鞍杏以伊位依偉囲夷委威尉惟意慰易椅為畏異 鞍杏以伊位依偉囲夷委威尉惟意慰易椅為畏異 +移維緯胃萎衣謂違遺医井亥域育郁磯一壱溢逸 移維緯胃萎衣謂違遺医井亥域育郁磯一壱溢逸 +稲茨芋鰯允印咽員因姻引飲淫胤蔭・・・・・ 稲茨芋鰯允印咽員因姻引飲淫胤蔭・・・・・ +・蓮連錬呂魯櫓炉賂路露労婁廊弄朗楼榔浪漏 ・蓮連錬呂魯櫓炉賂路露労婁廊弄朗楼榔浪漏 +牢狼篭老聾蝋郎六麓禄肋録論倭和話歪賄脇惑 牢狼篭老聾蝋郎六麓禄肋録論倭和話歪賄脇惑 +枠鷲亙亘鰐詫藁蕨椀湾碗腕・・・・・・・・ 枠鷲亙亘鰐詫藁蕨椀湾碗腕・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・弌丐丕个丱丶丼丿乂乖乘亂亅豫亊舒弍于亞 ・弌丐丕个丱丶丼丿乂乖乘亂亅豫亊舒弍于亞 +亟亠亢亰亳亶从仍仄仆仂仗仞仭仟价伉佚估佛 亟亠亢亰亳亶从仍仄仆仂仗仞仭仟价伉佚估佛 +佝佗佇佶侈侏侘佻佩佰侑佯來侖儘俔俟俎俘俛 佝佗佇佶侈侏侘佻佩佰侑佯來侖儘俔俟俎俘俛 +俑俚俐俤俥倚倨倔倪倥倅伜俶倡倩倬俾俯們倆 俑俚俐俤俥倚倨倔倪倥倅伜俶倡倩倬俾俯們倆 +偃假會偕偐偈做偖偬偸傀傚傅傴傲・・・・・ 偃假會偕偐偈做偖偬偸傀傚傅傴傲・・・・・ +・鵝鵞鵤鵑鵐鵙鵲鶉鶇鶫鵯鵺鶚鶤鶩鶲鷄鷁鶻 ・鵝鵞鵤鵑鵐鵙鵲鶉鶇鶫鵯鵺鶚鶤鶩鶲鷄鷁鶻 +鶸鶺鷆鷏鷂鷙鷓鷸鷦鷭鷯鷽鸚鸛鸞鹵鹹鹽麁麈 鶸鶺鷆鷏鷂鷙鷓鷸鷦鷭鷯鷽鸚鸛鸞鹵鹹鹽麁麈 +麋麌麒麕麑麝麥麩麸麪麭靡黌黎黏黐黔黜點黝 麋麌麒麕麑麝麥麩麸麪麭靡黌黎黏黐黔黜點黝 +黠黥黨黯黴黶黷黹黻黼黽鼇鼈皷鼕鼡鼬鼾齊齒 黠黥黨黯黴黶黷黹黻黼黽鼇鼈皷鼕鼡鼬鼾齊齒 +齔齣齟齠齡齦齧齬齪齷齲齶龕龜龠・・・・・ 齔齣齟齠齡齦齧齬齪齷齲齶龕龜龠・・・・・ +・堯槇遙瑤凜熙・・・・・・・・・・・・・ ・堯槇遙瑤凜熙・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +SELECT `C1`, CONVERT(`C1` using sjis) FROM `T11`; +C1 CONVERT(`C1` using sjis) +  、。,.・:;?!゛゜´`¨^ ̄_ヽ   、。,.・:;?!゛゜´`¨^ ̄_ヽ +ヾゝゞ〃仝々〆〇ー―‐/\〜‖|…‥‘’ ヾゝゞ〃仝々〆〇ー―‐/?〜‖|…‥‘’ +“”()〔〕[]{}〈〉《》「」『』【】 “”()〔〕[]{}〈〉《》「」『』【】 ++‐±×÷=≠<>≦≧∞∴♂♀°′″℃¥ +‐±×÷=≠<>≦≧∞∴♂♀°′″℃¥ +$¢£%#&*@§☆★○●◎◇・・・・・ $¢£%#&*@§☆★○●◎◇・・・・・ +・◆□■△▲▽▼※〒→←↑↓〓・・・・・ ・◆□■△▲▽▼※〒→←↑↓〓・・・・・ +・・・・・・∈∋⊆⊇⊂⊃∪∩・・・・・・ ・・・・・・∈∋⊆⊇⊂⊃∪∩・・・・・・ +・・∧∨¬⇒⇔∀∃・・・・・・・・・・・ ・・∧∨¬⇒⇔∀∃・・・・・・・・・・・ +∠⊥⌒∂∇≡≒≪≫√∽∝∵∫∬・・・・・ ∠⊥⌒∂∇≡≒≪≫√∽∝∵∫∬・・・・・ +・・ʼn♯♭♪†‡¶・・・・◯・・・・  ・・ʼn♯♭♪†‡¶・・・・◯・・・・  +・・・・・・・・・・・・・・・・0123 ・・・・・・・・・・・・・・・・0123 +456789・・・・・・・ABCDEFG 456789・・・・・・・ABCDEFG +HIJKLMNOPQRSTUVWXYZ・ HIJKLMNOPQRSTUVWXYZ・ +・・・・・abcdefghijklmno ・・・・・abcdefghijklmno +pqrstuvwxyz・・・・・・・・・ pqrstuvwxyz・・・・・・・・・ +・ぁあぃいぅうぇえぉおかがきぎくぐけげこ ・ぁあぃいぅうぇえぉおかがきぎくぐけげこ +ごさざしじすずせぜそぞただちぢっつづてで ごさざしじすずせぜそぞただちぢっつづてで +とどなにぬねのはばぱひびぴふぶぷへべぺほ とどなにぬねのはばぱひびぴふぶぷへべぺほ +ぼぽまみむめもゃやゅゆょよらりるれろゎわ ぼぽまみむめもゃやゅゆょよらりるれろゎわ +ゐゑをん・・・・・・・・・・・・・・・・ ゐゑをん・・・・・・・・・・・・・・・・ +・ァアィイゥウェエォオカガキギクグケゲコ ・ァアィイゥウェエォオカガキギクグケゲコ +ゴサザシジスズセゼソゾタダチヂッツヅテデ ゴサザシジスズセゼソゾタダチヂッツヅテデ +トドナニヌネノハバパヒビピフブプヘベペホ トドナニヌネノハバパヒビピフブプヘベペホ +ボポマミムメモャヤュユョヨラリルレロヮワ ボポマミムメモャヤュユョヨラリルレロヮワ +ヰヱヲンヴヵヶ・・・・・・・・・・・・・ ヰヱヲンヴヵヶ・・・・・・・・・・・・・ +・ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤ ・ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤ +ΥΦΧΨΩ・・・・・・・・αβγδεζη ΥΦΧΨΩ・・・・・・・・αβγδεζη +θικλμνξοπρστυφχψω・・・ θικλμνξοπρστυφχψω・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・АБВГДЕЁЖЗИЙКЛМНОПРС ・АБВГДЕЁЖЗИЙКЛМНОПРС +ТУФХЦЧШЩЪЫЬЭЮЯ・・・・・・ ТУФХЦЧШЩЪЫЬЭЮЯ・・・・・・ +・・・・・・・・・абвгдеёжзий ・・・・・・・・・абвгдеёжзий +клмнопрстуфхцчшщъыьэ клмнопрстуфхцчшщъыьэ +юя・・・・・・・・・・・・・・・・・・ юя・・・・・・・・・・・・・・・・・・ +・─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳ ・─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳ +┫┻╋┠┯┨┷┿┝┰┥┸╂・・・・・・・ ┫┻╋┠┯┨┷┿┝┰┥┸╂・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・亜唖娃阿哀愛挨姶逢葵茜穐悪握渥旭葦芦鯵 ・亜唖娃阿哀愛挨姶逢葵茜穐悪握渥旭葦芦鯵 +梓圧斡扱宛姐虻飴絢綾鮎或粟袷安庵按暗案闇 梓圧斡扱宛姐虻飴絢綾鮎或粟袷安庵按暗案闇 +鞍杏以伊位依偉囲夷委威尉惟意慰易椅為畏異 鞍杏以伊位依偉囲夷委威尉惟意慰易椅為畏異 +移維緯胃萎衣謂違遺医井亥域育郁磯一壱溢逸 移維緯胃萎衣謂違遺医井亥域育郁磯一壱溢逸 +稲茨芋鰯允印咽員因姻引飲淫胤蔭・・・・・ 稲茨芋鰯允印咽員因姻引飲淫胤蔭・・・・・ +・蓮連錬呂魯櫓炉賂路露労婁廊弄朗楼榔浪漏 ・蓮連錬呂魯櫓炉賂路露労婁廊弄朗楼榔浪漏 +牢狼篭老聾蝋郎六麓禄肋録論倭和話歪賄脇惑 牢狼篭老聾蝋郎六麓禄肋録論倭和話歪賄脇惑 +枠鷲亙亘鰐詫藁蕨椀湾碗腕・・・・・・・・ 枠鷲亙亘鰐詫藁蕨椀湾碗腕・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・弌丐丕个丱丶丼丿乂乖乘亂亅豫亊舒弍于亞 ・弌丐丕个丱丶丼丿乂乖乘亂亅豫亊舒弍于亞 +亟亠亢亰亳亶从仍仄仆仂仗仞仭仟价伉佚估佛 亟亠亢亰亳亶从仍仄仆仂仗仞仭仟价伉佚估佛 +佝佗佇佶侈侏侘佻佩佰侑佯來侖儘俔俟俎俘俛 佝佗佇佶侈侏侘佻佩佰侑佯來侖儘俔俟俎俘俛 +俑俚俐俤俥倚倨倔倪倥倅伜俶倡倩倬俾俯們倆 俑俚俐俤俥倚倨倔倪倥倅伜俶倡倩倬俾俯們倆 +偃假會偕偐偈做偖偬偸傀傚傅傴傲・・・・・ 偃假會偕偐偈做偖偬偸傀傚傅傴傲・・・・・ +・鵝鵞鵤鵑鵐鵙鵲鶉鶇鶫鵯鵺鶚鶤鶩鶲鷄鷁鶻 ・鵝鵞鵤鵑鵐鵙鵲鶉鶇鶫鵯鵺鶚鶤鶩鶲鷄鷁鶻 +鶸鶺鷆鷏鷂鷙鷓鷸鷦鷭鷯鷽鸚鸛鸞鹵鹹鹽麁麈 鶸鶺鷆鷏鷂鷙鷓鷸鷦鷭鷯鷽鸚鸛鸞鹵鹹鹽麁麈 +麋麌麒麕麑麝麥麩麸麪麭靡黌黎黏黐黔黜點黝 麋麌麒麕麑麝麥麩麸麪麭靡黌黎黏黐黔黜點黝 +黠黥黨黯黴黶黷黹黻黼黽鼇鼈皷鼕鼡鼬鼾齊齒 黠黥黨黯黴黶黷黹黻黼黽鼇鼈皷鼕鼡鼬鼾齊齒 +齔齣齟齠齡齦齧齬齪齷齲齶龕龜龠・・・・・ 齔齣齟齠齡齦齧齬齪齷齲齶龕龜龠・・・・・ +・堯槇遙瑤凜熙・・・・・・・・・・・・・ ・堯槇遙瑤凜熙・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +SELECT `C1`, CONVERT(`C1` using ujis) FROM `T12`; +C1 CONVERT(`C1` using ujis) +・・・・・・・・・・・・・・・˘ˇ¸˙˝ ・・・・・・・・・・・・・・・˘ˇ¸˙˝ +・˛˚~΄΅・・・・・・・・¡¦¿・・・ ・˛˚?΄΅・・・・・・・・¡¦¿・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・ºª©®™ ・・・・・・・・・・・・・・・ºª©®™ +¤№・・・・・・・・・・・・・・・・・・ ¤№・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・ΆΈΉΊΪ・Ό・ΎΫ・Ώ・・・ ・・・・・ΆΈΉΊΪ・Ό・ΎΫ・Ώ・・・ +・άέήίϊΐόςύϋΰώ・・・・・・・ ・άέήίϊΐόςύϋΰώ・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・ЂЃЄЅІЇ ・・・・・・・・・・・・・・ЂЃЄЅІЇ +ЈЉЊЋЌЎЏ・・・・・・・・・・・・・ ЈЉЊЋЌЎЏ・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・ђѓєѕіїјљњћќўџ・・・・・ ・・ђѓєѕіїјљњћќўџ・・・・・ +・ÆĐ・Ħ・IJ・ŁĿ・ŊØŒ・ŦÞ・・・ ・ÆĐ・Ħ・IJ・ŁĿ・ŊØŒ・ŦÞ・・・ +・・・・・・・・・・・・・æđðħıijĸ ・・・・・・・・・・・・・æđðħıijĸ +łŀʼnŋøœßŧþ・・・・・・・・・・・ łŀʼnŋøœßŧþ・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・ÁÀÄÂĂǍĀĄÅÃĆĈČÇĊĎÉÈË ・ÁÀÄÂĂǍĀĄÅÃĆĈČÇĊĎÉÈË +ÊĚĖĒĘ・ĜĞĢĠĤÍÌÏÎǏİĪĮĨ ÊĚĖĒĘ・ĜĞĢĠĤÍÌÏÎǏİĪĮĨ +ĴĶĹĽĻŃŇŅÑÓÒÖÔǑŐŌÕŔŘŖ ĴĶĹĽĻŃŇŅÑÓÒÖÔǑŐŌÕŔŘŖ +ŚŜŠŞŤŢÚÙÜÛŬǓŰŪŲŮŨǗǛǙ ŚŜŠŞŤŢÚÙÜÛŬǓŰŪŲŮŨǗǛǙ +ǕŴÝŸŶŹŽŻ・・・・・・・・・・・・ ǕŴÝŸŶŹŽŻ・・・・・・・・・・・・ +・áàäâăǎāąåãćĉčçċďéèë ・áàäâăǎāąåãćĉčçċďéèë +êěėēęǵĝğ・ġĥíìïîǐ・īįĩ êěėēęǵĝğ・ġĥíìïîǐ・īįĩ +ĵķĺľļńňņñóòöôǒőōõŕřŗ ĵķĺľļńňņñóòöôǒőōõŕřŗ +śŝšşťţúùüûŭǔűūųůũǘǜǚ śŝšşťţúùüûŭǔűūųůũǘǜǚ +ǖŵýÿŷźžż・・・・・・・・・・・・ ǖŵýÿŷźžż・・・・・・・・・・・・ +・丂丄丅丌丒丟丣两丨丫丮丯丰丵乀乁乄乇乑 ・丂丄丅丌丒丟丣两丨丫丮丯丰丵乀乁乄乇乑 +乚乜乣乨乩乴乵乹乿亍亖亗亝亯亹仃仐仚仛仠 乚乜乣乨乩乴乵乹乿亍亖亗亝亯亹仃仐仚仛仠 +仡仢仨仯仱仳仵份仾仿伀伂伃伈伋伌伒伕伖众 仡仢仨仯仱仳仵份仾仿伀伂伃伈伋伌伒伕伖众 +伙伮伱你伳伵伷伹伻伾佀佂佈佉佋佌佒佔佖佘 伙伮伱你伳伵伷伹伻伾佀佂佈佉佋佌佒佔佖佘 +佟佣佪佬佮佱佷佸佹佺佽佾侁侂侄・・・・・ 佟佣佪佬佮佱佷佸佹佺佽佾侁侂侄・・・・・ +・黸黿鼂鼃鼉鼏鼐鼑鼒鼔鼖鼗鼙鼚鼛鼟鼢鼦鼪 ・黸黿鼂鼃鼉鼏鼐鼑鼒鼔鼖鼗鼙鼚鼛鼟鼢鼦鼪 +鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃齄齅齆齇齓齕齖 鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃齄齅齆齇齓齕齖 +齗齘齚齝齞齨齩齭齮齯齰齱齳齵齺齽龏龐龑龒 齗齘齚齝齞齨齩齭齮齯齰齱齳齵齺齽龏龐龑龒 +龔龖龗龞龡龢龣龥・・・・・・・・・・・・ 龔龖龗龞龡龢龣龥・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +SELECT `C1`, CONVERT(`C1` using ucs2) FROM `T12`; +C1 CONVERT(`C1` using ucs2) +・・・・・・・・・・・・・・・˘ˇ¸˙˝ ・・・・・・・・・・・・・・・˘ˇ¸˙˝ +・˛˚~΄΅・・・・・・・・¡¦¿・・・ ・˛˚~΄΅・・・・・・・・¡¦¿・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・ºª©®™ ・・・・・・・・・・・・・・・ºª©®™ +¤№・・・・・・・・・・・・・・・・・・ ¤№・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・ΆΈΉΊΪ・Ό・ΎΫ・Ώ・・・ ・・・・・ΆΈΉΊΪ・Ό・ΎΫ・Ώ・・・ +・άέήίϊΐόςύϋΰώ・・・・・・・ ・άέήίϊΐόςύϋΰώ・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・ЂЃЄЅІЇ ・・・・・・・・・・・・・・ЂЃЄЅІЇ +ЈЉЊЋЌЎЏ・・・・・・・・・・・・・ ЈЉЊЋЌЎЏ・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・ђѓєѕіїјљњћќўџ・・・・・ ・・ђѓєѕіїјљњћќўџ・・・・・ +・ÆĐ・Ħ・IJ・ŁĿ・ŊØŒ・ŦÞ・・・ ・ÆĐ・Ħ・IJ・ŁĿ・ŊØŒ・ŦÞ・・・ +・・・・・・・・・・・・・æđðħıijĸ ・・・・・・・・・・・・・æđðħıijĸ +łŀʼnŋøœßŧþ・・・・・・・・・・・ łŀʼnŋøœßŧþ・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・ÁÀÄÂĂǍĀĄÅÃĆĈČÇĊĎÉÈË ・ÁÀÄÂĂǍĀĄÅÃĆĈČÇĊĎÉÈË +ÊĚĖĒĘ・ĜĞĢĠĤÍÌÏÎǏİĪĮĨ ÊĚĖĒĘ・ĜĞĢĠĤÍÌÏÎǏİĪĮĨ +ĴĶĹĽĻŃŇŅÑÓÒÖÔǑŐŌÕŔŘŖ ĴĶĹĽĻŃŇŅÑÓÒÖÔǑŐŌÕŔŘŖ +ŚŜŠŞŤŢÚÙÜÛŬǓŰŪŲŮŨǗǛǙ ŚŜŠŞŤŢÚÙÜÛŬǓŰŪŲŮŨǗǛǙ +ǕŴÝŸŶŹŽŻ・・・・・・・・・・・・ ǕŴÝŸŶŹŽŻ・・・・・・・・・・・・ +・áàäâăǎāąåãćĉčçċďéèë ・áàäâăǎāąåãćĉčçċďéèë +êěėēęǵĝğ・ġĥíìïîǐ・īįĩ êěėēęǵĝğ・ġĥíìïîǐ・īįĩ +ĵķĺľļńňņñóòöôǒőōõŕřŗ ĵķĺľļńňņñóòöôǒőōõŕřŗ +śŝšşťţúùüûŭǔűūųůũǘǜǚ śŝšşťţúùüûŭǔűūųůũǘǜǚ +ǖŵýÿŷźžż・・・・・・・・・・・・ ǖŵýÿŷźžż・・・・・・・・・・・・ +・丂丄丅丌丒丟丣两丨丫丮丯丰丵乀乁乄乇乑 ・丂丄丅丌丒丟丣两丨丫丮丯丰丵乀乁乄乇乑 +乚乜乣乨乩乴乵乹乿亍亖亗亝亯亹仃仐仚仛仠 乚乜乣乨乩乴乵乹乿亍亖亗亝亯亹仃仐仚仛仠 +仡仢仨仯仱仳仵份仾仿伀伂伃伈伋伌伒伕伖众 仡仢仨仯仱仳仵份仾仿伀伂伃伈伋伌伒伕伖众 +伙伮伱你伳伵伷伹伻伾佀佂佈佉佋佌佒佔佖佘 伙伮伱你伳伵伷伹伻伾佀佂佈佉佋佌佒佔佖佘 +佟佣佪佬佮佱佷佸佹佺佽佾侁侂侄・・・・・ 佟佣佪佬佮佱佷佸佹佺佽佾侁侂侄・・・・・ +・黸黿鼂鼃鼉鼏鼐鼑鼒鼔鼖鼗鼙鼚鼛鼟鼢鼦鼪 ・黸黿鼂鼃鼉鼏鼐鼑鼒鼔鼖鼗鼙鼚鼛鼟鼢鼦鼪 +鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃齄齅齆齇齓齕齖 鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃齄齅齆齇齓齕齖 +齗齘齚齝齞齨齩齭齮齯齰齱齳齵齺齽龏龐龑龒 齗齘齚齝齞齨齩齭齮齯齰齱齳齵齺齽龏龐龑龒 +龔龖龗龞龡龢龣龥・・・・・・・・・・・・ 龔龖龗龞龡龢龣龥・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +SELECT `C1`, CONVERT(`C1` using sjis) FROM `T12`; +C1 CONVERT(`C1` using sjis) +・・・・・・・・・・・・・・・˘ˇ¸˙˝ ・・・・・・・・・・・・・・・????? +・˛˚~΄΅・・・・・・・・¡¦¿・・・ ・?????・・・・・・・・???・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・ºª©®™ ・・・・・・・・・・・・・・・????? +¤№・・・・・・・・・・・・・・・・・・ ??・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・ΆΈΉΊΪ・Ό・ΎΫ・Ώ・・・ ・・・・・?????・?・??・?・・・ +・άέήίϊΐόςύϋΰώ・・・・・・・ ・????????????・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・ЂЃЄЅІЇ ・・・・・・・・・・・・・・?????? +ЈЉЊЋЌЎЏ・・・・・・・・・・・・・ ???????・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・ђѓєѕіїјљњћќўџ・・・・・ ・・?????????????・・・・・ +・ÆĐ・Ħ・IJ・ŁĿ・ŊØŒ・ŦÞ・・・ ・??・?・?・??・???・??・・・ +・・・・・・・・・・・・・æđðħıijĸ ・・・・・・・・・・・・・??????? +łŀʼnŋøœßŧþ・・・・・・・・・・・ ?????????・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +・ÁÀÄÂĂǍĀĄÅÃĆĈČÇĊĎÉÈË ・??????????????????? +ÊĚĖĒĘ・ĜĞĢĠĤÍÌÏÎǏİĪĮĨ ?????・?????????????? +ĴĶĹĽĻŃŇŅÑÓÒÖÔǑŐŌÕŔŘŖ ???????????????????? +ŚŜŠŞŤŢÚÙÜÛŬǓŰŪŲŮŨǗǛǙ ???????????????????? +ǕŴÝŸŶŹŽŻ・・・・・・・・・・・・ ????????・・・・・・・・・・・・ +・áàäâăǎāąåãćĉčçċďéèë ・??????????????????? +êěėēęǵĝğ・ġĥíìïîǐ・īįĩ ????????・???????・??? +ĵķĺľļńňņñóòöôǒőōõŕřŗ ???????????????????? +śŝšşťţúùüûŭǔűūųůũǘǜǚ ???????????????????? +ǖŵýÿŷźžż・・・・・・・・・・・・ ????????・・・・・・・・・・・・ +・丂丄丅丌丒丟丣两丨丫丮丯丰丵乀乁乄乇乑 ・??????????????????? +乚乜乣乨乩乴乵乹乿亍亖亗亝亯亹仃仐仚仛仠 ???????????????????? +仡仢仨仯仱仳仵份仾仿伀伂伃伈伋伌伒伕伖众 ???????????????????? +伙伮伱你伳伵伷伹伻伾佀佂佈佉佋佌佒佔佖佘 ???????????????????? +佟佣佪佬佮佱佷佸佹佺佽佾侁侂侄・・・・・ ???????????????・・・・・ +・黸黿鼂鼃鼉鼏鼐鼑鼒鼔鼖鼗鼙鼚鼛鼟鼢鼦鼪 ・??????????????????? +鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃齄齅齆齇齓齕齖 ???????????????????? +齗齘齚齝齞齨齩齭齮齯齰齱齳齵齺齽龏龐龑龒 ???????????????????? +龔龖龗龞龡龢龣龥・・・・・・・・・・・・ ????????・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ +drop table `T1`; +drop table `T2`; +drop table `T3`; +drop table `T4`; +drop table `T5`; +drop table `T6`; +drop table `T7`; +drop table `T8`; +drop table `T9`; +drop table `T10`; +drop table `T11`; +drop table `T12`; diff --git a/mysql-test/suite/jp/r/jp_create_db_sjis.result b/mysql-test/suite/jp/r/jp_create_db_sjis.result new file mode 100755 index 00000000000..1ce0b7228d5 --- /dev/null +++ b/mysql-test/suite/jp/r/jp_create_db_sjis.result @@ -0,0 +1,21 @@ +SET NAMES sjis; +SET character_set_database = sjis; +drop database if exists `ݺ`; +drop database if exists `{`; +drop database if exists `\\\`; +CREATE DATABASE `ݺ`; +CREATE DATABASE `{`; +CREATE DATABASE `\\\`; +SHOW DATABASES; +Database +mysql +test +\\\ +{ +ݺ +USE `ݺ`; +USE `{`; +USE `\\\`; +DROP DATABASE `ݺ`; +DROP DATABASE `{`; +DROP DATABASE `\\\`; diff --git a/mysql-test/suite/jp/r/jp_create_db_ucs2.result b/mysql-test/suite/jp/r/jp_create_db_ucs2.result new file mode 100755 index 00000000000..8fd921ea8e6 --- /dev/null +++ b/mysql-test/suite/jp/r/jp_create_db_ucs2.result @@ -0,0 +1,22 @@ +drop database if exists `ƎΎݎ`; +drop database if exists `ܸ`; +drop database if exists `܏ݏ`; +SET NAMES ujis; +SET character_set_database = ucs2; +SET character_set_server = ucs2; +CREATE DATABASE `ƎΎݎ`; +CREATE DATABASE `ܸ`; +CREATE DATABASE `܏ݏ`; +SHOW DATABASES; +Database +mysql +test +ܸ +܏ݏ +ƎΎݎ +USE `ƎΎݎ`; +USE `ܸ`; +USE `܏ݏ`; +DROP DATABASE `ƎΎݎ`; +DROP DATABASE `ܸ`; +DROP DATABASE `܏ݏ`; diff --git a/mysql-test/suite/jp/r/jp_create_db_ujis.result b/mysql-test/suite/jp/r/jp_create_db_ujis.result new file mode 100755 index 00000000000..45fdb34717b --- /dev/null +++ b/mysql-test/suite/jp/r/jp_create_db_ujis.result @@ -0,0 +1,21 @@ +drop database if exists `ƎΎݎ`; +drop database if exists `ܸ`; +drop database if exists `܏ݏ`; +SET NAMES ujis; +SET character_set_database = ujis; +CREATE DATABASE `ƎΎݎ`; +CREATE DATABASE `ܸ`; +CREATE DATABASE `܏ݏ`; +SHOW DATABASES; +Database +mysql +test +ܸ +܏ݏ +ƎΎݎ +USE `ƎΎݎ`; +USE `ܸ`; +USE `܏ݏ`; +DROP DATABASE `ƎΎݎ`; +DROP DATABASE `ܸ`; +DROP DATABASE `܏ݏ`; diff --git a/mysql-test/suite/jp/r/jp_create_db_utf8.result b/mysql-test/suite/jp/r/jp_create_db_utf8.result new file mode 100755 index 00000000000..c0e996040de --- /dev/null +++ b/mysql-test/suite/jp/r/jp_create_db_utf8.result @@ -0,0 +1,21 @@ +drop database if exists `ニホンゴ`; +drop database if exists `日本語`; +drop database if exists `龔龖龗`; +SET NAMES utf8; +SET character_set_database = utf8; +CREATE DATABASE `ニホンゴ`; +CREATE DATABASE `日本語`; +CREATE DATABASE `龔龖龗`; +SHOW DATABASES; +Database +mysql +test +日本語 +龔龖龗 +ニホンゴ +USE `ニホンゴ`; +USE `日本語`; +USE `龔龖龗`; +DROP DATABASE `ニホンゴ`; +DROP DATABASE `日本語`; +DROP DATABASE `龔龖龗`; diff --git a/mysql-test/suite/jp/r/jp_create_tbl_sjis.result b/mysql-test/suite/jp/r/jp_create_tbl_sjis.result new file mode 100755 index 00000000000..ecc72f9d91b --- /dev/null +++ b/mysql-test/suite/jp/r/jp_create_tbl_sjis.result @@ -0,0 +1,641 @@ +SET NAMES sjis; +SET character_set_database = sjis; +DROP TABLE IF EXISTS ``; +DROP TABLE IF EXISTS ``; +DROP TABLE IF EXISTS ``; +DROP TABLE IF EXISTS ``; +DROP TABLE IF EXISTS ``; +DROP TABLE IF EXISTS ``; +DROP TABLE IF EXISTS ``; +DROP TABLE IF EXISTS ``; +DROP TABLE IF EXISTS ``; +DROP TABLE IF EXISTS ``; +DROP TABLE IF EXISTS `\\\`; +DROP TABLE IF EXISTS `\\\`; +DROP TABLE IF EXISTS `\\\`; +DROP TABLE IF EXISTS `\\\`; +DROP TABLE IF EXISTS `\\\`; +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = ujis engine=INNODB; +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = ujis engine=INNODB; +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = sjis engine=INNODB; +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = sjis engine=INNODB; +CREATE TABLE `\\\`(`\\\` char(1)) DEFAULT CHARSET = sjis engine=INNODB; +CREATE TABLE `\\\`(`\\\` char(1)) DEFAULT CHARSET = sjis engine=INNODB; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = sjis engine=INNODB; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = sjis engine=INNODB; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = sjis engine=INNODB; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = sjis engine=INNODB; +CREATE TABLE IF NOT EXISTS `\\\`(`\\\` char(1)) DEFAULT CHARSET = sjis engine=INNODB; +CREATE TABLE IF NOT EXISTS `\\\`(`\\\` char(1)) DEFAULT CHARSET = sjis engine=INNODB; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = sjis engine=INNODB; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = sjis engine=INNODB; +CREATE TABLE IF NOT EXISTS `\\\`(`\\\`char(1)) DEFAULT CHARSET = sjis engine=INNODB; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = sjis engine=INNODB; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = sjis engine=INNODB; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = sjis engine=INNODB; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = sjis engine=INNODB; +CREATE TEMPORARY TABLE `\\\`(`\\\` char(1)) DEFAULT CHARSET = sjis engine=INNODB; +CREATE TEMPORARY TABLE `\\\`(`\\\` char(1)) DEFAULT CHARSET = sjis engine=INNODB; +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC `\\\`; +Field Type Null Key Default Extra +\\\ char(1) YES NULL +DESC `\\\`; +Field Type Null Key Default Extra +\\\ char(1) YES NULL +DESC `\\\`; +Field Type Null Key Default Extra +\\\ char(1) YES NULL +DESC `\\\`; +Field Type Null Key Default Extra +\\\ char(1) YES NULL +DESC `\\\`; +Field Type Null Key Default Extra +\\\ char(1) YES NULL +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL +) ENGINE=InnoDB DEFAULT CHARSET=ujis +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL +) ENGINE=InnoDB DEFAULT CHARSET=ujis +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL +) ENGINE=InnoDB DEFAULT CHARSET=sjis +SHOW CREATE TABLE ``; +Table Create Table + CREATE TEMPORARY TABLE `` ( + `` char(1) default NULL +) ENGINE=InnoDB DEFAULT CHARSET=sjis +SHOW CREATE TABLE ``; +Table Create Table + CREATE TEMPORARY TABLE `` ( + `` char(1) default NULL +) ENGINE=InnoDB DEFAULT CHARSET=sjis +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL +) ENGINE=InnoDB DEFAULT CHARSET=sjis +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL +) ENGINE=InnoDB DEFAULT CHARSET=sjis +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL +) ENGINE=InnoDB DEFAULT CHARSET=sjis +SHOW CREATE TABLE ``; +Table Create Table + CREATE TEMPORARY TABLE `` ( + `` char(1) default NULL +) ENGINE=InnoDB DEFAULT CHARSET=sjis +SHOW CREATE TABLE ``; +Table Create Table + CREATE TEMPORARY TABLE `` ( + `` char(1) default NULL +) ENGINE=InnoDB DEFAULT CHARSET=sjis +SHOW CREATE TABLE `\\\`; +Table Create Table +\\\ CREATE TABLE `\\\` ( + `\\\` char(1) default NULL +) ENGINE=InnoDB DEFAULT CHARSET=sjis +SHOW CREATE TABLE `\\\`; +Table Create Table +\\\ CREATE TABLE `\\\` ( + `\\\` char(1) default NULL +) ENGINE=InnoDB DEFAULT CHARSET=sjis +SHOW CREATE TABLE `\\\`; +Table Create Table +\\\ CREATE TABLE `\\\` ( + `\\\` char(1) default NULL +) ENGINE=InnoDB DEFAULT CHARSET=sjis +SHOW CREATE TABLE `\\\`; +Table Create Table +\\\ CREATE TEMPORARY TABLE `\\\` ( + `\\\` char(1) default NULL +) ENGINE=InnoDB DEFAULT CHARSET=sjis +SHOW CREATE TABLE `\\\`; +Table Create Table +\\\ CREATE TEMPORARY TABLE `\\\` ( + `\\\` char(1) default NULL +) ENGINE=InnoDB DEFAULT CHARSET=sjis +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE `\\\`; +DROP TABLE `\\\`; +DROP TABLE `\\\`; +DROP TABLE `\\\`; +DROP TABLE `\\\`; +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = sjis engine=MyISAM; +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = sjis engine=MyISAM; +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = sjis engine=MyISAM; +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = sjis engine=MyISAM; +CREATE TABLE `\\\`(`\\\` char(1)) DEFAULT CHARSET = sjis engine=MyISAM; +CREATE TABLE `\\\`(`\\\` char(1)) DEFAULT CHARSET = sjis engine=MyISAM; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = sjis engine=MyISAM; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = sjis engine=MyISAM; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = sjis engine=MyISAM; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = sjis engine=MyISAM; +CREATE TABLE IF NOT EXISTS `\\\`(`\\\` char(1)) DEFAULT CHARSET = sjis engine=MyISAM; +CREATE TABLE IF NOT EXISTS `\\\`(`\\\` char(1)) DEFAULT CHARSET = sjis engine=MyISAM; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = sjis engine=MyISAM; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = sjis engine=MyISAM; +CREATE TABLE IF NOT EXISTS `\\\`(`\\\`char(1)) DEFAULT CHARSET = sjis engine=MyISAM; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = sjis engine=MyISAM; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = sjis engine=MyISAM; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = sjis engine=MyISAM; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = sjis engine=MyISAM; +CREATE TEMPORARY TABLE `\\\`(`\\\` char(1)) DEFAULT CHARSET = sjis engine=MyISAM; +CREATE TEMPORARY TABLE `\\\`(`\\\` char(1)) DEFAULT CHARSET = sjis engine=MyISAM; +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC `\\\`; +Field Type Null Key Default Extra +\\\ char(1) YES NULL +DESC `\\\`; +Field Type Null Key Default Extra +\\\ char(1) YES NULL +DESC `\\\`; +Field Type Null Key Default Extra +\\\ char(1) YES NULL +DESC `\\\`; +Field Type Null Key Default Extra +\\\ char(1) YES NULL +DESC `\\\`; +Field Type Null Key Default Extra +\\\ char(1) YES NULL +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL +) ENGINE=MyISAM DEFAULT CHARSET=sjis +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL +) ENGINE=MyISAM DEFAULT CHARSET=sjis +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL +) ENGINE=MyISAM DEFAULT CHARSET=sjis +SHOW CREATE TABLE ``; +Table Create Table + CREATE TEMPORARY TABLE `` ( + `` char(1) default NULL +) ENGINE=MyISAM DEFAULT CHARSET=sjis +SHOW CREATE TABLE ``; +Table Create Table + CREATE TEMPORARY TABLE `` ( + `` char(1) default NULL +) ENGINE=MyISAM DEFAULT CHARSET=sjis +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL +) ENGINE=MyISAM DEFAULT CHARSET=sjis +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL +) ENGINE=MyISAM DEFAULT CHARSET=sjis +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL +) ENGINE=MyISAM DEFAULT CHARSET=sjis +SHOW CREATE TABLE ``; +Table Create Table + CREATE TEMPORARY TABLE `` ( + `` char(1) default NULL +) ENGINE=MyISAM DEFAULT CHARSET=sjis +SHOW CREATE TABLE ``; +Table Create Table + CREATE TEMPORARY TABLE `` ( + `` char(1) default NULL +) ENGINE=MyISAM DEFAULT CHARSET=sjis +SHOW CREATE TABLE `\\\`; +Table Create Table +\\\ CREATE TABLE `\\\` ( + `\\\` char(1) default NULL +) ENGINE=MyISAM DEFAULT CHARSET=sjis +SHOW CREATE TABLE `\\\`; +Table Create Table +\\\ CREATE TABLE `\\\` ( + `\\\` char(1) default NULL +) ENGINE=MyISAM DEFAULT CHARSET=sjis +SHOW CREATE TABLE `\\\`; +Table Create Table +\\\ CREATE TABLE `\\\` ( + `\\\` char(1) default NULL +) ENGINE=MyISAM DEFAULT CHARSET=sjis +SHOW CREATE TABLE `\\\`; +Table Create Table +\\\ CREATE TEMPORARY TABLE `\\\` ( + `\\\` char(1) default NULL +) ENGINE=MyISAM DEFAULT CHARSET=sjis +SHOW CREATE TABLE `\\\`; +Table Create Table +\\\ CREATE TEMPORARY TABLE `\\\` ( + `\\\` char(1) default NULL +) ENGINE=MyISAM DEFAULT CHARSET=sjis +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE `\\\`; +DROP TABLE `\\\`; +DROP TABLE `\\\`; +DROP TABLE `\\\`; +DROP TABLE `\\\`; +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = sjis engine=HEAP; +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = sjis engine=HEAP; +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = sjis engine=HEAP; +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = sjis engine=HEAP; +CREATE TABLE `\\\`(`\\\` char(1)) DEFAULT CHARSET = sjis engine=HEAP; +CREATE TABLE `\\\`(`\\\` char(1)) DEFAULT CHARSET = sjis engine=HEAP; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = sjis engine=HEAP; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = sjis engine=HEAP; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = sjis engine=HEAP; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = sjis engine=HEAP; +CREATE TABLE IF NOT EXISTS `\\\`(`\\\` char(1)) DEFAULT CHARSET = sjis engine=HEAP; +CREATE TABLE IF NOT EXISTS `\\\`(`\\\` char(1)) DEFAULT CHARSET = sjis engine=HEAP; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = sjis engine=HEAP; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = sjis engine=HEAP; +CREATE TABLE IF NOT EXISTS `\\\`(`\\\`char(1)) DEFAULT CHARSET = sjis engine=HEAP; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = sjis engine=HEAP; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = sjis engine=HEAP; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = sjis engine=HEAP; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = sjis engine=HEAP; +CREATE TEMPORARY TABLE `\\\`(`\\\` char(1)) DEFAULT CHARSET = sjis engine=HEAP; +CREATE TEMPORARY TABLE `\\\`(`\\\` char(1)) DEFAULT CHARSET = sjis engine=HEAP; +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC `\\\`; +Field Type Null Key Default Extra +\\\ char(1) YES NULL +DESC `\\\`; +Field Type Null Key Default Extra +\\\ char(1) YES NULL +DESC `\\\`; +Field Type Null Key Default Extra +\\\ char(1) YES NULL +DESC `\\\`; +Field Type Null Key Default Extra +\\\ char(1) YES NULL +DESC `\\\`; +Field Type Null Key Default Extra +\\\ char(1) YES NULL +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL +) ENGINE=HEAP DEFAULT CHARSET=sjis +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL +) ENGINE=HEAP DEFAULT CHARSET=sjis +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL +) ENGINE=HEAP DEFAULT CHARSET=sjis +SHOW CREATE TABLE ``; +Table Create Table + CREATE TEMPORARY TABLE `` ( + `` char(1) default NULL +) ENGINE=HEAP DEFAULT CHARSET=sjis +SHOW CREATE TABLE ``; +Table Create Table + CREATE TEMPORARY TABLE `` ( + `` char(1) default NULL +) ENGINE=HEAP DEFAULT CHARSET=sjis +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL +) ENGINE=HEAP DEFAULT CHARSET=sjis +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL +) ENGINE=HEAP DEFAULT CHARSET=sjis +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL +) ENGINE=HEAP DEFAULT CHARSET=sjis +SHOW CREATE TABLE ``; +Table Create Table + CREATE TEMPORARY TABLE `` ( + `` char(1) default NULL +) ENGINE=HEAP DEFAULT CHARSET=sjis +SHOW CREATE TABLE ``; +Table Create Table + CREATE TEMPORARY TABLE `` ( + `` char(1) default NULL +) ENGINE=HEAP DEFAULT CHARSET=sjis +SHOW CREATE TABLE `\\\`; +Table Create Table +\\\ CREATE TABLE `\\\` ( + `\\\` char(1) default NULL +) ENGINE=HEAP DEFAULT CHARSET=sjis +SHOW CREATE TABLE `\\\`; +Table Create Table +\\\ CREATE TABLE `\\\` ( + `\\\` char(1) default NULL +) ENGINE=HEAP DEFAULT CHARSET=sjis +SHOW CREATE TABLE `\\\`; +Table Create Table +\\\ CREATE TABLE `\\\` ( + `\\\` char(1) default NULL +) ENGINE=HEAP DEFAULT CHARSET=sjis +SHOW CREATE TABLE `\\\`; +Table Create Table +\\\ CREATE TEMPORARY TABLE `\\\` ( + `\\\` char(1) default NULL +) ENGINE=HEAP DEFAULT CHARSET=sjis +SHOW CREATE TABLE `\\\`; +Table Create Table +\\\ CREATE TEMPORARY TABLE `\\\` ( + `\\\` char(1) default NULL +) ENGINE=HEAP DEFAULT CHARSET=sjis +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE `\\\`; +DROP TABLE `\\\`; +DROP TABLE `\\\`; +DROP TABLE `\\\`; +DROP TABLE `\\\`; +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = sjis engine=BDB; +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = sjis engine=BDB; +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = sjis engine=BDB; +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = sjis engine=BDB; +CREATE TABLE `\\\`(`\\\` char(1)) DEFAULT CHARSET = sjis engine=BDB; +CREATE TABLE `\\\`(`\\\` char(1)) DEFAULT CHARSET = sjis engine=BDB; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = sjis engine=BDB; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = sjis engine=BDB; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = sjis engine=BDB; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = sjis engine=BDB; +CREATE TABLE IF NOT EXISTS `\\\`(`\\\` char(1)) DEFAULT CHARSET = sjis engine=BDB; +CREATE TABLE IF NOT EXISTS `\\\`(`\\\` char(1)) DEFAULT CHARSET = sjis engine=BDB; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = sjis engine=BDB; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = sjis engine=BDB; +CREATE TABLE IF NOT EXISTS `\\\`(`\\\`char(1)) DEFAULT CHARSET = sjis engine=BDB; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = sjis engine=BDB; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = sjis engine=BDB; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = sjis engine=BDB; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = sjis engine=BDB; +CREATE TEMPORARY TABLE `\\\`(`\\\` char(1)) DEFAULT CHARSET = sjis engine=BDB; +CREATE TEMPORARY TABLE `\\\`(`\\\` char(1)) DEFAULT CHARSET = sjis engine=BDB; +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC `\\\`; +Field Type Null Key Default Extra +\\\ char(1) YES NULL +DESC `\\\`; +Field Type Null Key Default Extra +\\\ char(1) YES NULL +DESC `\\\`; +Field Type Null Key Default Extra +\\\ char(1) YES NULL +DESC `\\\`; +Field Type Null Key Default Extra +\\\ char(1) YES NULL +DESC `\\\`; +Field Type Null Key Default Extra +\\\ char(1) YES NULL +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL +) ENGINE=BerkeleyDB DEFAULT CHARSET=sjis +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL +) ENGINE=BerkeleyDB DEFAULT CHARSET=sjis +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL +) ENGINE=BerkeleyDB DEFAULT CHARSET=sjis +SHOW CREATE TABLE ``; +Table Create Table + CREATE TEMPORARY TABLE `` ( + `` char(1) default NULL +) ENGINE=BerkeleyDB DEFAULT CHARSET=sjis +SHOW CREATE TABLE ``; +Table Create Table + CREATE TEMPORARY TABLE `` ( + `` char(1) default NULL +) ENGINE=BerkeleyDB DEFAULT CHARSET=sjis +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL +) ENGINE=BerkeleyDB DEFAULT CHARSET=sjis +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL +) ENGINE=BerkeleyDB DEFAULT CHARSET=sjis +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL +) ENGINE=BerkeleyDB DEFAULT CHARSET=sjis +SHOW CREATE TABLE ``; +Table Create Table + CREATE TEMPORARY TABLE `` ( + `` char(1) default NULL +) ENGINE=BerkeleyDB DEFAULT CHARSET=sjis +SHOW CREATE TABLE ``; +Table Create Table + CREATE TEMPORARY TABLE `` ( + `` char(1) default NULL +) ENGINE=BerkeleyDB DEFAULT CHARSET=sjis +SHOW CREATE TABLE `\\\`; +Table Create Table +\\\ CREATE TABLE `\\\` ( + `\\\` char(1) default NULL +) ENGINE=BerkeleyDB DEFAULT CHARSET=sjis +SHOW CREATE TABLE `\\\`; +Table Create Table +\\\ CREATE TABLE `\\\` ( + `\\\` char(1) default NULL +) ENGINE=BerkeleyDB DEFAULT CHARSET=sjis +SHOW CREATE TABLE `\\\`; +Table Create Table +\\\ CREATE TABLE `\\\` ( + `\\\` char(1) default NULL +) ENGINE=BerkeleyDB DEFAULT CHARSET=sjis +SHOW CREATE TABLE `\\\`; +Table Create Table +\\\ CREATE TEMPORARY TABLE `\\\` ( + `\\\` char(1) default NULL +) ENGINE=BerkeleyDB DEFAULT CHARSET=sjis +SHOW CREATE TABLE `\\\`; +Table Create Table +\\\ CREATE TEMPORARY TABLE `\\\` ( + `\\\` char(1) default NULL +) ENGINE=BerkeleyDB DEFAULT CHARSET=sjis +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE `\\\`; +DROP TABLE `\\\`; +DROP TABLE `\\\`; +DROP TABLE `\\\`; +DROP TABLE `\\\`; diff --git a/mysql-test/suite/jp/r/jp_create_tbl_ucs2.result b/mysql-test/suite/jp/r/jp_create_tbl_ucs2.result new file mode 100755 index 00000000000..0bf5a6891b0 --- /dev/null +++ b/mysql-test/suite/jp/r/jp_create_tbl_ucs2.result @@ -0,0 +1,641 @@ +DROP TABLE IF EXISTS ``; +DROP TABLE IF EXISTS ``; +DROP TABLE IF EXISTS ``; +DROP TABLE IF EXISTS ``; +DROP TABLE IF EXISTS ``; +DROP TABLE IF EXISTS ``; +DROP TABLE IF EXISTS ``; +DROP TABLE IF EXISTS ``; +DROP TABLE IF EXISTS ``; +DROP TABLE IF EXISTS ``; +DROP TABLE IF EXISTS `ݏݏ`; +DROP TABLE IF EXISTS `ޏޏ`; +DROP TABLE IF EXISTS `ߏߏ`; +DROP TABLE IF EXISTS ``; +DROP TABLE IF EXISTS ``; +SET NAMES ujis; +SET character_set_database = ucs2; +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=INNODB; +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=INNODB; +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=INNODB; +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=INNODB; +CREATE TABLE `ݏݏ`(`` char(1)) DEFAULT CHARSET = ucs2 engine=INNODB; +CREATE TABLE `ޏޏ`(`` char(1)) DEFAULT CHARSET = ucs2 engine=INNODB; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=INNODB; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=INNODB; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=INNODB; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=INNODB; +CREATE TABLE IF NOT EXISTS `ݏݏ`(`` char(1)) DEFAULT CHARSET = ucs2 engine=INNODB; +CREATE TABLE IF NOT EXISTS `ޏޏ`(`` char(1)) DEFAULT CHARSET = ucs2 engine=INNODB; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=INNODB; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=INNODB; +CREATE TABLE IF NOT EXISTS `ߏߏ`(``char(1)) DEFAULT CHARSET = ucs2 engine=INNODB; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=INNODB; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=INNODB; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=INNODB; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=INNODB; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=INNODB; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=INNODB; +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC `ݏݏ`; +Field Type Null Key Default Extra + char(1) YES NULL +DESC `ޏޏ`; +Field Type Null Key Default Extra + char(1) YES NULL +DESC `ߏߏ`; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL +) ENGINE=InnoDB DEFAULT CHARSET=ucs2 +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL +) ENGINE=InnoDB DEFAULT CHARSET=ucs2 +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL +) ENGINE=InnoDB DEFAULT CHARSET=ucs2 +SHOW CREATE TABLE ``; +Table Create Table + CREATE TEMPORARY TABLE `` ( + `` char(1) default NULL +) ENGINE=InnoDB DEFAULT CHARSET=ucs2 +SHOW CREATE TABLE ``; +Table Create Table + CREATE TEMPORARY TABLE `` ( + `` char(1) default NULL +) ENGINE=InnoDB DEFAULT CHARSET=ucs2 +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL +) ENGINE=InnoDB DEFAULT CHARSET=ucs2 +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL +) ENGINE=InnoDB DEFAULT CHARSET=ucs2 +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL +) ENGINE=InnoDB DEFAULT CHARSET=ucs2 +SHOW CREATE TABLE ``; +Table Create Table + CREATE TEMPORARY TABLE `` ( + `` char(1) default NULL +) ENGINE=InnoDB DEFAULT CHARSET=ucs2 +SHOW CREATE TABLE ``; +Table Create Table + CREATE TEMPORARY TABLE `` ( + `` char(1) default NULL +) ENGINE=InnoDB DEFAULT CHARSET=ucs2 +SHOW CREATE TABLE `ݏݏ`; +Table Create Table +ݏݏ CREATE TABLE `ݏݏ` ( + `` char(1) default NULL +) ENGINE=InnoDB DEFAULT CHARSET=ucs2 +SHOW CREATE TABLE `ޏޏ`; +Table Create Table +ޏޏ CREATE TABLE `ޏޏ` ( + `` char(1) default NULL +) ENGINE=InnoDB DEFAULT CHARSET=ucs2 +SHOW CREATE TABLE `ߏߏ`; +Table Create Table +ߏߏ CREATE TABLE `ߏߏ` ( + `` char(1) default NULL +) ENGINE=InnoDB DEFAULT CHARSET=ucs2 +SHOW CREATE TABLE ``; +Table Create Table + CREATE TEMPORARY TABLE `` ( + `` char(1) default NULL +) ENGINE=InnoDB DEFAULT CHARSET=ucs2 +SHOW CREATE TABLE ``; +Table Create Table + CREATE TEMPORARY TABLE `` ( + `` char(1) default NULL +) ENGINE=InnoDB DEFAULT CHARSET=ucs2 +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE `ݏݏ`; +DROP TABLE `ޏޏ`; +DROP TABLE `ߏߏ`; +DROP TABLE ``; +DROP TABLE ``; +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=MyISAM; +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=MyISAM; +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=MyISAM; +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=MyISAM; +CREATE TABLE `ݏݏ`(`` char(1)) DEFAULT CHARSET = ucs2 engine=MyISAM; +CREATE TABLE `ޏޏ`(`` char(1)) DEFAULT CHARSET = ucs2 engine=MyISAM; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=MyISAM; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=MyISAM; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=MyISAM; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=MyISAM; +CREATE TABLE IF NOT EXISTS `ݏݏ`(`` char(1)) DEFAULT CHARSET = ucs2 engine=MyISAM; +CREATE TABLE IF NOT EXISTS `ޏޏ`(`` char(1)) DEFAULT CHARSET = ucs2 engine=MyISAM; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=MyISAM; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=MyISAM; +CREATE TABLE IF NOT EXISTS `ߏߏ`(``char(1)) DEFAULT CHARSET = ucs2 engine=MyISAM; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=MyISAM; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=MyISAM; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=MyISAM; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=MyISAM; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=MyISAM; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=MyISAM; +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC `ݏݏ`; +Field Type Null Key Default Extra + char(1) YES NULL +DESC `ޏޏ`; +Field Type Null Key Default Extra + char(1) YES NULL +DESC `ߏߏ`; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL +) ENGINE=MyISAM DEFAULT CHARSET=ucs2 +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL +) ENGINE=MyISAM DEFAULT CHARSET=ucs2 +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL +) ENGINE=MyISAM DEFAULT CHARSET=ucs2 +SHOW CREATE TABLE ``; +Table Create Table + CREATE TEMPORARY TABLE `` ( + `` char(1) default NULL +) ENGINE=MyISAM DEFAULT CHARSET=ucs2 +SHOW CREATE TABLE ``; +Table Create Table + CREATE TEMPORARY TABLE `` ( + `` char(1) default NULL +) ENGINE=MyISAM DEFAULT CHARSET=ucs2 +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL +) ENGINE=MyISAM DEFAULT CHARSET=ucs2 +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL +) ENGINE=MyISAM DEFAULT CHARSET=ucs2 +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL +) ENGINE=MyISAM DEFAULT CHARSET=ucs2 +SHOW CREATE TABLE ``; +Table Create Table + CREATE TEMPORARY TABLE `` ( + `` char(1) default NULL +) ENGINE=MyISAM DEFAULT CHARSET=ucs2 +SHOW CREATE TABLE ``; +Table Create Table + CREATE TEMPORARY TABLE `` ( + `` char(1) default NULL +) ENGINE=MyISAM DEFAULT CHARSET=ucs2 +SHOW CREATE TABLE `ݏݏ`; +Table Create Table +ݏݏ CREATE TABLE `ݏݏ` ( + `` char(1) default NULL +) ENGINE=MyISAM DEFAULT CHARSET=ucs2 +SHOW CREATE TABLE `ޏޏ`; +Table Create Table +ޏޏ CREATE TABLE `ޏޏ` ( + `` char(1) default NULL +) ENGINE=MyISAM DEFAULT CHARSET=ucs2 +SHOW CREATE TABLE `ߏߏ`; +Table Create Table +ߏߏ CREATE TABLE `ߏߏ` ( + `` char(1) default NULL +) ENGINE=MyISAM DEFAULT CHARSET=ucs2 +SHOW CREATE TABLE ``; +Table Create Table + CREATE TEMPORARY TABLE `` ( + `` char(1) default NULL +) ENGINE=MyISAM DEFAULT CHARSET=ucs2 +SHOW CREATE TABLE ``; +Table Create Table + CREATE TEMPORARY TABLE `` ( + `` char(1) default NULL +) ENGINE=MyISAM DEFAULT CHARSET=ucs2 +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE `ݏݏ`; +DROP TABLE `ޏޏ`; +DROP TABLE `ߏߏ`; +DROP TABLE ``; +DROP TABLE ``; +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=HEAP; +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=HEAP; +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=HEAP; +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=HEAP; +CREATE TABLE `ݏݏ`(`` char(1)) DEFAULT CHARSET = ucs2 engine=HEAP; +CREATE TABLE `ޏޏ`(`` char(1)) DEFAULT CHARSET = ucs2 engine=HEAP; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=HEAP; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=HEAP; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=HEAP; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=HEAP; +CREATE TABLE IF NOT EXISTS `ݏݏ`(`` char(1)) DEFAULT CHARSET = ucs2 engine=HEAP; +CREATE TABLE IF NOT EXISTS `ޏޏ`(`` char(1)) DEFAULT CHARSET = ucs2 engine=HEAP; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=HEAP; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=HEAP; +CREATE TABLE IF NOT EXISTS `ߏߏ`(``char(1)) DEFAULT CHARSET = ucs2 engine=HEAP; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=HEAP; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=HEAP; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=HEAP; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=HEAP; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=HEAP; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=HEAP; +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC `ݏݏ`; +Field Type Null Key Default Extra + char(1) YES NULL +DESC `ޏޏ`; +Field Type Null Key Default Extra + char(1) YES NULL +DESC `ߏߏ`; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL +) ENGINE=HEAP DEFAULT CHARSET=ucs2 +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL +) ENGINE=HEAP DEFAULT CHARSET=ucs2 +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL +) ENGINE=HEAP DEFAULT CHARSET=ucs2 +SHOW CREATE TABLE ``; +Table Create Table + CREATE TEMPORARY TABLE `` ( + `` char(1) default NULL +) ENGINE=HEAP DEFAULT CHARSET=ucs2 +SHOW CREATE TABLE ``; +Table Create Table + CREATE TEMPORARY TABLE `` ( + `` char(1) default NULL +) ENGINE=HEAP DEFAULT CHARSET=ucs2 +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL +) ENGINE=HEAP DEFAULT CHARSET=ucs2 +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL +) ENGINE=HEAP DEFAULT CHARSET=ucs2 +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL +) ENGINE=HEAP DEFAULT CHARSET=ucs2 +SHOW CREATE TABLE ``; +Table Create Table + CREATE TEMPORARY TABLE `` ( + `` char(1) default NULL +) ENGINE=HEAP DEFAULT CHARSET=ucs2 +SHOW CREATE TABLE ``; +Table Create Table + CREATE TEMPORARY TABLE `` ( + `` char(1) default NULL +) ENGINE=HEAP DEFAULT CHARSET=ucs2 +SHOW CREATE TABLE `ݏݏ`; +Table Create Table +ݏݏ CREATE TABLE `ݏݏ` ( + `` char(1) default NULL +) ENGINE=HEAP DEFAULT CHARSET=ucs2 +SHOW CREATE TABLE `ޏޏ`; +Table Create Table +ޏޏ CREATE TABLE `ޏޏ` ( + `` char(1) default NULL +) ENGINE=HEAP DEFAULT CHARSET=ucs2 +SHOW CREATE TABLE `ߏߏ`; +Table Create Table +ߏߏ CREATE TABLE `ߏߏ` ( + `` char(1) default NULL +) ENGINE=HEAP DEFAULT CHARSET=ucs2 +SHOW CREATE TABLE ``; +Table Create Table + CREATE TEMPORARY TABLE `` ( + `` char(1) default NULL +) ENGINE=HEAP DEFAULT CHARSET=ucs2 +SHOW CREATE TABLE ``; +Table Create Table + CREATE TEMPORARY TABLE `` ( + `` char(1) default NULL +) ENGINE=HEAP DEFAULT CHARSET=ucs2 +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE `ݏݏ`; +DROP TABLE `ޏޏ`; +DROP TABLE `ߏߏ`; +DROP TABLE ``; +DROP TABLE ``; +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=BDB; +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=BDB; +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=BDB; +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=BDB; +CREATE TABLE `ݏݏ`(`` char(1)) DEFAULT CHARSET = ucs2 engine=BDB; +CREATE TABLE `ޏޏ`(`` char(1)) DEFAULT CHARSET = ucs2 engine=BDB; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=BDB; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=BDB; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=BDB; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=BDB; +CREATE TABLE IF NOT EXISTS `ݏݏ`(`` char(1)) DEFAULT CHARSET = ucs2 engine=BDB; +CREATE TABLE IF NOT EXISTS `ޏޏ`(`` char(1)) DEFAULT CHARSET = ucs2 engine=BDB; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=BDB; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=BDB; +CREATE TABLE IF NOT EXISTS `ߏߏ`(``char(1)) DEFAULT CHARSET = ucs2 engine=BDB; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=BDB; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=BDB; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=BDB; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=BDB; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=BDB; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=BDB; +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC `ݏݏ`; +Field Type Null Key Default Extra + char(1) YES NULL +DESC `ޏޏ`; +Field Type Null Key Default Extra + char(1) YES NULL +DESC `ߏߏ`; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL +) ENGINE=BerkeleyDB DEFAULT CHARSET=ucs2 +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL +) ENGINE=BerkeleyDB DEFAULT CHARSET=ucs2 +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL +) ENGINE=BerkeleyDB DEFAULT CHARSET=ucs2 +SHOW CREATE TABLE ``; +Table Create Table + CREATE TEMPORARY TABLE `` ( + `` char(1) default NULL +) ENGINE=BerkeleyDB DEFAULT CHARSET=ucs2 +SHOW CREATE TABLE ``; +Table Create Table + CREATE TEMPORARY TABLE `` ( + `` char(1) default NULL +) ENGINE=BerkeleyDB DEFAULT CHARSET=ucs2 +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL +) ENGINE=BerkeleyDB DEFAULT CHARSET=ucs2 +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL +) ENGINE=BerkeleyDB DEFAULT CHARSET=ucs2 +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL +) ENGINE=BerkeleyDB DEFAULT CHARSET=ucs2 +SHOW CREATE TABLE ``; +Table Create Table + CREATE TEMPORARY TABLE `` ( + `` char(1) default NULL +) ENGINE=BerkeleyDB DEFAULT CHARSET=ucs2 +SHOW CREATE TABLE ``; +Table Create Table + CREATE TEMPORARY TABLE `` ( + `` char(1) default NULL +) ENGINE=BerkeleyDB DEFAULT CHARSET=ucs2 +SHOW CREATE TABLE `ݏݏ`; +Table Create Table +ݏݏ CREATE TABLE `ݏݏ` ( + `` char(1) default NULL +) ENGINE=BerkeleyDB DEFAULT CHARSET=ucs2 +SHOW CREATE TABLE `ޏޏ`; +Table Create Table +ޏޏ CREATE TABLE `ޏޏ` ( + `` char(1) default NULL +) ENGINE=BerkeleyDB DEFAULT CHARSET=ucs2 +SHOW CREATE TABLE `ߏߏ`; +Table Create Table +ߏߏ CREATE TABLE `ߏߏ` ( + `` char(1) default NULL +) ENGINE=BerkeleyDB DEFAULT CHARSET=ucs2 +SHOW CREATE TABLE ``; +Table Create Table + CREATE TEMPORARY TABLE `` ( + `` char(1) default NULL +) ENGINE=BerkeleyDB DEFAULT CHARSET=ucs2 +SHOW CREATE TABLE ``; +Table Create Table + CREATE TEMPORARY TABLE `` ( + `` char(1) default NULL +) ENGINE=BerkeleyDB DEFAULT CHARSET=ucs2 +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE `ݏݏ`; +DROP TABLE `ޏޏ`; +DROP TABLE `ߏߏ`; +DROP TABLE ``; +DROP TABLE ``; diff --git a/mysql-test/suite/jp/r/jp_create_tbl_ujis.result b/mysql-test/suite/jp/r/jp_create_tbl_ujis.result new file mode 100755 index 00000000000..ae555e5af15 --- /dev/null +++ b/mysql-test/suite/jp/r/jp_create_tbl_ujis.result @@ -0,0 +1,641 @@ +DROP TABLE IF EXISTS ``; +DROP TABLE IF EXISTS ``; +DROP TABLE IF EXISTS ``; +DROP TABLE IF EXISTS ``; +DROP TABLE IF EXISTS ``; +DROP TABLE IF EXISTS ``; +DROP TABLE IF EXISTS ``; +DROP TABLE IF EXISTS ``; +DROP TABLE IF EXISTS ``; +DROP TABLE IF EXISTS ``; +DROP TABLE IF EXISTS `ݏݏ`; +DROP TABLE IF EXISTS `ޏޏ`; +DROP TABLE IF EXISTS `ߏߏ`; +DROP TABLE IF EXISTS ``; +DROP TABLE IF EXISTS ``; +SET NAMES ujis; +SET character_set_database = ujis; +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = ujis engine=INNODB; +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = ujis engine=INNODB; +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = ujis engine=INNODB; +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = ujis engine=INNODB; +CREATE TABLE `ݏݏ`(`` char(1)) DEFAULT CHARSET = ujis engine=INNODB; +CREATE TABLE `ޏޏ`(`` char(1)) DEFAULT CHARSET = ujis engine=INNODB; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ujis engine=INNODB; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ujis engine=INNODB; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ujis engine=INNODB; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ujis engine=INNODB; +CREATE TABLE IF NOT EXISTS `ݏݏ`(`` char(1)) DEFAULT CHARSET = ujis engine=INNODB; +CREATE TABLE IF NOT EXISTS `ޏޏ`(`` char(1)) DEFAULT CHARSET = ujis engine=INNODB; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ujis engine=INNODB; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ujis engine=INNODB; +CREATE TABLE IF NOT EXISTS `ߏߏ`(``char(1)) DEFAULT CHARSET = ujis engine=INNODB; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ujis engine=INNODB; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ujis engine=INNODB; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ujis engine=INNODB; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ujis engine=INNODB; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ujis engine=INNODB; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ujis engine=INNODB; +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC `ݏݏ`; +Field Type Null Key Default Extra + char(1) YES NULL +DESC `ޏޏ`; +Field Type Null Key Default Extra + char(1) YES NULL +DESC `ߏߏ`; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL +) ENGINE=InnoDB DEFAULT CHARSET=ujis +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL +) ENGINE=InnoDB DEFAULT CHARSET=ujis +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL +) ENGINE=InnoDB DEFAULT CHARSET=ujis +SHOW CREATE TABLE ``; +Table Create Table + CREATE TEMPORARY TABLE `` ( + `` char(1) default NULL +) ENGINE=InnoDB DEFAULT CHARSET=ujis +SHOW CREATE TABLE ``; +Table Create Table + CREATE TEMPORARY TABLE `` ( + `` char(1) default NULL +) ENGINE=InnoDB DEFAULT CHARSET=ujis +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL +) ENGINE=InnoDB DEFAULT CHARSET=ujis +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL +) ENGINE=InnoDB DEFAULT CHARSET=ujis +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL +) ENGINE=InnoDB DEFAULT CHARSET=ujis +SHOW CREATE TABLE ``; +Table Create Table + CREATE TEMPORARY TABLE `` ( + `` char(1) default NULL +) ENGINE=InnoDB DEFAULT CHARSET=ujis +SHOW CREATE TABLE ``; +Table Create Table + CREATE TEMPORARY TABLE `` ( + `` char(1) default NULL +) ENGINE=InnoDB DEFAULT CHARSET=ujis +SHOW CREATE TABLE `ݏݏ`; +Table Create Table +ݏݏ CREATE TABLE `ݏݏ` ( + `` char(1) default NULL +) ENGINE=InnoDB DEFAULT CHARSET=ujis +SHOW CREATE TABLE `ޏޏ`; +Table Create Table +ޏޏ CREATE TABLE `ޏޏ` ( + `` char(1) default NULL +) ENGINE=InnoDB DEFAULT CHARSET=ujis +SHOW CREATE TABLE `ߏߏ`; +Table Create Table +ߏߏ CREATE TABLE `ߏߏ` ( + `` char(1) default NULL +) ENGINE=InnoDB DEFAULT CHARSET=ujis +SHOW CREATE TABLE ``; +Table Create Table + CREATE TEMPORARY TABLE `` ( + `` char(1) default NULL +) ENGINE=InnoDB DEFAULT CHARSET=ujis +SHOW CREATE TABLE ``; +Table Create Table + CREATE TEMPORARY TABLE `` ( + `` char(1) default NULL +) ENGINE=InnoDB DEFAULT CHARSET=ujis +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE `ݏݏ`; +DROP TABLE `ޏޏ`; +DROP TABLE `ߏߏ`; +DROP TABLE ``; +DROP TABLE ``; +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = ujis engine=MyISAM; +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = ujis engine=MyISAM; +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = ujis engine=MyISAM; +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = ujis engine=MyISAM; +CREATE TABLE `ݏݏ`(`` char(1)) DEFAULT CHARSET = ujis engine=MyISAM; +CREATE TABLE `ޏޏ`(`` char(1)) DEFAULT CHARSET = ujis engine=MyISAM; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ujis engine=MyISAM; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ujis engine=MyISAM; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ujis engine=MyISAM; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ujis engine=MyISAM; +CREATE TABLE IF NOT EXISTS `ݏݏ`(`` char(1)) DEFAULT CHARSET = ujis engine=MyISAM; +CREATE TABLE IF NOT EXISTS `ޏޏ`(`` char(1)) DEFAULT CHARSET = ujis engine=MyISAM; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ujis engine=MyISAM; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ujis engine=MyISAM; +CREATE TABLE IF NOT EXISTS `ߏߏ`(``char(1)) DEFAULT CHARSET = ujis engine=MyISAM; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ujis engine=MyISAM; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ujis engine=MyISAM; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ujis engine=MyISAM; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ujis engine=MyISAM; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ujis engine=MyISAM; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ujis engine=MyISAM; +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC `ݏݏ`; +Field Type Null Key Default Extra + char(1) YES NULL +DESC `ޏޏ`; +Field Type Null Key Default Extra + char(1) YES NULL +DESC `ߏߏ`; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL +) ENGINE=MyISAM DEFAULT CHARSET=ujis +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL +) ENGINE=MyISAM DEFAULT CHARSET=ujis +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL +) ENGINE=MyISAM DEFAULT CHARSET=ujis +SHOW CREATE TABLE ``; +Table Create Table + CREATE TEMPORARY TABLE `` ( + `` char(1) default NULL +) ENGINE=MyISAM DEFAULT CHARSET=ujis +SHOW CREATE TABLE ``; +Table Create Table + CREATE TEMPORARY TABLE `` ( + `` char(1) default NULL +) ENGINE=MyISAM DEFAULT CHARSET=ujis +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL +) ENGINE=MyISAM DEFAULT CHARSET=ujis +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL +) ENGINE=MyISAM DEFAULT CHARSET=ujis +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL +) ENGINE=MyISAM DEFAULT CHARSET=ujis +SHOW CREATE TABLE ``; +Table Create Table + CREATE TEMPORARY TABLE `` ( + `` char(1) default NULL +) ENGINE=MyISAM DEFAULT CHARSET=ujis +SHOW CREATE TABLE ``; +Table Create Table + CREATE TEMPORARY TABLE `` ( + `` char(1) default NULL +) ENGINE=MyISAM DEFAULT CHARSET=ujis +SHOW CREATE TABLE `ݏݏ`; +Table Create Table +ݏݏ CREATE TABLE `ݏݏ` ( + `` char(1) default NULL +) ENGINE=MyISAM DEFAULT CHARSET=ujis +SHOW CREATE TABLE `ޏޏ`; +Table Create Table +ޏޏ CREATE TABLE `ޏޏ` ( + `` char(1) default NULL +) ENGINE=MyISAM DEFAULT CHARSET=ujis +SHOW CREATE TABLE `ߏߏ`; +Table Create Table +ߏߏ CREATE TABLE `ߏߏ` ( + `` char(1) default NULL +) ENGINE=MyISAM DEFAULT CHARSET=ujis +SHOW CREATE TABLE ``; +Table Create Table + CREATE TEMPORARY TABLE `` ( + `` char(1) default NULL +) ENGINE=MyISAM DEFAULT CHARSET=ujis +SHOW CREATE TABLE ``; +Table Create Table + CREATE TEMPORARY TABLE `` ( + `` char(1) default NULL +) ENGINE=MyISAM DEFAULT CHARSET=ujis +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE `ݏݏ`; +DROP TABLE `ޏޏ`; +DROP TABLE `ߏߏ`; +DROP TABLE ``; +DROP TABLE ``; +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = ujis engine=HEAP; +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = ujis engine=HEAP; +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = ujis engine=HEAP; +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = ujis engine=HEAP; +CREATE TABLE `ݏݏ`(`` char(1)) DEFAULT CHARSET = ujis engine=HEAP; +CREATE TABLE `ޏޏ`(`` char(1)) DEFAULT CHARSET = ujis engine=HEAP; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ujis engine=HEAP; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ujis engine=HEAP; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ujis engine=HEAP; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ujis engine=HEAP; +CREATE TABLE IF NOT EXISTS `ݏݏ`(`` char(1)) DEFAULT CHARSET = ujis engine=HEAP; +CREATE TABLE IF NOT EXISTS `ޏޏ`(`` char(1)) DEFAULT CHARSET = ujis engine=HEAP; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ujis engine=HEAP; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ujis engine=HEAP; +CREATE TABLE IF NOT EXISTS `ߏߏ`(``char(1)) DEFAULT CHARSET = ujis engine=HEAP; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ujis engine=HEAP; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ujis engine=HEAP; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ujis engine=HEAP; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ujis engine=HEAP; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ujis engine=HEAP; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ujis engine=HEAP; +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC `ݏݏ`; +Field Type Null Key Default Extra + char(1) YES NULL +DESC `ޏޏ`; +Field Type Null Key Default Extra + char(1) YES NULL +DESC `ߏߏ`; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL +) ENGINE=HEAP DEFAULT CHARSET=ujis +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL +) ENGINE=HEAP DEFAULT CHARSET=ujis +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL +) ENGINE=HEAP DEFAULT CHARSET=ujis +SHOW CREATE TABLE ``; +Table Create Table + CREATE TEMPORARY TABLE `` ( + `` char(1) default NULL +) ENGINE=HEAP DEFAULT CHARSET=ujis +SHOW CREATE TABLE ``; +Table Create Table + CREATE TEMPORARY TABLE `` ( + `` char(1) default NULL +) ENGINE=HEAP DEFAULT CHARSET=ujis +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL +) ENGINE=HEAP DEFAULT CHARSET=ujis +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL +) ENGINE=HEAP DEFAULT CHARSET=ujis +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL +) ENGINE=HEAP DEFAULT CHARSET=ujis +SHOW CREATE TABLE ``; +Table Create Table + CREATE TEMPORARY TABLE `` ( + `` char(1) default NULL +) ENGINE=HEAP DEFAULT CHARSET=ujis +SHOW CREATE TABLE ``; +Table Create Table + CREATE TEMPORARY TABLE `` ( + `` char(1) default NULL +) ENGINE=HEAP DEFAULT CHARSET=ujis +SHOW CREATE TABLE `ݏݏ`; +Table Create Table +ݏݏ CREATE TABLE `ݏݏ` ( + `` char(1) default NULL +) ENGINE=HEAP DEFAULT CHARSET=ujis +SHOW CREATE TABLE `ޏޏ`; +Table Create Table +ޏޏ CREATE TABLE `ޏޏ` ( + `` char(1) default NULL +) ENGINE=HEAP DEFAULT CHARSET=ujis +SHOW CREATE TABLE `ߏߏ`; +Table Create Table +ߏߏ CREATE TABLE `ߏߏ` ( + `` char(1) default NULL +) ENGINE=HEAP DEFAULT CHARSET=ujis +SHOW CREATE TABLE ``; +Table Create Table + CREATE TEMPORARY TABLE `` ( + `` char(1) default NULL +) ENGINE=HEAP DEFAULT CHARSET=ujis +SHOW CREATE TABLE ``; +Table Create Table + CREATE TEMPORARY TABLE `` ( + `` char(1) default NULL +) ENGINE=HEAP DEFAULT CHARSET=ujis +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE `ݏݏ`; +DROP TABLE `ޏޏ`; +DROP TABLE `ߏߏ`; +DROP TABLE ``; +DROP TABLE ``; +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = ujis engine=BDB; +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = ujis engine=BDB; +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = ujis engine=BDB; +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = ujis engine=BDB; +CREATE TABLE `ݏݏ`(`` char(1)) DEFAULT CHARSET = ujis engine=BDB; +CREATE TABLE `ޏޏ`(`` char(1)) DEFAULT CHARSET = ujis engine=BDB; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ujis engine=BDB; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ujis engine=BDB; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ujis engine=BDB; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ujis engine=BDB; +CREATE TABLE IF NOT EXISTS `ݏݏ`(`` char(1)) DEFAULT CHARSET = ujis engine=BDB; +CREATE TABLE IF NOT EXISTS `ޏޏ`(`` char(1)) DEFAULT CHARSET = ujis engine=BDB; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ujis engine=BDB; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ujis engine=BDB; +CREATE TABLE IF NOT EXISTS `ߏߏ`(``char(1)) DEFAULT CHARSET = ujis engine=BDB; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ujis engine=BDB; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ujis engine=BDB; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ujis engine=BDB; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ujis engine=BDB; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ujis engine=BDB; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ujis engine=BDB; +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC `ݏݏ`; +Field Type Null Key Default Extra + char(1) YES NULL +DESC `ޏޏ`; +Field Type Null Key Default Extra + char(1) YES NULL +DESC `ߏߏ`; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +DESC ``; +Field Type Null Key Default Extra + char(1) YES NULL +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL +) ENGINE=BerkeleyDB DEFAULT CHARSET=ujis +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL +) ENGINE=BerkeleyDB DEFAULT CHARSET=ujis +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL +) ENGINE=BerkeleyDB DEFAULT CHARSET=ujis +SHOW CREATE TABLE ``; +Table Create Table + CREATE TEMPORARY TABLE `` ( + `` char(1) default NULL +) ENGINE=BerkeleyDB DEFAULT CHARSET=ujis +SHOW CREATE TABLE ``; +Table Create Table + CREATE TEMPORARY TABLE `` ( + `` char(1) default NULL +) ENGINE=BerkeleyDB DEFAULT CHARSET=ujis +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL +) ENGINE=BerkeleyDB DEFAULT CHARSET=ujis +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL +) ENGINE=BerkeleyDB DEFAULT CHARSET=ujis +SHOW CREATE TABLE ``; +Table Create Table + CREATE TABLE `` ( + `` char(1) default NULL +) ENGINE=BerkeleyDB DEFAULT CHARSET=ujis +SHOW CREATE TABLE ``; +Table Create Table + CREATE TEMPORARY TABLE `` ( + `` char(1) default NULL +) ENGINE=BerkeleyDB DEFAULT CHARSET=ujis +SHOW CREATE TABLE ``; +Table Create Table + CREATE TEMPORARY TABLE `` ( + `` char(1) default NULL +) ENGINE=BerkeleyDB DEFAULT CHARSET=ujis +SHOW CREATE TABLE `ݏݏ`; +Table Create Table +ݏݏ CREATE TABLE `ݏݏ` ( + `` char(1) default NULL +) ENGINE=BerkeleyDB DEFAULT CHARSET=ujis +SHOW CREATE TABLE `ޏޏ`; +Table Create Table +ޏޏ CREATE TABLE `ޏޏ` ( + `` char(1) default NULL +) ENGINE=BerkeleyDB DEFAULT CHARSET=ujis +SHOW CREATE TABLE `ߏߏ`; +Table Create Table +ߏߏ CREATE TABLE `ߏߏ` ( + `` char(1) default NULL +) ENGINE=BerkeleyDB DEFAULT CHARSET=ujis +SHOW CREATE TABLE ``; +Table Create Table + CREATE TEMPORARY TABLE `` ( + `` char(1) default NULL +) ENGINE=BerkeleyDB DEFAULT CHARSET=ujis +SHOW CREATE TABLE ``; +Table Create Table + CREATE TEMPORARY TABLE `` ( + `` char(1) default NULL +) ENGINE=BerkeleyDB DEFAULT CHARSET=ujis +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE `ݏݏ`; +DROP TABLE `ޏޏ`; +DROP TABLE `ߏߏ`; +DROP TABLE ``; +DROP TABLE ``; diff --git a/mysql-test/suite/jp/r/jp_create_tbl_utf8.result b/mysql-test/suite/jp/r/jp_create_tbl_utf8.result new file mode 100755 index 00000000000..d4873406c46 --- /dev/null +++ b/mysql-test/suite/jp/r/jp_create_tbl_utf8.result @@ -0,0 +1,641 @@ +DROP TABLE IF EXISTS `アアア`; +DROP TABLE IF EXISTS `イイイ`; +DROP TABLE IF EXISTS `ウウウ`; +DROP TABLE IF EXISTS `エエエ`; +DROP TABLE IF EXISTS `オオオ`; +DROP TABLE IF EXISTS `あああ`; +DROP TABLE IF EXISTS `いいい`; +DROP TABLE IF EXISTS `ううう`; +DROP TABLE IF EXISTS `えええ`; +DROP TABLE IF EXISTS `おおお`; +DROP TABLE IF EXISTS `龖龖龖`; +DROP TABLE IF EXISTS `龗龗龗`; +DROP TABLE IF EXISTS `龞龞龞`; +DROP TABLE IF EXISTS `龡龡龡`; +DROP TABLE IF EXISTS `龢龢龢`; +SET NAMES utf8; +SET character_set_database = utf8; +CREATE TABLE `アアア`(`カカカ` char(1)) DEFAULT CHARSET = utf8 engine=INNODB; +CREATE TABLE `イイイ`(`キキキ` char(1)) DEFAULT CHARSET = utf8 engine=INNODB; +CREATE TABLE `あああ`(`かかか` char(1)) DEFAULT CHARSET = utf8 engine=INNODB; +CREATE TABLE `いいい`(`ききき` char(1)) DEFAULT CHARSET = utf8 engine=INNODB; +CREATE TABLE `龖龖龖`(`丂丂丂` char(1)) DEFAULT CHARSET = utf8 engine=INNODB; +CREATE TABLE `龗龗龗`(`丄丄丄` char(1)) DEFAULT CHARSET = utf8 engine=INNODB; +CREATE TABLE IF NOT EXISTS `アアア`(`カカカ` char(1)) DEFAULT CHARSET = utf8 engine=INNODB; +CREATE TABLE IF NOT EXISTS `イイイ`(`キキキ` char(1)) DEFAULT CHARSET = utf8 engine=INNODB; +CREATE TABLE IF NOT EXISTS `あああ`(`かかか` char(1)) DEFAULT CHARSET = utf8 engine=INNODB; +CREATE TABLE IF NOT EXISTS `いいい`(`ききき` char(1)) DEFAULT CHARSET = utf8 engine=INNODB; +CREATE TABLE IF NOT EXISTS `龖龖龖`(`丂丂丂` char(1)) DEFAULT CHARSET = utf8 engine=INNODB; +CREATE TABLE IF NOT EXISTS `龗龗龗`(`丄丄丄` char(1)) DEFAULT CHARSET = utf8 engine=INNODB; +CREATE TABLE IF NOT EXISTS `ウウウ`(`ククク` char(1)) DEFAULT CHARSET = utf8 engine=INNODB; +CREATE TABLE IF NOT EXISTS `ううう`(`くくく` char(1)) DEFAULT CHARSET = utf8 engine=INNODB; +CREATE TABLE IF NOT EXISTS `龞龞龞`(`丅丅丅`char(1)) DEFAULT CHARSET = utf8 engine=INNODB; +CREATE TEMPORARY TABLE `エエエ`(`ケケケ` char(1)) DEFAULT CHARSET = utf8 engine=INNODB; +CREATE TEMPORARY TABLE `オオオ`(`コココ` char(1)) DEFAULT CHARSET = utf8 engine=INNODB; +CREATE TEMPORARY TABLE `えええ`(`けけけ` char(1)) DEFAULT CHARSET = utf8 engine=INNODB; +CREATE TEMPORARY TABLE `おおお`(`こここ` char(1)) DEFAULT CHARSET = utf8 engine=INNODB; +CREATE TEMPORARY TABLE `龡龡龡`(`丌丌丌` char(1)) DEFAULT CHARSET = utf8 engine=INNODB; +CREATE TEMPORARY TABLE `龢龢龢`(`丒丒丒` char(1)) DEFAULT CHARSET = utf8 engine=INNODB; +DESC `アアア`; +Field Type Null Key Default Extra +カカカ char(1) YES NULL +DESC `イイイ`; +Field Type Null Key Default Extra +キキキ char(1) YES NULL +DESC `ウウウ`; +Field Type Null Key Default Extra +ククク char(1) YES NULL +DESC `エエエ`; +Field Type Null Key Default Extra +ケケケ char(1) YES NULL +DESC `オオオ`; +Field Type Null Key Default Extra +コココ char(1) YES NULL +DESC `あああ`; +Field Type Null Key Default Extra +かかか char(1) YES NULL +DESC `いいい`; +Field Type Null Key Default Extra +ききき char(1) YES NULL +DESC `ううう`; +Field Type Null Key Default Extra +くくく char(1) YES NULL +DESC `えええ`; +Field Type Null Key Default Extra +けけけ char(1) YES NULL +DESC `おおお`; +Field Type Null Key Default Extra +こここ char(1) YES NULL +DESC `龖龖龖`; +Field Type Null Key Default Extra +丂丂丂 char(1) YES NULL +DESC `龗龗龗`; +Field Type Null Key Default Extra +丄丄丄 char(1) YES NULL +DESC `龞龞龞`; +Field Type Null Key Default Extra +丅丅丅 char(1) YES NULL +DESC `龡龡龡`; +Field Type Null Key Default Extra +丌丌丌 char(1) YES NULL +DESC `龢龢龢`; +Field Type Null Key Default Extra +丒丒丒 char(1) YES NULL +SHOW CREATE TABLE `アアア`; +Table Create Table +アアア CREATE TABLE `アアア` ( + `カカカ` char(1) default NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8 +SHOW CREATE TABLE `イイイ`; +Table Create Table +イイイ CREATE TABLE `イイイ` ( + `キキキ` char(1) default NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8 +SHOW CREATE TABLE `ウウウ`; +Table Create Table +ウウウ CREATE TABLE `ウウウ` ( + `ククク` char(1) default NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8 +SHOW CREATE TABLE `エエエ`; +Table Create Table +エエエ CREATE TEMPORARY TABLE `エエエ` ( + `ケケケ` char(1) default NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8 +SHOW CREATE TABLE `オオオ`; +Table Create Table +オオオ CREATE TEMPORARY TABLE `オオオ` ( + `コココ` char(1) default NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8 +SHOW CREATE TABLE `あああ`; +Table Create Table +あああ CREATE TABLE `あああ` ( + `かかか` char(1) default NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8 +SHOW CREATE TABLE `いいい`; +Table Create Table +いいい CREATE TABLE `いいい` ( + `ききき` char(1) default NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8 +SHOW CREATE TABLE `ううう`; +Table Create Table +ううう CREATE TABLE `ううう` ( + `くくく` char(1) default NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8 +SHOW CREATE TABLE `えええ`; +Table Create Table +えええ CREATE TEMPORARY TABLE `えええ` ( + `けけけ` char(1) default NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8 +SHOW CREATE TABLE `おおお`; +Table Create Table +おおお CREATE TEMPORARY TABLE `おおお` ( + `こここ` char(1) default NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8 +SHOW CREATE TABLE `龖龖龖`; +Table Create Table +龖龖龖 CREATE TABLE `龖龖龖` ( + `丂丂丂` char(1) default NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8 +SHOW CREATE TABLE `龗龗龗`; +Table Create Table +龗龗龗 CREATE TABLE `龗龗龗` ( + `丄丄丄` char(1) default NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8 +SHOW CREATE TABLE `龞龞龞`; +Table Create Table +龞龞龞 CREATE TABLE `龞龞龞` ( + `丅丅丅` char(1) default NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8 +SHOW CREATE TABLE `龡龡龡`; +Table Create Table +龡龡龡 CREATE TEMPORARY TABLE `龡龡龡` ( + `丌丌丌` char(1) default NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8 +SHOW CREATE TABLE `龢龢龢`; +Table Create Table +龢龢龢 CREATE TEMPORARY TABLE `龢龢龢` ( + `丒丒丒` char(1) default NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8 +DROP TABLE `アアア`; +DROP TABLE `イイイ`; +DROP TABLE `ウウウ`; +DROP TABLE `エエエ`; +DROP TABLE `オオオ`; +DROP TABLE `あああ`; +DROP TABLE `いいい`; +DROP TABLE `ううう`; +DROP TABLE `えええ`; +DROP TABLE `おおお`; +DROP TABLE `龖龖龖`; +DROP TABLE `龗龗龗`; +DROP TABLE `龞龞龞`; +DROP TABLE `龡龡龡`; +DROP TABLE `龢龢龢`; +CREATE TABLE `アアア`(`カカカ` char(1)) DEFAULT CHARSET = utf8 engine=MyISAM; +CREATE TABLE `イイイ`(`キキキ` char(1)) DEFAULT CHARSET = utf8 engine=MyISAM; +CREATE TABLE `あああ`(`かかか` char(1)) DEFAULT CHARSET = utf8 engine=MyISAM; +CREATE TABLE `いいい`(`ききき` char(1)) DEFAULT CHARSET = utf8 engine=MyISAM; +CREATE TABLE `龖龖龖`(`丂丂丂` char(1)) DEFAULT CHARSET = utf8 engine=MyISAM; +CREATE TABLE `龗龗龗`(`丄丄丄` char(1)) DEFAULT CHARSET = utf8 engine=MyISAM; +CREATE TABLE IF NOT EXISTS `アアア`(`カカカ` char(1)) DEFAULT CHARSET = utf8 engine=MyISAM; +CREATE TABLE IF NOT EXISTS `イイイ`(`キキキ` char(1)) DEFAULT CHARSET = utf8 engine=MyISAM; +CREATE TABLE IF NOT EXISTS `あああ`(`かかか` char(1)) DEFAULT CHARSET = utf8 engine=MyISAM; +CREATE TABLE IF NOT EXISTS `いいい`(`ききき` char(1)) DEFAULT CHARSET = utf8 engine=MyISAM; +CREATE TABLE IF NOT EXISTS `龖龖龖`(`丂丂丂` char(1)) DEFAULT CHARSET = utf8 engine=MyISAM; +CREATE TABLE IF NOT EXISTS `龗龗龗`(`丄丄丄` char(1)) DEFAULT CHARSET = utf8 engine=MyISAM; +CREATE TABLE IF NOT EXISTS `ウウウ`(`ククク` char(1)) DEFAULT CHARSET = utf8 engine=MyISAM; +CREATE TABLE IF NOT EXISTS `ううう`(`くくく` char(1)) DEFAULT CHARSET = utf8 engine=MyISAM; +CREATE TABLE IF NOT EXISTS `龞龞龞`(`丅丅丅`char(1)) DEFAULT CHARSET = utf8 engine=MyISAM; +CREATE TEMPORARY TABLE `エエエ`(`ケケケ` char(1)) DEFAULT CHARSET = utf8 engine=MyISAM; +CREATE TEMPORARY TABLE `オオオ`(`コココ` char(1)) DEFAULT CHARSET = utf8 engine=MyISAM; +CREATE TEMPORARY TABLE `えええ`(`けけけ` char(1)) DEFAULT CHARSET = utf8 engine=MyISAM; +CREATE TEMPORARY TABLE `おおお`(`こここ` char(1)) DEFAULT CHARSET = utf8 engine=MyISAM; +CREATE TEMPORARY TABLE `龡龡龡`(`丌丌丌` char(1)) DEFAULT CHARSET = utf8 engine=MyISAM; +CREATE TEMPORARY TABLE `龢龢龢`(`丒丒丒` char(1)) DEFAULT CHARSET = utf8 engine=MyISAM; +DESC `アアア`; +Field Type Null Key Default Extra +カカカ char(1) YES NULL +DESC `イイイ`; +Field Type Null Key Default Extra +キキキ char(1) YES NULL +DESC `ウウウ`; +Field Type Null Key Default Extra +ククク char(1) YES NULL +DESC `エエエ`; +Field Type Null Key Default Extra +ケケケ char(1) YES NULL +DESC `オオオ`; +Field Type Null Key Default Extra +コココ char(1) YES NULL +DESC `あああ`; +Field Type Null Key Default Extra +かかか char(1) YES NULL +DESC `いいい`; +Field Type Null Key Default Extra +ききき char(1) YES NULL +DESC `ううう`; +Field Type Null Key Default Extra +くくく char(1) YES NULL +DESC `えええ`; +Field Type Null Key Default Extra +けけけ char(1) YES NULL +DESC `おおお`; +Field Type Null Key Default Extra +こここ char(1) YES NULL +DESC `龖龖龖`; +Field Type Null Key Default Extra +丂丂丂 char(1) YES NULL +DESC `龗龗龗`; +Field Type Null Key Default Extra +丄丄丄 char(1) YES NULL +DESC `龞龞龞`; +Field Type Null Key Default Extra +丅丅丅 char(1) YES NULL +DESC `龡龡龡`; +Field Type Null Key Default Extra +丌丌丌 char(1) YES NULL +DESC `龢龢龢`; +Field Type Null Key Default Extra +丒丒丒 char(1) YES NULL +SHOW CREATE TABLE `アアア`; +Table Create Table +アアア CREATE TABLE `アアア` ( + `カカカ` char(1) default NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8 +SHOW CREATE TABLE `イイイ`; +Table Create Table +イイイ CREATE TABLE `イイイ` ( + `キキキ` char(1) default NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8 +SHOW CREATE TABLE `ウウウ`; +Table Create Table +ウウウ CREATE TABLE `ウウウ` ( + `ククク` char(1) default NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8 +SHOW CREATE TABLE `エエエ`; +Table Create Table +エエエ CREATE TEMPORARY TABLE `エエエ` ( + `ケケケ` char(1) default NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8 +SHOW CREATE TABLE `オオオ`; +Table Create Table +オオオ CREATE TEMPORARY TABLE `オオオ` ( + `コココ` char(1) default NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8 +SHOW CREATE TABLE `あああ`; +Table Create Table +あああ CREATE TABLE `あああ` ( + `かかか` char(1) default NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8 +SHOW CREATE TABLE `いいい`; +Table Create Table +いいい CREATE TABLE `いいい` ( + `ききき` char(1) default NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8 +SHOW CREATE TABLE `ううう`; +Table Create Table +ううう CREATE TABLE `ううう` ( + `くくく` char(1) default NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8 +SHOW CREATE TABLE `えええ`; +Table Create Table +えええ CREATE TEMPORARY TABLE `えええ` ( + `けけけ` char(1) default NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8 +SHOW CREATE TABLE `おおお`; +Table Create Table +おおお CREATE TEMPORARY TABLE `おおお` ( + `こここ` char(1) default NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8 +SHOW CREATE TABLE `龖龖龖`; +Table Create Table +龖龖龖 CREATE TABLE `龖龖龖` ( + `丂丂丂` char(1) default NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8 +SHOW CREATE TABLE `龗龗龗`; +Table Create Table +龗龗龗 CREATE TABLE `龗龗龗` ( + `丄丄丄` char(1) default NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8 +SHOW CREATE TABLE `龞龞龞`; +Table Create Table +龞龞龞 CREATE TABLE `龞龞龞` ( + `丅丅丅` char(1) default NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8 +SHOW CREATE TABLE `龡龡龡`; +Table Create Table +龡龡龡 CREATE TEMPORARY TABLE `龡龡龡` ( + `丌丌丌` char(1) default NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8 +SHOW CREATE TABLE `龢龢龢`; +Table Create Table +龢龢龢 CREATE TEMPORARY TABLE `龢龢龢` ( + `丒丒丒` char(1) default NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8 +DROP TABLE `アアア`; +DROP TABLE `イイイ`; +DROP TABLE `ウウウ`; +DROP TABLE `エエエ`; +DROP TABLE `オオオ`; +DROP TABLE `あああ`; +DROP TABLE `いいい`; +DROP TABLE `ううう`; +DROP TABLE `えええ`; +DROP TABLE `おおお`; +DROP TABLE `龖龖龖`; +DROP TABLE `龗龗龗`; +DROP TABLE `龞龞龞`; +DROP TABLE `龡龡龡`; +DROP TABLE `龢龢龢`; +CREATE TABLE `アアア`(`カカカ` char(1)) DEFAULT CHARSET = utf8 engine=HEAP; +CREATE TABLE `イイイ`(`キキキ` char(1)) DEFAULT CHARSET = utf8 engine=HEAP; +CREATE TABLE `あああ`(`かかか` char(1)) DEFAULT CHARSET = utf8 engine=HEAP; +CREATE TABLE `いいい`(`ききき` char(1)) DEFAULT CHARSET = utf8 engine=HEAP; +CREATE TABLE `龖龖龖`(`丂丂丂` char(1)) DEFAULT CHARSET = utf8 engine=HEAP; +CREATE TABLE `龗龗龗`(`丄丄丄` char(1)) DEFAULT CHARSET = utf8 engine=HEAP; +CREATE TABLE IF NOT EXISTS `アアア`(`カカカ` char(1)) DEFAULT CHARSET = utf8 engine=HEAP; +CREATE TABLE IF NOT EXISTS `イイイ`(`キキキ` char(1)) DEFAULT CHARSET = utf8 engine=HEAP; +CREATE TABLE IF NOT EXISTS `あああ`(`かかか` char(1)) DEFAULT CHARSET = utf8 engine=HEAP; +CREATE TABLE IF NOT EXISTS `いいい`(`ききき` char(1)) DEFAULT CHARSET = utf8 engine=HEAP; +CREATE TABLE IF NOT EXISTS `龖龖龖`(`丂丂丂` char(1)) DEFAULT CHARSET = utf8 engine=HEAP; +CREATE TABLE IF NOT EXISTS `龗龗龗`(`丄丄丄` char(1)) DEFAULT CHARSET = utf8 engine=HEAP; +CREATE TABLE IF NOT EXISTS `ウウウ`(`ククク` char(1)) DEFAULT CHARSET = utf8 engine=HEAP; +CREATE TABLE IF NOT EXISTS `ううう`(`くくく` char(1)) DEFAULT CHARSET = utf8 engine=HEAP; +CREATE TABLE IF NOT EXISTS `龞龞龞`(`丅丅丅`char(1)) DEFAULT CHARSET = utf8 engine=HEAP; +CREATE TEMPORARY TABLE `エエエ`(`ケケケ` char(1)) DEFAULT CHARSET = utf8 engine=HEAP; +CREATE TEMPORARY TABLE `オオオ`(`コココ` char(1)) DEFAULT CHARSET = utf8 engine=HEAP; +CREATE TEMPORARY TABLE `えええ`(`けけけ` char(1)) DEFAULT CHARSET = utf8 engine=HEAP; +CREATE TEMPORARY TABLE `おおお`(`こここ` char(1)) DEFAULT CHARSET = utf8 engine=HEAP; +CREATE TEMPORARY TABLE `龡龡龡`(`丌丌丌` char(1)) DEFAULT CHARSET = utf8 engine=HEAP; +CREATE TEMPORARY TABLE `龢龢龢`(`丒丒丒` char(1)) DEFAULT CHARSET = utf8 engine=HEAP; +DESC `アアア`; +Field Type Null Key Default Extra +カカカ char(1) YES NULL +DESC `イイイ`; +Field Type Null Key Default Extra +キキキ char(1) YES NULL +DESC `ウウウ`; +Field Type Null Key Default Extra +ククク char(1) YES NULL +DESC `エエエ`; +Field Type Null Key Default Extra +ケケケ char(1) YES NULL +DESC `オオオ`; +Field Type Null Key Default Extra +コココ char(1) YES NULL +DESC `あああ`; +Field Type Null Key Default Extra +かかか char(1) YES NULL +DESC `いいい`; +Field Type Null Key Default Extra +ききき char(1) YES NULL +DESC `ううう`; +Field Type Null Key Default Extra +くくく char(1) YES NULL +DESC `えええ`; +Field Type Null Key Default Extra +けけけ char(1) YES NULL +DESC `おおお`; +Field Type Null Key Default Extra +こここ char(1) YES NULL +DESC `龖龖龖`; +Field Type Null Key Default Extra +丂丂丂 char(1) YES NULL +DESC `龗龗龗`; +Field Type Null Key Default Extra +丄丄丄 char(1) YES NULL +DESC `龞龞龞`; +Field Type Null Key Default Extra +丅丅丅 char(1) YES NULL +DESC `龡龡龡`; +Field Type Null Key Default Extra +丌丌丌 char(1) YES NULL +DESC `龢龢龢`; +Field Type Null Key Default Extra +丒丒丒 char(1) YES NULL +SHOW CREATE TABLE `アアア`; +Table Create Table +アアア CREATE TABLE `アアア` ( + `カカカ` char(1) default NULL +) ENGINE=HEAP DEFAULT CHARSET=utf8 +SHOW CREATE TABLE `イイイ`; +Table Create Table +イイイ CREATE TABLE `イイイ` ( + `キキキ` char(1) default NULL +) ENGINE=HEAP DEFAULT CHARSET=utf8 +SHOW CREATE TABLE `ウウウ`; +Table Create Table +ウウウ CREATE TABLE `ウウウ` ( + `ククク` char(1) default NULL +) ENGINE=HEAP DEFAULT CHARSET=utf8 +SHOW CREATE TABLE `エエエ`; +Table Create Table +エエエ CREATE TEMPORARY TABLE `エエエ` ( + `ケケケ` char(1) default NULL +) ENGINE=HEAP DEFAULT CHARSET=utf8 +SHOW CREATE TABLE `オオオ`; +Table Create Table +オオオ CREATE TEMPORARY TABLE `オオオ` ( + `コココ` char(1) default NULL +) ENGINE=HEAP DEFAULT CHARSET=utf8 +SHOW CREATE TABLE `あああ`; +Table Create Table +あああ CREATE TABLE `あああ` ( + `かかか` char(1) default NULL +) ENGINE=HEAP DEFAULT CHARSET=utf8 +SHOW CREATE TABLE `いいい`; +Table Create Table +いいい CREATE TABLE `いいい` ( + `ききき` char(1) default NULL +) ENGINE=HEAP DEFAULT CHARSET=utf8 +SHOW CREATE TABLE `ううう`; +Table Create Table +ううう CREATE TABLE `ううう` ( + `くくく` char(1) default NULL +) ENGINE=HEAP DEFAULT CHARSET=utf8 +SHOW CREATE TABLE `えええ`; +Table Create Table +えええ CREATE TEMPORARY TABLE `えええ` ( + `けけけ` char(1) default NULL +) ENGINE=HEAP DEFAULT CHARSET=utf8 +SHOW CREATE TABLE `おおお`; +Table Create Table +おおお CREATE TEMPORARY TABLE `おおお` ( + `こここ` char(1) default NULL +) ENGINE=HEAP DEFAULT CHARSET=utf8 +SHOW CREATE TABLE `龖龖龖`; +Table Create Table +龖龖龖 CREATE TABLE `龖龖龖` ( + `丂丂丂` char(1) default NULL +) ENGINE=HEAP DEFAULT CHARSET=utf8 +SHOW CREATE TABLE `龗龗龗`; +Table Create Table +龗龗龗 CREATE TABLE `龗龗龗` ( + `丄丄丄` char(1) default NULL +) ENGINE=HEAP DEFAULT CHARSET=utf8 +SHOW CREATE TABLE `龞龞龞`; +Table Create Table +龞龞龞 CREATE TABLE `龞龞龞` ( + `丅丅丅` char(1) default NULL +) ENGINE=HEAP DEFAULT CHARSET=utf8 +SHOW CREATE TABLE `龡龡龡`; +Table Create Table +龡龡龡 CREATE TEMPORARY TABLE `龡龡龡` ( + `丌丌丌` char(1) default NULL +) ENGINE=HEAP DEFAULT CHARSET=utf8 +SHOW CREATE TABLE `龢龢龢`; +Table Create Table +龢龢龢 CREATE TEMPORARY TABLE `龢龢龢` ( + `丒丒丒` char(1) default NULL +) ENGINE=HEAP DEFAULT CHARSET=utf8 +DROP TABLE `アアア`; +DROP TABLE `イイイ`; +DROP TABLE `ウウウ`; +DROP TABLE `エエエ`; +DROP TABLE `オオオ`; +DROP TABLE `あああ`; +DROP TABLE `いいい`; +DROP TABLE `ううう`; +DROP TABLE `えええ`; +DROP TABLE `おおお`; +DROP TABLE `龖龖龖`; +DROP TABLE `龗龗龗`; +DROP TABLE `龞龞龞`; +DROP TABLE `龡龡龡`; +DROP TABLE `龢龢龢`; +CREATE TABLE `アアア`(`カカカ` char(1)) DEFAULT CHARSET = utf8 engine=BDB; +CREATE TABLE `イイイ`(`キキキ` char(1)) DEFAULT CHARSET = utf8 engine=BDB; +CREATE TABLE `あああ`(`かかか` char(1)) DEFAULT CHARSET = utf8 engine=BDB; +CREATE TABLE `いいい`(`ききき` char(1)) DEFAULT CHARSET = utf8 engine=BDB; +CREATE TABLE `龖龖龖`(`丂丂丂` char(1)) DEFAULT CHARSET = utf8 engine=BDB; +CREATE TABLE `龗龗龗`(`丄丄丄` char(1)) DEFAULT CHARSET = utf8 engine=BDB; +CREATE TABLE IF NOT EXISTS `アアア`(`カカカ` char(1)) DEFAULT CHARSET = utf8 engine=BDB; +CREATE TABLE IF NOT EXISTS `イイイ`(`キキキ` char(1)) DEFAULT CHARSET = utf8 engine=BDB; +CREATE TABLE IF NOT EXISTS `あああ`(`かかか` char(1)) DEFAULT CHARSET = utf8 engine=BDB; +CREATE TABLE IF NOT EXISTS `いいい`(`ききき` char(1)) DEFAULT CHARSET = utf8 engine=BDB; +CREATE TABLE IF NOT EXISTS `龖龖龖`(`丂丂丂` char(1)) DEFAULT CHARSET = utf8 engine=BDB; +CREATE TABLE IF NOT EXISTS `龗龗龗`(`丄丄丄` char(1)) DEFAULT CHARSET = utf8 engine=BDB; +CREATE TABLE IF NOT EXISTS `ウウウ`(`ククク` char(1)) DEFAULT CHARSET = utf8 engine=BDB; +CREATE TABLE IF NOT EXISTS `ううう`(`くくく` char(1)) DEFAULT CHARSET = utf8 engine=BDB; +CREATE TABLE IF NOT EXISTS `龞龞龞`(`丅丅丅`char(1)) DEFAULT CHARSET = utf8 engine=BDB; +CREATE TEMPORARY TABLE `エエエ`(`ケケケ` char(1)) DEFAULT CHARSET = utf8 engine=BDB; +CREATE TEMPORARY TABLE `オオオ`(`コココ` char(1)) DEFAULT CHARSET = utf8 engine=BDB; +CREATE TEMPORARY TABLE `えええ`(`けけけ` char(1)) DEFAULT CHARSET = utf8 engine=BDB; +CREATE TEMPORARY TABLE `おおお`(`こここ` char(1)) DEFAULT CHARSET = utf8 engine=BDB; +CREATE TEMPORARY TABLE `龡龡龡`(`丌丌丌` char(1)) DEFAULT CHARSET = utf8 engine=BDB; +CREATE TEMPORARY TABLE `龢龢龢`(`丒丒丒` char(1)) DEFAULT CHARSET = utf8 engine=BDB; +DESC `アアア`; +Field Type Null Key Default Extra +カカカ char(1) YES NULL +DESC `イイイ`; +Field Type Null Key Default Extra +キキキ char(1) YES NULL +DESC `ウウウ`; +Field Type Null Key Default Extra +ククク char(1) YES NULL +DESC `エエエ`; +Field Type Null Key Default Extra +ケケケ char(1) YES NULL +DESC `オオオ`; +Field Type Null Key Default Extra +コココ char(1) YES NULL +DESC `あああ`; +Field Type Null Key Default Extra +かかか char(1) YES NULL +DESC `いいい`; +Field Type Null Key Default Extra +ききき char(1) YES NULL +DESC `ううう`; +Field Type Null Key Default Extra +くくく char(1) YES NULL +DESC `えええ`; +Field Type Null Key Default Extra +けけけ char(1) YES NULL +DESC `おおお`; +Field Type Null Key Default Extra +こここ char(1) YES NULL +DESC `龖龖龖`; +Field Type Null Key Default Extra +丂丂丂 char(1) YES NULL +DESC `龗龗龗`; +Field Type Null Key Default Extra +丄丄丄 char(1) YES NULL +DESC `龞龞龞`; +Field Type Null Key Default Extra +丅丅丅 char(1) YES NULL +DESC `龡龡龡`; +Field Type Null Key Default Extra +丌丌丌 char(1) YES NULL +DESC `龢龢龢`; +Field Type Null Key Default Extra +丒丒丒 char(1) YES NULL +SHOW CREATE TABLE `アアア`; +Table Create Table +アアア CREATE TABLE `アアア` ( + `カカカ` char(1) default NULL +) ENGINE=BerkeleyDB DEFAULT CHARSET=utf8 +SHOW CREATE TABLE `イイイ`; +Table Create Table +イイイ CREATE TABLE `イイイ` ( + `キキキ` char(1) default NULL +) ENGINE=BerkeleyDB DEFAULT CHARSET=utf8 +SHOW CREATE TABLE `ウウウ`; +Table Create Table +ウウウ CREATE TABLE `ウウウ` ( + `ククク` char(1) default NULL +) ENGINE=BerkeleyDB DEFAULT CHARSET=utf8 +SHOW CREATE TABLE `エエエ`; +Table Create Table +エエエ CREATE TEMPORARY TABLE `エエエ` ( + `ケケケ` char(1) default NULL +) ENGINE=BerkeleyDB DEFAULT CHARSET=utf8 +SHOW CREATE TABLE `オオオ`; +Table Create Table +オオオ CREATE TEMPORARY TABLE `オオオ` ( + `コココ` char(1) default NULL +) ENGINE=BerkeleyDB DEFAULT CHARSET=utf8 +SHOW CREATE TABLE `あああ`; +Table Create Table +あああ CREATE TABLE `あああ` ( + `かかか` char(1) default NULL +) ENGINE=BerkeleyDB DEFAULT CHARSET=utf8 +SHOW CREATE TABLE `いいい`; +Table Create Table +いいい CREATE TABLE `いいい` ( + `ききき` char(1) default NULL +) ENGINE=BerkeleyDB DEFAULT CHARSET=utf8 +SHOW CREATE TABLE `ううう`; +Table Create Table +ううう CREATE TABLE `ううう` ( + `くくく` char(1) default NULL +) ENGINE=BerkeleyDB DEFAULT CHARSET=utf8 +SHOW CREATE TABLE `えええ`; +Table Create Table +えええ CREATE TEMPORARY TABLE `えええ` ( + `けけけ` char(1) default NULL +) ENGINE=BerkeleyDB DEFAULT CHARSET=utf8 +SHOW CREATE TABLE `おおお`; +Table Create Table +おおお CREATE TEMPORARY TABLE `おおお` ( + `こここ` char(1) default NULL +) ENGINE=BerkeleyDB DEFAULT CHARSET=utf8 +SHOW CREATE TABLE `龖龖龖`; +Table Create Table +龖龖龖 CREATE TABLE `龖龖龖` ( + `丂丂丂` char(1) default NULL +) ENGINE=BerkeleyDB DEFAULT CHARSET=utf8 +SHOW CREATE TABLE `龗龗龗`; +Table Create Table +龗龗龗 CREATE TABLE `龗龗龗` ( + `丄丄丄` char(1) default NULL +) ENGINE=BerkeleyDB DEFAULT CHARSET=utf8 +SHOW CREATE TABLE `龞龞龞`; +Table Create Table +龞龞龞 CREATE TABLE `龞龞龞` ( + `丅丅丅` char(1) default NULL +) ENGINE=BerkeleyDB DEFAULT CHARSET=utf8 +SHOW CREATE TABLE `龡龡龡`; +Table Create Table +龡龡龡 CREATE TEMPORARY TABLE `龡龡龡` ( + `丌丌丌` char(1) default NULL +) ENGINE=BerkeleyDB DEFAULT CHARSET=utf8 +SHOW CREATE TABLE `龢龢龢`; +Table Create Table +龢龢龢 CREATE TEMPORARY TABLE `龢龢龢` ( + `丒丒丒` char(1) default NULL +) ENGINE=BerkeleyDB DEFAULT CHARSET=utf8 +DROP TABLE `アアア`; +DROP TABLE `イイイ`; +DROP TABLE `ウウウ`; +DROP TABLE `エエエ`; +DROP TABLE `オオオ`; +DROP TABLE `あああ`; +DROP TABLE `いいい`; +DROP TABLE `ううう`; +DROP TABLE `えええ`; +DROP TABLE `おおお`; +DROP TABLE `龖龖龖`; +DROP TABLE `龗龗龗`; +DROP TABLE `龞龞龞`; +DROP TABLE `龡龡龡`; +DROP TABLE `龢龢龢`; diff --git a/mysql-test/suite/jp/r/jp_enum_sjis.result b/mysql-test/suite/jp/r/jp_enum_sjis.result new file mode 100755 index 00000000000..1e46dbffbb1 --- /dev/null +++ b/mysql-test/suite/jp/r/jp_enum_sjis.result @@ -0,0 +1,362 @@ +drop table if exists `sP`; +drop table if exists `sQ`; +drop table if exists `sR`; +drop table if exists `sS`; +drop table if exists `sT`; +drop table if exists `sU`; +drop table if exists `sV`; +drop table if exists `sW`; +drop table if exists `sX`; +drop table if exists `sPO`; +drop table if exists `sPP`; +drop table if exists `sPQ`; +SET NAMES sjis; +SET character_set_database = sjis; +CREATE TABLE `sP` (`bP` ENUM('','',''), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sQ` (`bP` ENUM('','',''), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sR` (`bP` ENUM('\','\','\'), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sS` (`bP` ENUM('','',''), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sT` (`bP` ENUM('','',''), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sU` (`bP` ENUM('\','\','\'), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sV` (`bP` ENUM('','',''), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sW` (`bP` ENUM('','',''), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sX` (`bP` ENUM('\','\','\'), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sPO` (`bP` ENUM('','',''), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +CREATE TABLE `sPP` (`bP` ENUM('','',''), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +CREATE TABLE `sPQ` (`bP` ENUM('\','\','\'), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +INSERT INTO `sP` VALUES (''),(''),(''); +INSERT INTO `sQ` VALUES (''),(''),(''); +INSERT INTO `sR` VALUES ('\'),('\'),('\'); +INSERT INTO `sS` VALUES (''),(''),(''); +INSERT INTO `sT` VALUES (''),(''),(''); +INSERT INTO `sU` VALUES ('\'),('\'),('\'); +INSERT INTO `sV` VALUES (''),(''),(''); +INSERT INTO `sW` VALUES (''),(''),(''); +INSERT INTO `sX` VALUES ('\'),('\'),('\'); +INSERT INTO `sPO` VALUES (''),(''),(''); +INSERT INTO `sPP` VALUES (''),(''),(''); +INSERT INTO `sPQ` VALUES ('\'),('\'),('\'); +SELECT * FROM `sP`; +bP + + + +SELECT * FROM `sQ`; +bP + + + +SELECT * FROM `sR`; +bP +\ +\ +\ +SELECT * FROM `sS`; +bP + + + +SELECT * FROM `sT`; +bP + + + +SELECT * FROM `sU`; +bP +\ +\ +\ +SELECT * FROM `sV`; +bP + + + +SELECT * FROM `sW`; +bP + + + +SELECT * FROM `sX`; +bP +\ +\ +\ +SELECT * FROM `sPO`; +bP + + + +SELECT * FROM `sPP`; +bP + + + +SELECT * FROM `sPQ`; +bP +\ +\ +\ +SHOW CREATE TABLE `sP`; +Table Create Table +sP CREATE TABLE `sP` ( + `bP` enum('','','') default NULL, + KEY `bP` (`bP`) +) ENGINE=InnoDB DEFAULT CHARSET=sjis +SHOW CREATE TABLE `sQ`; +Table Create Table +sQ CREATE TABLE `sQ` ( + `bP` enum('','','') default NULL, + KEY `bP` (`bP`) +) ENGINE=InnoDB DEFAULT CHARSET=sjis +SHOW CREATE TABLE `sR`; +Table Create Table +sR CREATE TABLE `sR` ( + `bP` enum('\','\','\') default NULL, + KEY `bP` (`bP`) +) ENGINE=InnoDB DEFAULT CHARSET=sjis +SHOW CREATE TABLE `sS`; +Table Create Table +sS CREATE TABLE `sS` ( + `bP` enum('','','') default NULL, + KEY `bP` (`bP`) +) ENGINE=MyISAM DEFAULT CHARSET=sjis +SHOW CREATE TABLE `sT`; +Table Create Table +sT CREATE TABLE `sT` ( + `bP` enum('','','') default NULL, + KEY `bP` (`bP`) +) ENGINE=MyISAM DEFAULT CHARSET=sjis +SHOW CREATE TABLE `sU`; +Table Create Table +sU CREATE TABLE `sU` ( + `bP` enum('\','\','\') default NULL, + KEY `bP` (`bP`) +) ENGINE=MyISAM DEFAULT CHARSET=sjis +SHOW CREATE TABLE `sV`; +Table Create Table +sV CREATE TABLE `sV` ( + `bP` enum('','','') default NULL, + KEY `bP` (`bP`) +) ENGINE=HEAP DEFAULT CHARSET=sjis +SHOW CREATE TABLE `sW`; +Table Create Table +sW CREATE TABLE `sW` ( + `bP` enum('','','') default NULL, + KEY `bP` (`bP`) +) ENGINE=HEAP DEFAULT CHARSET=sjis +SHOW CREATE TABLE `sX`; +Table Create Table +sX CREATE TABLE `sX` ( + `bP` enum('\','\','\') default NULL, + KEY `bP` (`bP`) +) ENGINE=HEAP DEFAULT CHARSET=sjis +SHOW CREATE TABLE `sPO`; +Table Create Table +sPO CREATE TABLE `sPO` ( + `bP` enum('','','') default NULL, + KEY `bP` (`bP`) +) ENGINE=BerkeleyDB DEFAULT CHARSET=sjis +SHOW CREATE TABLE `sPP`; +Table Create Table +sPP CREATE TABLE `sPP` ( + `bP` enum('','','') default NULL, + KEY `bP` (`bP`) +) ENGINE=BerkeleyDB DEFAULT CHARSET=sjis +SHOW CREATE TABLE `sPQ`; +Table Create Table +sPQ CREATE TABLE `sPQ` ( + `bP` enum('\','\','\') default NULL, + KEY `bP` (`bP`) +) ENGINE=BerkeleyDB DEFAULT CHARSET=sjis +DESC `sP`; +Field Type Null Key Default Extra +bP enum('','','') YES MUL NULL +DESC `sQ`; +Field Type Null Key Default Extra +bP enum('','','') YES MUL NULL +DESC `sR`; +Field Type Null Key Default Extra +bP enum('\','\','\') YES MUL NULL +DESC `sS`; +Field Type Null Key Default Extra +bP enum('','','') YES MUL NULL +DESC `sT`; +Field Type Null Key Default Extra +bP enum('','','') YES MUL NULL +DESC `sU`; +Field Type Null Key Default Extra +bP enum('\','\','\') YES MUL NULL +DESC `sV`; +Field Type Null Key Default Extra +bP enum('','','') YES MUL NULL +DESC `sW`; +Field Type Null Key Default Extra +bP enum('','','') YES MUL NULL +DESC `sX`; +Field Type Null Key Default Extra +bP enum('\','\','\') YES MUL NULL +DESC `sPO`; +Field Type Null Key Default Extra +bP enum('','','') YES MUL NULL +DESC `sPP`; +Field Type Null Key Default Extra +bP enum('','','') YES MUL NULL +DESC `sPQ`; +Field Type Null Key Default Extra +bP enum('\','\','\') YES MUL NULL +ALTER TABLE `sP` ADD `bQ` CHAR(1) NOT NULL FIRST; +ALTER TABLE `sQ` ADD `bQ` CHAR(1) NOT NULL FIRST; +ALTER TABLE `sR` ADD `bQ` CHAR(1) NOT NULL FIRST; +ALTER TABLE `sS` ADD `bQ` CHAR(1) NOT NULL FIRST; +ALTER TABLE `sT` ADD `bQ` CHAR(1) NOT NULL FIRST; +ALTER TABLE `sU` ADD `bQ` CHAR(1) NOT NULL FIRST; +ALTER TABLE `sV` ADD `bQ` CHAR(1) NOT NULL FIRST; +ALTER TABLE `sW` ADD `bQ` CHAR(1) NOT NULL FIRST; +ALTER TABLE `sX` ADD `bQ` CHAR(1) NOT NULL FIRST; +ALTER TABLE `sPO` ADD `bQ` CHAR(1) NOT NULL FIRST; +ALTER TABLE `sPP` ADD `bQ` CHAR(1) NOT NULL FIRST; +ALTER TABLE `sPQ` ADD `bQ` CHAR(1) NOT NULL FIRST; +SHOW CREATE TABLE `sP`; +Table Create Table +sP CREATE TABLE `sP` ( + `bQ` char(1) NOT NULL default '', + `bP` enum('','','') default NULL, + KEY `bP` (`bP`) +) ENGINE=InnoDB DEFAULT CHARSET=sjis +SHOW CREATE TABLE `sQ`; +Table Create Table +sQ CREATE TABLE `sQ` ( + `bQ` char(1) NOT NULL default '', + `bP` enum('','','') default NULL, + KEY `bP` (`bP`) +) ENGINE=InnoDB DEFAULT CHARSET=sjis +SHOW CREATE TABLE `sR`; +Table Create Table +sR CREATE TABLE `sR` ( + `bQ` char(1) NOT NULL default '', + `bP` enum('\','\','\') default NULL, + KEY `bP` (`bP`) +) ENGINE=InnoDB DEFAULT CHARSET=sjis +SHOW CREATE TABLE `sS`; +Table Create Table +sS CREATE TABLE `sS` ( + `bQ` char(1) NOT NULL default '', + `bP` enum('','','') default NULL, + KEY `bP` (`bP`) +) ENGINE=MyISAM DEFAULT CHARSET=sjis +SHOW CREATE TABLE `sT`; +Table Create Table +sT CREATE TABLE `sT` ( + `bQ` char(1) NOT NULL default '', + `bP` enum('','','') default NULL, + KEY `bP` (`bP`) +) ENGINE=MyISAM DEFAULT CHARSET=sjis +SHOW CREATE TABLE `sU`; +Table Create Table +sU CREATE TABLE `sU` ( + `bQ` char(1) NOT NULL default '', + `bP` enum('\','\','\') default NULL, + KEY `bP` (`bP`) +) ENGINE=MyISAM DEFAULT CHARSET=sjis +SHOW CREATE TABLE `sV`; +Table Create Table +sV CREATE TABLE `sV` ( + `bQ` char(1) NOT NULL default '', + `bP` enum('','','') default NULL, + KEY `bP` (`bP`) +) ENGINE=HEAP DEFAULT CHARSET=sjis +SHOW CREATE TABLE `sW`; +Table Create Table +sW CREATE TABLE `sW` ( + `bQ` char(1) NOT NULL default '', + `bP` enum('','','') default NULL, + KEY `bP` (`bP`) +) ENGINE=HEAP DEFAULT CHARSET=sjis +SHOW CREATE TABLE `sX`; +Table Create Table +sX CREATE TABLE `sX` ( + `bQ` char(1) NOT NULL default '', + `bP` enum('\','\','\') default NULL, + KEY `bP` (`bP`) +) ENGINE=HEAP DEFAULT CHARSET=sjis +SHOW CREATE TABLE `sPO`; +Table Create Table +sPO CREATE TABLE `sPO` ( + `bQ` char(1) NOT NULL default '', + `bP` enum('','','') default NULL, + KEY `bP` (`bP`) +) ENGINE=BerkeleyDB DEFAULT CHARSET=sjis +SHOW CREATE TABLE `sPP`; +Table Create Table +sPP CREATE TABLE `sPP` ( + `bQ` char(1) NOT NULL default '', + `bP` enum('','','') default NULL, + KEY `bP` (`bP`) +) ENGINE=BerkeleyDB DEFAULT CHARSET=sjis +SHOW CREATE TABLE `sPQ`; +Table Create Table +sPQ CREATE TABLE `sPQ` ( + `bQ` char(1) NOT NULL default '', + `bP` enum('\','\','\') default NULL, + KEY `bP` (`bP`) +) ENGINE=BerkeleyDB DEFAULT CHARSET=sjis +DESC `sP`; +Field Type Null Key Default Extra +bQ char(1) +bP enum('','','') YES MUL NULL +DESC `sQ`; +Field Type Null Key Default Extra +bQ char(1) +bP enum('','','') YES MUL NULL +DESC `sR`; +Field Type Null Key Default Extra +bQ char(1) +bP enum('\','\','\') YES MUL NULL +DESC `sS`; +Field Type Null Key Default Extra +bQ char(1) +bP enum('','','') YES MUL NULL +DESC `sT`; +Field Type Null Key Default Extra +bQ char(1) +bP enum('','','') YES MUL NULL +DESC `sU`; +Field Type Null Key Default Extra +bQ char(1) +bP enum('\','\','\') YES MUL NULL +DESC `sV`; +Field Type Null Key Default Extra +bQ char(1) +bP enum('','','') YES MUL NULL +DESC `sW`; +Field Type Null Key Default Extra +bQ char(1) +bP enum('','','') YES MUL NULL +DESC `sX`; +Field Type Null Key Default Extra +bQ char(1) +bP enum('\','\','\') YES MUL NULL +DESC `sPO`; +Field Type Null Key Default Extra +bQ char(1) +bP enum('','','') YES MUL NULL +DESC `sPP`; +Field Type Null Key Default Extra +bQ char(1) +bP enum('','','') YES MUL NULL +DESC `sPQ`; +Field Type Null Key Default Extra +bQ char(1) +bP enum('\','\','\') YES MUL NULL +DROP TABLE `sP`; +DROP TABLE `sQ`; +DROP TABLE `sR`; +DROP TABLE `sS`; +DROP TABLE `sT`; +DROP TABLE `sU`; +DROP TABLE `sV`; +DROP TABLE `sW`; +DROP TABLE `sX`; +DROP TABLE `sPO`; +DROP TABLE `sPP`; +DROP TABLE `sPQ`; diff --git a/mysql-test/suite/jp/r/jp_enum_ucs2.result b/mysql-test/suite/jp/r/jp_enum_ucs2.result new file mode 100755 index 00000000000..a84cace35fe --- /dev/null +++ b/mysql-test/suite/jp/r/jp_enum_ucs2.result @@ -0,0 +1,219 @@ +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +SET NAMES ujis; +SET character_set_database = ucs2; +SET collation_connection = ucs2_general_ci; +CREATE TABLE `ԣ` (`ã` ENUM('','',''), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` ENUM('','',''), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` ENUM('','',''), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` ENUM('','',''), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` ENUM('','',''), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` ENUM('','',''), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` ENUM('','',''), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` ENUM('','',''), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` ENUM('','',''), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` ENUM('','',''), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +CREATE TABLE `ԣ` (`ã` ENUM('','',''), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +CREATE TABLE `ԣ` (`ã` ENUM('','',''), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +INSERT INTO `ԣ` VALUES (''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''); +SELECT * FROM `ԣ`; +ã + + + +SELECT * FROM `ԣ`; +ã + + + +SELECT * FROM `ԣ`; +ã + + + +SELECT * FROM `ԣ`; +ã + + + +SELECT * FROM `ԣ`; +ã + + + +SELECT * FROM `ԣ`; +ã + + + +SELECT * FROM `ԣ`; +ã + + + +SELECT * FROM `ԣ`; +ã + + + +SELECT * FROM `ԣ`; +ã + + + +SELECT * FROM `ԣ`; +ã + + + +SELECT * FROM `ԣ`; +ã + + + +SELECT * FROM `ԣ`; +ã + + + +SHOW CREATE TABLE `ԣ`; +Table Create Table +ԣ CREATE TABLE `ԣ` ( + `ã` enum('','','') default NULL, + KEY `ã` (`ã`) +) ENGINE=InnoDB DEFAULT CHARSET=ucs2 +SHOW CREATE TABLE `ԣ`; +Table Create Table +ԣ CREATE TABLE `ԣ` ( + `ã` enum('','','') default NULL, + KEY `ã` (`ã`) +) ENGINE=InnoDB DEFAULT CHARSET=ucs2 +SHOW CREATE TABLE `ԣ`; +Table Create Table +ԣ CREATE TABLE `ԣ` ( + `ã` enum('','','') default NULL, + KEY `ã` (`ã`) +) ENGINE=InnoDB DEFAULT CHARSET=ucs2 +SHOW CREATE TABLE `ԣ`; +Table Create Table +ԣ CREATE TABLE `ԣ` ( + `ã` enum('','','') default NULL, + KEY `ã` (`ã`) +) ENGINE=MyISAM DEFAULT CHARSET=ucs2 +SHOW CREATE TABLE `ԣ`; +Table Create Table +ԣ CREATE TABLE `ԣ` ( + `ã` enum('','','') default NULL, + KEY `ã` (`ã`) +) ENGINE=MyISAM DEFAULT CHARSET=ucs2 +SHOW CREATE TABLE `ԣ`; +Table Create Table +ԣ CREATE TABLE `ԣ` ( + `ã` enum('','','') default NULL, + KEY `ã` (`ã`) +) ENGINE=MyISAM DEFAULT CHARSET=ucs2 +SHOW CREATE TABLE `ԣ`; +Table Create Table +ԣ CREATE TABLE `ԣ` ( + `ã` enum('','','') default NULL, + KEY `ã` (`ã`) +) ENGINE=HEAP DEFAULT CHARSET=ucs2 +SHOW CREATE TABLE `ԣ`; +Table Create Table +ԣ CREATE TABLE `ԣ` ( + `ã` enum('','','') default NULL, + KEY `ã` (`ã`) +) ENGINE=HEAP DEFAULT CHARSET=ucs2 +SHOW CREATE TABLE `ԣ`; +Table Create Table +ԣ CREATE TABLE `ԣ` ( + `ã` enum('','','') default NULL, + KEY `ã` (`ã`) +) ENGINE=HEAP DEFAULT CHARSET=ucs2 +SHOW CREATE TABLE `ԣ`; +Table Create Table +ԣ CREATE TABLE `ԣ` ( + `ã` enum('','','') default NULL, + KEY `ã` (`ã`) +) ENGINE=BerkeleyDB DEFAULT CHARSET=ucs2 +SHOW CREATE TABLE `ԣ`; +Table Create Table +ԣ CREATE TABLE `ԣ` ( + `ã` enum('','','') default NULL, + KEY `ã` (`ã`) +) ENGINE=BerkeleyDB DEFAULT CHARSET=ucs2 +SHOW CREATE TABLE `ԣ`; +Table Create Table +ԣ CREATE TABLE `ԣ` ( + `ã` enum('','','') default NULL, + KEY `ã` (`ã`) +) ENGINE=BerkeleyDB DEFAULT CHARSET=ucs2 +DESC `ԣ`; +Field Type Null Key Default Extra +ã enum('','','') YES MUL NULL +DESC `ԣ`; +Field Type Null Key Default Extra +ã enum('','','') YES MUL NULL +DESC `ԣ`; +Field Type Null Key Default Extra +ã enum('','','') YES MUL NULL +DESC `ԣ`; +Field Type Null Key Default Extra +ã enum('','','') YES MUL NULL +DESC `ԣ`; +Field Type Null Key Default Extra +ã enum('','','') YES MUL NULL +DESC `ԣ`; +Field Type Null Key Default Extra +ã enum('','','') YES MUL NULL +DESC `ԣ`; +Field Type Null Key Default Extra +ã enum('','','') YES MUL NULL +DESC `ԣ`; +Field Type Null Key Default Extra +ã enum('','','') YES MUL NULL +DESC `ԣ`; +Field Type Null Key Default Extra +ã enum('','','') YES MUL NULL +DESC `ԣ`; +Field Type Null Key Default Extra +ã enum('','','') YES MUL NULL +DESC `ԣ`; +Field Type Null Key Default Extra +ã enum('','','') YES MUL NULL +DESC `ԣ`; +Field Type Null Key Default Extra +ã enum('','','') YES MUL NULL +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; diff --git a/mysql-test/suite/jp/r/jp_enum_ujis.result b/mysql-test/suite/jp/r/jp_enum_ujis.result new file mode 100755 index 00000000000..dbc850b1368 --- /dev/null +++ b/mysql-test/suite/jp/r/jp_enum_ujis.result @@ -0,0 +1,362 @@ +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +SET NAMES ujis; +SET character_set_database = ujis; +CREATE TABLE `ԣ` (`ã` ENUM('','',''), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` ENUM('','',''), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` ENUM('','',''), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` ENUM('','',''), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` ENUM('','',''), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` ENUM('','',''), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` ENUM('','',''), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` ENUM('','',''), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` ENUM('','',''), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` ENUM('','',''), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +CREATE TABLE `ԣ` (`ã` ENUM('','',''), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +CREATE TABLE `ԣ` (`ã` ENUM('','',''), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +INSERT INTO `ԣ` VALUES (''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''); +SELECT * FROM `ԣ`; +ã + + + +SELECT * FROM `ԣ`; +ã + + + +SELECT * FROM `ԣ`; +ã + + + +SELECT * FROM `ԣ`; +ã + + + +SELECT * FROM `ԣ`; +ã + + + +SELECT * FROM `ԣ`; +ã + + + +SELECT * FROM `ԣ`; +ã + + + +SELECT * FROM `ԣ`; +ã + + + +SELECT * FROM `ԣ`; +ã + + + +SELECT * FROM `ԣ`; +ã + + + +SELECT * FROM `ԣ`; +ã + + + +SELECT * FROM `ԣ`; +ã + + + +SHOW CREATE TABLE `ԣ`; +Table Create Table +ԣ CREATE TABLE `ԣ` ( + `ã` enum('','','') default NULL, + KEY `ã` (`ã`) +) ENGINE=InnoDB DEFAULT CHARSET=ujis +SHOW CREATE TABLE `ԣ`; +Table Create Table +ԣ CREATE TABLE `ԣ` ( + `ã` enum('','','') default NULL, + KEY `ã` (`ã`) +) ENGINE=InnoDB DEFAULT CHARSET=ujis +SHOW CREATE TABLE `ԣ`; +Table Create Table +ԣ CREATE TABLE `ԣ` ( + `ã` enum('','','') default NULL, + KEY `ã` (`ã`) +) ENGINE=InnoDB DEFAULT CHARSET=ujis +SHOW CREATE TABLE `ԣ`; +Table Create Table +ԣ CREATE TABLE `ԣ` ( + `ã` enum('','','') default NULL, + KEY `ã` (`ã`) +) ENGINE=MyISAM DEFAULT CHARSET=ujis +SHOW CREATE TABLE `ԣ`; +Table Create Table +ԣ CREATE TABLE `ԣ` ( + `ã` enum('','','') default NULL, + KEY `ã` (`ã`) +) ENGINE=MyISAM DEFAULT CHARSET=ujis +SHOW CREATE TABLE `ԣ`; +Table Create Table +ԣ CREATE TABLE `ԣ` ( + `ã` enum('','','') default NULL, + KEY `ã` (`ã`) +) ENGINE=MyISAM DEFAULT CHARSET=ujis +SHOW CREATE TABLE `ԣ`; +Table Create Table +ԣ CREATE TABLE `ԣ` ( + `ã` enum('','','') default NULL, + KEY `ã` (`ã`) +) ENGINE=HEAP DEFAULT CHARSET=ujis +SHOW CREATE TABLE `ԣ`; +Table Create Table +ԣ CREATE TABLE `ԣ` ( + `ã` enum('','','') default NULL, + KEY `ã` (`ã`) +) ENGINE=HEAP DEFAULT CHARSET=ujis +SHOW CREATE TABLE `ԣ`; +Table Create Table +ԣ CREATE TABLE `ԣ` ( + `ã` enum('','','') default NULL, + KEY `ã` (`ã`) +) ENGINE=HEAP DEFAULT CHARSET=ujis +SHOW CREATE TABLE `ԣ`; +Table Create Table +ԣ CREATE TABLE `ԣ` ( + `ã` enum('','','') default NULL, + KEY `ã` (`ã`) +) ENGINE=BerkeleyDB DEFAULT CHARSET=ujis +SHOW CREATE TABLE `ԣ`; +Table Create Table +ԣ CREATE TABLE `ԣ` ( + `ã` enum('','','') default NULL, + KEY `ã` (`ã`) +) ENGINE=BerkeleyDB DEFAULT CHARSET=ujis +SHOW CREATE TABLE `ԣ`; +Table Create Table +ԣ CREATE TABLE `ԣ` ( + `ã` enum('','','') default NULL, + KEY `ã` (`ã`) +) ENGINE=BerkeleyDB DEFAULT CHARSET=ujis +DESC `ԣ`; +Field Type Null Key Default Extra +ã enum('','','') YES MUL NULL +DESC `ԣ`; +Field Type Null Key Default Extra +ã enum('','','') YES MUL NULL +DESC `ԣ`; +Field Type Null Key Default Extra +ã enum('','','') YES MUL NULL +DESC `ԣ`; +Field Type Null Key Default Extra +ã enum('','','') YES MUL NULL +DESC `ԣ`; +Field Type Null Key Default Extra +ã enum('','','') YES MUL NULL +DESC `ԣ`; +Field Type Null Key Default Extra +ã enum('','','') YES MUL NULL +DESC `ԣ`; +Field Type Null Key Default Extra +ã enum('','','') YES MUL NULL +DESC `ԣ`; +Field Type Null Key Default Extra +ã enum('','','') YES MUL NULL +DESC `ԣ`; +Field Type Null Key Default Extra +ã enum('','','') YES MUL NULL +DESC `ԣ`; +Field Type Null Key Default Extra +ã enum('','','') YES MUL NULL +DESC `ԣ`; +Field Type Null Key Default Extra +ã enum('','','') YES MUL NULL +DESC `ԣ`; +Field Type Null Key Default Extra +ã enum('','','') YES MUL NULL +ALTER TABLE `ԣ` ADD `ã` CHAR(1) NOT NULL FIRST; +ALTER TABLE `ԣ` ADD `ã` CHAR(1) NOT NULL FIRST; +ALTER TABLE `ԣ` ADD `ã` CHAR(1) NOT NULL FIRST; +ALTER TABLE `ԣ` ADD `ã` CHAR(1) NOT NULL FIRST; +ALTER TABLE `ԣ` ADD `ã` CHAR(1) NOT NULL FIRST; +ALTER TABLE `ԣ` ADD `ã` CHAR(1) NOT NULL FIRST; +ALTER TABLE `ԣ` ADD `ã` CHAR(1) NOT NULL FIRST; +ALTER TABLE `ԣ` ADD `ã` CHAR(1) NOT NULL FIRST; +ALTER TABLE `ԣ` ADD `ã` CHAR(1) NOT NULL FIRST; +ALTER TABLE `ԣ` ADD `ã` CHAR(1) NOT NULL FIRST; +ALTER TABLE `ԣ` ADD `ã` CHAR(1) NOT NULL FIRST; +ALTER TABLE `ԣ` ADD `ã` CHAR(1) NOT NULL FIRST; +SHOW CREATE TABLE `ԣ`; +Table Create Table +ԣ CREATE TABLE `ԣ` ( + `ã` char(1) NOT NULL default '', + `ã` enum('','','') default NULL, + KEY `ã` (`ã`) +) ENGINE=InnoDB DEFAULT CHARSET=ujis +SHOW CREATE TABLE `ԣ`; +Table Create Table +ԣ CREATE TABLE `ԣ` ( + `ã` char(1) NOT NULL default '', + `ã` enum('','','') default NULL, + KEY `ã` (`ã`) +) ENGINE=InnoDB DEFAULT CHARSET=ujis +SHOW CREATE TABLE `ԣ`; +Table Create Table +ԣ CREATE TABLE `ԣ` ( + `ã` char(1) NOT NULL default '', + `ã` enum('','','') default NULL, + KEY `ã` (`ã`) +) ENGINE=InnoDB DEFAULT CHARSET=ujis +SHOW CREATE TABLE `ԣ`; +Table Create Table +ԣ CREATE TABLE `ԣ` ( + `ã` char(1) NOT NULL default '', + `ã` enum('','','') default NULL, + KEY `ã` (`ã`) +) ENGINE=MyISAM DEFAULT CHARSET=ujis +SHOW CREATE TABLE `ԣ`; +Table Create Table +ԣ CREATE TABLE `ԣ` ( + `ã` char(1) NOT NULL default '', + `ã` enum('','','') default NULL, + KEY `ã` (`ã`) +) ENGINE=MyISAM DEFAULT CHARSET=ujis +SHOW CREATE TABLE `ԣ`; +Table Create Table +ԣ CREATE TABLE `ԣ` ( + `ã` char(1) NOT NULL default '', + `ã` enum('','','') default NULL, + KEY `ã` (`ã`) +) ENGINE=MyISAM DEFAULT CHARSET=ujis +SHOW CREATE TABLE `ԣ`; +Table Create Table +ԣ CREATE TABLE `ԣ` ( + `ã` char(1) NOT NULL default '', + `ã` enum('','','') default NULL, + KEY `ã` (`ã`) +) ENGINE=HEAP DEFAULT CHARSET=ujis +SHOW CREATE TABLE `ԣ`; +Table Create Table +ԣ CREATE TABLE `ԣ` ( + `ã` char(1) NOT NULL default '', + `ã` enum('','','') default NULL, + KEY `ã` (`ã`) +) ENGINE=HEAP DEFAULT CHARSET=ujis +SHOW CREATE TABLE `ԣ`; +Table Create Table +ԣ CREATE TABLE `ԣ` ( + `ã` char(1) NOT NULL default '', + `ã` enum('','','') default NULL, + KEY `ã` (`ã`) +) ENGINE=HEAP DEFAULT CHARSET=ujis +SHOW CREATE TABLE `ԣ`; +Table Create Table +ԣ CREATE TABLE `ԣ` ( + `ã` char(1) NOT NULL default '', + `ã` enum('','','') default NULL, + KEY `ã` (`ã`) +) ENGINE=BerkeleyDB DEFAULT CHARSET=ujis +SHOW CREATE TABLE `ԣ`; +Table Create Table +ԣ CREATE TABLE `ԣ` ( + `ã` char(1) NOT NULL default '', + `ã` enum('','','') default NULL, + KEY `ã` (`ã`) +) ENGINE=BerkeleyDB DEFAULT CHARSET=ujis +SHOW CREATE TABLE `ԣ`; +Table Create Table +ԣ CREATE TABLE `ԣ` ( + `ã` char(1) NOT NULL default '', + `ã` enum('','','') default NULL, + KEY `ã` (`ã`) +) ENGINE=BerkeleyDB DEFAULT CHARSET=ujis +DESC `ԣ`; +Field Type Null Key Default Extra +ã char(1) +ã enum('','','') YES MUL NULL +DESC `ԣ`; +Field Type Null Key Default Extra +ã char(1) +ã enum('','','') YES MUL NULL +DESC `ԣ`; +Field Type Null Key Default Extra +ã char(1) +ã enum('','','') YES MUL NULL +DESC `ԣ`; +Field Type Null Key Default Extra +ã char(1) +ã enum('','','') YES MUL NULL +DESC `ԣ`; +Field Type Null Key Default Extra +ã char(1) +ã enum('','','') YES MUL NULL +DESC `ԣ`; +Field Type Null Key Default Extra +ã char(1) +ã enum('','','') YES MUL NULL +DESC `ԣ`; +Field Type Null Key Default Extra +ã char(1) +ã enum('','','') YES MUL NULL +DESC `ԣ`; +Field Type Null Key Default Extra +ã char(1) +ã enum('','','') YES MUL NULL +DESC `ԣ`; +Field Type Null Key Default Extra +ã char(1) +ã enum('','','') YES MUL NULL +DESC `ԣ`; +Field Type Null Key Default Extra +ã char(1) +ã enum('','','') YES MUL NULL +DESC `ԣ`; +Field Type Null Key Default Extra +ã char(1) +ã enum('','','') YES MUL NULL +DESC `ԣ`; +Field Type Null Key Default Extra +ã char(1) +ã enum('','','') YES MUL NULL +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; diff --git a/mysql-test/suite/jp/r/jp_enum_utf8.result b/mysql-test/suite/jp/r/jp_enum_utf8.result new file mode 100755 index 00000000000..f2515871ece --- /dev/null +++ b/mysql-test/suite/jp/r/jp_enum_utf8.result @@ -0,0 +1,362 @@ +drop table if exists `T1`; +drop table if exists `T2`; +drop table if exists `T3`; +drop table if exists `T4`; +drop table if exists `T5`; +drop table if exists `T6`; +drop table if exists `T7`; +drop table if exists `T8`; +drop table if exists `T9`; +drop table if exists `T10`; +drop table if exists `T11`; +drop table if exists `T12`; +SET NAMES utf8; +SET character_set_database = utf8; +CREATE TABLE `T1` (`C1` ENUM('ア','イ','ウ'), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T2` (`C1` ENUM('あ','い','う'), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T3` (`C1` ENUM('龔','龖','龗'), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T4` (`C1` ENUM('ア','イ','ウ'), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T5` (`C1` ENUM('あ','い','う'), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T6` (`C1` ENUM('龔','龖','龗'), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T7` (`C1` ENUM('ア','イ','ウ'), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T8` (`C1` ENUM('あ','い','う'), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T9` (`C1` ENUM('龔','龖','龗'), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T10` (`C1` ENUM('ア','イ','ウ'), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +CREATE TABLE `T11` (`C1` ENUM('あ','い','う'), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +CREATE TABLE `T12` (`C1` ENUM('龔','龖','龗'), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +INSERT INTO `T1` VALUES ('ア'),('イ'),('ウ'); +INSERT INTO `T2` VALUES ('あ'),('い'),('う'); +INSERT INTO `T3` VALUES ('龔'),('龖'),('龗'); +INSERT INTO `T4` VALUES ('ア'),('イ'),('ウ'); +INSERT INTO `T5` VALUES ('あ'),('い'),('う'); +INSERT INTO `T6` VALUES ('龔'),('龖'),('龗'); +INSERT INTO `T7` VALUES ('ア'),('イ'),('ウ'); +INSERT INTO `T8` VALUES ('あ'),('い'),('う'); +INSERT INTO `T9` VALUES ('龔'),('龖'),('龗'); +INSERT INTO `T10` VALUES ('ア'),('イ'),('ウ'); +INSERT INTO `T11` VALUES ('あ'),('い'),('う'); +INSERT INTO `T12` VALUES ('龔'),('龖'),('龗'); +SELECT * FROM `T1`; +C1 +ア +イ +ウ +SELECT * FROM `T2`; +C1 +あ +い +う +SELECT * FROM `T3`; +C1 +龔 +龖 +龗 +SELECT * FROM `T4`; +C1 +ア +イ +ウ +SELECT * FROM `T5`; +C1 +あ +い +う +SELECT * FROM `T6`; +C1 +龔 +龖 +龗 +SELECT * FROM `T7`; +C1 +ア +イ +ウ +SELECT * FROM `T8`; +C1 +あ +い +う +SELECT * FROM `T9`; +C1 +龔 +龖 +龗 +SELECT * FROM `T10`; +C1 +ア +イ +ウ +SELECT * FROM `T11`; +C1 +あ +い +う +SELECT * FROM `T12`; +C1 +龔 +龖 +龗 +SHOW CREATE TABLE `T1`; +Table Create Table +T1 CREATE TABLE `T1` ( + `C1` enum('ア','イ','ウ') default NULL, + KEY `C1` (`C1`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 +SHOW CREATE TABLE `T2`; +Table Create Table +T2 CREATE TABLE `T2` ( + `C1` enum('あ','い','う') default NULL, + KEY `C1` (`C1`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 +SHOW CREATE TABLE `T3`; +Table Create Table +T3 CREATE TABLE `T3` ( + `C1` enum('龔','龖','龗') default NULL, + KEY `C1` (`C1`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 +SHOW CREATE TABLE `T4`; +Table Create Table +T4 CREATE TABLE `T4` ( + `C1` enum('ア','イ','ウ') default NULL, + KEY `C1` (`C1`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 +SHOW CREATE TABLE `T5`; +Table Create Table +T5 CREATE TABLE `T5` ( + `C1` enum('あ','い','う') default NULL, + KEY `C1` (`C1`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 +SHOW CREATE TABLE `T6`; +Table Create Table +T6 CREATE TABLE `T6` ( + `C1` enum('龔','龖','龗') default NULL, + KEY `C1` (`C1`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 +SHOW CREATE TABLE `T7`; +Table Create Table +T7 CREATE TABLE `T7` ( + `C1` enum('ア','イ','ウ') default NULL, + KEY `C1` (`C1`) +) ENGINE=HEAP DEFAULT CHARSET=utf8 +SHOW CREATE TABLE `T8`; +Table Create Table +T8 CREATE TABLE `T8` ( + `C1` enum('あ','い','う') default NULL, + KEY `C1` (`C1`) +) ENGINE=HEAP DEFAULT CHARSET=utf8 +SHOW CREATE TABLE `T9`; +Table Create Table +T9 CREATE TABLE `T9` ( + `C1` enum('龔','龖','龗') default NULL, + KEY `C1` (`C1`) +) ENGINE=HEAP DEFAULT CHARSET=utf8 +SHOW CREATE TABLE `T10`; +Table Create Table +T10 CREATE TABLE `T10` ( + `C1` enum('ア','イ','ウ') default NULL, + KEY `C1` (`C1`) +) ENGINE=BerkeleyDB DEFAULT CHARSET=utf8 +SHOW CREATE TABLE `T11`; +Table Create Table +T11 CREATE TABLE `T11` ( + `C1` enum('あ','い','う') default NULL, + KEY `C1` (`C1`) +) ENGINE=BerkeleyDB DEFAULT CHARSET=utf8 +SHOW CREATE TABLE `T12`; +Table Create Table +T12 CREATE TABLE `T12` ( + `C1` enum('龔','龖','龗') default NULL, + KEY `C1` (`C1`) +) ENGINE=BerkeleyDB DEFAULT CHARSET=utf8 +DESC `T1`; +Field Type Null Key Default Extra +C1 enum('ア','イ','ウ') YES MUL NULL +DESC `T2`; +Field Type Null Key Default Extra +C1 enum('あ','い','う') YES MUL NULL +DESC `T3`; +Field Type Null Key Default Extra +C1 enum('龔','龖','龗') YES MUL NULL +DESC `T4`; +Field Type Null Key Default Extra +C1 enum('ア','イ','ウ') YES MUL NULL +DESC `T5`; +Field Type Null Key Default Extra +C1 enum('あ','い','う') YES MUL NULL +DESC `T6`; +Field Type Null Key Default Extra +C1 enum('龔','龖','龗') YES MUL NULL +DESC `T7`; +Field Type Null Key Default Extra +C1 enum('ア','イ','ウ') YES MUL NULL +DESC `T8`; +Field Type Null Key Default Extra +C1 enum('あ','い','う') YES MUL NULL +DESC `T9`; +Field Type Null Key Default Extra +C1 enum('龔','龖','龗') YES MUL NULL +DESC `T10`; +Field Type Null Key Default Extra +C1 enum('ア','イ','ウ') YES MUL NULL +DESC `T11`; +Field Type Null Key Default Extra +C1 enum('あ','い','う') YES MUL NULL +DESC `T12`; +Field Type Null Key Default Extra +C1 enum('龔','龖','龗') YES MUL NULL +ALTER TABLE `T1` ADD `C2` CHAR(1) NOT NULL FIRST; +ALTER TABLE `T2` ADD `C2` CHAR(1) NOT NULL FIRST; +ALTER TABLE `T3` ADD `C2` CHAR(1) NOT NULL FIRST; +ALTER TABLE `T4` ADD `C2` CHAR(1) NOT NULL FIRST; +ALTER TABLE `T5` ADD `C2` CHAR(1) NOT NULL FIRST; +ALTER TABLE `T6` ADD `C2` CHAR(1) NOT NULL FIRST; +ALTER TABLE `T7` ADD `C2` CHAR(1) NOT NULL FIRST; +ALTER TABLE `T8` ADD `C2` CHAR(1) NOT NULL FIRST; +ALTER TABLE `T9` ADD `C2` CHAR(1) NOT NULL FIRST; +ALTER TABLE `T10` ADD `C2` CHAR(1) NOT NULL FIRST; +ALTER TABLE `T11` ADD `C2` CHAR(1) NOT NULL FIRST; +ALTER TABLE `T12` ADD `C2` CHAR(1) NOT NULL FIRST; +SHOW CREATE TABLE `T1`; +Table Create Table +T1 CREATE TABLE `T1` ( + `C2` char(1) NOT NULL default '', + `C1` enum('ア','イ','ウ') default NULL, + KEY `C1` (`C1`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 +SHOW CREATE TABLE `T2`; +Table Create Table +T2 CREATE TABLE `T2` ( + `C2` char(1) NOT NULL default '', + `C1` enum('あ','い','う') default NULL, + KEY `C1` (`C1`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 +SHOW CREATE TABLE `T3`; +Table Create Table +T3 CREATE TABLE `T3` ( + `C2` char(1) NOT NULL default '', + `C1` enum('龔','龖','龗') default NULL, + KEY `C1` (`C1`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 +SHOW CREATE TABLE `T4`; +Table Create Table +T4 CREATE TABLE `T4` ( + `C2` char(1) NOT NULL default '', + `C1` enum('ア','イ','ウ') default NULL, + KEY `C1` (`C1`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 +SHOW CREATE TABLE `T5`; +Table Create Table +T5 CREATE TABLE `T5` ( + `C2` char(1) NOT NULL default '', + `C1` enum('あ','い','う') default NULL, + KEY `C1` (`C1`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 +SHOW CREATE TABLE `T6`; +Table Create Table +T6 CREATE TABLE `T6` ( + `C2` char(1) NOT NULL default '', + `C1` enum('龔','龖','龗') default NULL, + KEY `C1` (`C1`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 +SHOW CREATE TABLE `T7`; +Table Create Table +T7 CREATE TABLE `T7` ( + `C2` char(1) NOT NULL default '', + `C1` enum('ア','イ','ウ') default NULL, + KEY `C1` (`C1`) +) ENGINE=HEAP DEFAULT CHARSET=utf8 +SHOW CREATE TABLE `T8`; +Table Create Table +T8 CREATE TABLE `T8` ( + `C2` char(1) NOT NULL default '', + `C1` enum('あ','い','う') default NULL, + KEY `C1` (`C1`) +) ENGINE=HEAP DEFAULT CHARSET=utf8 +SHOW CREATE TABLE `T9`; +Table Create Table +T9 CREATE TABLE `T9` ( + `C2` char(1) NOT NULL default '', + `C1` enum('龔','龖','龗') default NULL, + KEY `C1` (`C1`) +) ENGINE=HEAP DEFAULT CHARSET=utf8 +SHOW CREATE TABLE `T10`; +Table Create Table +T10 CREATE TABLE `T10` ( + `C2` char(1) NOT NULL default '', + `C1` enum('ア','イ','ウ') default NULL, + KEY `C1` (`C1`) +) ENGINE=BerkeleyDB DEFAULT CHARSET=utf8 +SHOW CREATE TABLE `T11`; +Table Create Table +T11 CREATE TABLE `T11` ( + `C2` char(1) NOT NULL default '', + `C1` enum('あ','い','う') default NULL, + KEY `C1` (`C1`) +) ENGINE=BerkeleyDB DEFAULT CHARSET=utf8 +SHOW CREATE TABLE `T12`; +Table Create Table +T12 CREATE TABLE `T12` ( + `C2` char(1) NOT NULL default '', + `C1` enum('龔','龖','龗') default NULL, + KEY `C1` (`C1`) +) ENGINE=BerkeleyDB DEFAULT CHARSET=utf8 +DESC `T1`; +Field Type Null Key Default Extra +C2 char(1) +C1 enum('ア','イ','ウ') YES MUL NULL +DESC `T2`; +Field Type Null Key Default Extra +C2 char(1) +C1 enum('あ','い','う') YES MUL NULL +DESC `T3`; +Field Type Null Key Default Extra +C2 char(1) +C1 enum('龔','龖','龗') YES MUL NULL +DESC `T4`; +Field Type Null Key Default Extra +C2 char(1) +C1 enum('ア','イ','ウ') YES MUL NULL +DESC `T5`; +Field Type Null Key Default Extra +C2 char(1) +C1 enum('あ','い','う') YES MUL NULL +DESC `T6`; +Field Type Null Key Default Extra +C2 char(1) +C1 enum('龔','龖','龗') YES MUL NULL +DESC `T7`; +Field Type Null Key Default Extra +C2 char(1) +C1 enum('ア','イ','ウ') YES MUL NULL +DESC `T8`; +Field Type Null Key Default Extra +C2 char(1) +C1 enum('あ','い','う') YES MUL NULL +DESC `T9`; +Field Type Null Key Default Extra +C2 char(1) +C1 enum('龔','龖','龗') YES MUL NULL +DESC `T10`; +Field Type Null Key Default Extra +C2 char(1) +C1 enum('ア','イ','ウ') YES MUL NULL +DESC `T11`; +Field Type Null Key Default Extra +C2 char(1) +C1 enum('あ','い','う') YES MUL NULL +DESC `T12`; +Field Type Null Key Default Extra +C2 char(1) +C1 enum('龔','龖','龗') YES MUL NULL +DROP TABLE `T1`; +DROP TABLE `T2`; +DROP TABLE `T3`; +DROP TABLE `T4`; +DROP TABLE `T5`; +DROP TABLE `T6`; +DROP TABLE `T7`; +DROP TABLE `T8`; +DROP TABLE `T9`; +DROP TABLE `T10`; +DROP TABLE `T11`; +DROP TABLE `T12`; diff --git a/mysql-test/suite/jp/r/jp_insert_sjis.result b/mysql-test/suite/jp/r/jp_insert_sjis.result new file mode 100755 index 00000000000..c516986a256 --- /dev/null +++ b/mysql-test/suite/jp/r/jp_insert_sjis.result @@ -0,0 +1,905 @@ +drop table if exists `sP`; +drop table if exists `sQ`; +drop table if exists `sR`; +drop table if exists `sS`; +drop table if exists `sT`; +drop table if exists `sU`; +drop table if exists `sV`; +drop table if exists `sW`; +drop table if exists `sX`; +drop table if exists `sPO`; +drop table if exists `sPP`; +drop table if exists `sPQ`; +SET NAMES sjis; +SET character_set_database = sjis; +CREATE TABLE `sP` (`bP` char(5)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sQ` (`bP` char(5)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sR` (`bP` char(5)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sS` (`bP` char(5)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sT` (`bP` char(5)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sU` (`bP` char(5)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sV` (`bP` char(5)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sW` (`bP` char(5)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sX` (`bP` char(5)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sPO` (`bP` char(5)) DEFAULT CHARSET = sjis engine = bdb; +CREATE TABLE `sPP` (`bP` char(5)) DEFAULT CHARSET = sjis engine = bdb; +CREATE TABLE `sPQ` (`bP` char(5)) DEFAULT CHARSET = sjis engine = bdb; +INSERT INTO `sP` VALUES (''); +INSERT INTO `sQ` VALUES (''); +INSERT INTO `sR` VALUES ('\\\\\'); +INSERT INTO `sS` VALUES (''); +INSERT INTO `sT` VALUES (''); +INSERT INTO `sU` VALUES ('\\\\\'); +INSERT INTO `sV` VALUES (''); +INSERT INTO `sW` VALUES (''); +INSERT INTO `sX` VALUES ('\\\\\'); +INSERT INTO `sPO` VALUES (''); +INSERT INTO `sPP` VALUES (''); +INSERT INTO `sPQ` VALUES ('\\\\\'); +SELECT INSERT(`bP`,1,1,'') FROM `sP`; +INSERT(`bP`,1,1,'') + +SELECT INSERT(`bP`,1,2,'') FROM `sP`; +INSERT(`bP`,1,2,'') + +SELECT INSERT(`bP`,1,3,'') FROM `sP`; +INSERT(`bP`,1,3,'') + +SELECT INSERT(`bP`,1,4,'') FROM `sP`; +INSERT(`bP`,1,4,'') + +SELECT INSERT(`bP`,1,5,'') FROM `sP`; +INSERT(`bP`,1,5,'') + +SELECT INSERT(`bP`,2,1,'') FROM `sP`; +INSERT(`bP`,2,1,'') + +SELECT INSERT(`bP`,2,2,'') FROM `sP`; +INSERT(`bP`,2,2,'') + +SELECT INSERT(`bP`,2,3,'') FROM `sP`; +INSERT(`bP`,2,3,'') + +SELECT INSERT(`bP`,2,4,'') FROM `sP`; +INSERT(`bP`,2,4,'') + +SELECT INSERT(`bP`,3,1,'') FROM `sP`; +INSERT(`bP`,3,1,'') + +SELECT INSERT(`bP`,3,2,'') FROM `sP`; +INSERT(`bP`,3,2,'') + +SELECT INSERT(`bP`,3,3,'') FROM `sP`; +INSERT(`bP`,3,3,'') + +SELECT INSERT(`bP`,4,1,'') FROM `sP`; +INSERT(`bP`,4,1,'') + +SELECT INSERT(`bP`,4,2,'') FROM `sP`; +INSERT(`bP`,4,2,'') + +SELECT INSERT(`bP`,5,1,'') FROM `sP`; +INSERT(`bP`,5,1,'') + +SELECT INSERT(`bP`,1,1,' ') FROM `sP`; +INSERT(`bP`,1,1,' ') + +SELECT INSERT(`bP`,1,2,' ') FROM `sP`; +INSERT(`bP`,1,2,' ') + +SELECT INSERT(`bP`,1,3,' ') FROM `sP`; +INSERT(`bP`,1,3,' ') + +SELECT INSERT(`bP`,1,4,' ') FROM `sP`; +INSERT(`bP`,1,4,' ') + +SELECT INSERT(`bP`,1,5,' ') FROM `sP`; +INSERT(`bP`,1,5,' ') + +SELECT INSERT(`bP`,2,1,' ') FROM `sP`; +INSERT(`bP`,2,1,' ') + +SELECT INSERT(`bP`,2,2,' ') FROM `sP`; +INSERT(`bP`,2,2,' ') + +SELECT INSERT(`bP`,2,3,' ') FROM `sP`; +INSERT(`bP`,2,3,' ') + +SELECT INSERT(`bP`,2,4,' ') FROM `sP`; +INSERT(`bP`,2,4,' ') + +SELECT INSERT(`bP`,3,1,' ') FROM `sP`; +INSERT(`bP`,3,1,' ') + +SELECT INSERT(`bP`,3,2,' ') FROM `sP`; +INSERT(`bP`,3,2,' ') + +SELECT INSERT(`bP`,3,3,' ') FROM `sP`; +INSERT(`bP`,3,3,' ') + +SELECT INSERT(`bP`,4,1,' ') FROM `sP`; +INSERT(`bP`,4,1,' ') + +SELECT INSERT(`bP`,4,2,' ') FROM `sP`; +INSERT(`bP`,4,2,' ') + +SELECT INSERT(`bP`,5,1,' ') FROM `sP`; +INSERT(`bP`,5,1,' ') + +SELECT INSERT(`bP`,1,1,'') FROM `sQ`; +INSERT(`bP`,1,1,'') + +SELECT INSERT(`bP`,1,2,'') FROM `sQ`; +INSERT(`bP`,1,2,'') + +SELECT INSERT(`bP`,1,3,'') FROM `sQ`; +INSERT(`bP`,1,3,'') + +SELECT INSERT(`bP`,1,4,'') FROM `sQ`; +INSERT(`bP`,1,4,'') + +SELECT INSERT(`bP`,1,5,'') FROM `sQ`; +INSERT(`bP`,1,5,'') + +SELECT INSERT(`bP`,2,1,'') FROM `sQ`; +INSERT(`bP`,2,1,'') + +SELECT INSERT(`bP`,2,2,'') FROM `sQ`; +INSERT(`bP`,2,2,'') + +SELECT INSERT(`bP`,2,3,'') FROM `sQ`; +INSERT(`bP`,2,3,'') + +SELECT INSERT(`bP`,2,4,'') FROM `sQ`; +INSERT(`bP`,2,4,'') + +SELECT INSERT(`bP`,3,1,'') FROM `sQ`; +INSERT(`bP`,3,1,'') + +SELECT INSERT(`bP`,3,2,'') FROM `sQ`; +INSERT(`bP`,3,2,'') + +SELECT INSERT(`bP`,3,3,'') FROM `sQ`; +INSERT(`bP`,3,3,'') + +SELECT INSERT(`bP`,4,1,'') FROM `sQ`; +INSERT(`bP`,4,1,'') + +SELECT INSERT(`bP`,4,2,'') FROM `sQ`; +INSERT(`bP`,4,2,'') + +SELECT INSERT(`bP`,5,1,'') FROM `sQ`; +INSERT(`bP`,5,1,'') + +SELECT INSERT(`bP`,1,1,'@') FROM `sQ`; +INSERT(`bP`,1,1,'@') +@ +SELECT INSERT(`bP`,1,2,'@@') FROM `sQ`; +INSERT(`bP`,1,2,'@@') +@@ +SELECT INSERT(`bP`,1,3,'@@@') FROM `sQ`; +INSERT(`bP`,1,3,'@@@') +@@@ +SELECT INSERT(`bP`,1,4,'@@@@') FROM `sQ`; +INSERT(`bP`,1,4,'@@@@') +@@@@ +SELECT INSERT(`bP`,1,5,'@@@@@') FROM `sQ`; +INSERT(`bP`,1,5,'@@@@@') +@@@@@ +SELECT INSERT(`bP`,2,1,'@') FROM `sQ`; +INSERT(`bP`,2,1,'@') +@ +SELECT INSERT(`bP`,2,2,'@@') FROM `sQ`; +INSERT(`bP`,2,2,'@@') +@@ +SELECT INSERT(`bP`,2,3,'@@@') FROM `sQ`; +INSERT(`bP`,2,3,'@@@') +@@@ +SELECT INSERT(`bP`,2,4,'@@@@') FROM `sQ`; +INSERT(`bP`,2,4,'@@@@') +@@@@ +SELECT INSERT(`bP`,3,1,'@') FROM `sQ`; +INSERT(`bP`,3,1,'@') +@ +SELECT INSERT(`bP`,3,2,'@@') FROM `sQ`; +INSERT(`bP`,3,2,'@@') +@@ +SELECT INSERT(`bP`,3,3,'@@@') FROM `sQ`; +INSERT(`bP`,3,3,'@@@') +@@@ +SELECT INSERT(`bP`,4,1,'@') FROM `sQ`; +INSERT(`bP`,4,1,'@') +@ +SELECT INSERT(`bP`,4,2,'@@') FROM `sQ`; +INSERT(`bP`,4,2,'@@') +@@ +SELECT INSERT(`bP`,5,1,'@') FROM `sQ`; +INSERT(`bP`,5,1,'@') +@ +SELECT INSERT(`bP`,1,1,'\') FROM `sR`; +INSERT(`bP`,1,1,'\') +\\\\\ +SELECT INSERT(`bP`,1,2,'\\' ) FROM `sR`; +INSERT(`bP`,1,2,'\\' ) +\\\\\ +SELECT INSERT(`bP`,1,3,'\\\' ) FROM `sR`; +INSERT(`bP`,1,3,'\\\' ) +\\\\\ +SELECT INSERT(`bP`,1,4,'\\\\' ) FROM `sR`; +INSERT(`bP`,1,4,'\\\\' ) +\\\\\ +SELECT INSERT(`bP`,1,5,'\\\\\' ) FROM `sR`; +INSERT(`bP`,1,5,'\\\\\' ) +\\\\\ +SELECT INSERT(`bP`,2,1,'\') FROM `sR`; +INSERT(`bP`,2,1,'\') +\\\\\ +SELECT INSERT(`bP`,2,2,'\\' ) FROM `sR`; +INSERT(`bP`,2,2,'\\' ) +\\\\\ +SELECT INSERT(`bP`,2,3,'\\\' ) FROM `sR`; +INSERT(`bP`,2,3,'\\\' ) +\\\\\ +SELECT INSERT(`bP`,2,4,'\\\\' ) FROM `sR`; +INSERT(`bP`,2,4,'\\\\' ) +\\\\\ +SELECT INSERT(`bP`,3,1,'\') FROM `sR`; +INSERT(`bP`,3,1,'\') +\\\\\ +SELECT INSERT(`bP`,3,2,'\\' ) FROM `sR`; +INSERT(`bP`,3,2,'\\' ) +\\\\\ +SELECT INSERT(`bP`,3,3,'\\\' ) FROM `sR`; +INSERT(`bP`,3,3,'\\\' ) +\\\\\ +SELECT INSERT(`bP`,4,1,'\') FROM `sR`; +INSERT(`bP`,4,1,'\') +\\\\\ +SELECT INSERT(`bP`,4,2,'\\' ) FROM `sR`; +INSERT(`bP`,4,2,'\\' ) +\\\\\ +SELECT INSERT(`bP`,5,1,'\') FROM `sR`; +INSERT(`bP`,5,1,'\') +\\\\\ +SELECT INSERT(`bP`,1,1,'') FROM `sS`; +INSERT(`bP`,1,1,'') + +SELECT INSERT(`bP`,1,2,'') FROM `sS`; +INSERT(`bP`,1,2,'') + +SELECT INSERT(`bP`,1,3,'') FROM `sS`; +INSERT(`bP`,1,3,'') + +SELECT INSERT(`bP`,1,4,'') FROM `sS`; +INSERT(`bP`,1,4,'') + +SELECT INSERT(`bP`,1,5,'') FROM `sS`; +INSERT(`bP`,1,5,'') + +SELECT INSERT(`bP`,2,1,'') FROM `sS`; +INSERT(`bP`,2,1,'') + +SELECT INSERT(`bP`,2,2,'') FROM `sS`; +INSERT(`bP`,2,2,'') + +SELECT INSERT(`bP`,2,3,'') FROM `sS`; +INSERT(`bP`,2,3,'') + +SELECT INSERT(`bP`,2,4,'') FROM `sS`; +INSERT(`bP`,2,4,'') + +SELECT INSERT(`bP`,3,1,'') FROM `sS`; +INSERT(`bP`,3,1,'') + +SELECT INSERT(`bP`,3,2,'') FROM `sS`; +INSERT(`bP`,3,2,'') + +SELECT INSERT(`bP`,3,3,'') FROM `sS`; +INSERT(`bP`,3,3,'') + +SELECT INSERT(`bP`,4,1,'') FROM `sS`; +INSERT(`bP`,4,1,'') + +SELECT INSERT(`bP`,4,2,'') FROM `sS`; +INSERT(`bP`,4,2,'') + +SELECT INSERT(`bP`,5,1,'') FROM `sS`; +INSERT(`bP`,5,1,'') + +SELECT INSERT(`bP`,1,1,' ') FROM `sS`; +INSERT(`bP`,1,1,' ') + +SELECT INSERT(`bP`,1,2,' ') FROM `sS`; +INSERT(`bP`,1,2,' ') + +SELECT INSERT(`bP`,1,3,' ') FROM `sS`; +INSERT(`bP`,1,3,' ') + +SELECT INSERT(`bP`,1,4,' ') FROM `sS`; +INSERT(`bP`,1,4,' ') + +SELECT INSERT(`bP`,1,5,' ') FROM `sS`; +INSERT(`bP`,1,5,' ') + +SELECT INSERT(`bP`,2,1,' ') FROM `sS`; +INSERT(`bP`,2,1,' ') + +SELECT INSERT(`bP`,2,2,' ') FROM `sS`; +INSERT(`bP`,2,2,' ') + +SELECT INSERT(`bP`,2,3,' ') FROM `sS`; +INSERT(`bP`,2,3,' ') + +SELECT INSERT(`bP`,2,4,' ') FROM `sS`; +INSERT(`bP`,2,4,' ') + +SELECT INSERT(`bP`,3,1,' ') FROM `sS`; +INSERT(`bP`,3,1,' ') + +SELECT INSERT(`bP`,3,2,' ') FROM `sS`; +INSERT(`bP`,3,2,' ') + +SELECT INSERT(`bP`,3,3,' ') FROM `sS`; +INSERT(`bP`,3,3,' ') + +SELECT INSERT(`bP`,4,1,' ') FROM `sS`; +INSERT(`bP`,4,1,' ') + +SELECT INSERT(`bP`,4,2,' ') FROM `sS`; +INSERT(`bP`,4,2,' ') + +SELECT INSERT(`bP`,5,1,' ') FROM `sS`; +INSERT(`bP`,5,1,' ') + +SELECT INSERT(`bP`,1,1,'') FROM `sT`; +INSERT(`bP`,1,1,'') + +SELECT INSERT(`bP`,1,2,'') FROM `sT`; +INSERT(`bP`,1,2,'') + +SELECT INSERT(`bP`,1,3,'') FROM `sT`; +INSERT(`bP`,1,3,'') + +SELECT INSERT(`bP`,1,4,'') FROM `sT`; +INSERT(`bP`,1,4,'') + +SELECT INSERT(`bP`,1,5,'') FROM `sT`; +INSERT(`bP`,1,5,'') + +SELECT INSERT(`bP`,2,1,'') FROM `sT`; +INSERT(`bP`,2,1,'') + +SELECT INSERT(`bP`,2,2,'') FROM `sT`; +INSERT(`bP`,2,2,'') + +SELECT INSERT(`bP`,2,3,'') FROM `sT`; +INSERT(`bP`,2,3,'') + +SELECT INSERT(`bP`,2,4,'') FROM `sT`; +INSERT(`bP`,2,4,'') + +SELECT INSERT(`bP`,3,1,'') FROM `sT`; +INSERT(`bP`,3,1,'') + +SELECT INSERT(`bP`,3,2,'') FROM `sT`; +INSERT(`bP`,3,2,'') + +SELECT INSERT(`bP`,3,3,'') FROM `sT`; +INSERT(`bP`,3,3,'') + +SELECT INSERT(`bP`,4,1,'') FROM `sT`; +INSERT(`bP`,4,1,'') + +SELECT INSERT(`bP`,4,2,'') FROM `sT`; +INSERT(`bP`,4,2,'') + +SELECT INSERT(`bP`,5,1,'') FROM `sT`; +INSERT(`bP`,5,1,'') + +SELECT INSERT(`bP`,1,1,'@') FROM `sT`; +INSERT(`bP`,1,1,'@') +@ +SELECT INSERT(`bP`,1,2,'@@') FROM `sT`; +INSERT(`bP`,1,2,'@@') +@@ +SELECT INSERT(`bP`,1,3,'@@@') FROM `sT`; +INSERT(`bP`,1,3,'@@@') +@@@ +SELECT INSERT(`bP`,1,4,'@@@@') FROM `sT`; +INSERT(`bP`,1,4,'@@@@') +@@@@ +SELECT INSERT(`bP`,1,5,'@@@@@') FROM `sT`; +INSERT(`bP`,1,5,'@@@@@') +@@@@@ +SELECT INSERT(`bP`,2,1,'@') FROM `sT`; +INSERT(`bP`,2,1,'@') +@ +SELECT INSERT(`bP`,2,2,'@@') FROM `sT`; +INSERT(`bP`,2,2,'@@') +@@ +SELECT INSERT(`bP`,2,3,'@@@') FROM `sT`; +INSERT(`bP`,2,3,'@@@') +@@@ +SELECT INSERT(`bP`,2,4,'@@@@') FROM `sT`; +INSERT(`bP`,2,4,'@@@@') +@@@@ +SELECT INSERT(`bP`,3,1,'@') FROM `sT`; +INSERT(`bP`,3,1,'@') +@ +SELECT INSERT(`bP`,3,2,'@@') FROM `sT`; +INSERT(`bP`,3,2,'@@') +@@ +SELECT INSERT(`bP`,3,3,'@@@') FROM `sT`; +INSERT(`bP`,3,3,'@@@') +@@@ +SELECT INSERT(`bP`,4,1,'@') FROM `sT`; +INSERT(`bP`,4,1,'@') +@ +SELECT INSERT(`bP`,4,2,'@@') FROM `sT`; +INSERT(`bP`,4,2,'@@') +@@ +SELECT INSERT(`bP`,5,1,'@') FROM `sT`; +INSERT(`bP`,5,1,'@') +@ +SELECT INSERT(`bP`,1,1,'\') FROM `sU`; +INSERT(`bP`,1,1,'\') +\\\\\ +SELECT INSERT(`bP`,1,2,'\\' ) FROM `sU`; +INSERT(`bP`,1,2,'\\' ) +\\\\\ +SELECT INSERT(`bP`,1,3,'\\\' ) FROM `sU`; +INSERT(`bP`,1,3,'\\\' ) +\\\\\ +SELECT INSERT(`bP`,1,4,'\\\\' ) FROM `sU`; +INSERT(`bP`,1,4,'\\\\' ) +\\\\\ +SELECT INSERT(`bP`,1,5,'\\\\\' ) FROM `sU`; +INSERT(`bP`,1,5,'\\\\\' ) +\\\\\ +SELECT INSERT(`bP`,2,1,'\') FROM `sU`; +INSERT(`bP`,2,1,'\') +\\\\\ +SELECT INSERT(`bP`,2,2,'\\') FROM `sU`; +INSERT(`bP`,2,2,'\\') +\\\\\ +SELECT INSERT(`bP`,2,3,'\\\' ) FROM `sU`; +INSERT(`bP`,2,3,'\\\' ) +\\\\\ +SELECT INSERT(`bP`,2,4,'\\\\' ) FROM `sU`; +INSERT(`bP`,2,4,'\\\\' ) +\\\\\ +SELECT INSERT(`bP`,3,1,'\') FROM `sU`; +INSERT(`bP`,3,1,'\') +\\\\\ +SELECT INSERT(`bP`,3,2,'\\' ) FROM `sU`; +INSERT(`bP`,3,2,'\\' ) +\\\\\ +SELECT INSERT(`bP`,3,3,'\\\' ) FROM `sU`; +INSERT(`bP`,3,3,'\\\' ) +\\\\\ +SELECT INSERT(`bP`,4,1,'\') FROM `sU`; +INSERT(`bP`,4,1,'\') +\\\\\ +SELECT INSERT(`bP`,4,2,'\\' ) FROM `sU`; +INSERT(`bP`,4,2,'\\' ) +\\\\\ +SELECT INSERT(`bP`,5,1,'\') FROM `sU`; +INSERT(`bP`,5,1,'\') +\\\\\ +SELECT INSERT(`bP`,1,1,'') FROM `sV`; +INSERT(`bP`,1,1,'') + +SELECT INSERT(`bP`,1,2,'') FROM `sV`; +INSERT(`bP`,1,2,'') + +SELECT INSERT(`bP`,1,3,'') FROM `sV`; +INSERT(`bP`,1,3,'') + +SELECT INSERT(`bP`,1,4,'') FROM `sV`; +INSERT(`bP`,1,4,'') + +SELECT INSERT(`bP`,1,5,'') FROM `sV`; +INSERT(`bP`,1,5,'') + +SELECT INSERT(`bP`,2,1,'') FROM `sV`; +INSERT(`bP`,2,1,'') + +SELECT INSERT(`bP`,2,2,'') FROM `sV`; +INSERT(`bP`,2,2,'') + +SELECT INSERT(`bP`,2,3,'') FROM `sV`; +INSERT(`bP`,2,3,'') + +SELECT INSERT(`bP`,2,4,'') FROM `sV`; +INSERT(`bP`,2,4,'') + +SELECT INSERT(`bP`,3,1,'') FROM `sV`; +INSERT(`bP`,3,1,'') + +SELECT INSERT(`bP`,3,2,'') FROM `sV`; +INSERT(`bP`,3,2,'') + +SELECT INSERT(`bP`,3,3,'') FROM `sV`; +INSERT(`bP`,3,3,'') + +SELECT INSERT(`bP`,4,1,'') FROM `sV`; +INSERT(`bP`,4,1,'') + +SELECT INSERT(`bP`,4,2,'') FROM `sV`; +INSERT(`bP`,4,2,'') + +SELECT INSERT(`bP`,5,1,'') FROM `sV`; +INSERT(`bP`,5,1,'') + +SELECT INSERT(`bP`,1,1,' ') FROM `sV`; +INSERT(`bP`,1,1,' ') + +SELECT INSERT(`bP`,1,2,' ') FROM `sV`; +INSERT(`bP`,1,2,' ') + +SELECT INSERT(`bP`,1,3,' ') FROM `sV`; +INSERT(`bP`,1,3,' ') + +SELECT INSERT(`bP`,1,4,' ') FROM `sV`; +INSERT(`bP`,1,4,' ') + +SELECT INSERT(`bP`,1,5,' ') FROM `sV`; +INSERT(`bP`,1,5,' ') + +SELECT INSERT(`bP`,2,1,' ') FROM `sV`; +INSERT(`bP`,2,1,' ') + +SELECT INSERT(`bP`,2,2,' ') FROM `sV`; +INSERT(`bP`,2,2,' ') + +SELECT INSERT(`bP`,2,3,' ') FROM `sV`; +INSERT(`bP`,2,3,' ') + +SELECT INSERT(`bP`,2,4,' ') FROM `sV`; +INSERT(`bP`,2,4,' ') + +SELECT INSERT(`bP`,3,1,' ') FROM `sV`; +INSERT(`bP`,3,1,' ') + +SELECT INSERT(`bP`,3,2,' ') FROM `sV`; +INSERT(`bP`,3,2,' ') + +SELECT INSERT(`bP`,3,3,' ') FROM `sV`; +INSERT(`bP`,3,3,' ') + +SELECT INSERT(`bP`,4,1,' ') FROM `sV`; +INSERT(`bP`,4,1,' ') + +SELECT INSERT(`bP`,4,2,' ') FROM `sV`; +INSERT(`bP`,4,2,' ') + +SELECT INSERT(`bP`,5,1,' ') FROM `sV`; +INSERT(`bP`,5,1,' ') + +SELECT INSERT(`bP`,1,1,'') FROM `sW`; +INSERT(`bP`,1,1,'') + +SELECT INSERT(`bP`,1,2,'') FROM `sW`; +INSERT(`bP`,1,2,'') + +SELECT INSERT(`bP`,1,3,'') FROM `sW`; +INSERT(`bP`,1,3,'') + +SELECT INSERT(`bP`,1,4,'') FROM `sW`; +INSERT(`bP`,1,4,'') + +SELECT INSERT(`bP`,1,5,'') FROM `sW`; +INSERT(`bP`,1,5,'') + +SELECT INSERT(`bP`,2,1,'') FROM `sW`; +INSERT(`bP`,2,1,'') + +SELECT INSERT(`bP`,2,2,'') FROM `sW`; +INSERT(`bP`,2,2,'') + +SELECT INSERT(`bP`,2,3,'') FROM `sW`; +INSERT(`bP`,2,3,'') + +SELECT INSERT(`bP`,2,4,'') FROM `sW`; +INSERT(`bP`,2,4,'') + +SELECT INSERT(`bP`,3,1,'') FROM `sW`; +INSERT(`bP`,3,1,'') + +SELECT INSERT(`bP`,3,2,'') FROM `sW`; +INSERT(`bP`,3,2,'') + +SELECT INSERT(`bP`,3,3,'') FROM `sW`; +INSERT(`bP`,3,3,'') + +SELECT INSERT(`bP`,4,1,'') FROM `sW`; +INSERT(`bP`,4,1,'') + +SELECT INSERT(`bP`,4,2,'') FROM `sW`; +INSERT(`bP`,4,2,'') + +SELECT INSERT(`bP`,5,1,'') FROM `sW`; +INSERT(`bP`,5,1,'') + +SELECT INSERT(`bP`,1,1,'@') FROM `sW`; +INSERT(`bP`,1,1,'@') +@ +SELECT INSERT(`bP`,1,2,'@@') FROM `sW`; +INSERT(`bP`,1,2,'@@') +@@ +SELECT INSERT(`bP`,1,3,'@@@') FROM `sW`; +INSERT(`bP`,1,3,'@@@') +@@@ +SELECT INSERT(`bP`,1,4,'@@@@') FROM `sW`; +INSERT(`bP`,1,4,'@@@@') +@@@@ +SELECT INSERT(`bP`,1,5,'@@@@@') FROM `sW`; +INSERT(`bP`,1,5,'@@@@@') +@@@@@ +SELECT INSERT(`bP`,2,1,'@') FROM `sW`; +INSERT(`bP`,2,1,'@') +@ +SELECT INSERT(`bP`,2,2,'@@') FROM `sW`; +INSERT(`bP`,2,2,'@@') +@@ +SELECT INSERT(`bP`,2,3,'@@@') FROM `sW`; +INSERT(`bP`,2,3,'@@@') +@@@ +SELECT INSERT(`bP`,2,4,'@@@@') FROM `sW`; +INSERT(`bP`,2,4,'@@@@') +@@@@ +SELECT INSERT(`bP`,3,1,'@') FROM `sW`; +INSERT(`bP`,3,1,'@') +@ +SELECT INSERT(`bP`,3,2,'@@') FROM `sW`; +INSERT(`bP`,3,2,'@@') +@@ +SELECT INSERT(`bP`,3,3,'@@@') FROM `sW`; +INSERT(`bP`,3,3,'@@@') +@@@ +SELECT INSERT(`bP`,4,1,'@') FROM `sW`; +INSERT(`bP`,4,1,'@') +@ +SELECT INSERT(`bP`,4,2,'@@') FROM `sW`; +INSERT(`bP`,4,2,'@@') +@@ +SELECT INSERT(`bP`,5,1,'@') FROM `sW`; +INSERT(`bP`,5,1,'@') +@ +SELECT INSERT(`bP`,1,1,'\') FROM `sX`; +INSERT(`bP`,1,1,'\') +\\\\\ +SELECT INSERT(`bP`,1,2,'\\' ) FROM `sX`; +INSERT(`bP`,1,2,'\\' ) +\\\\\ +SELECT INSERT(`bP`,1,3,'\\\' ) FROM `sX`; +INSERT(`bP`,1,3,'\\\' ) +\\\\\ +SELECT INSERT(`bP`,1,4,'\\\\' ) FROM `sX`; +INSERT(`bP`,1,4,'\\\\' ) +\\\\\ +SELECT INSERT(`bP`,1,5,'\\\\\' ) FROM `sX`; +INSERT(`bP`,1,5,'\\\\\' ) +\\\\\ +SELECT INSERT(`bP`,2,1,'\') FROM `sX`; +INSERT(`bP`,2,1,'\') +\\\\\ +SELECT INSERT(`bP`,2,2,'\\' ) FROM `sX`; +INSERT(`bP`,2,2,'\\' ) +\\\\\ +SELECT INSERT(`bP`,2,3,'\\\' ) FROM `sX`; +INSERT(`bP`,2,3,'\\\' ) +\\\\\ +SELECT INSERT(`bP`,2,4,'\\\\' ) FROM `sX`; +INSERT(`bP`,2,4,'\\\\' ) +\\\\\ +SELECT INSERT(`bP`,3,1,'\') FROM `sX`; +INSERT(`bP`,3,1,'\') +\\\\\ +SELECT INSERT(`bP`,3,2,'\\' ) FROM `sX`; +INSERT(`bP`,3,2,'\\' ) +\\\\\ +SELECT INSERT(`bP`,3,3,'\\\' ) FROM `sX`; +INSERT(`bP`,3,3,'\\\' ) +\\\\\ +SELECT INSERT(`bP`,4,1,'\') FROM `sX`; +INSERT(`bP`,4,1,'\') +\\\\\ +SELECT INSERT(`bP`,4,2,'\\' ) FROM `sX`; +INSERT(`bP`,4,2,'\\' ) +\\\\\ +SELECT INSERT(`bP`,5,1,'\') FROM `sX`; +INSERT(`bP`,5,1,'\') +\\\\\ +SELECT INSERT(`bP`,1,1,'') FROM `sPO`; +INSERT(`bP`,1,1,'') + +SELECT INSERT(`bP`,1,2,'') FROM `sPO`; +INSERT(`bP`,1,2,'') + +SELECT INSERT(`bP`,1,3,'') FROM `sPO`; +INSERT(`bP`,1,3,'') + +SELECT INSERT(`bP`,1,4,'') FROM `sPO`; +INSERT(`bP`,1,4,'') + +SELECT INSERT(`bP`,1,5,'') FROM `sPO`; +INSERT(`bP`,1,5,'') + +SELECT INSERT(`bP`,2,1,'') FROM `sPO`; +INSERT(`bP`,2,1,'') + +SELECT INSERT(`bP`,2,2,'') FROM `sPO`; +INSERT(`bP`,2,2,'') + +SELECT INSERT(`bP`,2,3,'') FROM `sPO`; +INSERT(`bP`,2,3,'') + +SELECT INSERT(`bP`,2,4,'') FROM `sPO`; +INSERT(`bP`,2,4,'') + +SELECT INSERT(`bP`,3,1,'') FROM `sPO`; +INSERT(`bP`,3,1,'') + +SELECT INSERT(`bP`,3,2,'') FROM `sPO`; +INSERT(`bP`,3,2,'') + +SELECT INSERT(`bP`,3,3,'') FROM `sPO`; +INSERT(`bP`,3,3,'') + +SELECT INSERT(`bP`,4,1,'') FROM `sPO`; +INSERT(`bP`,4,1,'') + +SELECT INSERT(`bP`,4,2,'') FROM `sPO`; +INSERT(`bP`,4,2,'') + +SELECT INSERT(`bP`,5,1,'') FROM `sPO`; +INSERT(`bP`,5,1,'') + +SELECT INSERT(`bP`,1,1,'') FROM `sPP`; +INSERT(`bP`,1,1,'') + +SELECT INSERT(`bP`,1,2,'') FROM `sPP`; +INSERT(`bP`,1,2,'') + +SELECT INSERT(`bP`,1,3,'') FROM `sPP`; +INSERT(`bP`,1,3,'') + +SELECT INSERT(`bP`,1,4,'') FROM `sPP`; +INSERT(`bP`,1,4,'') + +SELECT INSERT(`bP`,1,5,'') FROM `sPP`; +INSERT(`bP`,1,5,'') + +SELECT INSERT(`bP`,2,1,'') FROM `sPP`; +INSERT(`bP`,2,1,'') + +SELECT INSERT(`bP`,2,2,'') FROM `sPP`; +INSERT(`bP`,2,2,'') + +SELECT INSERT(`bP`,2,3,'') FROM `sPP`; +INSERT(`bP`,2,3,'') + +SELECT INSERT(`bP`,2,4,'') FROM `sPP`; +INSERT(`bP`,2,4,'') + +SELECT INSERT(`bP`,3,1,'') FROM `sPP`; +INSERT(`bP`,3,1,'') + +SELECT INSERT(`bP`,3,2,'') FROM `sPP`; +INSERT(`bP`,3,2,'') + +SELECT INSERT(`bP`,3,3,'') FROM `sPP`; +INSERT(`bP`,3,3,'') + +SELECT INSERT(`bP`,4,1,'') FROM `sPP`; +INSERT(`bP`,4,1,'') + +SELECT INSERT(`bP`,4,2,'') FROM `sPP`; +INSERT(`bP`,4,2,'') + +SELECT INSERT(`bP`,5,1,'') FROM `sPP`; +INSERT(`bP`,5,1,'') + +SELECT INSERT(`bP`,1,1,'@') FROM `sPP`; +INSERT(`bP`,1,1,'@') +@ +SELECT INSERT(`bP`,1,2,'@@') FROM `sPP`; +INSERT(`bP`,1,2,'@@') +@@ +SELECT INSERT(`bP`,1,3,'@@@') FROM `sPP`; +INSERT(`bP`,1,3,'@@@') +@@@ +SELECT INSERT(`bP`,1,4,'@@@@') FROM `sPP`; +INSERT(`bP`,1,4,'@@@@') +@@@@ +SELECT INSERT(`bP`,1,5,'@@@@@') FROM `sPP`; +INSERT(`bP`,1,5,'@@@@@') +@@@@@ +SELECT INSERT(`bP`,2,1,'@') FROM `sPP`; +INSERT(`bP`,2,1,'@') +@ +SELECT INSERT(`bP`,2,2,'@@') FROM `sPP`; +INSERT(`bP`,2,2,'@@') +@@ +SELECT INSERT(`bP`,2,3,'@@@') FROM `sPP`; +INSERT(`bP`,2,3,'@@@') +@@@ +SELECT INSERT(`bP`,2,4,'@@@@') FROM `sPP`; +INSERT(`bP`,2,4,'@@@@') +@@@@ +SELECT INSERT(`bP`,3,1,'@') FROM `sPP`; +INSERT(`bP`,3,1,'@') +@ +SELECT INSERT(`bP`,3,2,'@@') FROM `sPP`; +INSERT(`bP`,3,2,'@@') +@@ +SELECT INSERT(`bP`,3,3,'@@@') FROM `sPP`; +INSERT(`bP`,3,3,'@@@') +@@@ +SELECT INSERT(`bP`,4,1,'@') FROM `sPP`; +INSERT(`bP`,4,1,'@') +@ +SELECT INSERT(`bP`,4,2,'@@') FROM `sPP`; +INSERT(`bP`,4,2,'@@') +@@ +SELECT INSERT(`bP`,5,1,'@') FROM `sPP`; +INSERT(`bP`,5,1,'@') +@ +SELECT INSERT(`bP`,1,1,'\') FROM `sPQ`; +INSERT(`bP`,1,1,'\') +\\\\\ +SELECT INSERT(`bP`,1,2,'\\') FROM `sPQ`; +INSERT(`bP`,1,2,'\\') +\\\\\ +SELECT INSERT(`bP`,1,3,'\\\') FROM `sPQ`; +INSERT(`bP`,1,3,'\\\') +\\\\\ +SELECT INSERT(`bP`,1,4,'\\\\') FROM `sPQ`; +INSERT(`bP`,1,4,'\\\\') +\\\\\ +SELECT INSERT(`bP`,1,5,'\\\\\') FROM `sPQ`; +INSERT(`bP`,1,5,'\\\\\') +\\\\\ +SELECT INSERT(`bP`,2,1,'\') FROM `sPQ`; +INSERT(`bP`,2,1,'\') +\\\\\ +SELECT INSERT(`bP`,2,2,'\\') FROM `sPQ`; +INSERT(`bP`,2,2,'\\') +\\\\\ +SELECT INSERT(`bP`,2,3,'\\\') FROM `sPQ`; +INSERT(`bP`,2,3,'\\\') +\\\\\ +SELECT INSERT(`bP`,2,4,'\\\\') FROM `sPQ`; +INSERT(`bP`,2,4,'\\\\') +\\\\\ +SELECT INSERT(`bP`,3,1,'\') FROM `sPQ`; +INSERT(`bP`,3,1,'\') +\\\\\ +SELECT INSERT(`bP`,3,2,'\\') FROM `sPQ`; +INSERT(`bP`,3,2,'\\') +\\\\\ +SELECT INSERT(`bP`,3,3,'\\\') FROM `sPQ`; +INSERT(`bP`,3,3,'\\\') +\\\\\ +SELECT INSERT(`bP`,4,1,'\') FROM `sPQ`; +INSERT(`bP`,4,1,'\') +\\\\\ +SELECT INSERT(`bP`,4,2,'\\') FROM `sPQ`; +INSERT(`bP`,4,2,'\\') +\\\\\ +SELECT INSERT(`bP`,5,1,'\') FROM `sPQ`; +INSERT(`bP`,5,1,'\') +\\\\\ +DROP TABLE `sP`; +DROP TABLE `sQ`; +DROP TABLE `sR`; +DROP TABLE `sS`; +DROP TABLE `sT`; +DROP TABLE `sU`; +DROP TABLE `sV`; +DROP TABLE `sW`; +DROP TABLE `sX`; +DROP TABLE `sPO`; +DROP TABLE `sPP`; +DROP TABLE `sPQ`; diff --git a/mysql-test/suite/jp/r/jp_insert_ucs2.result b/mysql-test/suite/jp/r/jp_insert_ucs2.result new file mode 100755 index 00000000000..45487f65138 --- /dev/null +++ b/mysql-test/suite/jp/r/jp_insert_ucs2.result @@ -0,0 +1,906 @@ +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +SET NAMES ujis; +SET character_set_database = ucs2; +SET collation_connection = ucs2_general_ci; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ucs2 engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ucs2 engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ucs2 engine = bdb; +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +SELECT INSERT(`ã`,1,1,'') FROM `ԣ`; +INSERT(`ã`,1,1,'') + +SELECT INSERT(`ã`,1,2,'') FROM `ԣ`; +INSERT(`ã`,1,2,'') + +SELECT INSERT(`ã`,1,3,'') FROM `ԣ`; +INSERT(`ã`,1,3,'') + +SELECT INSERT(`ã`,1,4,'') FROM `ԣ`; +INSERT(`ã`,1,4,'') + +SELECT INSERT(`ã`,1,5,'') FROM `ԣ`; +INSERT(`ã`,1,5,'') + +SELECT INSERT(`ã`,2,1,'') FROM `ԣ`; +INSERT(`ã`,2,1,'') + +SELECT INSERT(`ã`,2,2,'') FROM `ԣ`; +INSERT(`ã`,2,2,'') + +SELECT INSERT(`ã`,2,3,'') FROM `ԣ`; +INSERT(`ã`,2,3,'') + +SELECT INSERT(`ã`,2,4,'') FROM `ԣ`; +INSERT(`ã`,2,4,'') + +SELECT INSERT(`ã`,3,1,'') FROM `ԣ`; +INSERT(`ã`,3,1,'') + +SELECT INSERT(`ã`,3,2,'') FROM `ԣ`; +INSERT(`ã`,3,2,'') + +SELECT INSERT(`ã`,3,3,'') FROM `ԣ`; +INSERT(`ã`,3,3,'') + +SELECT INSERT(`ã`,4,1,'') FROM `ԣ`; +INSERT(`ã`,4,1,'') + +SELECT INSERT(`ã`,4,2,'') FROM `ԣ`; +INSERT(`ã`,4,2,'') + +SELECT INSERT(`ã`,5,1,'') FROM `ԣ`; +INSERT(`ã`,5,1,'') + +SELECT INSERT(`ã`,1,1,' ') FROM `ԣ`; +INSERT(`ã`,1,1,' ') + +SELECT INSERT(`ã`,1,2,' ') FROM `ԣ`; +INSERT(`ã`,1,2,' ') + +SELECT INSERT(`ã`,1,3,' ') FROM `ԣ`; +INSERT(`ã`,1,3,' ') + +SELECT INSERT(`ã`,1,4,' ') FROM `ԣ`; +INSERT(`ã`,1,4,' ') + +SELECT INSERT(`ã`,1,5,' ') FROM `ԣ`; +INSERT(`ã`,1,5,' ') + +SELECT INSERT(`ã`,2,1,' ') FROM `ԣ`; +INSERT(`ã`,2,1,' ') + +SELECT INSERT(`ã`,2,2,' ') FROM `ԣ`; +INSERT(`ã`,2,2,' ') + +SELECT INSERT(`ã`,2,3,' ') FROM `ԣ`; +INSERT(`ã`,2,3,' ') + +SELECT INSERT(`ã`,2,4,' ') FROM `ԣ`; +INSERT(`ã`,2,4,' ') + +SELECT INSERT(`ã`,3,1,' ') FROM `ԣ`; +INSERT(`ã`,3,1,' ') + +SELECT INSERT(`ã`,3,2,' ') FROM `ԣ`; +INSERT(`ã`,3,2,' ') + +SELECT INSERT(`ã`,3,3,' ') FROM `ԣ`; +INSERT(`ã`,3,3,' ') + +SELECT INSERT(`ã`,4,1,' ') FROM `ԣ`; +INSERT(`ã`,4,1,' ') + +SELECT INSERT(`ã`,4,2,' ') FROM `ԣ`; +INSERT(`ã`,4,2,' ') + +SELECT INSERT(`ã`,5,1,' ') FROM `ԣ`; +INSERT(`ã`,5,1,' ') + +SELECT INSERT(`ã`,1,1,'') FROM `ԣ`; +INSERT(`ã`,1,1,'') + +SELECT INSERT(`ã`,1,2,'') FROM `ԣ`; +INSERT(`ã`,1,2,'') + +SELECT INSERT(`ã`,1,3,'') FROM `ԣ`; +INSERT(`ã`,1,3,'') + +SELECT INSERT(`ã`,1,4,'') FROM `ԣ`; +INSERT(`ã`,1,4,'') + +SELECT INSERT(`ã`,1,5,'') FROM `ԣ`; +INSERT(`ã`,1,5,'') + +SELECT INSERT(`ã`,2,1,'') FROM `ԣ`; +INSERT(`ã`,2,1,'') + +SELECT INSERT(`ã`,2,2,'') FROM `ԣ`; +INSERT(`ã`,2,2,'') + +SELECT INSERT(`ã`,2,3,'') FROM `ԣ`; +INSERT(`ã`,2,3,'') + +SELECT INSERT(`ã`,2,4,'') FROM `ԣ`; +INSERT(`ã`,2,4,'') + +SELECT INSERT(`ã`,3,1,'') FROM `ԣ`; +INSERT(`ã`,3,1,'') + +SELECT INSERT(`ã`,3,2,'') FROM `ԣ`; +INSERT(`ã`,3,2,'') + +SELECT INSERT(`ã`,3,3,'') FROM `ԣ`; +INSERT(`ã`,3,3,'') + +SELECT INSERT(`ã`,4,1,'') FROM `ԣ`; +INSERT(`ã`,4,1,'') + +SELECT INSERT(`ã`,4,2,'') FROM `ԣ`; +INSERT(`ã`,4,2,'') + +SELECT INSERT(`ã`,5,1,'') FROM `ԣ`; +INSERT(`ã`,5,1,'') + +SELECT INSERT(`ã`,1,1,'') FROM `ԣ`; +INSERT(`ã`,1,1,'') + +SELECT INSERT(`ã`,1,2,'') FROM `ԣ`; +INSERT(`ã`,1,2,'') + +SELECT INSERT(`ã`,1,3,'') FROM `ԣ`; +INSERT(`ã`,1,3,'') + +SELECT INSERT(`ã`,1,4,'') FROM `ԣ`; +INSERT(`ã`,1,4,'') + +SELECT INSERT(`ã`,1,5,'') FROM `ԣ`; +INSERT(`ã`,1,5,'') + +SELECT INSERT(`ã`,2,1,'') FROM `ԣ`; +INSERT(`ã`,2,1,'') + +SELECT INSERT(`ã`,2,2,'') FROM `ԣ`; +INSERT(`ã`,2,2,'') + +SELECT INSERT(`ã`,2,3,'') FROM `ԣ`; +INSERT(`ã`,2,3,'') + +SELECT INSERT(`ã`,2,4,'') FROM `ԣ`; +INSERT(`ã`,2,4,'') + +SELECT INSERT(`ã`,3,1,'') FROM `ԣ`; +INSERT(`ã`,3,1,'') + +SELECT INSERT(`ã`,3,2,'') FROM `ԣ`; +INSERT(`ã`,3,2,'') + +SELECT INSERT(`ã`,3,3,'') FROM `ԣ`; +INSERT(`ã`,3,3,'') + +SELECT INSERT(`ã`,4,1,'') FROM `ԣ`; +INSERT(`ã`,4,1,'') + +SELECT INSERT(`ã`,4,2,'') FROM `ԣ`; +INSERT(`ã`,4,2,'') + +SELECT INSERT(`ã`,5,1,'') FROM `ԣ`; +INSERT(`ã`,5,1,'') + +SELECT INSERT(`ã`,1,1,'') FROM `ԣ`; +INSERT(`ã`,1,1,'') +ݏޏߏ +SELECT INSERT(`ã`,1,2,'' ) FROM `ԣ`; +INSERT(`ã`,1,2,'' ) +ޏߏ +SELECT INSERT(`ã`,1,3,'' ) FROM `ԣ`; +INSERT(`ã`,1,3,'' ) +ߏ +SELECT INSERT(`ã`,1,4,'' ) FROM `ԣ`; +INSERT(`ã`,1,4,'' ) + +SELECT INSERT(`ã`,1,5,'' ) FROM `ԣ`; +INSERT(`ã`,1,5,'' ) + +SELECT INSERT(`ã`,2,1,'') FROM `ԣ`; +INSERT(`ã`,2,1,'') +܏ޏߏ +SELECT INSERT(`ã`,2,2,'' ) FROM `ԣ`; +INSERT(`ã`,2,2,'' ) +܏ߏ +SELECT INSERT(`ã`,2,3,'' ) FROM `ԣ`; +INSERT(`ã`,2,3,'' ) +܏ +SELECT INSERT(`ã`,2,4,'' ) FROM `ԣ`; +INSERT(`ã`,2,4,'' ) +܏ +SELECT INSERT(`ã`,3,1,'') FROM `ԣ`; +INSERT(`ã`,3,1,'') +܏ݏߏ +SELECT INSERT(`ã`,3,2,'' ) FROM `ԣ`; +INSERT(`ã`,3,2,'' ) +܏ݏ +SELECT INSERT(`ã`,3,3,'' ) FROM `ԣ`; +INSERT(`ã`,3,3,'' ) +܏ݏ +SELECT INSERT(`ã`,4,1,'') FROM `ԣ`; +INSERT(`ã`,4,1,'') +܏ݏޏ +SELECT INSERT(`ã`,4,2,'' ) FROM `ԣ`; +INSERT(`ã`,4,2,'' ) +܏ݏޏ +SELECT INSERT(`ã`,5,1,'') FROM `ԣ`; +INSERT(`ã`,5,1,'') +܏ݏޏߏ +SELECT INSERT(`ã`,1,1,'') FROM `ԣ`; +INSERT(`ã`,1,1,'') + +SELECT INSERT(`ã`,1,2,'') FROM `ԣ`; +INSERT(`ã`,1,2,'') + +SELECT INSERT(`ã`,1,3,'') FROM `ԣ`; +INSERT(`ã`,1,3,'') + +SELECT INSERT(`ã`,1,4,'') FROM `ԣ`; +INSERT(`ã`,1,4,'') + +SELECT INSERT(`ã`,1,5,'') FROM `ԣ`; +INSERT(`ã`,1,5,'') + +SELECT INSERT(`ã`,2,1,'') FROM `ԣ`; +INSERT(`ã`,2,1,'') + +SELECT INSERT(`ã`,2,2,'') FROM `ԣ`; +INSERT(`ã`,2,2,'') + +SELECT INSERT(`ã`,2,3,'') FROM `ԣ`; +INSERT(`ã`,2,3,'') + +SELECT INSERT(`ã`,2,4,'') FROM `ԣ`; +INSERT(`ã`,2,4,'') + +SELECT INSERT(`ã`,3,1,'') FROM `ԣ`; +INSERT(`ã`,3,1,'') + +SELECT INSERT(`ã`,3,2,'') FROM `ԣ`; +INSERT(`ã`,3,2,'') + +SELECT INSERT(`ã`,3,3,'') FROM `ԣ`; +INSERT(`ã`,3,3,'') + +SELECT INSERT(`ã`,4,1,'') FROM `ԣ`; +INSERT(`ã`,4,1,'') + +SELECT INSERT(`ã`,4,2,'') FROM `ԣ`; +INSERT(`ã`,4,2,'') + +SELECT INSERT(`ã`,5,1,'') FROM `ԣ`; +INSERT(`ã`,5,1,'') + +SELECT INSERT(`ã`,1,1,' ') FROM `ԣ`; +INSERT(`ã`,1,1,' ') + +SELECT INSERT(`ã`,1,2,' ') FROM `ԣ`; +INSERT(`ã`,1,2,' ') + +SELECT INSERT(`ã`,1,3,' ') FROM `ԣ`; +INSERT(`ã`,1,3,' ') + +SELECT INSERT(`ã`,1,4,' ') FROM `ԣ`; +INSERT(`ã`,1,4,' ') + +SELECT INSERT(`ã`,1,5,' ') FROM `ԣ`; +INSERT(`ã`,1,5,' ') + +SELECT INSERT(`ã`,2,1,' ') FROM `ԣ`; +INSERT(`ã`,2,1,' ') + +SELECT INSERT(`ã`,2,2,' ') FROM `ԣ`; +INSERT(`ã`,2,2,' ') + +SELECT INSERT(`ã`,2,3,' ') FROM `ԣ`; +INSERT(`ã`,2,3,' ') + +SELECT INSERT(`ã`,2,4,' ') FROM `ԣ`; +INSERT(`ã`,2,4,' ') + +SELECT INSERT(`ã`,3,1,' ') FROM `ԣ`; +INSERT(`ã`,3,1,' ') + +SELECT INSERT(`ã`,3,2,' ') FROM `ԣ`; +INSERT(`ã`,3,2,' ') + +SELECT INSERT(`ã`,3,3,' ') FROM `ԣ`; +INSERT(`ã`,3,3,' ') + +SELECT INSERT(`ã`,4,1,' ') FROM `ԣ`; +INSERT(`ã`,4,1,' ') + +SELECT INSERT(`ã`,4,2,' ') FROM `ԣ`; +INSERT(`ã`,4,2,' ') + +SELECT INSERT(`ã`,5,1,' ') FROM `ԣ`; +INSERT(`ã`,5,1,' ') + +SELECT INSERT(`ã`,1,1,'') FROM `ԣ`; +INSERT(`ã`,1,1,'') + +SELECT INSERT(`ã`,1,2,'') FROM `ԣ`; +INSERT(`ã`,1,2,'') + +SELECT INSERT(`ã`,1,3,'') FROM `ԣ`; +INSERT(`ã`,1,3,'') + +SELECT INSERT(`ã`,1,4,'') FROM `ԣ`; +INSERT(`ã`,1,4,'') + +SELECT INSERT(`ã`,1,5,'') FROM `ԣ`; +INSERT(`ã`,1,5,'') + +SELECT INSERT(`ã`,2,1,'') FROM `ԣ`; +INSERT(`ã`,2,1,'') + +SELECT INSERT(`ã`,2,2,'') FROM `ԣ`; +INSERT(`ã`,2,2,'') + +SELECT INSERT(`ã`,2,3,'') FROM `ԣ`; +INSERT(`ã`,2,3,'') + +SELECT INSERT(`ã`,2,4,'') FROM `ԣ`; +INSERT(`ã`,2,4,'') + +SELECT INSERT(`ã`,3,1,'') FROM `ԣ`; +INSERT(`ã`,3,1,'') + +SELECT INSERT(`ã`,3,2,'') FROM `ԣ`; +INSERT(`ã`,3,2,'') + +SELECT INSERT(`ã`,3,3,'') FROM `ԣ`; +INSERT(`ã`,3,3,'') + +SELECT INSERT(`ã`,4,1,'') FROM `ԣ`; +INSERT(`ã`,4,1,'') + +SELECT INSERT(`ã`,4,2,'') FROM `ԣ`; +INSERT(`ã`,4,2,'') + +SELECT INSERT(`ã`,5,1,'') FROM `ԣ`; +INSERT(`ã`,5,1,'') + +SELECT INSERT(`ã`,1,1,'') FROM `ԣ`; +INSERT(`ã`,1,1,'') + +SELECT INSERT(`ã`,1,2,'') FROM `ԣ`; +INSERT(`ã`,1,2,'') + +SELECT INSERT(`ã`,1,3,'') FROM `ԣ`; +INSERT(`ã`,1,3,'') + +SELECT INSERT(`ã`,1,4,'') FROM `ԣ`; +INSERT(`ã`,1,4,'') + +SELECT INSERT(`ã`,1,5,'') FROM `ԣ`; +INSERT(`ã`,1,5,'') + +SELECT INSERT(`ã`,2,1,'') FROM `ԣ`; +INSERT(`ã`,2,1,'') + +SELECT INSERT(`ã`,2,2,'') FROM `ԣ`; +INSERT(`ã`,2,2,'') + +SELECT INSERT(`ã`,2,3,'') FROM `ԣ`; +INSERT(`ã`,2,3,'') + +SELECT INSERT(`ã`,2,4,'') FROM `ԣ`; +INSERT(`ã`,2,4,'') + +SELECT INSERT(`ã`,3,1,'') FROM `ԣ`; +INSERT(`ã`,3,1,'') + +SELECT INSERT(`ã`,3,2,'') FROM `ԣ`; +INSERT(`ã`,3,2,'') + +SELECT INSERT(`ã`,3,3,'') FROM `ԣ`; +INSERT(`ã`,3,3,'') + +SELECT INSERT(`ã`,4,1,'') FROM `ԣ`; +INSERT(`ã`,4,1,'') + +SELECT INSERT(`ã`,4,2,'') FROM `ԣ`; +INSERT(`ã`,4,2,'') + +SELECT INSERT(`ã`,5,1,'') FROM `ԣ`; +INSERT(`ã`,5,1,'') + +SELECT INSERT(`ã`,1,1,'') FROM `ԣ`; +INSERT(`ã`,1,1,'') +ݏޏߏ +SELECT INSERT(`ã`,1,2,'' ) FROM `ԣ`; +INSERT(`ã`,1,2,'' ) +ޏߏ +SELECT INSERT(`ã`,1,3,'' ) FROM `ԣ`; +INSERT(`ã`,1,3,'' ) +ߏ +SELECT INSERT(`ã`,1,4,'' ) FROM `ԣ`; +INSERT(`ã`,1,4,'' ) + +SELECT INSERT(`ã`,1,5,'' ) FROM `ԣ`; +INSERT(`ã`,1,5,'' ) + +SELECT INSERT(`ã`,2,1,'') FROM `ԣ`; +INSERT(`ã`,2,1,'') +܏ޏߏ +SELECT INSERT(`ã`,2,2,'') FROM `ԣ`; +INSERT(`ã`,2,2,'') +܏ߏ +SELECT INSERT(`ã`,2,3,'' ) FROM `ԣ`; +INSERT(`ã`,2,3,'' ) +܏ +SELECT INSERT(`ã`,2,4,'' ) FROM `ԣ`; +INSERT(`ã`,2,4,'' ) +܏ +SELECT INSERT(`ã`,3,1,'') FROM `ԣ`; +INSERT(`ã`,3,1,'') +܏ݏߏ +SELECT INSERT(`ã`,3,2,'' ) FROM `ԣ`; +INSERT(`ã`,3,2,'' ) +܏ݏ +SELECT INSERT(`ã`,3,3,'' ) FROM `ԣ`; +INSERT(`ã`,3,3,'' ) +܏ݏ +SELECT INSERT(`ã`,4,1,'') FROM `ԣ`; +INSERT(`ã`,4,1,'') +܏ݏޏ +SELECT INSERT(`ã`,4,2,'' ) FROM `ԣ`; +INSERT(`ã`,4,2,'' ) +܏ݏޏ +SELECT INSERT(`ã`,5,1,'') FROM `ԣ`; +INSERT(`ã`,5,1,'') +܏ݏޏߏ +SELECT INSERT(`ã`,1,1,'') FROM `ԣ`; +INSERT(`ã`,1,1,'') + +SELECT INSERT(`ã`,1,2,'') FROM `ԣ`; +INSERT(`ã`,1,2,'') + +SELECT INSERT(`ã`,1,3,'') FROM `ԣ`; +INSERT(`ã`,1,3,'') + +SELECT INSERT(`ã`,1,4,'') FROM `ԣ`; +INSERT(`ã`,1,4,'') + +SELECT INSERT(`ã`,1,5,'') FROM `ԣ`; +INSERT(`ã`,1,5,'') + +SELECT INSERT(`ã`,2,1,'') FROM `ԣ`; +INSERT(`ã`,2,1,'') + +SELECT INSERT(`ã`,2,2,'') FROM `ԣ`; +INSERT(`ã`,2,2,'') + +SELECT INSERT(`ã`,2,3,'') FROM `ԣ`; +INSERT(`ã`,2,3,'') + +SELECT INSERT(`ã`,2,4,'') FROM `ԣ`; +INSERT(`ã`,2,4,'') + +SELECT INSERT(`ã`,3,1,'') FROM `ԣ`; +INSERT(`ã`,3,1,'') + +SELECT INSERT(`ã`,3,2,'') FROM `ԣ`; +INSERT(`ã`,3,2,'') + +SELECT INSERT(`ã`,3,3,'') FROM `ԣ`; +INSERT(`ã`,3,3,'') + +SELECT INSERT(`ã`,4,1,'') FROM `ԣ`; +INSERT(`ã`,4,1,'') + +SELECT INSERT(`ã`,4,2,'') FROM `ԣ`; +INSERT(`ã`,4,2,'') + +SELECT INSERT(`ã`,5,1,'') FROM `ԣ`; +INSERT(`ã`,5,1,'') + +SELECT INSERT(`ã`,1,1,' ') FROM `ԣ`; +INSERT(`ã`,1,1,' ') + +SELECT INSERT(`ã`,1,2,' ') FROM `ԣ`; +INSERT(`ã`,1,2,' ') + +SELECT INSERT(`ã`,1,3,' ') FROM `ԣ`; +INSERT(`ã`,1,3,' ') + +SELECT INSERT(`ã`,1,4,' ') FROM `ԣ`; +INSERT(`ã`,1,4,' ') + +SELECT INSERT(`ã`,1,5,' ') FROM `ԣ`; +INSERT(`ã`,1,5,' ') + +SELECT INSERT(`ã`,2,1,' ') FROM `ԣ`; +INSERT(`ã`,2,1,' ') + +SELECT INSERT(`ã`,2,2,' ') FROM `ԣ`; +INSERT(`ã`,2,2,' ') + +SELECT INSERT(`ã`,2,3,' ') FROM `ԣ`; +INSERT(`ã`,2,3,' ') + +SELECT INSERT(`ã`,2,4,' ') FROM `ԣ`; +INSERT(`ã`,2,4,' ') + +SELECT INSERT(`ã`,3,1,' ') FROM `ԣ`; +INSERT(`ã`,3,1,' ') + +SELECT INSERT(`ã`,3,2,' ') FROM `ԣ`; +INSERT(`ã`,3,2,' ') + +SELECT INSERT(`ã`,3,3,' ') FROM `ԣ`; +INSERT(`ã`,3,3,' ') + +SELECT INSERT(`ã`,4,1,' ') FROM `ԣ`; +INSERT(`ã`,4,1,' ') + +SELECT INSERT(`ã`,4,2,' ') FROM `ԣ`; +INSERT(`ã`,4,2,' ') + +SELECT INSERT(`ã`,5,1,' ') FROM `ԣ`; +INSERT(`ã`,5,1,' ') + +SELECT INSERT(`ã`,1,1,'') FROM `ԣ`; +INSERT(`ã`,1,1,'') + +SELECT INSERT(`ã`,1,2,'') FROM `ԣ`; +INSERT(`ã`,1,2,'') + +SELECT INSERT(`ã`,1,3,'') FROM `ԣ`; +INSERT(`ã`,1,3,'') + +SELECT INSERT(`ã`,1,4,'') FROM `ԣ`; +INSERT(`ã`,1,4,'') + +SELECT INSERT(`ã`,1,5,'') FROM `ԣ`; +INSERT(`ã`,1,5,'') + +SELECT INSERT(`ã`,2,1,'') FROM `ԣ`; +INSERT(`ã`,2,1,'') + +SELECT INSERT(`ã`,2,2,'') FROM `ԣ`; +INSERT(`ã`,2,2,'') + +SELECT INSERT(`ã`,2,3,'') FROM `ԣ`; +INSERT(`ã`,2,3,'') + +SELECT INSERT(`ã`,2,4,'') FROM `ԣ`; +INSERT(`ã`,2,4,'') + +SELECT INSERT(`ã`,3,1,'') FROM `ԣ`; +INSERT(`ã`,3,1,'') + +SELECT INSERT(`ã`,3,2,'') FROM `ԣ`; +INSERT(`ã`,3,2,'') + +SELECT INSERT(`ã`,3,3,'') FROM `ԣ`; +INSERT(`ã`,3,3,'') + +SELECT INSERT(`ã`,4,1,'') FROM `ԣ`; +INSERT(`ã`,4,1,'') + +SELECT INSERT(`ã`,4,2,'') FROM `ԣ`; +INSERT(`ã`,4,2,'') + +SELECT INSERT(`ã`,5,1,'') FROM `ԣ`; +INSERT(`ã`,5,1,'') + +SELECT INSERT(`ã`,1,1,'') FROM `ԣ`; +INSERT(`ã`,1,1,'') + +SELECT INSERT(`ã`,1,2,'') FROM `ԣ`; +INSERT(`ã`,1,2,'') + +SELECT INSERT(`ã`,1,3,'') FROM `ԣ`; +INSERT(`ã`,1,3,'') + +SELECT INSERT(`ã`,1,4,'') FROM `ԣ`; +INSERT(`ã`,1,4,'') + +SELECT INSERT(`ã`,1,5,'') FROM `ԣ`; +INSERT(`ã`,1,5,'') + +SELECT INSERT(`ã`,2,1,'') FROM `ԣ`; +INSERT(`ã`,2,1,'') + +SELECT INSERT(`ã`,2,2,'') FROM `ԣ`; +INSERT(`ã`,2,2,'') + +SELECT INSERT(`ã`,2,3,'') FROM `ԣ`; +INSERT(`ã`,2,3,'') + +SELECT INSERT(`ã`,2,4,'') FROM `ԣ`; +INSERT(`ã`,2,4,'') + +SELECT INSERT(`ã`,3,1,'') FROM `ԣ`; +INSERT(`ã`,3,1,'') + +SELECT INSERT(`ã`,3,2,'') FROM `ԣ`; +INSERT(`ã`,3,2,'') + +SELECT INSERT(`ã`,3,3,'') FROM `ԣ`; +INSERT(`ã`,3,3,'') + +SELECT INSERT(`ã`,4,1,'') FROM `ԣ`; +INSERT(`ã`,4,1,'') + +SELECT INSERT(`ã`,4,2,'') FROM `ԣ`; +INSERT(`ã`,4,2,'') + +SELECT INSERT(`ã`,5,1,'') FROM `ԣ`; +INSERT(`ã`,5,1,'') + +SELECT INSERT(`ã`,1,1,'') FROM `ԣ`; +INSERT(`ã`,1,1,'') +ݏޏߏ +SELECT INSERT(`ã`,1,2,'' ) FROM `ԣ`; +INSERT(`ã`,1,2,'' ) +ޏߏ +SELECT INSERT(`ã`,1,3,'' ) FROM `ԣ`; +INSERT(`ã`,1,3,'' ) +ߏ +SELECT INSERT(`ã`,1,4,'' ) FROM `ԣ`; +INSERT(`ã`,1,4,'' ) + +SELECT INSERT(`ã`,1,5,'' ) FROM `ԣ`; +INSERT(`ã`,1,5,'' ) + +SELECT INSERT(`ã`,2,1,'') FROM `ԣ`; +INSERT(`ã`,2,1,'') +܏ޏߏ +SELECT INSERT(`ã`,2,2,'' ) FROM `ԣ`; +INSERT(`ã`,2,2,'' ) +܏ߏ +SELECT INSERT(`ã`,2,3,'' ) FROM `ԣ`; +INSERT(`ã`,2,3,'' ) +܏ +SELECT INSERT(`ã`,2,4,'' ) FROM `ԣ`; +INSERT(`ã`,2,4,'' ) +܏ +SELECT INSERT(`ã`,3,1,'') FROM `ԣ`; +INSERT(`ã`,3,1,'') +܏ݏߏ +SELECT INSERT(`ã`,3,2,'' ) FROM `ԣ`; +INSERT(`ã`,3,2,'' ) +܏ݏ +SELECT INSERT(`ã`,3,3,'' ) FROM `ԣ`; +INSERT(`ã`,3,3,'' ) +܏ݏ +SELECT INSERT(`ã`,4,1,'') FROM `ԣ`; +INSERT(`ã`,4,1,'') +܏ݏޏ +SELECT INSERT(`ã`,4,2,'' ) FROM `ԣ`; +INSERT(`ã`,4,2,'' ) +܏ݏޏ +SELECT INSERT(`ã`,5,1,'') FROM `ԣ`; +INSERT(`ã`,5,1,'') +܏ݏޏߏ +SELECT INSERT(`ã`,1,1,'') FROM `ԣ`; +INSERT(`ã`,1,1,'') + +SELECT INSERT(`ã`,1,2,'') FROM `ԣ`; +INSERT(`ã`,1,2,'') + +SELECT INSERT(`ã`,1,3,'') FROM `ԣ`; +INSERT(`ã`,1,3,'') + +SELECT INSERT(`ã`,1,4,'') FROM `ԣ`; +INSERT(`ã`,1,4,'') + +SELECT INSERT(`ã`,1,5,'') FROM `ԣ`; +INSERT(`ã`,1,5,'') + +SELECT INSERT(`ã`,2,1,'') FROM `ԣ`; +INSERT(`ã`,2,1,'') + +SELECT INSERT(`ã`,2,2,'') FROM `ԣ`; +INSERT(`ã`,2,2,'') + +SELECT INSERT(`ã`,2,3,'') FROM `ԣ`; +INSERT(`ã`,2,3,'') + +SELECT INSERT(`ã`,2,4,'') FROM `ԣ`; +INSERT(`ã`,2,4,'') + +SELECT INSERT(`ã`,3,1,'') FROM `ԣ`; +INSERT(`ã`,3,1,'') + +SELECT INSERT(`ã`,3,2,'') FROM `ԣ`; +INSERT(`ã`,3,2,'') + +SELECT INSERT(`ã`,3,3,'') FROM `ԣ`; +INSERT(`ã`,3,3,'') + +SELECT INSERT(`ã`,4,1,'') FROM `ԣ`; +INSERT(`ã`,4,1,'') + +SELECT INSERT(`ã`,4,2,'') FROM `ԣ`; +INSERT(`ã`,4,2,'') + +SELECT INSERT(`ã`,5,1,'') FROM `ԣ`; +INSERT(`ã`,5,1,'') + +SELECT INSERT(`ã`,1,1,'') FROM `ԣ`; +INSERT(`ã`,1,1,'') + +SELECT INSERT(`ã`,1,2,'') FROM `ԣ`; +INSERT(`ã`,1,2,'') + +SELECT INSERT(`ã`,1,3,'') FROM `ԣ`; +INSERT(`ã`,1,3,'') + +SELECT INSERT(`ã`,1,4,'') FROM `ԣ`; +INSERT(`ã`,1,4,'') + +SELECT INSERT(`ã`,1,5,'') FROM `ԣ`; +INSERT(`ã`,1,5,'') + +SELECT INSERT(`ã`,2,1,'') FROM `ԣ`; +INSERT(`ã`,2,1,'') + +SELECT INSERT(`ã`,2,2,'') FROM `ԣ`; +INSERT(`ã`,2,2,'') + +SELECT INSERT(`ã`,2,3,'') FROM `ԣ`; +INSERT(`ã`,2,3,'') + +SELECT INSERT(`ã`,2,4,'') FROM `ԣ`; +INSERT(`ã`,2,4,'') + +SELECT INSERT(`ã`,3,1,'') FROM `ԣ`; +INSERT(`ã`,3,1,'') + +SELECT INSERT(`ã`,3,2,'') FROM `ԣ`; +INSERT(`ã`,3,2,'') + +SELECT INSERT(`ã`,3,3,'') FROM `ԣ`; +INSERT(`ã`,3,3,'') + +SELECT INSERT(`ã`,4,1,'') FROM `ԣ`; +INSERT(`ã`,4,1,'') + +SELECT INSERT(`ã`,4,2,'') FROM `ԣ`; +INSERT(`ã`,4,2,'') + +SELECT INSERT(`ã`,5,1,'') FROM `ԣ`; +INSERT(`ã`,5,1,'') + +SELECT INSERT(`ã`,1,1,'') FROM `ԣ`; +INSERT(`ã`,1,1,'') + +SELECT INSERT(`ã`,1,2,'') FROM `ԣ`; +INSERT(`ã`,1,2,'') + +SELECT INSERT(`ã`,1,3,'') FROM `ԣ`; +INSERT(`ã`,1,3,'') + +SELECT INSERT(`ã`,1,4,'') FROM `ԣ`; +INSERT(`ã`,1,4,'') + +SELECT INSERT(`ã`,1,5,'') FROM `ԣ`; +INSERT(`ã`,1,5,'') + +SELECT INSERT(`ã`,2,1,'') FROM `ԣ`; +INSERT(`ã`,2,1,'') + +SELECT INSERT(`ã`,2,2,'') FROM `ԣ`; +INSERT(`ã`,2,2,'') + +SELECT INSERT(`ã`,2,3,'') FROM `ԣ`; +INSERT(`ã`,2,3,'') + +SELECT INSERT(`ã`,2,4,'') FROM `ԣ`; +INSERT(`ã`,2,4,'') + +SELECT INSERT(`ã`,3,1,'') FROM `ԣ`; +INSERT(`ã`,3,1,'') + +SELECT INSERT(`ã`,3,2,'') FROM `ԣ`; +INSERT(`ã`,3,2,'') + +SELECT INSERT(`ã`,3,3,'') FROM `ԣ`; +INSERT(`ã`,3,3,'') + +SELECT INSERT(`ã`,4,1,'') FROM `ԣ`; +INSERT(`ã`,4,1,'') + +SELECT INSERT(`ã`,4,2,'') FROM `ԣ`; +INSERT(`ã`,4,2,'') + +SELECT INSERT(`ã`,5,1,'') FROM `ԣ`; +INSERT(`ã`,5,1,'') + +SELECT INSERT(`ã`,1,1,'') FROM `ԣ`; +INSERT(`ã`,1,1,'') +ݏޏߏ +SELECT INSERT(`ã`,1,2,'') FROM `ԣ`; +INSERT(`ã`,1,2,'') +ޏߏ +SELECT INSERT(`ã`,1,3,'') FROM `ԣ`; +INSERT(`ã`,1,3,'') +ߏ +SELECT INSERT(`ã`,1,4,'') FROM `ԣ`; +INSERT(`ã`,1,4,'') + +SELECT INSERT(`ã`,1,5,'') FROM `ԣ`; +INSERT(`ã`,1,5,'') + +SELECT INSERT(`ã`,2,1,'') FROM `ԣ`; +INSERT(`ã`,2,1,'') +܏ޏߏ +SELECT INSERT(`ã`,2,2,'') FROM `ԣ`; +INSERT(`ã`,2,2,'') +܏ߏ +SELECT INSERT(`ã`,2,3,'') FROM `ԣ`; +INSERT(`ã`,2,3,'') +܏ +SELECT INSERT(`ã`,2,4,'') FROM `ԣ`; +INSERT(`ã`,2,4,'') +܏ +SELECT INSERT(`ã`,3,1,'') FROM `ԣ`; +INSERT(`ã`,3,1,'') +܏ݏߏ +SELECT INSERT(`ã`,3,2,'') FROM `ԣ`; +INSERT(`ã`,3,2,'') +܏ݏ +SELECT INSERT(`ã`,3,3,'') FROM `ԣ`; +INSERT(`ã`,3,3,'') +܏ݏ +SELECT INSERT(`ã`,4,1,'') FROM `ԣ`; +INSERT(`ã`,4,1,'') +܏ݏޏ +SELECT INSERT(`ã`,4,2,'') FROM `ԣ`; +INSERT(`ã`,4,2,'') +܏ݏޏ +SELECT INSERT(`ã`,5,1,'') FROM `ԣ`; +INSERT(`ã`,5,1,'') +܏ݏޏߏ +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; diff --git a/mysql-test/suite/jp/r/jp_insert_ujis.result b/mysql-test/suite/jp/r/jp_insert_ujis.result new file mode 100755 index 00000000000..7f42d66c565 --- /dev/null +++ b/mysql-test/suite/jp/r/jp_insert_ujis.result @@ -0,0 +1,906 @@ +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +SET NAMES ujis; +SET character_set_database = ujis; +SET collation_connection = ujis_japanese_ci; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ujis engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ujis engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ujis engine = bdb; +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +SELECT INSERT(`ã`,1,1,'') FROM `ԣ`; +INSERT(`ã`,1,1,'') + +SELECT INSERT(`ã`,1,2,'') FROM `ԣ`; +INSERT(`ã`,1,2,'') + +SELECT INSERT(`ã`,1,3,'') FROM `ԣ`; +INSERT(`ã`,1,3,'') + +SELECT INSERT(`ã`,1,4,'') FROM `ԣ`; +INSERT(`ã`,1,4,'') + +SELECT INSERT(`ã`,1,5,'') FROM `ԣ`; +INSERT(`ã`,1,5,'') + +SELECT INSERT(`ã`,2,1,'') FROM `ԣ`; +INSERT(`ã`,2,1,'') + +SELECT INSERT(`ã`,2,2,'') FROM `ԣ`; +INSERT(`ã`,2,2,'') + +SELECT INSERT(`ã`,2,3,'') FROM `ԣ`; +INSERT(`ã`,2,3,'') + +SELECT INSERT(`ã`,2,4,'') FROM `ԣ`; +INSERT(`ã`,2,4,'') + +SELECT INSERT(`ã`,3,1,'') FROM `ԣ`; +INSERT(`ã`,3,1,'') + +SELECT INSERT(`ã`,3,2,'') FROM `ԣ`; +INSERT(`ã`,3,2,'') + +SELECT INSERT(`ã`,3,3,'') FROM `ԣ`; +INSERT(`ã`,3,3,'') + +SELECT INSERT(`ã`,4,1,'') FROM `ԣ`; +INSERT(`ã`,4,1,'') + +SELECT INSERT(`ã`,4,2,'') FROM `ԣ`; +INSERT(`ã`,4,2,'') + +SELECT INSERT(`ã`,5,1,'') FROM `ԣ`; +INSERT(`ã`,5,1,'') + +SELECT INSERT(`ã`,1,1,' ') FROM `ԣ`; +INSERT(`ã`,1,1,' ') + +SELECT INSERT(`ã`,1,2,' ') FROM `ԣ`; +INSERT(`ã`,1,2,' ') + +SELECT INSERT(`ã`,1,3,' ') FROM `ԣ`; +INSERT(`ã`,1,3,' ') + +SELECT INSERT(`ã`,1,4,' ') FROM `ԣ`; +INSERT(`ã`,1,4,' ') + +SELECT INSERT(`ã`,1,5,' ') FROM `ԣ`; +INSERT(`ã`,1,5,' ') + +SELECT INSERT(`ã`,2,1,' ') FROM `ԣ`; +INSERT(`ã`,2,1,' ') + +SELECT INSERT(`ã`,2,2,' ') FROM `ԣ`; +INSERT(`ã`,2,2,' ') + +SELECT INSERT(`ã`,2,3,' ') FROM `ԣ`; +INSERT(`ã`,2,3,' ') + +SELECT INSERT(`ã`,2,4,' ') FROM `ԣ`; +INSERT(`ã`,2,4,' ') + +SELECT INSERT(`ã`,3,1,' ') FROM `ԣ`; +INSERT(`ã`,3,1,' ') + +SELECT INSERT(`ã`,3,2,' ') FROM `ԣ`; +INSERT(`ã`,3,2,' ') + +SELECT INSERT(`ã`,3,3,' ') FROM `ԣ`; +INSERT(`ã`,3,3,' ') + +SELECT INSERT(`ã`,4,1,' ') FROM `ԣ`; +INSERT(`ã`,4,1,' ') + +SELECT INSERT(`ã`,4,2,' ') FROM `ԣ`; +INSERT(`ã`,4,2,' ') + +SELECT INSERT(`ã`,5,1,' ') FROM `ԣ`; +INSERT(`ã`,5,1,' ') + +SELECT INSERT(`ã`,1,1,'') FROM `ԣ`; +INSERT(`ã`,1,1,'') + +SELECT INSERT(`ã`,1,2,'') FROM `ԣ`; +INSERT(`ã`,1,2,'') + +SELECT INSERT(`ã`,1,3,'') FROM `ԣ`; +INSERT(`ã`,1,3,'') + +SELECT INSERT(`ã`,1,4,'') FROM `ԣ`; +INSERT(`ã`,1,4,'') + +SELECT INSERT(`ã`,1,5,'') FROM `ԣ`; +INSERT(`ã`,1,5,'') + +SELECT INSERT(`ã`,2,1,'') FROM `ԣ`; +INSERT(`ã`,2,1,'') + +SELECT INSERT(`ã`,2,2,'') FROM `ԣ`; +INSERT(`ã`,2,2,'') + +SELECT INSERT(`ã`,2,3,'') FROM `ԣ`; +INSERT(`ã`,2,3,'') + +SELECT INSERT(`ã`,2,4,'') FROM `ԣ`; +INSERT(`ã`,2,4,'') + +SELECT INSERT(`ã`,3,1,'') FROM `ԣ`; +INSERT(`ã`,3,1,'') + +SELECT INSERT(`ã`,3,2,'') FROM `ԣ`; +INSERT(`ã`,3,2,'') + +SELECT INSERT(`ã`,3,3,'') FROM `ԣ`; +INSERT(`ã`,3,3,'') + +SELECT INSERT(`ã`,4,1,'') FROM `ԣ`; +INSERT(`ã`,4,1,'') + +SELECT INSERT(`ã`,4,2,'') FROM `ԣ`; +INSERT(`ã`,4,2,'') + +SELECT INSERT(`ã`,5,1,'') FROM `ԣ`; +INSERT(`ã`,5,1,'') + +SELECT INSERT(`ã`,1,1,'') FROM `ԣ`; +INSERT(`ã`,1,1,'') + +SELECT INSERT(`ã`,1,2,'') FROM `ԣ`; +INSERT(`ã`,1,2,'') + +SELECT INSERT(`ã`,1,3,'') FROM `ԣ`; +INSERT(`ã`,1,3,'') + +SELECT INSERT(`ã`,1,4,'') FROM `ԣ`; +INSERT(`ã`,1,4,'') + +SELECT INSERT(`ã`,1,5,'') FROM `ԣ`; +INSERT(`ã`,1,5,'') + +SELECT INSERT(`ã`,2,1,'') FROM `ԣ`; +INSERT(`ã`,2,1,'') + +SELECT INSERT(`ã`,2,2,'') FROM `ԣ`; +INSERT(`ã`,2,2,'') + +SELECT INSERT(`ã`,2,3,'') FROM `ԣ`; +INSERT(`ã`,2,3,'') + +SELECT INSERT(`ã`,2,4,'') FROM `ԣ`; +INSERT(`ã`,2,4,'') + +SELECT INSERT(`ã`,3,1,'') FROM `ԣ`; +INSERT(`ã`,3,1,'') + +SELECT INSERT(`ã`,3,2,'') FROM `ԣ`; +INSERT(`ã`,3,2,'') + +SELECT INSERT(`ã`,3,3,'') FROM `ԣ`; +INSERT(`ã`,3,3,'') + +SELECT INSERT(`ã`,4,1,'') FROM `ԣ`; +INSERT(`ã`,4,1,'') + +SELECT INSERT(`ã`,4,2,'') FROM `ԣ`; +INSERT(`ã`,4,2,'') + +SELECT INSERT(`ã`,5,1,'') FROM `ԣ`; +INSERT(`ã`,5,1,'') + +SELECT INSERT(`ã`,1,1,'') FROM `ԣ`; +INSERT(`ã`,1,1,'') +ݏޏߏ +SELECT INSERT(`ã`,1,2,'' ) FROM `ԣ`; +INSERT(`ã`,1,2,'' ) +ޏߏ +SELECT INSERT(`ã`,1,3,'' ) FROM `ԣ`; +INSERT(`ã`,1,3,'' ) +ߏ +SELECT INSERT(`ã`,1,4,'' ) FROM `ԣ`; +INSERT(`ã`,1,4,'' ) + +SELECT INSERT(`ã`,1,5,'' ) FROM `ԣ`; +INSERT(`ã`,1,5,'' ) + +SELECT INSERT(`ã`,2,1,'') FROM `ԣ`; +INSERT(`ã`,2,1,'') +܏ޏߏ +SELECT INSERT(`ã`,2,2,'' ) FROM `ԣ`; +INSERT(`ã`,2,2,'' ) +܏ߏ +SELECT INSERT(`ã`,2,3,'' ) FROM `ԣ`; +INSERT(`ã`,2,3,'' ) +܏ +SELECT INSERT(`ã`,2,4,'' ) FROM `ԣ`; +INSERT(`ã`,2,4,'' ) +܏ +SELECT INSERT(`ã`,3,1,'') FROM `ԣ`; +INSERT(`ã`,3,1,'') +܏ݏߏ +SELECT INSERT(`ã`,3,2,'' ) FROM `ԣ`; +INSERT(`ã`,3,2,'' ) +܏ݏ +SELECT INSERT(`ã`,3,3,'' ) FROM `ԣ`; +INSERT(`ã`,3,3,'' ) +܏ݏ +SELECT INSERT(`ã`,4,1,'') FROM `ԣ`; +INSERT(`ã`,4,1,'') +܏ݏޏ +SELECT INSERT(`ã`,4,2,'' ) FROM `ԣ`; +INSERT(`ã`,4,2,'' ) +܏ݏޏ +SELECT INSERT(`ã`,5,1,'') FROM `ԣ`; +INSERT(`ã`,5,1,'') +܏ݏޏߏ +SELECT INSERT(`ã`,1,1,'') FROM `ԣ`; +INSERT(`ã`,1,1,'') + +SELECT INSERT(`ã`,1,2,'') FROM `ԣ`; +INSERT(`ã`,1,2,'') + +SELECT INSERT(`ã`,1,3,'') FROM `ԣ`; +INSERT(`ã`,1,3,'') + +SELECT INSERT(`ã`,1,4,'') FROM `ԣ`; +INSERT(`ã`,1,4,'') + +SELECT INSERT(`ã`,1,5,'') FROM `ԣ`; +INSERT(`ã`,1,5,'') + +SELECT INSERT(`ã`,2,1,'') FROM `ԣ`; +INSERT(`ã`,2,1,'') + +SELECT INSERT(`ã`,2,2,'') FROM `ԣ`; +INSERT(`ã`,2,2,'') + +SELECT INSERT(`ã`,2,3,'') FROM `ԣ`; +INSERT(`ã`,2,3,'') + +SELECT INSERT(`ã`,2,4,'') FROM `ԣ`; +INSERT(`ã`,2,4,'') + +SELECT INSERT(`ã`,3,1,'') FROM `ԣ`; +INSERT(`ã`,3,1,'') + +SELECT INSERT(`ã`,3,2,'') FROM `ԣ`; +INSERT(`ã`,3,2,'') + +SELECT INSERT(`ã`,3,3,'') FROM `ԣ`; +INSERT(`ã`,3,3,'') + +SELECT INSERT(`ã`,4,1,'') FROM `ԣ`; +INSERT(`ã`,4,1,'') + +SELECT INSERT(`ã`,4,2,'') FROM `ԣ`; +INSERT(`ã`,4,2,'') + +SELECT INSERT(`ã`,5,1,'') FROM `ԣ`; +INSERT(`ã`,5,1,'') + +SELECT INSERT(`ã`,1,1,' ') FROM `ԣ`; +INSERT(`ã`,1,1,' ') + +SELECT INSERT(`ã`,1,2,' ') FROM `ԣ`; +INSERT(`ã`,1,2,' ') + +SELECT INSERT(`ã`,1,3,' ') FROM `ԣ`; +INSERT(`ã`,1,3,' ') + +SELECT INSERT(`ã`,1,4,' ') FROM `ԣ`; +INSERT(`ã`,1,4,' ') + +SELECT INSERT(`ã`,1,5,' ') FROM `ԣ`; +INSERT(`ã`,1,5,' ') + +SELECT INSERT(`ã`,2,1,' ') FROM `ԣ`; +INSERT(`ã`,2,1,' ') + +SELECT INSERT(`ã`,2,2,' ') FROM `ԣ`; +INSERT(`ã`,2,2,' ') + +SELECT INSERT(`ã`,2,3,' ') FROM `ԣ`; +INSERT(`ã`,2,3,' ') + +SELECT INSERT(`ã`,2,4,' ') FROM `ԣ`; +INSERT(`ã`,2,4,' ') + +SELECT INSERT(`ã`,3,1,' ') FROM `ԣ`; +INSERT(`ã`,3,1,' ') + +SELECT INSERT(`ã`,3,2,' ') FROM `ԣ`; +INSERT(`ã`,3,2,' ') + +SELECT INSERT(`ã`,3,3,' ') FROM `ԣ`; +INSERT(`ã`,3,3,' ') + +SELECT INSERT(`ã`,4,1,' ') FROM `ԣ`; +INSERT(`ã`,4,1,' ') + +SELECT INSERT(`ã`,4,2,' ') FROM `ԣ`; +INSERT(`ã`,4,2,' ') + +SELECT INSERT(`ã`,5,1,' ') FROM `ԣ`; +INSERT(`ã`,5,1,' ') + +SELECT INSERT(`ã`,1,1,'') FROM `ԣ`; +INSERT(`ã`,1,1,'') + +SELECT INSERT(`ã`,1,2,'') FROM `ԣ`; +INSERT(`ã`,1,2,'') + +SELECT INSERT(`ã`,1,3,'') FROM `ԣ`; +INSERT(`ã`,1,3,'') + +SELECT INSERT(`ã`,1,4,'') FROM `ԣ`; +INSERT(`ã`,1,4,'') + +SELECT INSERT(`ã`,1,5,'') FROM `ԣ`; +INSERT(`ã`,1,5,'') + +SELECT INSERT(`ã`,2,1,'') FROM `ԣ`; +INSERT(`ã`,2,1,'') + +SELECT INSERT(`ã`,2,2,'') FROM `ԣ`; +INSERT(`ã`,2,2,'') + +SELECT INSERT(`ã`,2,3,'') FROM `ԣ`; +INSERT(`ã`,2,3,'') + +SELECT INSERT(`ã`,2,4,'') FROM `ԣ`; +INSERT(`ã`,2,4,'') + +SELECT INSERT(`ã`,3,1,'') FROM `ԣ`; +INSERT(`ã`,3,1,'') + +SELECT INSERT(`ã`,3,2,'') FROM `ԣ`; +INSERT(`ã`,3,2,'') + +SELECT INSERT(`ã`,3,3,'') FROM `ԣ`; +INSERT(`ã`,3,3,'') + +SELECT INSERT(`ã`,4,1,'') FROM `ԣ`; +INSERT(`ã`,4,1,'') + +SELECT INSERT(`ã`,4,2,'') FROM `ԣ`; +INSERT(`ã`,4,2,'') + +SELECT INSERT(`ã`,5,1,'') FROM `ԣ`; +INSERT(`ã`,5,1,'') + +SELECT INSERT(`ã`,1,1,'') FROM `ԣ`; +INSERT(`ã`,1,1,'') + +SELECT INSERT(`ã`,1,2,'') FROM `ԣ`; +INSERT(`ã`,1,2,'') + +SELECT INSERT(`ã`,1,3,'') FROM `ԣ`; +INSERT(`ã`,1,3,'') + +SELECT INSERT(`ã`,1,4,'') FROM `ԣ`; +INSERT(`ã`,1,4,'') + +SELECT INSERT(`ã`,1,5,'') FROM `ԣ`; +INSERT(`ã`,1,5,'') + +SELECT INSERT(`ã`,2,1,'') FROM `ԣ`; +INSERT(`ã`,2,1,'') + +SELECT INSERT(`ã`,2,2,'') FROM `ԣ`; +INSERT(`ã`,2,2,'') + +SELECT INSERT(`ã`,2,3,'') FROM `ԣ`; +INSERT(`ã`,2,3,'') + +SELECT INSERT(`ã`,2,4,'') FROM `ԣ`; +INSERT(`ã`,2,4,'') + +SELECT INSERT(`ã`,3,1,'') FROM `ԣ`; +INSERT(`ã`,3,1,'') + +SELECT INSERT(`ã`,3,2,'') FROM `ԣ`; +INSERT(`ã`,3,2,'') + +SELECT INSERT(`ã`,3,3,'') FROM `ԣ`; +INSERT(`ã`,3,3,'') + +SELECT INSERT(`ã`,4,1,'') FROM `ԣ`; +INSERT(`ã`,4,1,'') + +SELECT INSERT(`ã`,4,2,'') FROM `ԣ`; +INSERT(`ã`,4,2,'') + +SELECT INSERT(`ã`,5,1,'') FROM `ԣ`; +INSERT(`ã`,5,1,'') + +SELECT INSERT(`ã`,1,1,'') FROM `ԣ`; +INSERT(`ã`,1,1,'') +ݏޏߏ +SELECT INSERT(`ã`,1,2,'' ) FROM `ԣ`; +INSERT(`ã`,1,2,'' ) +ޏߏ +SELECT INSERT(`ã`,1,3,'' ) FROM `ԣ`; +INSERT(`ã`,1,3,'' ) +ߏ +SELECT INSERT(`ã`,1,4,'' ) FROM `ԣ`; +INSERT(`ã`,1,4,'' ) + +SELECT INSERT(`ã`,1,5,'' ) FROM `ԣ`; +INSERT(`ã`,1,5,'' ) + +SELECT INSERT(`ã`,2,1,'') FROM `ԣ`; +INSERT(`ã`,2,1,'') +܏ޏߏ +SELECT INSERT(`ã`,2,2,'') FROM `ԣ`; +INSERT(`ã`,2,2,'') +܏ߏ +SELECT INSERT(`ã`,2,3,'' ) FROM `ԣ`; +INSERT(`ã`,2,3,'' ) +܏ +SELECT INSERT(`ã`,2,4,'' ) FROM `ԣ`; +INSERT(`ã`,2,4,'' ) +܏ +SELECT INSERT(`ã`,3,1,'') FROM `ԣ`; +INSERT(`ã`,3,1,'') +܏ݏߏ +SELECT INSERT(`ã`,3,2,'' ) FROM `ԣ`; +INSERT(`ã`,3,2,'' ) +܏ݏ +SELECT INSERT(`ã`,3,3,'' ) FROM `ԣ`; +INSERT(`ã`,3,3,'' ) +܏ݏ +SELECT INSERT(`ã`,4,1,'') FROM `ԣ`; +INSERT(`ã`,4,1,'') +܏ݏޏ +SELECT INSERT(`ã`,4,2,'' ) FROM `ԣ`; +INSERT(`ã`,4,2,'' ) +܏ݏޏ +SELECT INSERT(`ã`,5,1,'') FROM `ԣ`; +INSERT(`ã`,5,1,'') +܏ݏޏߏ +SELECT INSERT(`ã`,1,1,'') FROM `ԣ`; +INSERT(`ã`,1,1,'') + +SELECT INSERT(`ã`,1,2,'') FROM `ԣ`; +INSERT(`ã`,1,2,'') + +SELECT INSERT(`ã`,1,3,'') FROM `ԣ`; +INSERT(`ã`,1,3,'') + +SELECT INSERT(`ã`,1,4,'') FROM `ԣ`; +INSERT(`ã`,1,4,'') + +SELECT INSERT(`ã`,1,5,'') FROM `ԣ`; +INSERT(`ã`,1,5,'') + +SELECT INSERT(`ã`,2,1,'') FROM `ԣ`; +INSERT(`ã`,2,1,'') + +SELECT INSERT(`ã`,2,2,'') FROM `ԣ`; +INSERT(`ã`,2,2,'') + +SELECT INSERT(`ã`,2,3,'') FROM `ԣ`; +INSERT(`ã`,2,3,'') + +SELECT INSERT(`ã`,2,4,'') FROM `ԣ`; +INSERT(`ã`,2,4,'') + +SELECT INSERT(`ã`,3,1,'') FROM `ԣ`; +INSERT(`ã`,3,1,'') + +SELECT INSERT(`ã`,3,2,'') FROM `ԣ`; +INSERT(`ã`,3,2,'') + +SELECT INSERT(`ã`,3,3,'') FROM `ԣ`; +INSERT(`ã`,3,3,'') + +SELECT INSERT(`ã`,4,1,'') FROM `ԣ`; +INSERT(`ã`,4,1,'') + +SELECT INSERT(`ã`,4,2,'') FROM `ԣ`; +INSERT(`ã`,4,2,'') + +SELECT INSERT(`ã`,5,1,'') FROM `ԣ`; +INSERT(`ã`,5,1,'') + +SELECT INSERT(`ã`,1,1,' ') FROM `ԣ`; +INSERT(`ã`,1,1,' ') + +SELECT INSERT(`ã`,1,2,' ') FROM `ԣ`; +INSERT(`ã`,1,2,' ') + +SELECT INSERT(`ã`,1,3,' ') FROM `ԣ`; +INSERT(`ã`,1,3,' ') + +SELECT INSERT(`ã`,1,4,' ') FROM `ԣ`; +INSERT(`ã`,1,4,' ') + +SELECT INSERT(`ã`,1,5,' ') FROM `ԣ`; +INSERT(`ã`,1,5,' ') + +SELECT INSERT(`ã`,2,1,' ') FROM `ԣ`; +INSERT(`ã`,2,1,' ') + +SELECT INSERT(`ã`,2,2,' ') FROM `ԣ`; +INSERT(`ã`,2,2,' ') + +SELECT INSERT(`ã`,2,3,' ') FROM `ԣ`; +INSERT(`ã`,2,3,' ') + +SELECT INSERT(`ã`,2,4,' ') FROM `ԣ`; +INSERT(`ã`,2,4,' ') + +SELECT INSERT(`ã`,3,1,' ') FROM `ԣ`; +INSERT(`ã`,3,1,' ') + +SELECT INSERT(`ã`,3,2,' ') FROM `ԣ`; +INSERT(`ã`,3,2,' ') + +SELECT INSERT(`ã`,3,3,' ') FROM `ԣ`; +INSERT(`ã`,3,3,' ') + +SELECT INSERT(`ã`,4,1,' ') FROM `ԣ`; +INSERT(`ã`,4,1,' ') + +SELECT INSERT(`ã`,4,2,' ') FROM `ԣ`; +INSERT(`ã`,4,2,' ') + +SELECT INSERT(`ã`,5,1,' ') FROM `ԣ`; +INSERT(`ã`,5,1,' ') + +SELECT INSERT(`ã`,1,1,'') FROM `ԣ`; +INSERT(`ã`,1,1,'') + +SELECT INSERT(`ã`,1,2,'') FROM `ԣ`; +INSERT(`ã`,1,2,'') + +SELECT INSERT(`ã`,1,3,'') FROM `ԣ`; +INSERT(`ã`,1,3,'') + +SELECT INSERT(`ã`,1,4,'') FROM `ԣ`; +INSERT(`ã`,1,4,'') + +SELECT INSERT(`ã`,1,5,'') FROM `ԣ`; +INSERT(`ã`,1,5,'') + +SELECT INSERT(`ã`,2,1,'') FROM `ԣ`; +INSERT(`ã`,2,1,'') + +SELECT INSERT(`ã`,2,2,'') FROM `ԣ`; +INSERT(`ã`,2,2,'') + +SELECT INSERT(`ã`,2,3,'') FROM `ԣ`; +INSERT(`ã`,2,3,'') + +SELECT INSERT(`ã`,2,4,'') FROM `ԣ`; +INSERT(`ã`,2,4,'') + +SELECT INSERT(`ã`,3,1,'') FROM `ԣ`; +INSERT(`ã`,3,1,'') + +SELECT INSERT(`ã`,3,2,'') FROM `ԣ`; +INSERT(`ã`,3,2,'') + +SELECT INSERT(`ã`,3,3,'') FROM `ԣ`; +INSERT(`ã`,3,3,'') + +SELECT INSERT(`ã`,4,1,'') FROM `ԣ`; +INSERT(`ã`,4,1,'') + +SELECT INSERT(`ã`,4,2,'') FROM `ԣ`; +INSERT(`ã`,4,2,'') + +SELECT INSERT(`ã`,5,1,'') FROM `ԣ`; +INSERT(`ã`,5,1,'') + +SELECT INSERT(`ã`,1,1,'') FROM `ԣ`; +INSERT(`ã`,1,1,'') + +SELECT INSERT(`ã`,1,2,'') FROM `ԣ`; +INSERT(`ã`,1,2,'') + +SELECT INSERT(`ã`,1,3,'') FROM `ԣ`; +INSERT(`ã`,1,3,'') + +SELECT INSERT(`ã`,1,4,'') FROM `ԣ`; +INSERT(`ã`,1,4,'') + +SELECT INSERT(`ã`,1,5,'') FROM `ԣ`; +INSERT(`ã`,1,5,'') + +SELECT INSERT(`ã`,2,1,'') FROM `ԣ`; +INSERT(`ã`,2,1,'') + +SELECT INSERT(`ã`,2,2,'') FROM `ԣ`; +INSERT(`ã`,2,2,'') + +SELECT INSERT(`ã`,2,3,'') FROM `ԣ`; +INSERT(`ã`,2,3,'') + +SELECT INSERT(`ã`,2,4,'') FROM `ԣ`; +INSERT(`ã`,2,4,'') + +SELECT INSERT(`ã`,3,1,'') FROM `ԣ`; +INSERT(`ã`,3,1,'') + +SELECT INSERT(`ã`,3,2,'') FROM `ԣ`; +INSERT(`ã`,3,2,'') + +SELECT INSERT(`ã`,3,3,'') FROM `ԣ`; +INSERT(`ã`,3,3,'') + +SELECT INSERT(`ã`,4,1,'') FROM `ԣ`; +INSERT(`ã`,4,1,'') + +SELECT INSERT(`ã`,4,2,'') FROM `ԣ`; +INSERT(`ã`,4,2,'') + +SELECT INSERT(`ã`,5,1,'') FROM `ԣ`; +INSERT(`ã`,5,1,'') + +SELECT INSERT(`ã`,1,1,'') FROM `ԣ`; +INSERT(`ã`,1,1,'') +ݏޏߏ +SELECT INSERT(`ã`,1,2,'' ) FROM `ԣ`; +INSERT(`ã`,1,2,'' ) +ޏߏ +SELECT INSERT(`ã`,1,3,'' ) FROM `ԣ`; +INSERT(`ã`,1,3,'' ) +ߏ +SELECT INSERT(`ã`,1,4,'' ) FROM `ԣ`; +INSERT(`ã`,1,4,'' ) + +SELECT INSERT(`ã`,1,5,'' ) FROM `ԣ`; +INSERT(`ã`,1,5,'' ) + +SELECT INSERT(`ã`,2,1,'') FROM `ԣ`; +INSERT(`ã`,2,1,'') +܏ޏߏ +SELECT INSERT(`ã`,2,2,'' ) FROM `ԣ`; +INSERT(`ã`,2,2,'' ) +܏ߏ +SELECT INSERT(`ã`,2,3,'' ) FROM `ԣ`; +INSERT(`ã`,2,3,'' ) +܏ +SELECT INSERT(`ã`,2,4,'' ) FROM `ԣ`; +INSERT(`ã`,2,4,'' ) +܏ +SELECT INSERT(`ã`,3,1,'') FROM `ԣ`; +INSERT(`ã`,3,1,'') +܏ݏߏ +SELECT INSERT(`ã`,3,2,'' ) FROM `ԣ`; +INSERT(`ã`,3,2,'' ) +܏ݏ +SELECT INSERT(`ã`,3,3,'' ) FROM `ԣ`; +INSERT(`ã`,3,3,'' ) +܏ݏ +SELECT INSERT(`ã`,4,1,'') FROM `ԣ`; +INSERT(`ã`,4,1,'') +܏ݏޏ +SELECT INSERT(`ã`,4,2,'' ) FROM `ԣ`; +INSERT(`ã`,4,2,'' ) +܏ݏޏ +SELECT INSERT(`ã`,5,1,'') FROM `ԣ`; +INSERT(`ã`,5,1,'') +܏ݏޏߏ +SELECT INSERT(`ã`,1,1,'') FROM `ԣ`; +INSERT(`ã`,1,1,'') + +SELECT INSERT(`ã`,1,2,'') FROM `ԣ`; +INSERT(`ã`,1,2,'') + +SELECT INSERT(`ã`,1,3,'') FROM `ԣ`; +INSERT(`ã`,1,3,'') + +SELECT INSERT(`ã`,1,4,'') FROM `ԣ`; +INSERT(`ã`,1,4,'') + +SELECT INSERT(`ã`,1,5,'') FROM `ԣ`; +INSERT(`ã`,1,5,'') + +SELECT INSERT(`ã`,2,1,'') FROM `ԣ`; +INSERT(`ã`,2,1,'') + +SELECT INSERT(`ã`,2,2,'') FROM `ԣ`; +INSERT(`ã`,2,2,'') + +SELECT INSERT(`ã`,2,3,'') FROM `ԣ`; +INSERT(`ã`,2,3,'') + +SELECT INSERT(`ã`,2,4,'') FROM `ԣ`; +INSERT(`ã`,2,4,'') + +SELECT INSERT(`ã`,3,1,'') FROM `ԣ`; +INSERT(`ã`,3,1,'') + +SELECT INSERT(`ã`,3,2,'') FROM `ԣ`; +INSERT(`ã`,3,2,'') + +SELECT INSERT(`ã`,3,3,'') FROM `ԣ`; +INSERT(`ã`,3,3,'') + +SELECT INSERT(`ã`,4,1,'') FROM `ԣ`; +INSERT(`ã`,4,1,'') + +SELECT INSERT(`ã`,4,2,'') FROM `ԣ`; +INSERT(`ã`,4,2,'') + +SELECT INSERT(`ã`,5,1,'') FROM `ԣ`; +INSERT(`ã`,5,1,'') + +SELECT INSERT(`ã`,1,1,'') FROM `ԣ`; +INSERT(`ã`,1,1,'') + +SELECT INSERT(`ã`,1,2,'') FROM `ԣ`; +INSERT(`ã`,1,2,'') + +SELECT INSERT(`ã`,1,3,'') FROM `ԣ`; +INSERT(`ã`,1,3,'') + +SELECT INSERT(`ã`,1,4,'') FROM `ԣ`; +INSERT(`ã`,1,4,'') + +SELECT INSERT(`ã`,1,5,'') FROM `ԣ`; +INSERT(`ã`,1,5,'') + +SELECT INSERT(`ã`,2,1,'') FROM `ԣ`; +INSERT(`ã`,2,1,'') + +SELECT INSERT(`ã`,2,2,'') FROM `ԣ`; +INSERT(`ã`,2,2,'') + +SELECT INSERT(`ã`,2,3,'') FROM `ԣ`; +INSERT(`ã`,2,3,'') + +SELECT INSERT(`ã`,2,4,'') FROM `ԣ`; +INSERT(`ã`,2,4,'') + +SELECT INSERT(`ã`,3,1,'') FROM `ԣ`; +INSERT(`ã`,3,1,'') + +SELECT INSERT(`ã`,3,2,'') FROM `ԣ`; +INSERT(`ã`,3,2,'') + +SELECT INSERT(`ã`,3,3,'') FROM `ԣ`; +INSERT(`ã`,3,3,'') + +SELECT INSERT(`ã`,4,1,'') FROM `ԣ`; +INSERT(`ã`,4,1,'') + +SELECT INSERT(`ã`,4,2,'') FROM `ԣ`; +INSERT(`ã`,4,2,'') + +SELECT INSERT(`ã`,5,1,'') FROM `ԣ`; +INSERT(`ã`,5,1,'') + +SELECT INSERT(`ã`,1,1,'') FROM `ԣ`; +INSERT(`ã`,1,1,'') + +SELECT INSERT(`ã`,1,2,'') FROM `ԣ`; +INSERT(`ã`,1,2,'') + +SELECT INSERT(`ã`,1,3,'') FROM `ԣ`; +INSERT(`ã`,1,3,'') + +SELECT INSERT(`ã`,1,4,'') FROM `ԣ`; +INSERT(`ã`,1,4,'') + +SELECT INSERT(`ã`,1,5,'') FROM `ԣ`; +INSERT(`ã`,1,5,'') + +SELECT INSERT(`ã`,2,1,'') FROM `ԣ`; +INSERT(`ã`,2,1,'') + +SELECT INSERT(`ã`,2,2,'') FROM `ԣ`; +INSERT(`ã`,2,2,'') + +SELECT INSERT(`ã`,2,3,'') FROM `ԣ`; +INSERT(`ã`,2,3,'') + +SELECT INSERT(`ã`,2,4,'') FROM `ԣ`; +INSERT(`ã`,2,4,'') + +SELECT INSERT(`ã`,3,1,'') FROM `ԣ`; +INSERT(`ã`,3,1,'') + +SELECT INSERT(`ã`,3,2,'') FROM `ԣ`; +INSERT(`ã`,3,2,'') + +SELECT INSERT(`ã`,3,3,'') FROM `ԣ`; +INSERT(`ã`,3,3,'') + +SELECT INSERT(`ã`,4,1,'') FROM `ԣ`; +INSERT(`ã`,4,1,'') + +SELECT INSERT(`ã`,4,2,'') FROM `ԣ`; +INSERT(`ã`,4,2,'') + +SELECT INSERT(`ã`,5,1,'') FROM `ԣ`; +INSERT(`ã`,5,1,'') + +SELECT INSERT(`ã`,1,1,'') FROM `ԣ`; +INSERT(`ã`,1,1,'') +ݏޏߏ +SELECT INSERT(`ã`,1,2,'') FROM `ԣ`; +INSERT(`ã`,1,2,'') +ޏߏ +SELECT INSERT(`ã`,1,3,'') FROM `ԣ`; +INSERT(`ã`,1,3,'') +ߏ +SELECT INSERT(`ã`,1,4,'') FROM `ԣ`; +INSERT(`ã`,1,4,'') + +SELECT INSERT(`ã`,1,5,'') FROM `ԣ`; +INSERT(`ã`,1,5,'') + +SELECT INSERT(`ã`,2,1,'') FROM `ԣ`; +INSERT(`ã`,2,1,'') +܏ޏߏ +SELECT INSERT(`ã`,2,2,'') FROM `ԣ`; +INSERT(`ã`,2,2,'') +܏ߏ +SELECT INSERT(`ã`,2,3,'') FROM `ԣ`; +INSERT(`ã`,2,3,'') +܏ +SELECT INSERT(`ã`,2,4,'') FROM `ԣ`; +INSERT(`ã`,2,4,'') +܏ +SELECT INSERT(`ã`,3,1,'') FROM `ԣ`; +INSERT(`ã`,3,1,'') +܏ݏߏ +SELECT INSERT(`ã`,3,2,'') FROM `ԣ`; +INSERT(`ã`,3,2,'') +܏ݏ +SELECT INSERT(`ã`,3,3,'') FROM `ԣ`; +INSERT(`ã`,3,3,'') +܏ݏ +SELECT INSERT(`ã`,4,1,'') FROM `ԣ`; +INSERT(`ã`,4,1,'') +܏ݏޏ +SELECT INSERT(`ã`,4,2,'') FROM `ԣ`; +INSERT(`ã`,4,2,'') +܏ݏޏ +SELECT INSERT(`ã`,5,1,'') FROM `ԣ`; +INSERT(`ã`,5,1,'') +܏ݏޏߏ +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; diff --git a/mysql-test/suite/jp/r/jp_insert_utf8.result b/mysql-test/suite/jp/r/jp_insert_utf8.result new file mode 100755 index 00000000000..368ba35f637 --- /dev/null +++ b/mysql-test/suite/jp/r/jp_insert_utf8.result @@ -0,0 +1,905 @@ +drop table if exists `T1`; +drop table if exists `T2`; +drop table if exists `T3`; +drop table if exists `T4`; +drop table if exists `T5`; +drop table if exists `T6`; +drop table if exists `T7`; +drop table if exists `T8`; +drop table if exists `T9`; +drop table if exists `T10`; +drop table if exists `T11`; +drop table if exists `T12`; +SET NAMES utf8; +SET character_set_database = utf8; +CREATE TABLE `T1` (`C1` char(5)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T2` (`C1` char(5)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T3` (`C1` char(5)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T4` (`C1` char(5)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T5` (`C1` char(5)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T6` (`C1` char(5)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T7` (`C1` char(5)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T8` (`C1` char(5)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T9` (`C1` char(5)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T10` (`C1` char(5)) DEFAULT CHARSET = utf8 engine = bdb; +CREATE TABLE `T11` (`C1` char(5)) DEFAULT CHARSET = utf8 engine = bdb; +CREATE TABLE `T12` (`C1` char(5)) DEFAULT CHARSET = utf8 engine = bdb; +INSERT INTO `T1` VALUES ('アイウエオ'); +INSERT INTO `T2` VALUES ('あいうえお'); +INSERT INTO `T3` VALUES ('龔龖龗龞龡'); +INSERT INTO `T4` VALUES ('アイウエオ'); +INSERT INTO `T5` VALUES ('あいうえお'); +INSERT INTO `T6` VALUES ('龔龖龗龞龡'); +INSERT INTO `T7` VALUES ('アイウエオ'); +INSERT INTO `T8` VALUES ('あいうえお'); +INSERT INTO `T9` VALUES ('龔龖龗龞龡'); +INSERT INTO `T10` VALUES ('アイウエオ'); +INSERT INTO `T11` VALUES ('あいうえお'); +INSERT INTO `T12` VALUES ('龔龖龗龞龡'); +SELECT INSERT(`C1`,1,1,'カ') FROM `T1`; +INSERT(`C1`,1,1,'カ') +カイウエオ +SELECT INSERT(`C1`,1,2,'カカ') FROM `T1`; +INSERT(`C1`,1,2,'カカ') +カカウエオ +SELECT INSERT(`C1`,1,3,'カカカ') FROM `T1`; +INSERT(`C1`,1,3,'カカカ') +カカカエオ +SELECT INSERT(`C1`,1,4,'カカカカ') FROM `T1`; +INSERT(`C1`,1,4,'カカカカ') +カカカカオ +SELECT INSERT(`C1`,1,5,'カカカカカ') FROM `T1`; +INSERT(`C1`,1,5,'カカカカカ') +カカカカカ +SELECT INSERT(`C1`,2,1,'カ') FROM `T1`; +INSERT(`C1`,2,1,'カ') +アカウエオ +SELECT INSERT(`C1`,2,2,'カカ') FROM `T1`; +INSERT(`C1`,2,2,'カカ') +アカカエオ +SELECT INSERT(`C1`,2,3,'カカカ') FROM `T1`; +INSERT(`C1`,2,3,'カカカ') +アカカカオ +SELECT INSERT(`C1`,2,4,'カカカカ') FROM `T1`; +INSERT(`C1`,2,4,'カカカカ') +アカカカカ +SELECT INSERT(`C1`,3,1,'カ') FROM `T1`; +INSERT(`C1`,3,1,'カ') +アイカエオ +SELECT INSERT(`C1`,3,2,'カカ') FROM `T1`; +INSERT(`C1`,3,2,'カカ') +アイカカオ +SELECT INSERT(`C1`,3,3,'カカカ') FROM `T1`; +INSERT(`C1`,3,3,'カカカ') +アイカカカ +SELECT INSERT(`C1`,4,1,'カ') FROM `T1`; +INSERT(`C1`,4,1,'カ') +アイウカオ +SELECT INSERT(`C1`,4,2,'カカ') FROM `T1`; +INSERT(`C1`,4,2,'カカ') +アイウカカ +SELECT INSERT(`C1`,5,1,'カ') FROM `T1`; +INSERT(`C1`,5,1,'カ') +アイウエカ +SELECT INSERT(`C1`,1,1,' ') FROM `T1`; +INSERT(`C1`,1,1,' ') + イウエオ +SELECT INSERT(`C1`,1,2,' ') FROM `T1`; +INSERT(`C1`,1,2,' ') + ウエオ +SELECT INSERT(`C1`,1,3,' ') FROM `T1`; +INSERT(`C1`,1,3,' ') + エオ +SELECT INSERT(`C1`,1,4,' ') FROM `T1`; +INSERT(`C1`,1,4,' ') + オ +SELECT INSERT(`C1`,1,5,' ') FROM `T1`; +INSERT(`C1`,1,5,' ') + +SELECT INSERT(`C1`,2,1,' ') FROM `T1`; +INSERT(`C1`,2,1,' ') +ア ウエオ +SELECT INSERT(`C1`,2,2,' ') FROM `T1`; +INSERT(`C1`,2,2,' ') +ア エオ +SELECT INSERT(`C1`,2,3,' ') FROM `T1`; +INSERT(`C1`,2,3,' ') +ア オ +SELECT INSERT(`C1`,2,4,' ') FROM `T1`; +INSERT(`C1`,2,4,' ') +ア +SELECT INSERT(`C1`,3,1,' ') FROM `T1`; +INSERT(`C1`,3,1,' ') +アイ エオ +SELECT INSERT(`C1`,3,2,' ') FROM `T1`; +INSERT(`C1`,3,2,' ') +アイ オ +SELECT INSERT(`C1`,3,3,' ') FROM `T1`; +INSERT(`C1`,3,3,' ') +アイ +SELECT INSERT(`C1`,4,1,' ') FROM `T1`; +INSERT(`C1`,4,1,' ') +アイウ オ +SELECT INSERT(`C1`,4,2,' ') FROM `T1`; +INSERT(`C1`,4,2,' ') +アイウ +SELECT INSERT(`C1`,5,1,' ') FROM `T1`; +INSERT(`C1`,5,1,' ') +アイウエ +SELECT INSERT(`C1`,1,1,'か') FROM `T2`; +INSERT(`C1`,1,1,'か') +かいうえお +SELECT INSERT(`C1`,1,2,'かか') FROM `T2`; +INSERT(`C1`,1,2,'かか') +かかうえお +SELECT INSERT(`C1`,1,3,'かかか') FROM `T2`; +INSERT(`C1`,1,3,'かかか') +かかかえお +SELECT INSERT(`C1`,1,4,'かかかか') FROM `T2`; +INSERT(`C1`,1,4,'かかかか') +かかかかお +SELECT INSERT(`C1`,1,5,'かかかかか') FROM `T2`; +INSERT(`C1`,1,5,'かかかかか') +かかかかか +SELECT INSERT(`C1`,2,1,'か') FROM `T2`; +INSERT(`C1`,2,1,'か') +あかうえお +SELECT INSERT(`C1`,2,2,'かか') FROM `T2`; +INSERT(`C1`,2,2,'かか') +あかかえお +SELECT INSERT(`C1`,2,3,'かかか') FROM `T2`; +INSERT(`C1`,2,3,'かかか') +あかかかお +SELECT INSERT(`C1`,2,4,'かかかか') FROM `T2`; +INSERT(`C1`,2,4,'かかかか') +あかかかか +SELECT INSERT(`C1`,3,1,'か') FROM `T2`; +INSERT(`C1`,3,1,'か') +あいかえお +SELECT INSERT(`C1`,3,2,'かか') FROM `T2`; +INSERT(`C1`,3,2,'かか') +あいかかお +SELECT INSERT(`C1`,3,3,'かかか') FROM `T2`; +INSERT(`C1`,3,3,'かかか') +あいかかか +SELECT INSERT(`C1`,4,1,'か') FROM `T2`; +INSERT(`C1`,4,1,'か') +あいうかお +SELECT INSERT(`C1`,4,2,'かか') FROM `T2`; +INSERT(`C1`,4,2,'かか') +あいうかか +SELECT INSERT(`C1`,5,1,'か') FROM `T2`; +INSERT(`C1`,5,1,'か') +あいうえか +SELECT INSERT(`C1`,1,1,' ') FROM `T2`; +INSERT(`C1`,1,1,' ') + いうえお +SELECT INSERT(`C1`,1,2,'  ') FROM `T2`; +INSERT(`C1`,1,2,'  ') +  うえお +SELECT INSERT(`C1`,1,3,'   ') FROM `T2`; +INSERT(`C1`,1,3,'   ') +   えお +SELECT INSERT(`C1`,1,4,'    ') FROM `T2`; +INSERT(`C1`,1,4,'    ') +    お +SELECT INSERT(`C1`,1,5,'     ') FROM `T2`; +INSERT(`C1`,1,5,'     ') +      +SELECT INSERT(`C1`,2,1,' ') FROM `T2`; +INSERT(`C1`,2,1,' ') +あ うえお +SELECT INSERT(`C1`,2,2,'  ') FROM `T2`; +INSERT(`C1`,2,2,'  ') +あ  えお +SELECT INSERT(`C1`,2,3,'   ') FROM `T2`; +INSERT(`C1`,2,3,'   ') +あ   お +SELECT INSERT(`C1`,2,4,'    ') FROM `T2`; +INSERT(`C1`,2,4,'    ') +あ     +SELECT INSERT(`C1`,3,1,' ') FROM `T2`; +INSERT(`C1`,3,1,' ') +あい えお +SELECT INSERT(`C1`,3,2,'  ') FROM `T2`; +INSERT(`C1`,3,2,'  ') +あい  お +SELECT INSERT(`C1`,3,3,'   ') FROM `T2`; +INSERT(`C1`,3,3,'   ') +あい    +SELECT INSERT(`C1`,4,1,' ') FROM `T2`; +INSERT(`C1`,4,1,' ') +あいう お +SELECT INSERT(`C1`,4,2,'  ') FROM `T2`; +INSERT(`C1`,4,2,'  ') +あいう   +SELECT INSERT(`C1`,5,1,' ') FROM `T2`; +INSERT(`C1`,5,1,' ') +あいうえ  +SELECT INSERT(`C1`,1,1,'丂') FROM `T3`; +INSERT(`C1`,1,1,'丂') +丂龖龗龞龡 +SELECT INSERT(`C1`,1,2,'丂丂' ) FROM `T3`; +INSERT(`C1`,1,2,'丂丂' ) +丂丂龗龞龡 +SELECT INSERT(`C1`,1,3,'丂丂丂' ) FROM `T3`; +INSERT(`C1`,1,3,'丂丂丂' ) +丂丂丂龞龡 +SELECT INSERT(`C1`,1,4,'丂丂丂丂' ) FROM `T3`; +INSERT(`C1`,1,4,'丂丂丂丂' ) +丂丂丂丂龡 +SELECT INSERT(`C1`,1,5,'丂丂丂丂丂' ) FROM `T3`; +INSERT(`C1`,1,5,'丂丂丂丂丂' ) +丂丂丂丂丂 +SELECT INSERT(`C1`,2,1,'丂') FROM `T3`; +INSERT(`C1`,2,1,'丂') +龔丂龗龞龡 +SELECT INSERT(`C1`,2,2,'丂丂' ) FROM `T3`; +INSERT(`C1`,2,2,'丂丂' ) +龔丂丂龞龡 +SELECT INSERT(`C1`,2,3,'丂丂丂' ) FROM `T3`; +INSERT(`C1`,2,3,'丂丂丂' ) +龔丂丂丂龡 +SELECT INSERT(`C1`,2,4,'丂丂丂丂' ) FROM `T3`; +INSERT(`C1`,2,4,'丂丂丂丂' ) +龔丂丂丂丂 +SELECT INSERT(`C1`,3,1,'丂') FROM `T3`; +INSERT(`C1`,3,1,'丂') +龔龖丂龞龡 +SELECT INSERT(`C1`,3,2,'丂丂' ) FROM `T3`; +INSERT(`C1`,3,2,'丂丂' ) +龔龖丂丂龡 +SELECT INSERT(`C1`,3,3,'丂丂丂' ) FROM `T3`; +INSERT(`C1`,3,3,'丂丂丂' ) +龔龖丂丂丂 +SELECT INSERT(`C1`,4,1,'丂') FROM `T3`; +INSERT(`C1`,4,1,'丂') +龔龖龗丂龡 +SELECT INSERT(`C1`,4,2,'丂丂' ) FROM `T3`; +INSERT(`C1`,4,2,'丂丂' ) +龔龖龗丂丂 +SELECT INSERT(`C1`,5,1,'丂') FROM `T3`; +INSERT(`C1`,5,1,'丂') +龔龖龗龞丂 +SELECT INSERT(`C1`,1,1,'カ') FROM `T4`; +INSERT(`C1`,1,1,'カ') +カイウエオ +SELECT INSERT(`C1`,1,2,'カカ') FROM `T4`; +INSERT(`C1`,1,2,'カカ') +カカウエオ +SELECT INSERT(`C1`,1,3,'カカカ') FROM `T4`; +INSERT(`C1`,1,3,'カカカ') +カカカエオ +SELECT INSERT(`C1`,1,4,'カカカカ') FROM `T4`; +INSERT(`C1`,1,4,'カカカカ') +カカカカオ +SELECT INSERT(`C1`,1,5,'カカカカカ') FROM `T4`; +INSERT(`C1`,1,5,'カカカカカ') +カカカカカ +SELECT INSERT(`C1`,2,1,'カ') FROM `T4`; +INSERT(`C1`,2,1,'カ') +アカウエオ +SELECT INSERT(`C1`,2,2,'カカ') FROM `T4`; +INSERT(`C1`,2,2,'カカ') +アカカエオ +SELECT INSERT(`C1`,2,3,'カカカ') FROM `T4`; +INSERT(`C1`,2,3,'カカカ') +アカカカオ +SELECT INSERT(`C1`,2,4,'カカカカ') FROM `T4`; +INSERT(`C1`,2,4,'カカカカ') +アカカカカ +SELECT INSERT(`C1`,3,1,'カ') FROM `T4`; +INSERT(`C1`,3,1,'カ') +アイカエオ +SELECT INSERT(`C1`,3,2,'カカ') FROM `T4`; +INSERT(`C1`,3,2,'カカ') +アイカカオ +SELECT INSERT(`C1`,3,3,'カカカ') FROM `T4`; +INSERT(`C1`,3,3,'カカカ') +アイカカカ +SELECT INSERT(`C1`,4,1,'カ') FROM `T4`; +INSERT(`C1`,4,1,'カ') +アイウカオ +SELECT INSERT(`C1`,4,2,'カカ') FROM `T4`; +INSERT(`C1`,4,2,'カカ') +アイウカカ +SELECT INSERT(`C1`,5,1,'カ') FROM `T4`; +INSERT(`C1`,5,1,'カ') +アイウエカ +SELECT INSERT(`C1`,1,1,' ') FROM `T4`; +INSERT(`C1`,1,1,' ') + イウエオ +SELECT INSERT(`C1`,1,2,' ') FROM `T4`; +INSERT(`C1`,1,2,' ') + ウエオ +SELECT INSERT(`C1`,1,3,' ') FROM `T4`; +INSERT(`C1`,1,3,' ') + エオ +SELECT INSERT(`C1`,1,4,' ') FROM `T4`; +INSERT(`C1`,1,4,' ') + オ +SELECT INSERT(`C1`,1,5,' ') FROM `T4`; +INSERT(`C1`,1,5,' ') + +SELECT INSERT(`C1`,2,1,' ') FROM `T4`; +INSERT(`C1`,2,1,' ') +ア ウエオ +SELECT INSERT(`C1`,2,2,' ') FROM `T4`; +INSERT(`C1`,2,2,' ') +ア エオ +SELECT INSERT(`C1`,2,3,' ') FROM `T4`; +INSERT(`C1`,2,3,' ') +ア オ +SELECT INSERT(`C1`,2,4,' ') FROM `T4`; +INSERT(`C1`,2,4,' ') +ア +SELECT INSERT(`C1`,3,1,' ') FROM `T4`; +INSERT(`C1`,3,1,' ') +アイ エオ +SELECT INSERT(`C1`,3,2,' ') FROM `T4`; +INSERT(`C1`,3,2,' ') +アイ オ +SELECT INSERT(`C1`,3,3,' ') FROM `T4`; +INSERT(`C1`,3,3,' ') +アイ +SELECT INSERT(`C1`,4,1,' ') FROM `T4`; +INSERT(`C1`,4,1,' ') +アイウ オ +SELECT INSERT(`C1`,4,2,' ') FROM `T4`; +INSERT(`C1`,4,2,' ') +アイウ +SELECT INSERT(`C1`,5,1,' ') FROM `T4`; +INSERT(`C1`,5,1,' ') +アイウエ +SELECT INSERT(`C1`,1,1,'か') FROM `T5`; +INSERT(`C1`,1,1,'か') +かいうえお +SELECT INSERT(`C1`,1,2,'かか') FROM `T5`; +INSERT(`C1`,1,2,'かか') +かかうえお +SELECT INSERT(`C1`,1,3,'かかか') FROM `T5`; +INSERT(`C1`,1,3,'かかか') +かかかえお +SELECT INSERT(`C1`,1,4,'かかかか') FROM `T5`; +INSERT(`C1`,1,4,'かかかか') +かかかかお +SELECT INSERT(`C1`,1,5,'かかかかか') FROM `T5`; +INSERT(`C1`,1,5,'かかかかか') +かかかかか +SELECT INSERT(`C1`,2,1,'か') FROM `T5`; +INSERT(`C1`,2,1,'か') +あかうえお +SELECT INSERT(`C1`,2,2,'かか') FROM `T5`; +INSERT(`C1`,2,2,'かか') +あかかえお +SELECT INSERT(`C1`,2,3,'かかか') FROM `T5`; +INSERT(`C1`,2,3,'かかか') +あかかかお +SELECT INSERT(`C1`,2,4,'かかかか') FROM `T5`; +INSERT(`C1`,2,4,'かかかか') +あかかかか +SELECT INSERT(`C1`,3,1,'か') FROM `T5`; +INSERT(`C1`,3,1,'か') +あいかえお +SELECT INSERT(`C1`,3,2,'かか') FROM `T5`; +INSERT(`C1`,3,2,'かか') +あいかかお +SELECT INSERT(`C1`,3,3,'かかか') FROM `T5`; +INSERT(`C1`,3,3,'かかか') +あいかかか +SELECT INSERT(`C1`,4,1,'か') FROM `T5`; +INSERT(`C1`,4,1,'か') +あいうかお +SELECT INSERT(`C1`,4,2,'かか') FROM `T5`; +INSERT(`C1`,4,2,'かか') +あいうかか +SELECT INSERT(`C1`,5,1,'か') FROM `T5`; +INSERT(`C1`,5,1,'か') +あいうえか +SELECT INSERT(`C1`,1,1,' ') FROM `T5`; +INSERT(`C1`,1,1,' ') + いうえお +SELECT INSERT(`C1`,1,2,'  ') FROM `T5`; +INSERT(`C1`,1,2,'  ') +  うえお +SELECT INSERT(`C1`,1,3,'   ') FROM `T5`; +INSERT(`C1`,1,3,'   ') +   えお +SELECT INSERT(`C1`,1,4,'    ') FROM `T5`; +INSERT(`C1`,1,4,'    ') +    お +SELECT INSERT(`C1`,1,5,'     ') FROM `T5`; +INSERT(`C1`,1,5,'     ') +      +SELECT INSERT(`C1`,2,1,' ') FROM `T5`; +INSERT(`C1`,2,1,' ') +あ うえお +SELECT INSERT(`C1`,2,2,'  ') FROM `T5`; +INSERT(`C1`,2,2,'  ') +あ  えお +SELECT INSERT(`C1`,2,3,'   ') FROM `T5`; +INSERT(`C1`,2,3,'   ') +あ   お +SELECT INSERT(`C1`,2,4,'    ') FROM `T5`; +INSERT(`C1`,2,4,'    ') +あ     +SELECT INSERT(`C1`,3,1,' ') FROM `T5`; +INSERT(`C1`,3,1,' ') +あい えお +SELECT INSERT(`C1`,3,2,'  ') FROM `T5`; +INSERT(`C1`,3,2,'  ') +あい  お +SELECT INSERT(`C1`,3,3,'   ') FROM `T5`; +INSERT(`C1`,3,3,'   ') +あい    +SELECT INSERT(`C1`,4,1,' ') FROM `T5`; +INSERT(`C1`,4,1,' ') +あいう お +SELECT INSERT(`C1`,4,2,'  ') FROM `T5`; +INSERT(`C1`,4,2,'  ') +あいう   +SELECT INSERT(`C1`,5,1,' ') FROM `T5`; +INSERT(`C1`,5,1,' ') +あいうえ  +SELECT INSERT(`C1`,1,1,'丂') FROM `T6`; +INSERT(`C1`,1,1,'丂') +丂龖龗龞龡 +SELECT INSERT(`C1`,1,2,'丂丂' ) FROM `T6`; +INSERT(`C1`,1,2,'丂丂' ) +丂丂龗龞龡 +SELECT INSERT(`C1`,1,3,'丂丂丂' ) FROM `T6`; +INSERT(`C1`,1,3,'丂丂丂' ) +丂丂丂龞龡 +SELECT INSERT(`C1`,1,4,'丂丂丂丂' ) FROM `T6`; +INSERT(`C1`,1,4,'丂丂丂丂' ) +丂丂丂丂龡 +SELECT INSERT(`C1`,1,5,'丂丂丂丂丂' ) FROM `T6`; +INSERT(`C1`,1,5,'丂丂丂丂丂' ) +丂丂丂丂丂 +SELECT INSERT(`C1`,2,1,'丂') FROM `T6`; +INSERT(`C1`,2,1,'丂') +龔丂龗龞龡 +SELECT INSERT(`C1`,2,2,'丂丂') FROM `T6`; +INSERT(`C1`,2,2,'丂丂') +龔丂丂龞龡 +SELECT INSERT(`C1`,2,3,'丂丂丂' ) FROM `T6`; +INSERT(`C1`,2,3,'丂丂丂' ) +龔丂丂丂龡 +SELECT INSERT(`C1`,2,4,'丂丂丂丂' ) FROM `T6`; +INSERT(`C1`,2,4,'丂丂丂丂' ) +龔丂丂丂丂 +SELECT INSERT(`C1`,3,1,'丂') FROM `T6`; +INSERT(`C1`,3,1,'丂') +龔龖丂龞龡 +SELECT INSERT(`C1`,3,2,'丂丂' ) FROM `T6`; +INSERT(`C1`,3,2,'丂丂' ) +龔龖丂丂龡 +SELECT INSERT(`C1`,3,3,'丂丂丂' ) FROM `T6`; +INSERT(`C1`,3,3,'丂丂丂' ) +龔龖丂丂丂 +SELECT INSERT(`C1`,4,1,'丂') FROM `T6`; +INSERT(`C1`,4,1,'丂') +龔龖龗丂龡 +SELECT INSERT(`C1`,4,2,'丂丂' ) FROM `T6`; +INSERT(`C1`,4,2,'丂丂' ) +龔龖龗丂丂 +SELECT INSERT(`C1`,5,1,'丂') FROM `T6`; +INSERT(`C1`,5,1,'丂') +龔龖龗龞丂 +SELECT INSERT(`C1`,1,1,'カ') FROM `T7`; +INSERT(`C1`,1,1,'カ') +カイウエオ +SELECT INSERT(`C1`,1,2,'カカ') FROM `T7`; +INSERT(`C1`,1,2,'カカ') +カカウエオ +SELECT INSERT(`C1`,1,3,'カカカ') FROM `T7`; +INSERT(`C1`,1,3,'カカカ') +カカカエオ +SELECT INSERT(`C1`,1,4,'カカカカ') FROM `T7`; +INSERT(`C1`,1,4,'カカカカ') +カカカカオ +SELECT INSERT(`C1`,1,5,'カカカカカ') FROM `T7`; +INSERT(`C1`,1,5,'カカカカカ') +カカカカカ +SELECT INSERT(`C1`,2,1,'カ') FROM `T7`; +INSERT(`C1`,2,1,'カ') +アカウエオ +SELECT INSERT(`C1`,2,2,'カカ') FROM `T7`; +INSERT(`C1`,2,2,'カカ') +アカカエオ +SELECT INSERT(`C1`,2,3,'カカカ') FROM `T7`; +INSERT(`C1`,2,3,'カカカ') +アカカカオ +SELECT INSERT(`C1`,2,4,'カカカカ') FROM `T7`; +INSERT(`C1`,2,4,'カカカカ') +アカカカカ +SELECT INSERT(`C1`,3,1,'カ') FROM `T7`; +INSERT(`C1`,3,1,'カ') +アイカエオ +SELECT INSERT(`C1`,3,2,'カカ') FROM `T7`; +INSERT(`C1`,3,2,'カカ') +アイカカオ +SELECT INSERT(`C1`,3,3,'カカカ') FROM `T7`; +INSERT(`C1`,3,3,'カカカ') +アイカカカ +SELECT INSERT(`C1`,4,1,'カ') FROM `T7`; +INSERT(`C1`,4,1,'カ') +アイウカオ +SELECT INSERT(`C1`,4,2,'カカ') FROM `T7`; +INSERT(`C1`,4,2,'カカ') +アイウカカ +SELECT INSERT(`C1`,5,1,'カ') FROM `T7`; +INSERT(`C1`,5,1,'カ') +アイウエカ +SELECT INSERT(`C1`,1,1,' ') FROM `T7`; +INSERT(`C1`,1,1,' ') + イウエオ +SELECT INSERT(`C1`,1,2,' ') FROM `T7`; +INSERT(`C1`,1,2,' ') + ウエオ +SELECT INSERT(`C1`,1,3,' ') FROM `T7`; +INSERT(`C1`,1,3,' ') + エオ +SELECT INSERT(`C1`,1,4,' ') FROM `T7`; +INSERT(`C1`,1,4,' ') + オ +SELECT INSERT(`C1`,1,5,' ') FROM `T7`; +INSERT(`C1`,1,5,' ') + +SELECT INSERT(`C1`,2,1,' ') FROM `T7`; +INSERT(`C1`,2,1,' ') +ア ウエオ +SELECT INSERT(`C1`,2,2,' ') FROM `T7`; +INSERT(`C1`,2,2,' ') +ア エオ +SELECT INSERT(`C1`,2,3,' ') FROM `T7`; +INSERT(`C1`,2,3,' ') +ア オ +SELECT INSERT(`C1`,2,4,' ') FROM `T7`; +INSERT(`C1`,2,4,' ') +ア +SELECT INSERT(`C1`,3,1,' ') FROM `T7`; +INSERT(`C1`,3,1,' ') +アイ エオ +SELECT INSERT(`C1`,3,2,' ') FROM `T7`; +INSERT(`C1`,3,2,' ') +アイ オ +SELECT INSERT(`C1`,3,3,' ') FROM `T7`; +INSERT(`C1`,3,3,' ') +アイ +SELECT INSERT(`C1`,4,1,' ') FROM `T7`; +INSERT(`C1`,4,1,' ') +アイウ オ +SELECT INSERT(`C1`,4,2,' ') FROM `T7`; +INSERT(`C1`,4,2,' ') +アイウ +SELECT INSERT(`C1`,5,1,' ') FROM `T7`; +INSERT(`C1`,5,1,' ') +アイウエ +SELECT INSERT(`C1`,1,1,'か') FROM `T8`; +INSERT(`C1`,1,1,'か') +かいうえお +SELECT INSERT(`C1`,1,2,'かか') FROM `T8`; +INSERT(`C1`,1,2,'かか') +かかうえお +SELECT INSERT(`C1`,1,3,'かかか') FROM `T8`; +INSERT(`C1`,1,3,'かかか') +かかかえお +SELECT INSERT(`C1`,1,4,'かかかか') FROM `T8`; +INSERT(`C1`,1,4,'かかかか') +かかかかお +SELECT INSERT(`C1`,1,5,'かかかかか') FROM `T8`; +INSERT(`C1`,1,5,'かかかかか') +かかかかか +SELECT INSERT(`C1`,2,1,'か') FROM `T8`; +INSERT(`C1`,2,1,'か') +あかうえお +SELECT INSERT(`C1`,2,2,'かか') FROM `T8`; +INSERT(`C1`,2,2,'かか') +あかかえお +SELECT INSERT(`C1`,2,3,'かかか') FROM `T8`; +INSERT(`C1`,2,3,'かかか') +あかかかお +SELECT INSERT(`C1`,2,4,'かかかか') FROM `T8`; +INSERT(`C1`,2,4,'かかかか') +あかかかか +SELECT INSERT(`C1`,3,1,'か') FROM `T8`; +INSERT(`C1`,3,1,'か') +あいかえお +SELECT INSERT(`C1`,3,2,'かか') FROM `T8`; +INSERT(`C1`,3,2,'かか') +あいかかお +SELECT INSERT(`C1`,3,3,'かかか') FROM `T8`; +INSERT(`C1`,3,3,'かかか') +あいかかか +SELECT INSERT(`C1`,4,1,'か') FROM `T8`; +INSERT(`C1`,4,1,'か') +あいうかお +SELECT INSERT(`C1`,4,2,'かか') FROM `T8`; +INSERT(`C1`,4,2,'かか') +あいうかか +SELECT INSERT(`C1`,5,1,'か') FROM `T8`; +INSERT(`C1`,5,1,'か') +あいうえか +SELECT INSERT(`C1`,1,1,' ') FROM `T8`; +INSERT(`C1`,1,1,' ') + いうえお +SELECT INSERT(`C1`,1,2,'  ') FROM `T8`; +INSERT(`C1`,1,2,'  ') +  うえお +SELECT INSERT(`C1`,1,3,'   ') FROM `T8`; +INSERT(`C1`,1,3,'   ') +   えお +SELECT INSERT(`C1`,1,4,'    ') FROM `T8`; +INSERT(`C1`,1,4,'    ') +    お +SELECT INSERT(`C1`,1,5,'     ') FROM `T8`; +INSERT(`C1`,1,5,'     ') +      +SELECT INSERT(`C1`,2,1,' ') FROM `T8`; +INSERT(`C1`,2,1,' ') +あ うえお +SELECT INSERT(`C1`,2,2,'  ') FROM `T8`; +INSERT(`C1`,2,2,'  ') +あ  えお +SELECT INSERT(`C1`,2,3,'   ') FROM `T8`; +INSERT(`C1`,2,3,'   ') +あ   お +SELECT INSERT(`C1`,2,4,'    ') FROM `T8`; +INSERT(`C1`,2,4,'    ') +あ     +SELECT INSERT(`C1`,3,1,' ') FROM `T8`; +INSERT(`C1`,3,1,' ') +あい えお +SELECT INSERT(`C1`,3,2,'  ') FROM `T8`; +INSERT(`C1`,3,2,'  ') +あい  お +SELECT INSERT(`C1`,3,3,'   ') FROM `T8`; +INSERT(`C1`,3,3,'   ') +あい    +SELECT INSERT(`C1`,4,1,' ') FROM `T8`; +INSERT(`C1`,4,1,' ') +あいう お +SELECT INSERT(`C1`,4,2,'  ') FROM `T8`; +INSERT(`C1`,4,2,'  ') +あいう   +SELECT INSERT(`C1`,5,1,' ') FROM `T8`; +INSERT(`C1`,5,1,' ') +あいうえ  +SELECT INSERT(`C1`,1,1,'丂') FROM `T9`; +INSERT(`C1`,1,1,'丂') +丂龖龗龞龡 +SELECT INSERT(`C1`,1,2,'丂丂' ) FROM `T9`; +INSERT(`C1`,1,2,'丂丂' ) +丂丂龗龞龡 +SELECT INSERT(`C1`,1,3,'丂丂丂' ) FROM `T9`; +INSERT(`C1`,1,3,'丂丂丂' ) +丂丂丂龞龡 +SELECT INSERT(`C1`,1,4,'丂丂丂丂' ) FROM `T9`; +INSERT(`C1`,1,4,'丂丂丂丂' ) +丂丂丂丂龡 +SELECT INSERT(`C1`,1,5,'丂丂丂丂丂' ) FROM `T9`; +INSERT(`C1`,1,5,'丂丂丂丂丂' ) +丂丂丂丂丂 +SELECT INSERT(`C1`,2,1,'丂') FROM `T9`; +INSERT(`C1`,2,1,'丂') +龔丂龗龞龡 +SELECT INSERT(`C1`,2,2,'丂丂' ) FROM `T9`; +INSERT(`C1`,2,2,'丂丂' ) +龔丂丂龞龡 +SELECT INSERT(`C1`,2,3,'丂丂丂' ) FROM `T9`; +INSERT(`C1`,2,3,'丂丂丂' ) +龔丂丂丂龡 +SELECT INSERT(`C1`,2,4,'丂丂丂丂' ) FROM `T9`; +INSERT(`C1`,2,4,'丂丂丂丂' ) +龔丂丂丂丂 +SELECT INSERT(`C1`,3,1,'丂') FROM `T9`; +INSERT(`C1`,3,1,'丂') +龔龖丂龞龡 +SELECT INSERT(`C1`,3,2,'丂丂' ) FROM `T9`; +INSERT(`C1`,3,2,'丂丂' ) +龔龖丂丂龡 +SELECT INSERT(`C1`,3,3,'丂丂丂' ) FROM `T9`; +INSERT(`C1`,3,3,'丂丂丂' ) +龔龖丂丂丂 +SELECT INSERT(`C1`,4,1,'丂') FROM `T9`; +INSERT(`C1`,4,1,'丂') +龔龖龗丂龡 +SELECT INSERT(`C1`,4,2,'丂丂' ) FROM `T9`; +INSERT(`C1`,4,2,'丂丂' ) +龔龖龗丂丂 +SELECT INSERT(`C1`,5,1,'丂') FROM `T9`; +INSERT(`C1`,5,1,'丂') +龔龖龗龞丂 +SELECT INSERT(`C1`,1,1,'カ') FROM `T10`; +INSERT(`C1`,1,1,'カ') +カイウエオ +SELECT INSERT(`C1`,1,2,'カカ') FROM `T10`; +INSERT(`C1`,1,2,'カカ') +カカウエオ +SELECT INSERT(`C1`,1,3,'カカカ') FROM `T10`; +INSERT(`C1`,1,3,'カカカ') +カカカエオ +SELECT INSERT(`C1`,1,4,'カカカカ') FROM `T10`; +INSERT(`C1`,1,4,'カカカカ') +カカカカオ +SELECT INSERT(`C1`,1,5,'カカカカカ') FROM `T10`; +INSERT(`C1`,1,5,'カカカカカ') +カカカカカ +SELECT INSERT(`C1`,2,1,'カ') FROM `T10`; +INSERT(`C1`,2,1,'カ') +アカウエオ +SELECT INSERT(`C1`,2,2,'カカ') FROM `T10`; +INSERT(`C1`,2,2,'カカ') +アカカエオ +SELECT INSERT(`C1`,2,3,'カカカ') FROM `T10`; +INSERT(`C1`,2,3,'カカカ') +アカカカオ +SELECT INSERT(`C1`,2,4,'カカカカ') FROM `T10`; +INSERT(`C1`,2,4,'カカカカ') +アカカカカ +SELECT INSERT(`C1`,3,1,'カ') FROM `T10`; +INSERT(`C1`,3,1,'カ') +アイカエオ +SELECT INSERT(`C1`,3,2,'カカ') FROM `T10`; +INSERT(`C1`,3,2,'カカ') +アイカカオ +SELECT INSERT(`C1`,3,3,'カカカ') FROM `T10`; +INSERT(`C1`,3,3,'カカカ') +アイカカカ +SELECT INSERT(`C1`,4,1,'カ') FROM `T10`; +INSERT(`C1`,4,1,'カ') +アイウカオ +SELECT INSERT(`C1`,4,2,'カカ') FROM `T10`; +INSERT(`C1`,4,2,'カカ') +アイウカカ +SELECT INSERT(`C1`,5,1,'カ') FROM `T10`; +INSERT(`C1`,5,1,'カ') +アイウエカ +SELECT INSERT(`C1`,1,1,'か') FROM `T11`; +INSERT(`C1`,1,1,'か') +かいうえお +SELECT INSERT(`C1`,1,2,'かか') FROM `T11`; +INSERT(`C1`,1,2,'かか') +かかうえお +SELECT INSERT(`C1`,1,3,'かかか') FROM `T11`; +INSERT(`C1`,1,3,'かかか') +かかかえお +SELECT INSERT(`C1`,1,4,'かかかか') FROM `T11`; +INSERT(`C1`,1,4,'かかかか') +かかかかお +SELECT INSERT(`C1`,1,5,'かかかかか') FROM `T11`; +INSERT(`C1`,1,5,'かかかかか') +かかかかか +SELECT INSERT(`C1`,2,1,'か') FROM `T11`; +INSERT(`C1`,2,1,'か') +あかうえお +SELECT INSERT(`C1`,2,2,'かか') FROM `T11`; +INSERT(`C1`,2,2,'かか') +あかかえお +SELECT INSERT(`C1`,2,3,'かかか') FROM `T11`; +INSERT(`C1`,2,3,'かかか') +あかかかお +SELECT INSERT(`C1`,2,4,'かかかか') FROM `T11`; +INSERT(`C1`,2,4,'かかかか') +あかかかか +SELECT INSERT(`C1`,3,1,'か') FROM `T11`; +INSERT(`C1`,3,1,'か') +あいかえお +SELECT INSERT(`C1`,3,2,'かか') FROM `T11`; +INSERT(`C1`,3,2,'かか') +あいかかお +SELECT INSERT(`C1`,3,3,'かかか') FROM `T11`; +INSERT(`C1`,3,3,'かかか') +あいかかか +SELECT INSERT(`C1`,4,1,'か') FROM `T11`; +INSERT(`C1`,4,1,'か') +あいうかお +SELECT INSERT(`C1`,4,2,'かか') FROM `T11`; +INSERT(`C1`,4,2,'かか') +あいうかか +SELECT INSERT(`C1`,5,1,'か') FROM `T11`; +INSERT(`C1`,5,1,'か') +あいうえか +SELECT INSERT(`C1`,1,1,' ') FROM `T11`; +INSERT(`C1`,1,1,' ') + いうえお +SELECT INSERT(`C1`,1,2,'  ') FROM `T11`; +INSERT(`C1`,1,2,'  ') +  うえお +SELECT INSERT(`C1`,1,3,'   ') FROM `T11`; +INSERT(`C1`,1,3,'   ') +   えお +SELECT INSERT(`C1`,1,4,'    ') FROM `T11`; +INSERT(`C1`,1,4,'    ') +    お +SELECT INSERT(`C1`,1,5,'     ') FROM `T11`; +INSERT(`C1`,1,5,'     ') +      +SELECT INSERT(`C1`,2,1,' ') FROM `T11`; +INSERT(`C1`,2,1,' ') +あ うえお +SELECT INSERT(`C1`,2,2,'  ') FROM `T11`; +INSERT(`C1`,2,2,'  ') +あ  えお +SELECT INSERT(`C1`,2,3,'   ') FROM `T11`; +INSERT(`C1`,2,3,'   ') +あ   お +SELECT INSERT(`C1`,2,4,'    ') FROM `T11`; +INSERT(`C1`,2,4,'    ') +あ     +SELECT INSERT(`C1`,3,1,' ') FROM `T11`; +INSERT(`C1`,3,1,' ') +あい えお +SELECT INSERT(`C1`,3,2,'  ') FROM `T11`; +INSERT(`C1`,3,2,'  ') +あい  お +SELECT INSERT(`C1`,3,3,'   ') FROM `T11`; +INSERT(`C1`,3,3,'   ') +あい    +SELECT INSERT(`C1`,4,1,' ') FROM `T11`; +INSERT(`C1`,4,1,' ') +あいう お +SELECT INSERT(`C1`,4,2,'  ') FROM `T11`; +INSERT(`C1`,4,2,'  ') +あいう   +SELECT INSERT(`C1`,5,1,' ') FROM `T11`; +INSERT(`C1`,5,1,' ') +あいうえ  +SELECT INSERT(`C1`,1,1,'丂') FROM `T12`; +INSERT(`C1`,1,1,'丂') +丂龖龗龞龡 +SELECT INSERT(`C1`,1,2,'丂丂') FROM `T12`; +INSERT(`C1`,1,2,'丂丂') +丂丂龗龞龡 +SELECT INSERT(`C1`,1,3,'丂丂丂') FROM `T12`; +INSERT(`C1`,1,3,'丂丂丂') +丂丂丂龞龡 +SELECT INSERT(`C1`,1,4,'丂丂丂丂') FROM `T12`; +INSERT(`C1`,1,4,'丂丂丂丂') +丂丂丂丂龡 +SELECT INSERT(`C1`,1,5,'丂丂丂丂丂') FROM `T12`; +INSERT(`C1`,1,5,'丂丂丂丂丂') +丂丂丂丂丂 +SELECT INSERT(`C1`,2,1,'丂') FROM `T12`; +INSERT(`C1`,2,1,'丂') +龔丂龗龞龡 +SELECT INSERT(`C1`,2,2,'丂丂') FROM `T12`; +INSERT(`C1`,2,2,'丂丂') +龔丂丂龞龡 +SELECT INSERT(`C1`,2,3,'丂丂丂') FROM `T12`; +INSERT(`C1`,2,3,'丂丂丂') +龔丂丂丂龡 +SELECT INSERT(`C1`,2,4,'丂丂丂丂') FROM `T12`; +INSERT(`C1`,2,4,'丂丂丂丂') +龔丂丂丂丂 +SELECT INSERT(`C1`,3,1,'丂') FROM `T12`; +INSERT(`C1`,3,1,'丂') +龔龖丂龞龡 +SELECT INSERT(`C1`,3,2,'丂丂') FROM `T12`; +INSERT(`C1`,3,2,'丂丂') +龔龖丂丂龡 +SELECT INSERT(`C1`,3,3,'丂丂丂') FROM `T12`; +INSERT(`C1`,3,3,'丂丂丂') +龔龖丂丂丂 +SELECT INSERT(`C1`,4,1,'丂') FROM `T12`; +INSERT(`C1`,4,1,'丂') +龔龖龗丂龡 +SELECT INSERT(`C1`,4,2,'丂丂') FROM `T12`; +INSERT(`C1`,4,2,'丂丂') +龔龖龗丂丂 +SELECT INSERT(`C1`,5,1,'丂') FROM `T12`; +INSERT(`C1`,5,1,'丂') +龔龖龗龞丂 +DROP TABLE `T1`; +DROP TABLE `T2`; +DROP TABLE `T3`; +DROP TABLE `T4`; +DROP TABLE `T5`; +DROP TABLE `T6`; +DROP TABLE `T7`; +DROP TABLE `T8`; +DROP TABLE `T9`; +DROP TABLE `T10`; +DROP TABLE `T11`; +DROP TABLE `T12`; diff --git a/mysql-test/suite/jp/r/jp_instr_sjis.result b/mysql-test/suite/jp/r/jp_instr_sjis.result new file mode 100755 index 00000000000..9a6dea5a426 --- /dev/null +++ b/mysql-test/suite/jp/r/jp_instr_sjis.result @@ -0,0 +1,264 @@ +drop table if exists `sP`; +drop table if exists `sQ`; +drop table if exists `sR`; +drop table if exists `sS`; +drop table if exists `sT`; +drop table if exists `sU`; +drop table if exists `sV`; +drop table if exists `sW`; +drop table if exists `sX`; +drop table if exists `sPO`; +SET NAMES sjis; +SET character_set_database = sjis; +CREATE TABLE `sP` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sQ` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sR` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sS` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sT` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sU` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sV` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sW` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sX` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sPO` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +CREATE TABLE `sPP` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +CREATE TABLE `sPQ` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +INSERT INTO `sP` VALUES (''); +INSERT INTO `sQ` VALUES (''); +INSERT INTO `sR` VALUES ('\\\\\'); +INSERT INTO `sS` VALUES (''); +INSERT INTO `sT` VALUES (''); +INSERT INTO `sU` VALUES ('\\\\\'); +INSERT INTO `sV` VALUES (''); +INSERT INTO `sW` VALUES (''); +INSERT INTO `sX` VALUES ('\\\\\'); +INSERT INTO `sPO` VALUES (''); +INSERT INTO `sPP` VALUES (''); +INSERT INTO `sPQ` VALUES ('\\\\\'); +SELECT INSTR(`bP`,'') from `sP`; +INSTR(`bP`,'') +1 +SELECT INSTR(`bP`,'') from `sP`; +INSTR(`bP`,'') +2 +SELECT INSTR(`bP`,'') from `sP`; +INSTR(`bP`,'') +3 +SELECT INSTR(`bP`,'') from `sP`; +INSTR(`bP`,'') +4 +SELECT INSTR(`bP`,'') from `sP`; +INSTR(`bP`,'') +5 +SELECT INSTR(`bP`,'') from `sP`; +INSTR(`bP`,'') +0 +SELECT INSTR(`bP`,'') from `sQ`; +INSTR(`bP`,'') +1 +SELECT INSTR(`bP`,'') from `sQ`; +INSTR(`bP`,'') +2 +SELECT INSTR(`bP`,'') from `sQ`; +INSTR(`bP`,'') +3 +SELECT INSTR(`bP`,'') from `sQ`; +INSTR(`bP`,'') +4 +SELECT INSTR(`bP`,'') from `sQ`; +INSTR(`bP`,'') +5 +SELECT INSTR(`bP`,'') from `sQ`; +INSTR(`bP`,'') +0 +SELECT INSTR(`bP`,'\') from `sR`; +INSTR(`bP`,'\') +1 +SELECT INSTR(`bP`,'\') from `sR`; +INSTR(`bP`,'\') +2 +SELECT INSTR(`bP`,'\') from `sR`; +INSTR(`bP`,'\') +3 +SELECT INSTR(`bP`,'\') from `sR`; +INSTR(`bP`,'\') +4 +SELECT INSTR(`bP`,'\') from `sR`; +INSTR(`bP`,'\') +5 +SELECT INSTR(`bP`,'\') from `sR`; +INSTR(`bP`,'\') +0 +SELECT INSTR(`bP`,'') from `sS`; +INSTR(`bP`,'') +1 +SELECT INSTR(`bP`,'') from `sS`; +INSTR(`bP`,'') +2 +SELECT INSTR(`bP`,'') from `sS`; +INSTR(`bP`,'') +3 +SELECT INSTR(`bP`,'') from `sS`; +INSTR(`bP`,'') +4 +SELECT INSTR(`bP`,'') from `sS`; +INSTR(`bP`,'') +5 +SELECT INSTR(`bP`,'') from `sS`; +INSTR(`bP`,'') +0 +SELECT INSTR(`bP`,'') from `sT`; +INSTR(`bP`,'') +1 +SELECT INSTR(`bP`,'') from `sT`; +INSTR(`bP`,'') +2 +SELECT INSTR(`bP`,'') from `sT`; +INSTR(`bP`,'') +3 +SELECT INSTR(`bP`,'') from `sT`; +INSTR(`bP`,'') +4 +SELECT INSTR(`bP`,'') from `sT`; +INSTR(`bP`,'') +5 +SELECT INSTR(`bP`,'') from `sT`; +INSTR(`bP`,'') +0 +SELECT INSTR(`bP`,'\') from `sU`; +INSTR(`bP`,'\') +1 +SELECT INSTR(`bP`,'\') from `sU`; +INSTR(`bP`,'\') +2 +SELECT INSTR(`bP`,'\') from `sU`; +INSTR(`bP`,'\') +3 +SELECT INSTR(`bP`,'\') from `sU`; +INSTR(`bP`,'\') +4 +SELECT INSTR(`bP`,'\') from `sU`; +INSTR(`bP`,'\') +5 +SELECT INSTR(`bP`,'\') from `sU`; +INSTR(`bP`,'\') +0 +SELECT INSTR(`bP`,'') from `sV`; +INSTR(`bP`,'') +1 +SELECT INSTR(`bP`,'') from `sV`; +INSTR(`bP`,'') +2 +SELECT INSTR(`bP`,'') from `sV`; +INSTR(`bP`,'') +3 +SELECT INSTR(`bP`,'') from `sV`; +INSTR(`bP`,'') +4 +SELECT INSTR(`bP`,'') from `sV`; +INSTR(`bP`,'') +5 +SELECT INSTR(`bP`,'') from `sV`; +INSTR(`bP`,'') +0 +SELECT INSTR(`bP`,'') from `sW`; +INSTR(`bP`,'') +1 +SELECT INSTR(`bP`,'') from `sW`; +INSTR(`bP`,'') +2 +SELECT INSTR(`bP`,'') from `sW`; +INSTR(`bP`,'') +3 +SELECT INSTR(`bP`,'') from `sW`; +INSTR(`bP`,'') +4 +SELECT INSTR(`bP`,'') from `sW`; +INSTR(`bP`,'') +5 +SELECT INSTR(`bP`,'') from `sW`; +INSTR(`bP`,'') +0 +SELECT INSTR(`bP`,'\') from `sX`; +INSTR(`bP`,'\') +1 +SELECT INSTR(`bP`,'\') from `sX`; +INSTR(`bP`,'\') +2 +SELECT INSTR(`bP`,'\') from `sX`; +INSTR(`bP`,'\') +3 +SELECT INSTR(`bP`,'\') from `sX`; +INSTR(`bP`,'\') +4 +SELECT INSTR(`bP`,'\') from `sX`; +INSTR(`bP`,'\') +5 +SELECT INSTR(`bP`,'\') from `sX`; +INSTR(`bP`,'\') +0 +SELECT INSTR(`bP`,'') from `sPO`; +INSTR(`bP`,'') +1 +SELECT INSTR(`bP`,'') from `sPO`; +INSTR(`bP`,'') +2 +SELECT INSTR(`bP`,'') from `sPO`; +INSTR(`bP`,'') +3 +SELECT INSTR(`bP`,'') from `sPO`; +INSTR(`bP`,'') +4 +SELECT INSTR(`bP`,'') from `sPO`; +INSTR(`bP`,'') +5 +SELECT INSTR(`bP`,'') from `sPO`; +INSTR(`bP`,'') +0 +SELECT INSTR(`bP`,'') from `sPP`; +INSTR(`bP`,'') +1 +SELECT INSTR(`bP`,'') from `sPP`; +INSTR(`bP`,'') +2 +SELECT INSTR(`bP`,'') from `sPP`; +INSTR(`bP`,'') +3 +SELECT INSTR(`bP`,'') from `sPP`; +INSTR(`bP`,'') +4 +SELECT INSTR(`bP`,'') from `sPP`; +INSTR(`bP`,'') +5 +SELECT INSTR(`bP`,'') from `sPP`; +INSTR(`bP`,'') +0 +SELECT INSTR(`bP`,'\') from `sPQ`; +INSTR(`bP`,'\') +1 +SELECT INSTR(`bP`,'\') from `sPQ`; +INSTR(`bP`,'\') +2 +SELECT INSTR(`bP`,'\') from `sPQ`; +INSTR(`bP`,'\') +3 +SELECT INSTR(`bP`,'\') from `sPQ`; +INSTR(`bP`,'\') +4 +SELECT INSTR(`bP`,'\') from `sPQ`; +INSTR(`bP`,'\') +5 +SELECT INSTR(`bP`,'\') from `sPQ`; +INSTR(`bP`,'\') +0 +DROP TABLE `sP`; +DROP TABLE `sQ`; +DROP TABLE `sR`; +DROP TABLE `sS`; +DROP TABLE `sT`; +DROP TABLE `sU`; +DROP TABLE `sV`; +DROP TABLE `sW`; +DROP TABLE `sX`; +DROP TABLE `sPO`; +DROP TABLE `sPP`; +DROP TABLE `sPQ`; diff --git a/mysql-test/suite/jp/r/jp_instr_ucs2.result b/mysql-test/suite/jp/r/jp_instr_ucs2.result new file mode 100755 index 00000000000..352525eee0b --- /dev/null +++ b/mysql-test/suite/jp/r/jp_instr_ucs2.result @@ -0,0 +1,265 @@ +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +SET NAMES ujis; +SET character_set_database = ucs2; +SET collation_connection = ucs2_general_ci; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +1 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +2 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +3 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +4 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +5 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +0 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +1 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +2 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +3 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +4 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +5 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +0 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +1 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +2 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +3 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +4 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +5 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +0 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +1 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +2 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +3 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +4 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +5 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +0 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +1 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +2 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +3 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +4 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +5 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +0 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +1 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +2 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +3 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +4 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +5 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +0 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +1 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +2 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +3 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +4 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +5 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +0 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +1 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +2 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +3 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +4 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +5 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +0 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +1 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +2 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +3 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +4 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +5 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +0 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +1 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +2 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +3 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +4 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +5 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +0 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +1 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +2 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +3 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +4 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +5 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +0 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +1 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +2 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +3 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +4 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +5 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +0 +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; diff --git a/mysql-test/suite/jp/r/jp_instr_ujis.result b/mysql-test/suite/jp/r/jp_instr_ujis.result new file mode 100755 index 00000000000..0cf9895a740 --- /dev/null +++ b/mysql-test/suite/jp/r/jp_instr_ujis.result @@ -0,0 +1,264 @@ +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +SET NAMES ujis; +SET character_set_database = ujis; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +1 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +2 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +3 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +4 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +5 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +0 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +1 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +2 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +3 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +4 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +5 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +0 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +1 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +2 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +3 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +4 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +5 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +0 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +1 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +2 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +3 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +4 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +5 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +0 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +1 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +2 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +3 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +4 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +5 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +0 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +1 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +2 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +3 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +4 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +5 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +0 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +1 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +2 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +3 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +4 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +5 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +0 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +1 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +2 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +3 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +4 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +5 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +0 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +1 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +2 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +3 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +4 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +5 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +0 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +1 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +2 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +3 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +4 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +5 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +0 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +1 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +2 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +3 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +4 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +5 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +0 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +1 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +2 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +3 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +4 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +5 +SELECT INSTR(`ã`,'') from `ԣ`; +INSTR(`ã`,'') +0 +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; diff --git a/mysql-test/suite/jp/r/jp_instr_utf8.result b/mysql-test/suite/jp/r/jp_instr_utf8.result new file mode 100755 index 00000000000..0e55227e4b7 --- /dev/null +++ b/mysql-test/suite/jp/r/jp_instr_utf8.result @@ -0,0 +1,264 @@ +drop table if exists `T1`; +drop table if exists `T2`; +drop table if exists `T3`; +drop table if exists `T4`; +drop table if exists `T5`; +drop table if exists `T6`; +drop table if exists `T7`; +drop table if exists `T8`; +drop table if exists `T9`; +drop table if exists `T10`; +SET NAMES utf8; +SET character_set_database = utf8; +CREATE TABLE `T1` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T2` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T3` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T4` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T5` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T6` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T7` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T8` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T9` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T10` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +CREATE TABLE `T11` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +CREATE TABLE `T12` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +INSERT INTO `T1` VALUES ('アイウエオ'); +INSERT INTO `T2` VALUES ('あいうえお'); +INSERT INTO `T3` VALUES ('龔龖龗龞龡'); +INSERT INTO `T4` VALUES ('アイウエオ'); +INSERT INTO `T5` VALUES ('あいうえお'); +INSERT INTO `T6` VALUES ('龔龖龗龞龡'); +INSERT INTO `T7` VALUES ('アイウエオ'); +INSERT INTO `T8` VALUES ('あいうえお'); +INSERT INTO `T9` VALUES ('龔龖龗龞龡'); +INSERT INTO `T10` VALUES ('アイウエオ'); +INSERT INTO `T11` VALUES ('あいうえお'); +INSERT INTO `T12` VALUES ('龔龖龗龞龡'); +SELECT INSTR(`C1`,'ア') from `T1`; +INSTR(`C1`,'ア') +1 +SELECT INSTR(`C1`,'イ') from `T1`; +INSTR(`C1`,'イ') +2 +SELECT INSTR(`C1`,'ウ') from `T1`; +INSTR(`C1`,'ウ') +3 +SELECT INSTR(`C1`,'エ') from `T1`; +INSTR(`C1`,'エ') +4 +SELECT INSTR(`C1`,'オ') from `T1`; +INSTR(`C1`,'オ') +5 +SELECT INSTR(`C1`,'ン') from `T1`; +INSTR(`C1`,'ン') +0 +SELECT INSTR(`C1`,'あ') from `T2`; +INSTR(`C1`,'あ') +1 +SELECT INSTR(`C1`,'い') from `T2`; +INSTR(`C1`,'い') +2 +SELECT INSTR(`C1`,'う') from `T2`; +INSTR(`C1`,'う') +3 +SELECT INSTR(`C1`,'え') from `T2`; +INSTR(`C1`,'え') +4 +SELECT INSTR(`C1`,'お') from `T2`; +INSTR(`C1`,'お') +5 +SELECT INSTR(`C1`,'ん') from `T2`; +INSTR(`C1`,'ん') +0 +SELECT INSTR(`C1`,'龔') from `T3`; +INSTR(`C1`,'龔') +1 +SELECT INSTR(`C1`,'龖') from `T3`; +INSTR(`C1`,'龖') +2 +SELECT INSTR(`C1`,'龗') from `T3`; +INSTR(`C1`,'龗') +3 +SELECT INSTR(`C1`,'龞') from `T3`; +INSTR(`C1`,'龞') +4 +SELECT INSTR(`C1`,'龡') from `T3`; +INSTR(`C1`,'龡') +5 +SELECT INSTR(`C1`,'丂') from `T3`; +INSTR(`C1`,'丂') +0 +SELECT INSTR(`C1`,'ア') from `T4`; +INSTR(`C1`,'ア') +1 +SELECT INSTR(`C1`,'イ') from `T4`; +INSTR(`C1`,'イ') +2 +SELECT INSTR(`C1`,'ウ') from `T4`; +INSTR(`C1`,'ウ') +3 +SELECT INSTR(`C1`,'エ') from `T4`; +INSTR(`C1`,'エ') +4 +SELECT INSTR(`C1`,'オ') from `T4`; +INSTR(`C1`,'オ') +5 +SELECT INSTR(`C1`,'ン') from `T4`; +INSTR(`C1`,'ン') +0 +SELECT INSTR(`C1`,'あ') from `T5`; +INSTR(`C1`,'あ') +1 +SELECT INSTR(`C1`,'い') from `T5`; +INSTR(`C1`,'い') +2 +SELECT INSTR(`C1`,'う') from `T5`; +INSTR(`C1`,'う') +3 +SELECT INSTR(`C1`,'え') from `T5`; +INSTR(`C1`,'え') +4 +SELECT INSTR(`C1`,'お') from `T5`; +INSTR(`C1`,'お') +5 +SELECT INSTR(`C1`,'ん') from `T5`; +INSTR(`C1`,'ん') +0 +SELECT INSTR(`C1`,'龔') from `T6`; +INSTR(`C1`,'龔') +1 +SELECT INSTR(`C1`,'龖') from `T6`; +INSTR(`C1`,'龖') +2 +SELECT INSTR(`C1`,'龗') from `T6`; +INSTR(`C1`,'龗') +3 +SELECT INSTR(`C1`,'龞') from `T6`; +INSTR(`C1`,'龞') +4 +SELECT INSTR(`C1`,'龡') from `T6`; +INSTR(`C1`,'龡') +5 +SELECT INSTR(`C1`,'丂') from `T6`; +INSTR(`C1`,'丂') +0 +SELECT INSTR(`C1`,'ア') from `T7`; +INSTR(`C1`,'ア') +1 +SELECT INSTR(`C1`,'イ') from `T7`; +INSTR(`C1`,'イ') +2 +SELECT INSTR(`C1`,'ウ') from `T7`; +INSTR(`C1`,'ウ') +3 +SELECT INSTR(`C1`,'エ') from `T7`; +INSTR(`C1`,'エ') +4 +SELECT INSTR(`C1`,'オ') from `T7`; +INSTR(`C1`,'オ') +5 +SELECT INSTR(`C1`,'ン') from `T7`; +INSTR(`C1`,'ン') +0 +SELECT INSTR(`C1`,'あ') from `T8`; +INSTR(`C1`,'あ') +1 +SELECT INSTR(`C1`,'い') from `T8`; +INSTR(`C1`,'い') +2 +SELECT INSTR(`C1`,'う') from `T8`; +INSTR(`C1`,'う') +3 +SELECT INSTR(`C1`,'え') from `T8`; +INSTR(`C1`,'え') +4 +SELECT INSTR(`C1`,'お') from `T8`; +INSTR(`C1`,'お') +5 +SELECT INSTR(`C1`,'ん') from `T8`; +INSTR(`C1`,'ん') +0 +SELECT INSTR(`C1`,'龔') from `T9`; +INSTR(`C1`,'龔') +1 +SELECT INSTR(`C1`,'龖') from `T9`; +INSTR(`C1`,'龖') +2 +SELECT INSTR(`C1`,'龗') from `T9`; +INSTR(`C1`,'龗') +3 +SELECT INSTR(`C1`,'龞') from `T9`; +INSTR(`C1`,'龞') +4 +SELECT INSTR(`C1`,'龡') from `T9`; +INSTR(`C1`,'龡') +5 +SELECT INSTR(`C1`,'丂') from `T9`; +INSTR(`C1`,'丂') +0 +SELECT INSTR(`C1`,'ア') from `T10`; +INSTR(`C1`,'ア') +1 +SELECT INSTR(`C1`,'イ') from `T10`; +INSTR(`C1`,'イ') +2 +SELECT INSTR(`C1`,'ウ') from `T10`; +INSTR(`C1`,'ウ') +3 +SELECT INSTR(`C1`,'エ') from `T10`; +INSTR(`C1`,'エ') +4 +SELECT INSTR(`C1`,'オ') from `T10`; +INSTR(`C1`,'オ') +5 +SELECT INSTR(`C1`,'ン') from `T10`; +INSTR(`C1`,'ン') +0 +SELECT INSTR(`C1`,'あ') from `T11`; +INSTR(`C1`,'あ') +1 +SELECT INSTR(`C1`,'い') from `T11`; +INSTR(`C1`,'い') +2 +SELECT INSTR(`C1`,'う') from `T11`; +INSTR(`C1`,'う') +3 +SELECT INSTR(`C1`,'え') from `T11`; +INSTR(`C1`,'え') +4 +SELECT INSTR(`C1`,'お') from `T11`; +INSTR(`C1`,'お') +5 +SELECT INSTR(`C1`,'ん') from `T11`; +INSTR(`C1`,'ん') +0 +SELECT INSTR(`C1`,'龔') from `T12`; +INSTR(`C1`,'龔') +1 +SELECT INSTR(`C1`,'龖') from `T12`; +INSTR(`C1`,'龖') +2 +SELECT INSTR(`C1`,'龗') from `T12`; +INSTR(`C1`,'龗') +3 +SELECT INSTR(`C1`,'龞') from `T12`; +INSTR(`C1`,'龞') +4 +SELECT INSTR(`C1`,'龡') from `T12`; +INSTR(`C1`,'龡') +5 +SELECT INSTR(`C1`,'丂') from `T12`; +INSTR(`C1`,'丂') +0 +DROP TABLE `T1`; +DROP TABLE `T2`; +DROP TABLE `T3`; +DROP TABLE `T4`; +DROP TABLE `T5`; +DROP TABLE `T6`; +DROP TABLE `T7`; +DROP TABLE `T8`; +DROP TABLE `T9`; +DROP TABLE `T10`; +DROP TABLE `T11`; +DROP TABLE `T12`; diff --git a/mysql-test/suite/jp/r/jp_join_sjis.result b/mysql-test/suite/jp/r/jp_join_sjis.result new file mode 100755 index 00000000000..a5ccc58ae4c --- /dev/null +++ b/mysql-test/suite/jp/r/jp_join_sjis.result @@ -0,0 +1,578 @@ +drop table if exists `sP`; +drop table if exists `sQ`; +drop table if exists `sR`; +drop table if exists `sS`; +drop table if exists `sT`; +drop table if exists `sU`; +drop table if exists `sV`; +drop table if exists `sW`; +drop table if exists `sX`; +drop table if exists `sPO`; +drop table if exists `sPP`; +drop table if exists `sPQ`; +SET NAMES sjis; +SET character_set_database = sjis; +CREATE TABLE `sPa` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sPb` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sQa` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sQb` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sRa` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sRb` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sSa` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sSb` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sTa` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sTb` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sUa` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sUb` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sVa` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sVb` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sWa` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sWb` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sXa` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sXb` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sPOa` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sPOb` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sPPa` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sPPb` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sPQa` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sPQb` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = heap; +INSERT INTO `sPa` VALUES (''),(''),(''); +INSERT INTO `sPb` VALUES (''); +INSERT INTO `sQa` VALUES (''),(''),(''); +INSERT INTO `sQb` VALUES (''); +INSERT INTO `sRa` VALUES ('\'),('\'),('\'); +INSERT INTO `sRb` VALUES ('\'); +INSERT INTO `sSa` VALUES (''),(''),(''); +INSERT INTO `sSb` VALUES (''); +INSERT INTO `sTa` VALUES (''),(''),(''); +INSERT INTO `sTb` VALUES (''); +INSERT INTO `sUa` VALUES ('\'),('\'),('\'); +INSERT INTO `sUb` VALUES ('\'); +INSERT INTO `sVa` VALUES (''),(''),(''); +INSERT INTO `sVb` VALUES (''); +INSERT INTO `sWa` VALUES (''),(''),(''); +INSERT INTO `sWb` VALUES (''); +INSERT INTO `sXa` VALUES ('\'),('\'),('\'); +INSERT INTO `sXb` VALUES ('\'); +INSERT INTO `sPOa` VALUES (''),(''),(''); +INSERT INTO `sPOb` VALUES (''); +INSERT INTO `sPPa` VALUES (''),(''),(''); +INSERT INTO `sPPb` VALUES (''); +INSERT INTO `sPQa` VALUES ('\'),('\'),('\'); +INSERT INTO `sPQb` VALUES ('\'); +SELECT * FROM `sPa` JOIN `sPb`; +bP bP + + + +SELECT * FROM `sPa` INNER JOIN `sPb`; +bP bP + + + +SELECT * FROM `sPa` JOIN `sPb` USING (`bP`); +bP bP + +SELECT * FROM `sPa` INNER JOIN `sPb` USING (`bP`); +bP bP + +SELECT * FROM `sPa` CROSS JOIN `sPb`; +bP bP + + + +SELECT * FROM `sPa` LEFT JOIN `sPb` USING (`bP`); +bP bP + + NULL + NULL +SELECT * FROM `sPa` LEFT JOIN `sPb` ON (`sPa`.`bP` = `sPb`.`bP`); +bP bP + + NULL + NULL +SELECT * FROM `sPb` RIGHT JOIN `sPa` USING (`bP`); +bP bP + +NULL +NULL +SELECT * FROM `sPb` RIGHT JOIN `sPa` ON (`sPa`.`bP` = `sPb`.`bP`); +bP bP + +NULL +NULL +SELECT * FROM `sQa` JOIN `sQb`; +bP bP + + + +SELECT * FROM `sQa` INNER JOIN `sQb`; +bP bP + + + +SELECT * FROM `sQa` JOIN `sQb` USING (`bP`); +bP bP + +SELECT * FROM `sQa` INNER JOIN `sQb` USING (`bP`); +bP bP + +SELECT * FROM `sQa` CROSS JOIN `sQb`; +bP bP + + + +SELECT * FROM `sQa` LEFT JOIN `sQb` USING (`bP`); +bP bP + + NULL + NULL +SELECT * FROM `sQa` LEFT JOIN `sQb` ON (`sQa`.`bP` = `sQb`.`bP`); +bP bP + + NULL + NULL +SELECT * FROM `sQb` RIGHT JOIN `sQa` USING (`bP`); +bP bP + +NULL +NULL +SELECT * FROM `sQb` RIGHT JOIN `sQa` ON (`sQa`.`bP` = `sQb`.`bP`); +bP bP + +NULL +NULL +SELECT * FROM `sRa` JOIN `sRb`; +bP bP +\ \ +\ \ +\ \ +SELECT * FROM `sRa` INNER JOIN `sRb`; +bP bP +\ \ +\ \ +\ \ +SELECT * FROM `sRa` JOIN `sRb` USING (`bP`); +bP bP +\ \ +SELECT * FROM `sRa` INNER JOIN `sRb` USING (`bP`); +bP bP +\ \ +SELECT * FROM `sRa` CROSS JOIN `sRb`; +bP bP +\ \ +\ \ +\ \ +SELECT * FROM `sRa` LEFT JOIN `sRb` USING (`bP`); +bP bP +\ \ +\ NULL +\ NULL +SELECT * FROM `sRa` LEFT JOIN `sRb` ON (`sRa`.`bP` = `sRb`.`bP`); +bP bP +\ \ +\ NULL +\ NULL +SELECT * FROM `sRb` RIGHT JOIN `sRa` USING (`bP`); +bP bP +\ \ +NULL \ +NULL \ +SELECT * FROM `sRb` RIGHT JOIN `sRa` ON (`sRa`.`bP` = `sRb`.`bP`); +bP bP +\ \ +NULL \ +NULL \ +SELECT * FROM `sSa` JOIN `sSb`; +bP bP + + + +SELECT * FROM `sSa` INNER JOIN `sSb`; +bP bP + + + +SELECT * FROM `sSa` JOIN `sSb` USING (`bP`); +bP bP + +SELECT * FROM `sSa` INNER JOIN `sSb` USING (`bP`); +bP bP + +SELECT * FROM `sSa` CROSS JOIN `sSb`; +bP bP + + + +SELECT * FROM `sSa` LEFT JOIN `sSb` USING (`bP`); +bP bP + + NULL + NULL +SELECT * FROM `sSa` LEFT JOIN `sSb` ON (`sSa`.`bP` = `sSb`.`bP`); +bP bP + + NULL + NULL +SELECT * FROM `sSb` RIGHT JOIN `sSa` USING (`bP`); +bP bP + +NULL +NULL +SELECT * FROM `sSb` RIGHT JOIN `sSa` ON (`sSa`.`bP` = `sSb`.`bP`); +bP bP + +NULL +NULL +SELECT * FROM `sTa` JOIN `sTb`; +bP bP + + + +SELECT * FROM `sTa` INNER JOIN `sTb`; +bP bP + + + +SELECT * FROM `sTa` JOIN `sTb` USING (`bP`); +bP bP + +SELECT * FROM `sTa` INNER JOIN `sTb` USING (`bP`); +bP bP + +SELECT * FROM `sTa` CROSS JOIN `sTb`; +bP bP + + + +SELECT * FROM `sTa` LEFT JOIN `sTb` USING (`bP`); +bP bP + + NULL + NULL +SELECT * FROM `sTa` LEFT JOIN `sTb` ON (`sTa`.`bP` = `sTb`.`bP`); +bP bP + + NULL + NULL +SELECT * FROM `sTb` RIGHT JOIN `sTa` USING (`bP`); +bP bP + +NULL +NULL +SELECT * FROM `sTb` RIGHT JOIN `sTa` ON (`sTa`.`bP` = `sTb`.`bP`); +bP bP + +NULL +NULL +SELECT * FROM `sUa` JOIN `sUb`; +bP bP +\ \ +\ \ +\ \ +SELECT * FROM `sUa` INNER JOIN `sUb`; +bP bP +\ \ +\ \ +\ \ +SELECT * FROM `sUa` JOIN `sUb` USING (`bP`); +bP bP +\ \ +SELECT * FROM `sUa` INNER JOIN `sUb` USING (`bP`); +bP bP +\ \ +SELECT * FROM `sUa` CROSS JOIN `sUb`; +bP bP +\ \ +\ \ +\ \ +SELECT * FROM `sUa` LEFT JOIN `sUb` USING (`bP`); +bP bP +\ \ +\ NULL +\ NULL +SELECT * FROM `sUa` LEFT JOIN `sUb` ON (`sUa`.`bP` = `sUb`.`bP`); +bP bP +\ \ +\ NULL +\ NULL +SELECT * FROM `sUb` RIGHT JOIN `sUa` USING (`bP`); +bP bP +\ \ +NULL \ +NULL \ +SELECT * FROM `sUb` RIGHT JOIN `sUa` ON (`sUa`.`bP` = `sUb`.`bP`); +bP bP +\ \ +NULL \ +NULL \ +SELECT * FROM `sVa` JOIN `sVb`; +bP bP + + + +SELECT * FROM `sVa` INNER JOIN `sVb`; +bP bP + + + +SELECT * FROM `sVa` JOIN `sVb` USING (`bP`); +bP bP + +SELECT * FROM `sVa` INNER JOIN `sVb` USING (`bP`); +bP bP + +SELECT * FROM `sVa` CROSS JOIN `sVb`; +bP bP + + + +SELECT * FROM `sVa` LEFT JOIN `sVb` USING (`bP`); +bP bP + + NULL + NULL +SELECT * FROM `sVa` LEFT JOIN `sVb` ON (`sVa`.`bP` = `sVb`.`bP`); +bP bP + + NULL + NULL +SELECT * FROM `sVb` RIGHT JOIN `sVa` USING (`bP`); +bP bP + +NULL +NULL +SELECT * FROM `sVb` RIGHT JOIN `sVa` ON (`sVa`.`bP` = `sVb`.`bP`); +bP bP + +NULL +NULL +SELECT * FROM `sWa` JOIN `sWb`; +bP bP + + + +SELECT * FROM `sWa` INNER JOIN `sWb`; +bP bP + + + +SELECT * FROM `sWa` JOIN `sWb` USING (`bP`); +bP bP + +SELECT * FROM `sWa` INNER JOIN `sWb` USING (`bP`); +bP bP + +SELECT * FROM `sWa` CROSS JOIN `sWb`; +bP bP + + + +SELECT * FROM `sWa` LEFT JOIN `sWb` USING (`bP`); +bP bP + + NULL + NULL +SELECT * FROM `sWa` LEFT JOIN `sWb` ON (`sWa`.`bP` = `sWb`.`bP`); +bP bP + + NULL + NULL +SELECT * FROM `sWb` RIGHT JOIN `sWa` USING (`bP`); +bP bP + +NULL +NULL +SELECT * FROM `sWb` RIGHT JOIN `sWa` ON (`sWa`.`bP` = `sWb`.`bP`); +bP bP + +NULL +NULL +SELECT * FROM `sXa` JOIN `sXb`; +bP bP +\ \ +\ \ +\ \ +SELECT * FROM `sXa` INNER JOIN `sXb`; +bP bP +\ \ +\ \ +\ \ +SELECT * FROM `sXa` JOIN `sXb` USING (`bP`); +bP bP +\ \ +SELECT * FROM `sXa` INNER JOIN `sXb` USING (`bP`); +bP bP +\ \ +SELECT * FROM `sXa` CROSS JOIN `sXb`; +bP bP +\ \ +\ \ +\ \ +SELECT * FROM `sXa` LEFT JOIN `sXb` USING (`bP`); +bP bP +\ \ +\ NULL +\ NULL +SELECT * FROM `sXa` LEFT JOIN `sXb` ON (`sXa`.`bP` = `sXb`.`bP`); +bP bP +\ \ +\ NULL +\ NULL +SELECT * FROM `sXb` RIGHT JOIN `sXa` USING (`bP`); +bP bP +\ \ +NULL \ +NULL \ +SELECT * FROM `sXb` RIGHT JOIN `sXa` ON (`sXa`.`bP` = `sXb`.`bP`); +bP bP +\ \ +NULL \ +NULL \ +SELECT * FROM `sPOa` JOIN `sPOb`; +bP bP + + + +SELECT * FROM `sPOa` INNER JOIN `sPOb`; +bP bP + + + +SELECT * FROM `sPOa` JOIN `sPOb` USING (`bP`); +bP bP + +SELECT * FROM `sPOa` INNER JOIN `sPOb` USING (`bP`); +bP bP + +SELECT * FROM `sPOa` CROSS JOIN `sPOb`; +bP bP + + + +SELECT * FROM `sPOa` LEFT JOIN `sPOb` USING (`bP`); +bP bP + + NULL + NULL +SELECT * FROM `sPOa` LEFT JOIN `sPOb` ON (`sPOa`.`bP` = `sPOb`.`bP`); +bP bP + + NULL + NULL +SELECT * FROM `sPOb` RIGHT JOIN `sPOa` USING (`bP`); +bP bP + +NULL +NULL +SELECT * FROM `sPOb` RIGHT JOIN `sPOa` ON (`sPOa`.`bP` = `sPOb`.`bP`); +bP bP + +NULL +NULL +SELECT * FROM `sPPa` JOIN `sPPb`; +bP bP + + + +SELECT * FROM `sPPa` INNER JOIN `sPPb`; +bP bP + + + +SELECT * FROM `sPPa` JOIN `sPPb` USING (`bP`); +bP bP + +SELECT * FROM `sPPa` INNER JOIN `sPPb` USING (`bP`); +bP bP + +SELECT * FROM `sPPa` CROSS JOIN `sPPb`; +bP bP + + + +SELECT * FROM `sPPa` LEFT JOIN `sPPb` USING (`bP`); +bP bP + + NULL + NULL +SELECT * FROM `sPPa` LEFT JOIN `sPPb` ON (`sPPa`.`bP` = `sPPb`.`bP`); +bP bP + + NULL + NULL +SELECT * FROM `sPPb` RIGHT JOIN `sPPa` USING (`bP`); +bP bP + +NULL +NULL +SELECT * FROM `sPPb` RIGHT JOIN `sPPa` ON (`sPPa`.`bP` = `sPPb`.`bP`); +bP bP + +NULL +NULL +SELECT * FROM `sPQa` JOIN `sPQb`; +bP bP +\ \ +\ \ +\ \ +SELECT * FROM `sPQa` INNER JOIN `sPQb`; +bP bP +\ \ +\ \ +\ \ +SELECT * FROM `sPQa` JOIN `sPQb` USING (`bP`); +bP bP +\ \ +SELECT * FROM `sPQa` INNER JOIN `sPQb` USING (`bP`); +bP bP +\ \ +SELECT * FROM `sPQa` CROSS JOIN `sPQb`; +bP bP +\ \ +\ \ +\ \ +SELECT * FROM `sPQa` LEFT JOIN `sPQb` USING (`bP`); +bP bP +\ \ +\ NULL +\ NULL +SELECT * FROM `sPQa` LEFT JOIN `sPQb` ON (`sPQa`.`bP` = `sPQb`.`bP`); +bP bP +\ \ +\ NULL +\ NULL +SELECT * FROM `sPQb` RIGHT JOIN `sPQa` USING (`bP`); +bP bP +\ \ +NULL \ +NULL \ +SELECT * FROM `sPQb` RIGHT JOIN `sPQa` ON (`sPQa`.`bP` = `sPQb`.`bP`); +bP bP +\ \ +NULL \ +NULL \ +DROP TABLE `sPa`; +DROP TABLE `sPb`; +DROP TABLE `sQa`; +DROP TABLE `sQb`; +DROP TABLE `sRa`; +DROP TABLE `sRb`; +DROP TABLE `sSa`; +DROP TABLE `sSb`; +DROP TABLE `sTa`; +DROP TABLE `sTb`; +DROP TABLE `sUa`; +DROP TABLE `sUb`; +DROP TABLE `sVa`; +DROP TABLE `sVb`; +DROP TABLE `sWa`; +DROP TABLE `sWb`; +DROP TABLE `sXa`; +DROP TABLE `sXb`; +DROP TABLE `sPOa`; +DROP TABLE `sPOb`; +DROP TABLE `sPPa`; +DROP TABLE `sPPb`; +DROP TABLE `sPQa`; +DROP TABLE `sPQb`; diff --git a/mysql-test/suite/jp/r/jp_join_ucs2.result b/mysql-test/suite/jp/r/jp_join_ucs2.result new file mode 100755 index 00000000000..76988f15cc4 --- /dev/null +++ b/mysql-test/suite/jp/r/jp_join_ucs2.result @@ -0,0 +1,579 @@ +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +SET NAMES ujis; +SET character_set_database = ucs2; +SET collation_connection = ucs2_general_ci; +CREATE TABLE `ԣa` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣb` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣa` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣb` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣa` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣb` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣa` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣb` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣa` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣb` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣa` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣb` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣa` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣb` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣa` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣb` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣa` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣb` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣa` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣb` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣa` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣb` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣa` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣb` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = innodb; +INSERT INTO `ԣa` VALUES (''),(''),(''); +INSERT INTO `ԣb` VALUES (''); +INSERT INTO `ԣa` VALUES (''),(''),(''); +INSERT INTO `ԣb` VALUES (''); +INSERT INTO `ԣa` VALUES (''),(''),(''); +INSERT INTO `ԣb` VALUES (''); +INSERT INTO `ԣa` VALUES (''),(''),(''); +INSERT INTO `ԣb` VALUES (''); +INSERT INTO `ԣa` VALUES (''),(''),(''); +INSERT INTO `ԣb` VALUES (''); +INSERT INTO `ԣa` VALUES (''),(''),(''); +INSERT INTO `ԣb` VALUES (''); +INSERT INTO `ԣa` VALUES (''),(''),(''); +INSERT INTO `ԣb` VALUES (''); +INSERT INTO `ԣa` VALUES (''),(''),(''); +INSERT INTO `ԣb` VALUES (''); +INSERT INTO `ԣa` VALUES (''),(''),(''); +INSERT INTO `ԣb` VALUES (''); +INSERT INTO `ԣa` VALUES (''),(''),(''); +INSERT INTO `ԣb` VALUES (''); +INSERT INTO `ԣa` VALUES (''),(''),(''); +INSERT INTO `ԣb` VALUES (''); +INSERT INTO `ԣa` VALUES (''),(''),(''); +INSERT INTO `ԣb` VALUES (''); +SELECT * FROM `ԣa` JOIN `ԣb`; +ã ã + + + +SELECT * FROM `ԣa` INNER JOIN `ԣb`; +ã ã + + + +SELECT * FROM `ԣa` JOIN `ԣb` USING (`ã`); +ã ã + +SELECT * FROM `ԣa` INNER JOIN `ԣb` USING (`ã`); +ã ã + +SELECT * FROM `ԣa` CROSS JOIN `ԣb`; +ã ã + + + +SELECT * FROM `ԣa` LEFT JOIN `ԣb` USING (`ã`); +ã ã + + NULL + NULL +SELECT * FROM `ԣa` LEFT JOIN `ԣb` ON (`ԣa`.`ã` = `ԣb`.`ã`); +ã ã + + NULL + NULL +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` USING (`ã`); +ã ã + +NULL +NULL +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` ON (`ԣa`.`ã` = `ԣb`.`ã`); +ã ã + +NULL +NULL +SELECT * FROM `ԣa` JOIN `ԣb`; +ã ã + + + +SELECT * FROM `ԣa` INNER JOIN `ԣb`; +ã ã + + + +SELECT * FROM `ԣa` JOIN `ԣb` USING (`ã`); +ã ã + +SELECT * FROM `ԣa` INNER JOIN `ԣb` USING (`ã`); +ã ã + +SELECT * FROM `ԣa` CROSS JOIN `ԣb`; +ã ã + + + +SELECT * FROM `ԣa` LEFT JOIN `ԣb` USING (`ã`); +ã ã + + NULL + NULL +SELECT * FROM `ԣa` LEFT JOIN `ԣb` ON (`ԣa`.`ã` = `ԣb`.`ã`); +ã ã + + NULL + NULL +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` USING (`ã`); +ã ã + +NULL +NULL +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` ON (`ԣa`.`ã` = `ԣb`.`ã`); +ã ã + +NULL +NULL +SELECT * FROM `ԣa` JOIN `ԣb`; +ã ã + + + +SELECT * FROM `ԣa` INNER JOIN `ԣb`; +ã ã + + + +SELECT * FROM `ԣa` JOIN `ԣb` USING (`ã`); +ã ã + +SELECT * FROM `ԣa` INNER JOIN `ԣb` USING (`ã`); +ã ã + +SELECT * FROM `ԣa` CROSS JOIN `ԣb`; +ã ã + + + +SELECT * FROM `ԣa` LEFT JOIN `ԣb` USING (`ã`); +ã ã + + NULL + NULL +SELECT * FROM `ԣa` LEFT JOIN `ԣb` ON (`ԣa`.`ã` = `ԣb`.`ã`); +ã ã + + NULL + NULL +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` USING (`ã`); +ã ã + +NULL +NULL +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` ON (`ԣa`.`ã` = `ԣb`.`ã`); +ã ã + +NULL +NULL +SELECT * FROM `ԣa` JOIN `ԣb`; +ã ã + + + +SELECT * FROM `ԣa` INNER JOIN `ԣb`; +ã ã + + + +SELECT * FROM `ԣa` JOIN `ԣb` USING (`ã`); +ã ã + +SELECT * FROM `ԣa` INNER JOIN `ԣb` USING (`ã`); +ã ã + +SELECT * FROM `ԣa` CROSS JOIN `ԣb`; +ã ã + + + +SELECT * FROM `ԣa` LEFT JOIN `ԣb` USING (`ã`); +ã ã + + NULL + NULL +SELECT * FROM `ԣa` LEFT JOIN `ԣb` ON (`ԣa`.`ã` = `ԣb`.`ã`); +ã ã + + NULL + NULL +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` USING (`ã`); +ã ã + +NULL +NULL +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` ON (`ԣa`.`ã` = `ԣb`.`ã`); +ã ã + +NULL +NULL +SELECT * FROM `ԣa` JOIN `ԣb`; +ã ã + + + +SELECT * FROM `ԣa` INNER JOIN `ԣb`; +ã ã + + + +SELECT * FROM `ԣa` JOIN `ԣb` USING (`ã`); +ã ã + +SELECT * FROM `ԣa` INNER JOIN `ԣb` USING (`ã`); +ã ã + +SELECT * FROM `ԣa` CROSS JOIN `ԣb`; +ã ã + + + +SELECT * FROM `ԣa` LEFT JOIN `ԣb` USING (`ã`); +ã ã + + NULL + NULL +SELECT * FROM `ԣa` LEFT JOIN `ԣb` ON (`ԣa`.`ã` = `ԣb`.`ã`); +ã ã + + NULL + NULL +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` USING (`ã`); +ã ã + +NULL +NULL +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` ON (`ԣa`.`ã` = `ԣb`.`ã`); +ã ã + +NULL +NULL +SELECT * FROM `ԣa` JOIN `ԣb`; +ã ã + + + +SELECT * FROM `ԣa` INNER JOIN `ԣb`; +ã ã + + + +SELECT * FROM `ԣa` JOIN `ԣb` USING (`ã`); +ã ã + +SELECT * FROM `ԣa` INNER JOIN `ԣb` USING (`ã`); +ã ã + +SELECT * FROM `ԣa` CROSS JOIN `ԣb`; +ã ã + + + +SELECT * FROM `ԣa` LEFT JOIN `ԣb` USING (`ã`); +ã ã + + NULL + NULL +SELECT * FROM `ԣa` LEFT JOIN `ԣb` ON (`ԣa`.`ã` = `ԣb`.`ã`); +ã ã + + NULL + NULL +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` USING (`ã`); +ã ã + +NULL +NULL +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` ON (`ԣa`.`ã` = `ԣb`.`ã`); +ã ã + +NULL +NULL +SELECT * FROM `ԣa` JOIN `ԣb`; +ã ã + + + +SELECT * FROM `ԣa` INNER JOIN `ԣb`; +ã ã + + + +SELECT * FROM `ԣa` JOIN `ԣb` USING (`ã`); +ã ã + +SELECT * FROM `ԣa` INNER JOIN `ԣb` USING (`ã`); +ã ã + +SELECT * FROM `ԣa` CROSS JOIN `ԣb`; +ã ã + + + +SELECT * FROM `ԣa` LEFT JOIN `ԣb` USING (`ã`); +ã ã + + NULL + NULL +SELECT * FROM `ԣa` LEFT JOIN `ԣb` ON (`ԣa`.`ã` = `ԣb`.`ã`); +ã ã + + NULL + NULL +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` USING (`ã`); +ã ã + +NULL +NULL +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` ON (`ԣa`.`ã` = `ԣb`.`ã`); +ã ã + +NULL +NULL +SELECT * FROM `ԣa` JOIN `ԣb`; +ã ã + + + +SELECT * FROM `ԣa` INNER JOIN `ԣb`; +ã ã + + + +SELECT * FROM `ԣa` JOIN `ԣb` USING (`ã`); +ã ã + +SELECT * FROM `ԣa` INNER JOIN `ԣb` USING (`ã`); +ã ã + +SELECT * FROM `ԣa` CROSS JOIN `ԣb`; +ã ã + + + +SELECT * FROM `ԣa` LEFT JOIN `ԣb` USING (`ã`); +ã ã + + NULL + NULL +SELECT * FROM `ԣa` LEFT JOIN `ԣb` ON (`ԣa`.`ã` = `ԣb`.`ã`); +ã ã + + NULL + NULL +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` USING (`ã`); +ã ã + +NULL +NULL +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` ON (`ԣa`.`ã` = `ԣb`.`ã`); +ã ã + +NULL +NULL +SELECT * FROM `ԣa` JOIN `ԣb`; +ã ã + + + +SELECT * FROM `ԣa` INNER JOIN `ԣb`; +ã ã + + + +SELECT * FROM `ԣa` JOIN `ԣb` USING (`ã`); +ã ã + +SELECT * FROM `ԣa` INNER JOIN `ԣb` USING (`ã`); +ã ã + +SELECT * FROM `ԣa` CROSS JOIN `ԣb`; +ã ã + + + +SELECT * FROM `ԣa` LEFT JOIN `ԣb` USING (`ã`); +ã ã + + NULL + NULL +SELECT * FROM `ԣa` LEFT JOIN `ԣb` ON (`ԣa`.`ã` = `ԣb`.`ã`); +ã ã + + NULL + NULL +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` USING (`ã`); +ã ã + +NULL +NULL +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` ON (`ԣa`.`ã` = `ԣb`.`ã`); +ã ã + +NULL +NULL +SELECT * FROM `ԣa` JOIN `ԣb`; +ã ã + + + +SELECT * FROM `ԣa` INNER JOIN `ԣb`; +ã ã + + + +SELECT * FROM `ԣa` JOIN `ԣb` USING (`ã`); +ã ã + +SELECT * FROM `ԣa` INNER JOIN `ԣb` USING (`ã`); +ã ã + +SELECT * FROM `ԣa` CROSS JOIN `ԣb`; +ã ã + + + +SELECT * FROM `ԣa` LEFT JOIN `ԣb` USING (`ã`); +ã ã + + NULL + NULL +SELECT * FROM `ԣa` LEFT JOIN `ԣb` ON (`ԣa`.`ã` = `ԣb`.`ã`); +ã ã + + NULL + NULL +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` USING (`ã`); +ã ã + +NULL +NULL +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` ON (`ԣa`.`ã` = `ԣb`.`ã`); +ã ã + +NULL +NULL +SELECT * FROM `ԣa` JOIN `ԣb`; +ã ã + + + +SELECT * FROM `ԣa` INNER JOIN `ԣb`; +ã ã + + + +SELECT * FROM `ԣa` JOIN `ԣb` USING (`ã`); +ã ã + +SELECT * FROM `ԣa` INNER JOIN `ԣb` USING (`ã`); +ã ã + +SELECT * FROM `ԣa` CROSS JOIN `ԣb`; +ã ã + + + +SELECT * FROM `ԣa` LEFT JOIN `ԣb` USING (`ã`); +ã ã + + NULL + NULL +SELECT * FROM `ԣa` LEFT JOIN `ԣb` ON (`ԣa`.`ã` = `ԣb`.`ã`); +ã ã + + NULL + NULL +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` USING (`ã`); +ã ã + +NULL +NULL +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` ON (`ԣa`.`ã` = `ԣb`.`ã`); +ã ã + +NULL +NULL +SELECT * FROM `ԣa` JOIN `ԣb`; +ã ã + + + +SELECT * FROM `ԣa` INNER JOIN `ԣb`; +ã ã + + + +SELECT * FROM `ԣa` JOIN `ԣb` USING (`ã`); +ã ã + +SELECT * FROM `ԣa` INNER JOIN `ԣb` USING (`ã`); +ã ã + +SELECT * FROM `ԣa` CROSS JOIN `ԣb`; +ã ã + + + +SELECT * FROM `ԣa` LEFT JOIN `ԣb` USING (`ã`); +ã ã + + NULL + NULL +SELECT * FROM `ԣa` LEFT JOIN `ԣb` ON (`ԣa`.`ã` = `ԣb`.`ã`); +ã ã + + NULL + NULL +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` USING (`ã`); +ã ã + +NULL +NULL +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` ON (`ԣa`.`ã` = `ԣb`.`ã`); +ã ã + +NULL +NULL +DROP TABLE `ԣa`; +DROP TABLE `ԣb`; +DROP TABLE `ԣa`; +DROP TABLE `ԣb`; +DROP TABLE `ԣa`; +DROP TABLE `ԣb`; +DROP TABLE `ԣa`; +DROP TABLE `ԣb`; +DROP TABLE `ԣa`; +DROP TABLE `ԣb`; +DROP TABLE `ԣa`; +DROP TABLE `ԣb`; +DROP TABLE `ԣa`; +DROP TABLE `ԣb`; +DROP TABLE `ԣa`; +DROP TABLE `ԣb`; +DROP TABLE `ԣa`; +DROP TABLE `ԣb`; +DROP TABLE `ԣa`; +DROP TABLE `ԣb`; +DROP TABLE `ԣa`; +DROP TABLE `ԣb`; +DROP TABLE `ԣa`; +DROP TABLE `ԣb`; diff --git a/mysql-test/suite/jp/r/jp_join_ujis.result b/mysql-test/suite/jp/r/jp_join_ujis.result new file mode 100755 index 00000000000..ac430cd9b5e --- /dev/null +++ b/mysql-test/suite/jp/r/jp_join_ujis.result @@ -0,0 +1,578 @@ +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +SET NAMES ujis; +SET character_set_database = ujis; +CREATE TABLE `ԣa` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣb` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣa` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣb` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣa` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣb` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣa` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣb` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣa` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣb` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣa` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣb` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣa` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣb` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣa` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣb` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣa` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣb` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣa` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣb` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣa` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣb` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣa` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣb` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ujis engine = innodb; +INSERT INTO `ԣa` VALUES (''),(''),(''); +INSERT INTO `ԣb` VALUES (''); +INSERT INTO `ԣa` VALUES (''),(''),(''); +INSERT INTO `ԣb` VALUES (''); +INSERT INTO `ԣa` VALUES (''),(''),(''); +INSERT INTO `ԣb` VALUES (''); +INSERT INTO `ԣa` VALUES (''),(''),(''); +INSERT INTO `ԣb` VALUES (''); +INSERT INTO `ԣa` VALUES (''),(''),(''); +INSERT INTO `ԣb` VALUES (''); +INSERT INTO `ԣa` VALUES (''),(''),(''); +INSERT INTO `ԣb` VALUES (''); +INSERT INTO `ԣa` VALUES (''),(''),(''); +INSERT INTO `ԣb` VALUES (''); +INSERT INTO `ԣa` VALUES (''),(''),(''); +INSERT INTO `ԣb` VALUES (''); +INSERT INTO `ԣa` VALUES (''),(''),(''); +INSERT INTO `ԣb` VALUES (''); +INSERT INTO `ԣa` VALUES (''),(''),(''); +INSERT INTO `ԣb` VALUES (''); +INSERT INTO `ԣa` VALUES (''),(''),(''); +INSERT INTO `ԣb` VALUES (''); +INSERT INTO `ԣa` VALUES (''),(''),(''); +INSERT INTO `ԣb` VALUES (''); +SELECT * FROM `ԣa` JOIN `ԣb`; +ã ã + + + +SELECT * FROM `ԣa` INNER JOIN `ԣb`; +ã ã + + + +SELECT * FROM `ԣa` JOIN `ԣb` USING (`ã`); +ã ã + +SELECT * FROM `ԣa` INNER JOIN `ԣb` USING (`ã`); +ã ã + +SELECT * FROM `ԣa` CROSS JOIN `ԣb`; +ã ã + + + +SELECT * FROM `ԣa` LEFT JOIN `ԣb` USING (`ã`); +ã ã + + NULL + NULL +SELECT * FROM `ԣa` LEFT JOIN `ԣb` ON (`ԣa`.`ã` = `ԣb`.`ã`); +ã ã + + NULL + NULL +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` USING (`ã`); +ã ã + +NULL +NULL +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` ON (`ԣa`.`ã` = `ԣb`.`ã`); +ã ã + +NULL +NULL +SELECT * FROM `ԣa` JOIN `ԣb`; +ã ã + + + +SELECT * FROM `ԣa` INNER JOIN `ԣb`; +ã ã + + + +SELECT * FROM `ԣa` JOIN `ԣb` USING (`ã`); +ã ã + +SELECT * FROM `ԣa` INNER JOIN `ԣb` USING (`ã`); +ã ã + +SELECT * FROM `ԣa` CROSS JOIN `ԣb`; +ã ã + + + +SELECT * FROM `ԣa` LEFT JOIN `ԣb` USING (`ã`); +ã ã + + NULL + NULL +SELECT * FROM `ԣa` LEFT JOIN `ԣb` ON (`ԣa`.`ã` = `ԣb`.`ã`); +ã ã + + NULL + NULL +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` USING (`ã`); +ã ã + +NULL +NULL +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` ON (`ԣa`.`ã` = `ԣb`.`ã`); +ã ã + +NULL +NULL +SELECT * FROM `ԣa` JOIN `ԣb`; +ã ã + + + +SELECT * FROM `ԣa` INNER JOIN `ԣb`; +ã ã + + + +SELECT * FROM `ԣa` JOIN `ԣb` USING (`ã`); +ã ã + +SELECT * FROM `ԣa` INNER JOIN `ԣb` USING (`ã`); +ã ã + +SELECT * FROM `ԣa` CROSS JOIN `ԣb`; +ã ã + + + +SELECT * FROM `ԣa` LEFT JOIN `ԣb` USING (`ã`); +ã ã + + NULL + NULL +SELECT * FROM `ԣa` LEFT JOIN `ԣb` ON (`ԣa`.`ã` = `ԣb`.`ã`); +ã ã + + NULL + NULL +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` USING (`ã`); +ã ã + +NULL +NULL +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` ON (`ԣa`.`ã` = `ԣb`.`ã`); +ã ã + +NULL +NULL +SELECT * FROM `ԣa` JOIN `ԣb`; +ã ã + + + +SELECT * FROM `ԣa` INNER JOIN `ԣb`; +ã ã + + + +SELECT * FROM `ԣa` JOIN `ԣb` USING (`ã`); +ã ã + +SELECT * FROM `ԣa` INNER JOIN `ԣb` USING (`ã`); +ã ã + +SELECT * FROM `ԣa` CROSS JOIN `ԣb`; +ã ã + + + +SELECT * FROM `ԣa` LEFT JOIN `ԣb` USING (`ã`); +ã ã + + NULL + NULL +SELECT * FROM `ԣa` LEFT JOIN `ԣb` ON (`ԣa`.`ã` = `ԣb`.`ã`); +ã ã + + NULL + NULL +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` USING (`ã`); +ã ã + +NULL +NULL +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` ON (`ԣa`.`ã` = `ԣb`.`ã`); +ã ã + +NULL +NULL +SELECT * FROM `ԣa` JOIN `ԣb`; +ã ã + + + +SELECT * FROM `ԣa` INNER JOIN `ԣb`; +ã ã + + + +SELECT * FROM `ԣa` JOIN `ԣb` USING (`ã`); +ã ã + +SELECT * FROM `ԣa` INNER JOIN `ԣb` USING (`ã`); +ã ã + +SELECT * FROM `ԣa` CROSS JOIN `ԣb`; +ã ã + + + +SELECT * FROM `ԣa` LEFT JOIN `ԣb` USING (`ã`); +ã ã + + NULL + NULL +SELECT * FROM `ԣa` LEFT JOIN `ԣb` ON (`ԣa`.`ã` = `ԣb`.`ã`); +ã ã + + NULL + NULL +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` USING (`ã`); +ã ã + +NULL +NULL +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` ON (`ԣa`.`ã` = `ԣb`.`ã`); +ã ã + +NULL +NULL +SELECT * FROM `ԣa` JOIN `ԣb`; +ã ã + + + +SELECT * FROM `ԣa` INNER JOIN `ԣb`; +ã ã + + + +SELECT * FROM `ԣa` JOIN `ԣb` USING (`ã`); +ã ã + +SELECT * FROM `ԣa` INNER JOIN `ԣb` USING (`ã`); +ã ã + +SELECT * FROM `ԣa` CROSS JOIN `ԣb`; +ã ã + + + +SELECT * FROM `ԣa` LEFT JOIN `ԣb` USING (`ã`); +ã ã + + NULL + NULL +SELECT * FROM `ԣa` LEFT JOIN `ԣb` ON (`ԣa`.`ã` = `ԣb`.`ã`); +ã ã + + NULL + NULL +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` USING (`ã`); +ã ã + +NULL +NULL +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` ON (`ԣa`.`ã` = `ԣb`.`ã`); +ã ã + +NULL +NULL +SELECT * FROM `ԣa` JOIN `ԣb`; +ã ã + + + +SELECT * FROM `ԣa` INNER JOIN `ԣb`; +ã ã + + + +SELECT * FROM `ԣa` JOIN `ԣb` USING (`ã`); +ã ã + +SELECT * FROM `ԣa` INNER JOIN `ԣb` USING (`ã`); +ã ã + +SELECT * FROM `ԣa` CROSS JOIN `ԣb`; +ã ã + + + +SELECT * FROM `ԣa` LEFT JOIN `ԣb` USING (`ã`); +ã ã + + NULL + NULL +SELECT * FROM `ԣa` LEFT JOIN `ԣb` ON (`ԣa`.`ã` = `ԣb`.`ã`); +ã ã + + NULL + NULL +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` USING (`ã`); +ã ã + +NULL +NULL +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` ON (`ԣa`.`ã` = `ԣb`.`ã`); +ã ã + +NULL +NULL +SELECT * FROM `ԣa` JOIN `ԣb`; +ã ã + + + +SELECT * FROM `ԣa` INNER JOIN `ԣb`; +ã ã + + + +SELECT * FROM `ԣa` JOIN `ԣb` USING (`ã`); +ã ã + +SELECT * FROM `ԣa` INNER JOIN `ԣb` USING (`ã`); +ã ã + +SELECT * FROM `ԣa` CROSS JOIN `ԣb`; +ã ã + + + +SELECT * FROM `ԣa` LEFT JOIN `ԣb` USING (`ã`); +ã ã + + NULL + NULL +SELECT * FROM `ԣa` LEFT JOIN `ԣb` ON (`ԣa`.`ã` = `ԣb`.`ã`); +ã ã + + NULL + NULL +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` USING (`ã`); +ã ã + +NULL +NULL +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` ON (`ԣa`.`ã` = `ԣb`.`ã`); +ã ã + +NULL +NULL +SELECT * FROM `ԣa` JOIN `ԣb`; +ã ã + + + +SELECT * FROM `ԣa` INNER JOIN `ԣb`; +ã ã + + + +SELECT * FROM `ԣa` JOIN `ԣb` USING (`ã`); +ã ã + +SELECT * FROM `ԣa` INNER JOIN `ԣb` USING (`ã`); +ã ã + +SELECT * FROM `ԣa` CROSS JOIN `ԣb`; +ã ã + + + +SELECT * FROM `ԣa` LEFT JOIN `ԣb` USING (`ã`); +ã ã + + NULL + NULL +SELECT * FROM `ԣa` LEFT JOIN `ԣb` ON (`ԣa`.`ã` = `ԣb`.`ã`); +ã ã + + NULL + NULL +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` USING (`ã`); +ã ã + +NULL +NULL +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` ON (`ԣa`.`ã` = `ԣb`.`ã`); +ã ã + +NULL +NULL +SELECT * FROM `ԣa` JOIN `ԣb`; +ã ã + + + +SELECT * FROM `ԣa` INNER JOIN `ԣb`; +ã ã + + + +SELECT * FROM `ԣa` JOIN `ԣb` USING (`ã`); +ã ã + +SELECT * FROM `ԣa` INNER JOIN `ԣb` USING (`ã`); +ã ã + +SELECT * FROM `ԣa` CROSS JOIN `ԣb`; +ã ã + + + +SELECT * FROM `ԣa` LEFT JOIN `ԣb` USING (`ã`); +ã ã + + NULL + NULL +SELECT * FROM `ԣa` LEFT JOIN `ԣb` ON (`ԣa`.`ã` = `ԣb`.`ã`); +ã ã + + NULL + NULL +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` USING (`ã`); +ã ã + +NULL +NULL +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` ON (`ԣa`.`ã` = `ԣb`.`ã`); +ã ã + +NULL +NULL +SELECT * FROM `ԣa` JOIN `ԣb`; +ã ã + + + +SELECT * FROM `ԣa` INNER JOIN `ԣb`; +ã ã + + + +SELECT * FROM `ԣa` JOIN `ԣb` USING (`ã`); +ã ã + +SELECT * FROM `ԣa` INNER JOIN `ԣb` USING (`ã`); +ã ã + +SELECT * FROM `ԣa` CROSS JOIN `ԣb`; +ã ã + + + +SELECT * FROM `ԣa` LEFT JOIN `ԣb` USING (`ã`); +ã ã + + NULL + NULL +SELECT * FROM `ԣa` LEFT JOIN `ԣb` ON (`ԣa`.`ã` = `ԣb`.`ã`); +ã ã + + NULL + NULL +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` USING (`ã`); +ã ã + +NULL +NULL +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` ON (`ԣa`.`ã` = `ԣb`.`ã`); +ã ã + +NULL +NULL +SELECT * FROM `ԣa` JOIN `ԣb`; +ã ã + + + +SELECT * FROM `ԣa` INNER JOIN `ԣb`; +ã ã + + + +SELECT * FROM `ԣa` JOIN `ԣb` USING (`ã`); +ã ã + +SELECT * FROM `ԣa` INNER JOIN `ԣb` USING (`ã`); +ã ã + +SELECT * FROM `ԣa` CROSS JOIN `ԣb`; +ã ã + + + +SELECT * FROM `ԣa` LEFT JOIN `ԣb` USING (`ã`); +ã ã + + NULL + NULL +SELECT * FROM `ԣa` LEFT JOIN `ԣb` ON (`ԣa`.`ã` = `ԣb`.`ã`); +ã ã + + NULL + NULL +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` USING (`ã`); +ã ã + +NULL +NULL +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` ON (`ԣa`.`ã` = `ԣb`.`ã`); +ã ã + +NULL +NULL +DROP TABLE `ԣa`; +DROP TABLE `ԣb`; +DROP TABLE `ԣa`; +DROP TABLE `ԣb`; +DROP TABLE `ԣa`; +DROP TABLE `ԣb`; +DROP TABLE `ԣa`; +DROP TABLE `ԣb`; +DROP TABLE `ԣa`; +DROP TABLE `ԣb`; +DROP TABLE `ԣa`; +DROP TABLE `ԣb`; +DROP TABLE `ԣa`; +DROP TABLE `ԣb`; +DROP TABLE `ԣa`; +DROP TABLE `ԣb`; +DROP TABLE `ԣa`; +DROP TABLE `ԣb`; +DROP TABLE `ԣa`; +DROP TABLE `ԣb`; +DROP TABLE `ԣa`; +DROP TABLE `ԣb`; +DROP TABLE `ԣa`; +DROP TABLE `ԣb`; diff --git a/mysql-test/suite/jp/r/jp_join_utf8.result b/mysql-test/suite/jp/r/jp_join_utf8.result new file mode 100755 index 00000000000..716e97a2bb3 --- /dev/null +++ b/mysql-test/suite/jp/r/jp_join_utf8.result @@ -0,0 +1,578 @@ +drop table if exists `T1`; +drop table if exists `T2`; +drop table if exists `T3`; +drop table if exists `T4`; +drop table if exists `T5`; +drop table if exists `T6`; +drop table if exists `T7`; +drop table if exists `T8`; +drop table if exists `T9`; +drop table if exists `T10`; +drop table if exists `T11`; +drop table if exists `T12`; +SET NAMES utf8; +SET character_set_database = utf8; +CREATE TABLE `T1a` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T1b` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T2a` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T2b` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T3a` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T3b` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T4a` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T4b` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T5a` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T5b` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T6a` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T6b` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T7a` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T7b` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T8a` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T8b` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T9a` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T9b` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T10a` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T10b` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T11a` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T11b` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T12a` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T12b` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = innodb; +INSERT INTO `T1a` VALUES ('ア'),('カ'),('サ'); +INSERT INTO `T1b` VALUES ('ア'); +INSERT INTO `T2a` VALUES ('あ'),('か'),('さ'); +INSERT INTO `T2b` VALUES ('あ'); +INSERT INTO `T3a` VALUES ('龔'),('龖'),('龗'); +INSERT INTO `T3b` VALUES ('龔'); +INSERT INTO `T4a` VALUES ('ア'),('カ'),('サ'); +INSERT INTO `T4b` VALUES ('ア'); +INSERT INTO `T5a` VALUES ('あ'),('か'),('さ'); +INSERT INTO `T5b` VALUES ('あ'); +INSERT INTO `T6a` VALUES ('龔'),('龖'),('龗'); +INSERT INTO `T6b` VALUES ('龔'); +INSERT INTO `T7a` VALUES ('ア'),('カ'),('サ'); +INSERT INTO `T7b` VALUES ('ア'); +INSERT INTO `T8a` VALUES ('あ'),('か'),('さ'); +INSERT INTO `T8b` VALUES ('あ'); +INSERT INTO `T9a` VALUES ('龔'),('龖'),('龗'); +INSERT INTO `T9b` VALUES ('龔'); +INSERT INTO `T10a` VALUES ('ア'),('カ'),('サ'); +INSERT INTO `T10b` VALUES ('ア'); +INSERT INTO `T11a` VALUES ('あ'),('か'),('さ'); +INSERT INTO `T11b` VALUES ('あ'); +INSERT INTO `T12a` VALUES ('龔'),('龖'),('龗'); +INSERT INTO `T12b` VALUES ('龔'); +SELECT * FROM `T1a` JOIN `T1b`; +C1 C1 +ア ア +カ ア +サ ア +SELECT * FROM `T1a` INNER JOIN `T1b`; +C1 C1 +ア ア +カ ア +サ ア +SELECT * FROM `T1a` JOIN `T1b` USING (`C1`); +C1 C1 +ア ア +SELECT * FROM `T1a` INNER JOIN `T1b` USING (`C1`); +C1 C1 +ア ア +SELECT * FROM `T1a` CROSS JOIN `T1b`; +C1 C1 +ア ア +カ ア +サ ア +SELECT * FROM `T1a` LEFT JOIN `T1b` USING (`C1`); +C1 C1 +ア ア +カ NULL +サ NULL +SELECT * FROM `T1a` LEFT JOIN `T1b` ON (`T1a`.`C1` = `T1b`.`C1`); +C1 C1 +ア ア +カ NULL +サ NULL +SELECT * FROM `T1b` RIGHT JOIN `T1a` USING (`C1`); +C1 C1 +ア ア +NULL カ +NULL サ +SELECT * FROM `T1b` RIGHT JOIN `T1a` ON (`T1a`.`C1` = `T1b`.`C1`); +C1 C1 +ア ア +NULL カ +NULL サ +SELECT * FROM `T2a` JOIN `T2b`; +C1 C1 +あ あ +か あ +さ あ +SELECT * FROM `T2a` INNER JOIN `T2b`; +C1 C1 +あ あ +か あ +さ あ +SELECT * FROM `T2a` JOIN `T2b` USING (`C1`); +C1 C1 +あ あ +SELECT * FROM `T2a` INNER JOIN `T2b` USING (`C1`); +C1 C1 +あ あ +SELECT * FROM `T2a` CROSS JOIN `T2b`; +C1 C1 +あ あ +か あ +さ あ +SELECT * FROM `T2a` LEFT JOIN `T2b` USING (`C1`); +C1 C1 +あ あ +か NULL +さ NULL +SELECT * FROM `T2a` LEFT JOIN `T2b` ON (`T2a`.`C1` = `T2b`.`C1`); +C1 C1 +あ あ +か NULL +さ NULL +SELECT * FROM `T2b` RIGHT JOIN `T2a` USING (`C1`); +C1 C1 +あ あ +NULL か +NULL さ +SELECT * FROM `T2b` RIGHT JOIN `T2a` ON (`T2a`.`C1` = `T2b`.`C1`); +C1 C1 +あ あ +NULL か +NULL さ +SELECT * FROM `T3a` JOIN `T3b`; +C1 C1 +龔 龔 +龖 龔 +龗 龔 +SELECT * FROM `T3a` INNER JOIN `T3b`; +C1 C1 +龔 龔 +龖 龔 +龗 龔 +SELECT * FROM `T3a` JOIN `T3b` USING (`C1`); +C1 C1 +龔 龔 +SELECT * FROM `T3a` INNER JOIN `T3b` USING (`C1`); +C1 C1 +龔 龔 +SELECT * FROM `T3a` CROSS JOIN `T3b`; +C1 C1 +龔 龔 +龖 龔 +龗 龔 +SELECT * FROM `T3a` LEFT JOIN `T3b` USING (`C1`); +C1 C1 +龔 龔 +龖 NULL +龗 NULL +SELECT * FROM `T3a` LEFT JOIN `T3b` ON (`T3a`.`C1` = `T3b`.`C1`); +C1 C1 +龔 龔 +龖 NULL +龗 NULL +SELECT * FROM `T3b` RIGHT JOIN `T3a` USING (`C1`); +C1 C1 +龔 龔 +NULL 龖 +NULL 龗 +SELECT * FROM `T3b` RIGHT JOIN `T3a` ON (`T3a`.`C1` = `T3b`.`C1`); +C1 C1 +龔 龔 +NULL 龖 +NULL 龗 +SELECT * FROM `T4a` JOIN `T4b`; +C1 C1 +ア ア +カ ア +サ ア +SELECT * FROM `T4a` INNER JOIN `T4b`; +C1 C1 +ア ア +カ ア +サ ア +SELECT * FROM `T4a` JOIN `T4b` USING (`C1`); +C1 C1 +ア ア +SELECT * FROM `T4a` INNER JOIN `T4b` USING (`C1`); +C1 C1 +ア ア +SELECT * FROM `T4a` CROSS JOIN `T4b`; +C1 C1 +ア ア +カ ア +サ ア +SELECT * FROM `T4a` LEFT JOIN `T4b` USING (`C1`); +C1 C1 +ア ア +カ NULL +サ NULL +SELECT * FROM `T4a` LEFT JOIN `T4b` ON (`T4a`.`C1` = `T4b`.`C1`); +C1 C1 +ア ア +カ NULL +サ NULL +SELECT * FROM `T4b` RIGHT JOIN `T4a` USING (`C1`); +C1 C1 +ア ア +NULL カ +NULL サ +SELECT * FROM `T4b` RIGHT JOIN `T4a` ON (`T4a`.`C1` = `T4b`.`C1`); +C1 C1 +ア ア +NULL カ +NULL サ +SELECT * FROM `T5a` JOIN `T5b`; +C1 C1 +あ あ +か あ +さ あ +SELECT * FROM `T5a` INNER JOIN `T5b`; +C1 C1 +あ あ +か あ +さ あ +SELECT * FROM `T5a` JOIN `T5b` USING (`C1`); +C1 C1 +あ あ +SELECT * FROM `T5a` INNER JOIN `T5b` USING (`C1`); +C1 C1 +あ あ +SELECT * FROM `T5a` CROSS JOIN `T5b`; +C1 C1 +あ あ +か あ +さ あ +SELECT * FROM `T5a` LEFT JOIN `T5b` USING (`C1`); +C1 C1 +あ あ +か NULL +さ NULL +SELECT * FROM `T5a` LEFT JOIN `T5b` ON (`T5a`.`C1` = `T5b`.`C1`); +C1 C1 +あ あ +か NULL +さ NULL +SELECT * FROM `T5b` RIGHT JOIN `T5a` USING (`C1`); +C1 C1 +あ あ +NULL か +NULL さ +SELECT * FROM `T5b` RIGHT JOIN `T5a` ON (`T5a`.`C1` = `T5b`.`C1`); +C1 C1 +あ あ +NULL か +NULL さ +SELECT * FROM `T6a` JOIN `T6b`; +C1 C1 +龔 龔 +龖 龔 +龗 龔 +SELECT * FROM `T6a` INNER JOIN `T6b`; +C1 C1 +龔 龔 +龖 龔 +龗 龔 +SELECT * FROM `T6a` JOIN `T6b` USING (`C1`); +C1 C1 +龔 龔 +SELECT * FROM `T6a` INNER JOIN `T6b` USING (`C1`); +C1 C1 +龔 龔 +SELECT * FROM `T6a` CROSS JOIN `T6b`; +C1 C1 +龔 龔 +龖 龔 +龗 龔 +SELECT * FROM `T6a` LEFT JOIN `T6b` USING (`C1`); +C1 C1 +龔 龔 +龖 NULL +龗 NULL +SELECT * FROM `T6a` LEFT JOIN `T6b` ON (`T6a`.`C1` = `T6b`.`C1`); +C1 C1 +龔 龔 +龖 NULL +龗 NULL +SELECT * FROM `T6b` RIGHT JOIN `T6a` USING (`C1`); +C1 C1 +龔 龔 +NULL 龖 +NULL 龗 +SELECT * FROM `T6b` RIGHT JOIN `T6a` ON (`T6a`.`C1` = `T6b`.`C1`); +C1 C1 +龔 龔 +NULL 龖 +NULL 龗 +SELECT * FROM `T7a` JOIN `T7b`; +C1 C1 +ア ア +カ ア +サ ア +SELECT * FROM `T7a` INNER JOIN `T7b`; +C1 C1 +ア ア +カ ア +サ ア +SELECT * FROM `T7a` JOIN `T7b` USING (`C1`); +C1 C1 +ア ア +SELECT * FROM `T7a` INNER JOIN `T7b` USING (`C1`); +C1 C1 +ア ア +SELECT * FROM `T7a` CROSS JOIN `T7b`; +C1 C1 +ア ア +カ ア +サ ア +SELECT * FROM `T7a` LEFT JOIN `T7b` USING (`C1`); +C1 C1 +ア ア +カ NULL +サ NULL +SELECT * FROM `T7a` LEFT JOIN `T7b` ON (`T7a`.`C1` = `T7b`.`C1`); +C1 C1 +ア ア +カ NULL +サ NULL +SELECT * FROM `T7b` RIGHT JOIN `T7a` USING (`C1`); +C1 C1 +ア ア +NULL カ +NULL サ +SELECT * FROM `T7b` RIGHT JOIN `T7a` ON (`T7a`.`C1` = `T7b`.`C1`); +C1 C1 +ア ア +NULL カ +NULL サ +SELECT * FROM `T8a` JOIN `T8b`; +C1 C1 +あ あ +か あ +さ あ +SELECT * FROM `T8a` INNER JOIN `T8b`; +C1 C1 +あ あ +か あ +さ あ +SELECT * FROM `T8a` JOIN `T8b` USING (`C1`); +C1 C1 +あ あ +SELECT * FROM `T8a` INNER JOIN `T8b` USING (`C1`); +C1 C1 +あ あ +SELECT * FROM `T8a` CROSS JOIN `T8b`; +C1 C1 +あ あ +か あ +さ あ +SELECT * FROM `T8a` LEFT JOIN `T8b` USING (`C1`); +C1 C1 +あ あ +か NULL +さ NULL +SELECT * FROM `T8a` LEFT JOIN `T8b` ON (`T8a`.`C1` = `T8b`.`C1`); +C1 C1 +あ あ +か NULL +さ NULL +SELECT * FROM `T8b` RIGHT JOIN `T8a` USING (`C1`); +C1 C1 +あ あ +NULL か +NULL さ +SELECT * FROM `T8b` RIGHT JOIN `T8a` ON (`T8a`.`C1` = `T8b`.`C1`); +C1 C1 +あ あ +NULL か +NULL さ +SELECT * FROM `T9a` JOIN `T9b`; +C1 C1 +龔 龔 +龖 龔 +龗 龔 +SELECT * FROM `T9a` INNER JOIN `T9b`; +C1 C1 +龔 龔 +龖 龔 +龗 龔 +SELECT * FROM `T9a` JOIN `T9b` USING (`C1`); +C1 C1 +龔 龔 +SELECT * FROM `T9a` INNER JOIN `T9b` USING (`C1`); +C1 C1 +龔 龔 +SELECT * FROM `T9a` CROSS JOIN `T9b`; +C1 C1 +龔 龔 +龖 龔 +龗 龔 +SELECT * FROM `T9a` LEFT JOIN `T9b` USING (`C1`); +C1 C1 +龔 龔 +龖 NULL +龗 NULL +SELECT * FROM `T9a` LEFT JOIN `T9b` ON (`T9a`.`C1` = `T9b`.`C1`); +C1 C1 +龔 龔 +龖 NULL +龗 NULL +SELECT * FROM `T9b` RIGHT JOIN `T9a` USING (`C1`); +C1 C1 +龔 龔 +NULL 龖 +NULL 龗 +SELECT * FROM `T9b` RIGHT JOIN `T9a` ON (`T9a`.`C1` = `T9b`.`C1`); +C1 C1 +龔 龔 +NULL 龖 +NULL 龗 +SELECT * FROM `T10a` JOIN `T10b`; +C1 C1 +ア ア +カ ア +サ ア +SELECT * FROM `T10a` INNER JOIN `T10b`; +C1 C1 +ア ア +カ ア +サ ア +SELECT * FROM `T10a` JOIN `T10b` USING (`C1`); +C1 C1 +ア ア +SELECT * FROM `T10a` INNER JOIN `T10b` USING (`C1`); +C1 C1 +ア ア +SELECT * FROM `T10a` CROSS JOIN `T10b`; +C1 C1 +ア ア +カ ア +サ ア +SELECT * FROM `T10a` LEFT JOIN `T10b` USING (`C1`); +C1 C1 +ア ア +カ NULL +サ NULL +SELECT * FROM `T10a` LEFT JOIN `T10b` ON (`T10a`.`C1` = `T10b`.`C1`); +C1 C1 +ア ア +カ NULL +サ NULL +SELECT * FROM `T10b` RIGHT JOIN `T10a` USING (`C1`); +C1 C1 +ア ア +NULL カ +NULL サ +SELECT * FROM `T10b` RIGHT JOIN `T10a` ON (`T10a`.`C1` = `T10b`.`C1`); +C1 C1 +ア ア +NULL カ +NULL サ +SELECT * FROM `T11a` JOIN `T11b`; +C1 C1 +あ あ +か あ +さ あ +SELECT * FROM `T11a` INNER JOIN `T11b`; +C1 C1 +あ あ +か あ +さ あ +SELECT * FROM `T11a` JOIN `T11b` USING (`C1`); +C1 C1 +あ あ +SELECT * FROM `T11a` INNER JOIN `T11b` USING (`C1`); +C1 C1 +あ あ +SELECT * FROM `T11a` CROSS JOIN `T11b`; +C1 C1 +あ あ +か あ +さ あ +SELECT * FROM `T11a` LEFT JOIN `T11b` USING (`C1`); +C1 C1 +あ あ +か NULL +さ NULL +SELECT * FROM `T11a` LEFT JOIN `T11b` ON (`T11a`.`C1` = `T11b`.`C1`); +C1 C1 +あ あ +か NULL +さ NULL +SELECT * FROM `T11b` RIGHT JOIN `T11a` USING (`C1`); +C1 C1 +あ あ +NULL か +NULL さ +SELECT * FROM `T11b` RIGHT JOIN `T11a` ON (`T11a`.`C1` = `T11b`.`C1`); +C1 C1 +あ あ +NULL か +NULL さ +SELECT * FROM `T12a` JOIN `T12b`; +C1 C1 +龔 龔 +龖 龔 +龗 龔 +SELECT * FROM `T12a` INNER JOIN `T12b`; +C1 C1 +龔 龔 +龖 龔 +龗 龔 +SELECT * FROM `T12a` JOIN `T12b` USING (`C1`); +C1 C1 +龔 龔 +SELECT * FROM `T12a` INNER JOIN `T12b` USING (`C1`); +C1 C1 +龔 龔 +SELECT * FROM `T12a` CROSS JOIN `T12b`; +C1 C1 +龔 龔 +龖 龔 +龗 龔 +SELECT * FROM `T12a` LEFT JOIN `T12b` USING (`C1`); +C1 C1 +龔 龔 +龖 NULL +龗 NULL +SELECT * FROM `T12a` LEFT JOIN `T12b` ON (`T12a`.`C1` = `T12b`.`C1`); +C1 C1 +龔 龔 +龖 NULL +龗 NULL +SELECT * FROM `T12b` RIGHT JOIN `T12a` USING (`C1`); +C1 C1 +龔 龔 +NULL 龖 +NULL 龗 +SELECT * FROM `T12b` RIGHT JOIN `T12a` ON (`T12a`.`C1` = `T12b`.`C1`); +C1 C1 +龔 龔 +NULL 龖 +NULL 龗 +DROP TABLE `T1a`; +DROP TABLE `T1b`; +DROP TABLE `T2a`; +DROP TABLE `T2b`; +DROP TABLE `T3a`; +DROP TABLE `T3b`; +DROP TABLE `T4a`; +DROP TABLE `T4b`; +DROP TABLE `T5a`; +DROP TABLE `T5b`; +DROP TABLE `T6a`; +DROP TABLE `T6b`; +DROP TABLE `T7a`; +DROP TABLE `T7b`; +DROP TABLE `T8a`; +DROP TABLE `T8b`; +DROP TABLE `T9a`; +DROP TABLE `T9b`; +DROP TABLE `T10a`; +DROP TABLE `T10b`; +DROP TABLE `T11a`; +DROP TABLE `T11b`; +DROP TABLE `T12a`; +DROP TABLE `T12b`; diff --git a/mysql-test/suite/jp/r/jp_left_sjis.result b/mysql-test/suite/jp/r/jp_left_sjis.result new file mode 100755 index 00000000000..ae5564186ab --- /dev/null +++ b/mysql-test/suite/jp/r/jp_left_sjis.result @@ -0,0 +1,626 @@ +drop table if exists `sP`; +drop table if exists `sQ`; +drop table if exists `sR`; +drop table if exists `sS`; +drop table if exists `sT`; +drop table if exists `sU`; +drop table if exists `sV`; +drop table if exists `sW`; +drop table if exists `sX`; +drop table if exists `sPO`; +drop table if exists `sPP`; +drop table if exists `sPQ`; +SET NAMES sjis; +SET character_set_database = sjis; +CREATE TABLE `sP` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sQ` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sR` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sS` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sT` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sU` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sV` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sW` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sX` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sPO` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +CREATE TABLE `sPP` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +CREATE TABLE `sPQ` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +INSERT INTO `sP` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sQ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sR` VALUES ('\\\\\'),('\\\\'),('\\\'),('\\'),('\'),(''); +INSERT INTO `sS` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sT` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sU` VALUES ('\\\\\'),('\\\\'),('\\\'),('\\'),('\'),(''); +INSERT INTO `sV` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sW` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sX` VALUES ('\\\\\'),('\\\\'),('\\\'),('\\'),('\'),(''); +INSERT INTO `sPO` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sPP` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sPQ` VALUES ('\\\\\'),('\\\\'),('\\\'),('\\'),('\'),(''); +SELECT `bP`, LEFT(`bP`,0) FROM `sP`; +bP LEFT(`bP`,0) + + + + + + +SELECT `bP`, LEFT(`bP`,1) FROM `sP`; +bP LEFT(`bP`,1) + + + + + + +SELECT `bP`, LEFT(`bP`,2) FROM `sP`; +bP LEFT(`bP`,2) + + + + + + +SELECT `bP`, LEFT(`bP`,3) FROM `sP`; +bP LEFT(`bP`,3) + + + + + + +SELECT `bP`, LEFT(`bP`,4) FROM `sP`; +bP LEFT(`bP`,4) + + + + + + +SELECT `bP`, LEFT(`bP`,5) FROM `sP`; +bP LEFT(`bP`,5) + + + + + + +SELECT `bP`, LEFT(`bP`,0) FROM `sQ`; +bP LEFT(`bP`,0) + + + + + + +SELECT `bP`, LEFT(`bP`,1) FROM `sQ`; +bP LEFT(`bP`,1) + + + + + + +SELECT `bP`, LEFT(`bP`,2) FROM `sQ`; +bP LEFT(`bP`,2) + + + + + + +SELECT `bP`, LEFT(`bP`,3) FROM `sQ`; +bP LEFT(`bP`,3) + + + + + + +SELECT `bP`, LEFT(`bP`,4) FROM `sQ`; +bP LEFT(`bP`,4) + + + + + + +SELECT `bP`, LEFT(`bP`,5) FROM `sQ`; +bP LEFT(`bP`,5) + + + + + + +SELECT `bP`, LEFT(`bP`,0) FROM `sR`; +bP LEFT(`bP`,0) + +\ +\\ +\\\ +\\\\ +\\\\\ +SELECT `bP`, LEFT(`bP`,1) FROM `sR`; +bP LEFT(`bP`,1) + +\ \ +\\ \ +\\\ \ +\\\\ \ +\\\\\ \ +SELECT `bP`, LEFT(`bP`,2) FROM `sR`; +bP LEFT(`bP`,2) + +\ \ +\\ \\ +\\\ \\ +\\\\ \\ +\\\\\ \\ +SELECT `bP`, LEFT(`bP`,3) FROM `sR`; +bP LEFT(`bP`,3) + +\ \ +\\ \\ +\\\ \\\ +\\\\ \\\ +\\\\\ \\\ +SELECT `bP`, LEFT(`bP`,4) FROM `sR`; +bP LEFT(`bP`,4) + +\ \ +\\ \\ +\\\ \\\ +\\\\ \\\\ +\\\\\ \\\\ +SELECT `bP`, LEFT(`bP`,5) FROM `sR`; +bP LEFT(`bP`,5) + +\ \ +\\ \\ +\\\ \\\ +\\\\ \\\\ +\\\\\ \\\\\ +SELECT `bP`, LEFT(`bP`,0) FROM `sS`; +bP LEFT(`bP`,0) + + + + + + +SELECT `bP`, LEFT(`bP`,1) FROM `sS`; +bP LEFT(`bP`,1) + + + + + + +SELECT `bP`, LEFT(`bP`,2) FROM `sS`; +bP LEFT(`bP`,2) + + + + + + +SELECT `bP`, LEFT(`bP`,3) FROM `sS`; +bP LEFT(`bP`,3) + + + + + + +SELECT `bP`, LEFT(`bP`,4) FROM `sS`; +bP LEFT(`bP`,4) + + + + + + +SELECT `bP`, LEFT(`bP`,5) FROM `sS`; +bP LEFT(`bP`,5) + + + + + + +SELECT `bP`, LEFT(`bP`,0) FROM `sT`; +bP LEFT(`bP`,0) + + + + + + +SELECT `bP`, LEFT(`bP`,1) FROM `sT`; +bP LEFT(`bP`,1) + + + + + + +SELECT `bP`, LEFT(`bP`,2) FROM `sT`; +bP LEFT(`bP`,2) + + + + + + +SELECT `bP`, LEFT(`bP`,3) FROM `sT`; +bP LEFT(`bP`,3) + + + + + + +SELECT `bP`, LEFT(`bP`,4) FROM `sT`; +bP LEFT(`bP`,4) + + + + + + +SELECT `bP`, LEFT(`bP`,5) FROM `sT`; +bP LEFT(`bP`,5) + + + + + + +SELECT `bP`, LEFT(`bP`,0) FROM `sU`; +bP LEFT(`bP`,0) + +\ +\\ +\\\ +\\\\ +\\\\\ +SELECT `bP`, LEFT(`bP`,1) FROM `sU`; +bP LEFT(`bP`,1) + +\ \ +\\ \ +\\\ \ +\\\\ \ +\\\\\ \ +SELECT `bP`, LEFT(`bP`,2) FROM `sU`; +bP LEFT(`bP`,2) + +\ \ +\\ \\ +\\\ \\ +\\\\ \\ +\\\\\ \\ +SELECT `bP`, LEFT(`bP`,3) FROM `sU`; +bP LEFT(`bP`,3) + +\ \ +\\ \\ +\\\ \\\ +\\\\ \\\ +\\\\\ \\\ +SELECT `bP`, LEFT(`bP`,4) FROM `sU`; +bP LEFT(`bP`,4) + +\ \ +\\ \\ +\\\ \\\ +\\\\ \\\\ +\\\\\ \\\\ +SELECT `bP`, LEFT(`bP`,5) FROM `sU`; +bP LEFT(`bP`,5) + +\ \ +\\ \\ +\\\ \\\ +\\\\ \\\\ +\\\\\ \\\\\ +SELECT `bP`, LEFT(`bP`,0) FROM `sV`; +bP LEFT(`bP`,0) + + + + + + +SELECT `bP`, LEFT(`bP`,1) FROM `sV`; +bP LEFT(`bP`,1) + + + + + + +SELECT `bP`, LEFT(`bP`,2) FROM `sV`; +bP LEFT(`bP`,2) + + + + + + +SELECT `bP`, LEFT(`bP`,3) FROM `sV`; +bP LEFT(`bP`,3) + + + + + + +SELECT `bP`, LEFT(`bP`,4) FROM `sV`; +bP LEFT(`bP`,4) + + + + + + +SELECT `bP`, LEFT(`bP`,5) FROM `sV`; +bP LEFT(`bP`,5) + + + + + + +SELECT `bP`, LEFT(`bP`,0) FROM `sW`; +bP LEFT(`bP`,0) + + + + + + +SELECT `bP`, LEFT(`bP`,1) FROM `sW`; +bP LEFT(`bP`,1) + + + + + + +SELECT `bP`, LEFT(`bP`,2) FROM `sW`; +bP LEFT(`bP`,2) + + + + + + +SELECT `bP`, LEFT(`bP`,3) FROM `sW`; +bP LEFT(`bP`,3) + + + + + + +SELECT `bP`, LEFT(`bP`,4) FROM `sW`; +bP LEFT(`bP`,4) + + + + + + +SELECT `bP`, LEFT(`bP`,5) FROM `sW`; +bP LEFT(`bP`,5) + + + + + + +SELECT `bP`, LEFT(`bP`,0) FROM `sX`; +bP LEFT(`bP`,0) +\\\\\ +\\\\ +\\\ +\\ +\ + +SELECT `bP`, LEFT(`bP`,1) FROM `sX`; +bP LEFT(`bP`,1) +\\\\\ \ +\\\\ \ +\\\ \ +\\ \ +\ \ + +SELECT `bP`, LEFT(`bP`,2) FROM `sX`; +bP LEFT(`bP`,2) +\\\\\ \\ +\\\\ \\ +\\\ \\ +\\ \\ +\ \ + +SELECT `bP`, LEFT(`bP`,3) FROM `sX`; +bP LEFT(`bP`,3) +\\\\\ \\\ +\\\\ \\\ +\\\ \\\ +\\ \\ +\ \ + +SELECT `bP`, LEFT(`bP`,4) FROM `sX`; +bP LEFT(`bP`,4) +\\\\\ \\\\ +\\\\ \\\\ +\\\ \\\ +\\ \\ +\ \ + +SELECT `bP`, LEFT(`bP`,5) FROM `sX`; +bP LEFT(`bP`,5) +\\\\\ \\\\\ +\\\\ \\\\ +\\\ \\\ +\\ \\ +\ \ + +SELECT `bP`, LEFT(`bP`,0) FROM `sPO`; +bP LEFT(`bP`,0) + + + + + + +SELECT `bP`, LEFT(`bP`,1) FROM `sPO`; +bP LEFT(`bP`,1) + + + + + + +SELECT `bP`, LEFT(`bP`,2) FROM `sPO`; +bP LEFT(`bP`,2) + + + + + + +SELECT `bP`, LEFT(`bP`,3) FROM `sPO`; +bP LEFT(`bP`,3) + + + + + + +SELECT `bP`, LEFT(`bP`,4) FROM `sPO`; +bP LEFT(`bP`,4) + + + + + + +SELECT `bP`, LEFT(`bP`,5) FROM `sPO`; +bP LEFT(`bP`,5) + + + + + + +SELECT `bP`, LEFT(`bP`,0) FROM `sPP`; +bP LEFT(`bP`,0) + + + + + + +SELECT `bP`, LEFT(`bP`,1) FROM `sPP`; +bP LEFT(`bP`,1) + + + + + + +SELECT `bP`, LEFT(`bP`,2) FROM `sPP`; +bP LEFT(`bP`,2) + + + + + + +SELECT `bP`, LEFT(`bP`,3) FROM `sPP`; +bP LEFT(`bP`,3) + + + + + + +SELECT `bP`, LEFT(`bP`,4) FROM `sPP`; +bP LEFT(`bP`,4) + + + + + + +SELECT `bP`, LEFT(`bP`,5) FROM `sPP`; +bP LEFT(`bP`,5) + + + + + + +SELECT `bP`, LEFT(`bP`,0) FROM `sPQ`; +bP LEFT(`bP`,0) +\\\\\ +\\\\ +\\\ +\\ +\ + +SELECT `bP`, LEFT(`bP`,1) FROM `sPQ`; +bP LEFT(`bP`,1) +\\\\\ \ +\\\\ \ +\\\ \ +\\ \ +\ \ + +SELECT `bP`, LEFT(`bP`,2) FROM `sPQ`; +bP LEFT(`bP`,2) +\\\\\ \\ +\\\\ \\ +\\\ \\ +\\ \\ +\ \ + +SELECT `bP`, LEFT(`bP`,3) FROM `sPQ`; +bP LEFT(`bP`,3) +\\\\\ \\\ +\\\\ \\\ +\\\ \\\ +\\ \\ +\ \ + +SELECT `bP`, LEFT(`bP`,4) FROM `sPQ`; +bP LEFT(`bP`,4) +\\\\\ \\\\ +\\\\ \\\\ +\\\ \\\ +\\ \\ +\ \ + +SELECT `bP`, LEFT(`bP`,5) FROM `sPQ`; +bP LEFT(`bP`,5) +\\\\\ \\\\\ +\\\\ \\\\ +\\\ \\\ +\\ \\ +\ \ + +DROP TABLE `sP`; +DROP TABLE `sQ`; +DROP TABLE `sR`; +DROP TABLE `sS`; +DROP TABLE `sT`; +DROP TABLE `sU`; +DROP TABLE `sV`; +DROP TABLE `sW`; +DROP TABLE `sX`; +DROP TABLE `sPO`; +DROP TABLE `sPP`; +DROP TABLE `sPQ`; diff --git a/mysql-test/suite/jp/r/jp_left_ucs2.result b/mysql-test/suite/jp/r/jp_left_ucs2.result new file mode 100755 index 00000000000..349883e9064 --- /dev/null +++ b/mysql-test/suite/jp/r/jp_left_ucs2.result @@ -0,0 +1,627 @@ +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +SET NAMES ujis; +SET character_set_database = ucs2; +SET collation_connection = ucs2_general_ci; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +SELECT `ã`, LEFT(`ã`,0) FROM `ԣ`; +ã LEFT(`ã`,0) + + + + + + +SELECT `ã`, LEFT(`ã`,1) FROM `ԣ`; +ã LEFT(`ã`,1) + + + + + + +SELECT `ã`, LEFT(`ã`,2) FROM `ԣ`; +ã LEFT(`ã`,2) + + + + + + +SELECT `ã`, LEFT(`ã`,3) FROM `ԣ`; +ã LEFT(`ã`,3) + + + + + + +SELECT `ã`, LEFT(`ã`,4) FROM `ԣ`; +ã LEFT(`ã`,4) + + + + + + +SELECT `ã`, LEFT(`ã`,5) FROM `ԣ`; +ã LEFT(`ã`,5) + + + + + + +SELECT `ã`, LEFT(`ã`,0) FROM `ԣ`; +ã LEFT(`ã`,0) + + + + + + +SELECT `ã`, LEFT(`ã`,1) FROM `ԣ`; +ã LEFT(`ã`,1) + + + + + + +SELECT `ã`, LEFT(`ã`,2) FROM `ԣ`; +ã LEFT(`ã`,2) + + + + + + +SELECT `ã`, LEFT(`ã`,3) FROM `ԣ`; +ã LEFT(`ã`,3) + + + + + + +SELECT `ã`, LEFT(`ã`,4) FROM `ԣ`; +ã LEFT(`ã`,4) + + + + + + +SELECT `ã`, LEFT(`ã`,5) FROM `ԣ`; +ã LEFT(`ã`,5) + + + + + + +SELECT `ã`, LEFT(`ã`,0) FROM `ԣ`; +ã LEFT(`ã`,0) + + +܏ +܏ݏ +܏ݏޏ +܏ݏޏߏ +SELECT `ã`, LEFT(`ã`,1) FROM `ԣ`; +ã LEFT(`ã`,1) + + +܏ +܏ݏ +܏ݏޏ +܏ݏޏߏ +SELECT `ã`, LEFT(`ã`,2) FROM `ԣ`; +ã LEFT(`ã`,2) + + +܏ ܏ +܏ݏ ܏ +܏ݏޏ ܏ +܏ݏޏߏ ܏ +SELECT `ã`, LEFT(`ã`,3) FROM `ԣ`; +ã LEFT(`ã`,3) + + +܏ ܏ +܏ݏ ܏ݏ +܏ݏޏ ܏ݏ +܏ݏޏߏ ܏ݏ +SELECT `ã`, LEFT(`ã`,4) FROM `ԣ`; +ã LEFT(`ã`,4) + + +܏ ܏ +܏ݏ ܏ݏ +܏ݏޏ ܏ݏޏ +܏ݏޏߏ ܏ݏޏ +SELECT `ã`, LEFT(`ã`,5) FROM `ԣ`; +ã LEFT(`ã`,5) + + +܏ ܏ +܏ݏ ܏ݏ +܏ݏޏ ܏ݏޏ +܏ݏޏߏ ܏ݏޏߏ +SELECT `ã`, LEFT(`ã`,0) FROM `ԣ`; +ã LEFT(`ã`,0) + + + + + + +SELECT `ã`, LEFT(`ã`,1) FROM `ԣ`; +ã LEFT(`ã`,1) + + + + + + +SELECT `ã`, LEFT(`ã`,2) FROM `ԣ`; +ã LEFT(`ã`,2) + + + + + + +SELECT `ã`, LEFT(`ã`,3) FROM `ԣ`; +ã LEFT(`ã`,3) + + + + + + +SELECT `ã`, LEFT(`ã`,4) FROM `ԣ`; +ã LEFT(`ã`,4) + + + + + + +SELECT `ã`, LEFT(`ã`,5) FROM `ԣ`; +ã LEFT(`ã`,5) + + + + + + +SELECT `ã`, LEFT(`ã`,0) FROM `ԣ`; +ã LEFT(`ã`,0) + + + + + + +SELECT `ã`, LEFT(`ã`,1) FROM `ԣ`; +ã LEFT(`ã`,1) + + + + + + +SELECT `ã`, LEFT(`ã`,2) FROM `ԣ`; +ã LEFT(`ã`,2) + + + + + + +SELECT `ã`, LEFT(`ã`,3) FROM `ԣ`; +ã LEFT(`ã`,3) + + + + + + +SELECT `ã`, LEFT(`ã`,4) FROM `ԣ`; +ã LEFT(`ã`,4) + + + + + + +SELECT `ã`, LEFT(`ã`,5) FROM `ԣ`; +ã LEFT(`ã`,5) + + + + + + +SELECT `ã`, LEFT(`ã`,0) FROM `ԣ`; +ã LEFT(`ã`,0) + + +܏ +܏ݏ +܏ݏޏ +܏ݏޏߏ +SELECT `ã`, LEFT(`ã`,1) FROM `ԣ`; +ã LEFT(`ã`,1) + + +܏ +܏ݏ +܏ݏޏ +܏ݏޏߏ +SELECT `ã`, LEFT(`ã`,2) FROM `ԣ`; +ã LEFT(`ã`,2) + + +܏ ܏ +܏ݏ ܏ +܏ݏޏ ܏ +܏ݏޏߏ ܏ +SELECT `ã`, LEFT(`ã`,3) FROM `ԣ`; +ã LEFT(`ã`,3) + + +܏ ܏ +܏ݏ ܏ݏ +܏ݏޏ ܏ݏ +܏ݏޏߏ ܏ݏ +SELECT `ã`, LEFT(`ã`,4) FROM `ԣ`; +ã LEFT(`ã`,4) + + +܏ ܏ +܏ݏ ܏ݏ +܏ݏޏ ܏ݏޏ +܏ݏޏߏ ܏ݏޏ +SELECT `ã`, LEFT(`ã`,5) FROM `ԣ`; +ã LEFT(`ã`,5) + + +܏ ܏ +܏ݏ ܏ݏ +܏ݏޏ ܏ݏޏ +܏ݏޏߏ ܏ݏޏߏ +SELECT `ã`, LEFT(`ã`,0) FROM `ԣ`; +ã LEFT(`ã`,0) + + + + + + +SELECT `ã`, LEFT(`ã`,1) FROM `ԣ`; +ã LEFT(`ã`,1) + + + + + + +SELECT `ã`, LEFT(`ã`,2) FROM `ԣ`; +ã LEFT(`ã`,2) + + + + + + +SELECT `ã`, LEFT(`ã`,3) FROM `ԣ`; +ã LEFT(`ã`,3) + + + + + + +SELECT `ã`, LEFT(`ã`,4) FROM `ԣ`; +ã LEFT(`ã`,4) + + + + + + +SELECT `ã`, LEFT(`ã`,5) FROM `ԣ`; +ã LEFT(`ã`,5) + + + + + + +SELECT `ã`, LEFT(`ã`,0) FROM `ԣ`; +ã LEFT(`ã`,0) + + + + + + +SELECT `ã`, LEFT(`ã`,1) FROM `ԣ`; +ã LEFT(`ã`,1) + + + + + + +SELECT `ã`, LEFT(`ã`,2) FROM `ԣ`; +ã LEFT(`ã`,2) + + + + + + +SELECT `ã`, LEFT(`ã`,3) FROM `ԣ`; +ã LEFT(`ã`,3) + + + + + + +SELECT `ã`, LEFT(`ã`,4) FROM `ԣ`; +ã LEFT(`ã`,4) + + + + + + +SELECT `ã`, LEFT(`ã`,5) FROM `ԣ`; +ã LEFT(`ã`,5) + + + + + + +SELECT `ã`, LEFT(`ã`,0) FROM `ԣ`; +ã LEFT(`ã`,0) +܏ݏޏߏ +܏ݏޏ +܏ݏ +܏ + + +SELECT `ã`, LEFT(`ã`,1) FROM `ԣ`; +ã LEFT(`ã`,1) +܏ݏޏߏ +܏ݏޏ +܏ݏ +܏ + + +SELECT `ã`, LEFT(`ã`,2) FROM `ԣ`; +ã LEFT(`ã`,2) +܏ݏޏߏ ܏ +܏ݏޏ ܏ +܏ݏ ܏ +܏ ܏ + + +SELECT `ã`, LEFT(`ã`,3) FROM `ԣ`; +ã LEFT(`ã`,3) +܏ݏޏߏ ܏ݏ +܏ݏޏ ܏ݏ +܏ݏ ܏ݏ +܏ ܏ + + +SELECT `ã`, LEFT(`ã`,4) FROM `ԣ`; +ã LEFT(`ã`,4) +܏ݏޏߏ ܏ݏޏ +܏ݏޏ ܏ݏޏ +܏ݏ ܏ݏ +܏ ܏ + + +SELECT `ã`, LEFT(`ã`,5) FROM `ԣ`; +ã LEFT(`ã`,5) +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏ ܏ݏޏ +܏ݏ ܏ݏ +܏ ܏ + + +SELECT `ã`, LEFT(`ã`,0) FROM `ԣ`; +ã LEFT(`ã`,0) + + + + + + +SELECT `ã`, LEFT(`ã`,1) FROM `ԣ`; +ã LEFT(`ã`,1) + + + + + + +SELECT `ã`, LEFT(`ã`,2) FROM `ԣ`; +ã LEFT(`ã`,2) + + + + + + +SELECT `ã`, LEFT(`ã`,3) FROM `ԣ`; +ã LEFT(`ã`,3) + + + + + + +SELECT `ã`, LEFT(`ã`,4) FROM `ԣ`; +ã LEFT(`ã`,4) + + + + + + +SELECT `ã`, LEFT(`ã`,5) FROM `ԣ`; +ã LEFT(`ã`,5) + + + + + + +SELECT `ã`, LEFT(`ã`,0) FROM `ԣ`; +ã LEFT(`ã`,0) + + + + + + +SELECT `ã`, LEFT(`ã`,1) FROM `ԣ`; +ã LEFT(`ã`,1) + + + + + + +SELECT `ã`, LEFT(`ã`,2) FROM `ԣ`; +ã LEFT(`ã`,2) + + + + + + +SELECT `ã`, LEFT(`ã`,3) FROM `ԣ`; +ã LEFT(`ã`,3) + + + + + + +SELECT `ã`, LEFT(`ã`,4) FROM `ԣ`; +ã LEFT(`ã`,4) + + + + + + +SELECT `ã`, LEFT(`ã`,5) FROM `ԣ`; +ã LEFT(`ã`,5) + + + + + + +SELECT `ã`, LEFT(`ã`,0) FROM `ԣ`; +ã LEFT(`ã`,0) +܏ݏޏߏ +܏ݏޏ +܏ݏ +܏ + + +SELECT `ã`, LEFT(`ã`,1) FROM `ԣ`; +ã LEFT(`ã`,1) +܏ݏޏߏ +܏ݏޏ +܏ݏ +܏ + + +SELECT `ã`, LEFT(`ã`,2) FROM `ԣ`; +ã LEFT(`ã`,2) +܏ݏޏߏ ܏ +܏ݏޏ ܏ +܏ݏ ܏ +܏ ܏ + + +SELECT `ã`, LEFT(`ã`,3) FROM `ԣ`; +ã LEFT(`ã`,3) +܏ݏޏߏ ܏ݏ +܏ݏޏ ܏ݏ +܏ݏ ܏ݏ +܏ ܏ + + +SELECT `ã`, LEFT(`ã`,4) FROM `ԣ`; +ã LEFT(`ã`,4) +܏ݏޏߏ ܏ݏޏ +܏ݏޏ ܏ݏޏ +܏ݏ ܏ݏ +܏ ܏ + + +SELECT `ã`, LEFT(`ã`,5) FROM `ԣ`; +ã LEFT(`ã`,5) +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏ ܏ݏޏ +܏ݏ ܏ݏ +܏ ܏ + + +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; diff --git a/mysql-test/suite/jp/r/jp_left_ujis.result b/mysql-test/suite/jp/r/jp_left_ujis.result new file mode 100755 index 00000000000..bd3efc67eec --- /dev/null +++ b/mysql-test/suite/jp/r/jp_left_ujis.result @@ -0,0 +1,626 @@ +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +SET NAMES ujis; +SET character_set_database = ujis; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +SELECT `ã`, LEFT(`ã`,0) FROM `ԣ`; +ã LEFT(`ã`,0) + + + + + + +SELECT `ã`, LEFT(`ã`,1) FROM `ԣ`; +ã LEFT(`ã`,1) + + + + + + +SELECT `ã`, LEFT(`ã`,2) FROM `ԣ`; +ã LEFT(`ã`,2) + + + + + + +SELECT `ã`, LEFT(`ã`,3) FROM `ԣ`; +ã LEFT(`ã`,3) + + + + + + +SELECT `ã`, LEFT(`ã`,4) FROM `ԣ`; +ã LEFT(`ã`,4) + + + + + + +SELECT `ã`, LEFT(`ã`,5) FROM `ԣ`; +ã LEFT(`ã`,5) + + + + + + +SELECT `ã`, LEFT(`ã`,0) FROM `ԣ`; +ã LEFT(`ã`,0) + + + + + + +SELECT `ã`, LEFT(`ã`,1) FROM `ԣ`; +ã LEFT(`ã`,1) + + + + + + +SELECT `ã`, LEFT(`ã`,2) FROM `ԣ`; +ã LEFT(`ã`,2) + + + + + + +SELECT `ã`, LEFT(`ã`,3) FROM `ԣ`; +ã LEFT(`ã`,3) + + + + + + +SELECT `ã`, LEFT(`ã`,4) FROM `ԣ`; +ã LEFT(`ã`,4) + + + + + + +SELECT `ã`, LEFT(`ã`,5) FROM `ԣ`; +ã LEFT(`ã`,5) + + + + + + +SELECT `ã`, LEFT(`ã`,0) FROM `ԣ`; +ã LEFT(`ã`,0) + + +܏ +܏ݏ +܏ݏޏ +܏ݏޏߏ +SELECT `ã`, LEFT(`ã`,1) FROM `ԣ`; +ã LEFT(`ã`,1) + + +܏ +܏ݏ +܏ݏޏ +܏ݏޏߏ +SELECT `ã`, LEFT(`ã`,2) FROM `ԣ`; +ã LEFT(`ã`,2) + + +܏ ܏ +܏ݏ ܏ +܏ݏޏ ܏ +܏ݏޏߏ ܏ +SELECT `ã`, LEFT(`ã`,3) FROM `ԣ`; +ã LEFT(`ã`,3) + + +܏ ܏ +܏ݏ ܏ݏ +܏ݏޏ ܏ݏ +܏ݏޏߏ ܏ݏ +SELECT `ã`, LEFT(`ã`,4) FROM `ԣ`; +ã LEFT(`ã`,4) + + +܏ ܏ +܏ݏ ܏ݏ +܏ݏޏ ܏ݏޏ +܏ݏޏߏ ܏ݏޏ +SELECT `ã`, LEFT(`ã`,5) FROM `ԣ`; +ã LEFT(`ã`,5) + + +܏ ܏ +܏ݏ ܏ݏ +܏ݏޏ ܏ݏޏ +܏ݏޏߏ ܏ݏޏߏ +SELECT `ã`, LEFT(`ã`,0) FROM `ԣ`; +ã LEFT(`ã`,0) + + + + + + +SELECT `ã`, LEFT(`ã`,1) FROM `ԣ`; +ã LEFT(`ã`,1) + + + + + + +SELECT `ã`, LEFT(`ã`,2) FROM `ԣ`; +ã LEFT(`ã`,2) + + + + + + +SELECT `ã`, LEFT(`ã`,3) FROM `ԣ`; +ã LEFT(`ã`,3) + + + + + + +SELECT `ã`, LEFT(`ã`,4) FROM `ԣ`; +ã LEFT(`ã`,4) + + + + + + +SELECT `ã`, LEFT(`ã`,5) FROM `ԣ`; +ã LEFT(`ã`,5) + + + + + + +SELECT `ã`, LEFT(`ã`,0) FROM `ԣ`; +ã LEFT(`ã`,0) + + + + + + +SELECT `ã`, LEFT(`ã`,1) FROM `ԣ`; +ã LEFT(`ã`,1) + + + + + + +SELECT `ã`, LEFT(`ã`,2) FROM `ԣ`; +ã LEFT(`ã`,2) + + + + + + +SELECT `ã`, LEFT(`ã`,3) FROM `ԣ`; +ã LEFT(`ã`,3) + + + + + + +SELECT `ã`, LEFT(`ã`,4) FROM `ԣ`; +ã LEFT(`ã`,4) + + + + + + +SELECT `ã`, LEFT(`ã`,5) FROM `ԣ`; +ã LEFT(`ã`,5) + + + + + + +SELECT `ã`, LEFT(`ã`,0) FROM `ԣ`; +ã LEFT(`ã`,0) + + +܏ +܏ݏ +܏ݏޏ +܏ݏޏߏ +SELECT `ã`, LEFT(`ã`,1) FROM `ԣ`; +ã LEFT(`ã`,1) + + +܏ +܏ݏ +܏ݏޏ +܏ݏޏߏ +SELECT `ã`, LEFT(`ã`,2) FROM `ԣ`; +ã LEFT(`ã`,2) + + +܏ ܏ +܏ݏ ܏ +܏ݏޏ ܏ +܏ݏޏߏ ܏ +SELECT `ã`, LEFT(`ã`,3) FROM `ԣ`; +ã LEFT(`ã`,3) + + +܏ ܏ +܏ݏ ܏ݏ +܏ݏޏ ܏ݏ +܏ݏޏߏ ܏ݏ +SELECT `ã`, LEFT(`ã`,4) FROM `ԣ`; +ã LEFT(`ã`,4) + + +܏ ܏ +܏ݏ ܏ݏ +܏ݏޏ ܏ݏޏ +܏ݏޏߏ ܏ݏޏ +SELECT `ã`, LEFT(`ã`,5) FROM `ԣ`; +ã LEFT(`ã`,5) + + +܏ ܏ +܏ݏ ܏ݏ +܏ݏޏ ܏ݏޏ +܏ݏޏߏ ܏ݏޏߏ +SELECT `ã`, LEFT(`ã`,0) FROM `ԣ`; +ã LEFT(`ã`,0) + + + + + + +SELECT `ã`, LEFT(`ã`,1) FROM `ԣ`; +ã LEFT(`ã`,1) + + + + + + +SELECT `ã`, LEFT(`ã`,2) FROM `ԣ`; +ã LEFT(`ã`,2) + + + + + + +SELECT `ã`, LEFT(`ã`,3) FROM `ԣ`; +ã LEFT(`ã`,3) + + + + + + +SELECT `ã`, LEFT(`ã`,4) FROM `ԣ`; +ã LEFT(`ã`,4) + + + + + + +SELECT `ã`, LEFT(`ã`,5) FROM `ԣ`; +ã LEFT(`ã`,5) + + + + + + +SELECT `ã`, LEFT(`ã`,0) FROM `ԣ`; +ã LEFT(`ã`,0) + + + + + + +SELECT `ã`, LEFT(`ã`,1) FROM `ԣ`; +ã LEFT(`ã`,1) + + + + + + +SELECT `ã`, LEFT(`ã`,2) FROM `ԣ`; +ã LEFT(`ã`,2) + + + + + + +SELECT `ã`, LEFT(`ã`,3) FROM `ԣ`; +ã LEFT(`ã`,3) + + + + + + +SELECT `ã`, LEFT(`ã`,4) FROM `ԣ`; +ã LEFT(`ã`,4) + + + + + + +SELECT `ã`, LEFT(`ã`,5) FROM `ԣ`; +ã LEFT(`ã`,5) + + + + + + +SELECT `ã`, LEFT(`ã`,0) FROM `ԣ`; +ã LEFT(`ã`,0) +܏ݏޏߏ +܏ݏޏ +܏ݏ +܏ + + +SELECT `ã`, LEFT(`ã`,1) FROM `ԣ`; +ã LEFT(`ã`,1) +܏ݏޏߏ +܏ݏޏ +܏ݏ +܏ + + +SELECT `ã`, LEFT(`ã`,2) FROM `ԣ`; +ã LEFT(`ã`,2) +܏ݏޏߏ ܏ +܏ݏޏ ܏ +܏ݏ ܏ +܏ ܏ + + +SELECT `ã`, LEFT(`ã`,3) FROM `ԣ`; +ã LEFT(`ã`,3) +܏ݏޏߏ ܏ݏ +܏ݏޏ ܏ݏ +܏ݏ ܏ݏ +܏ ܏ + + +SELECT `ã`, LEFT(`ã`,4) FROM `ԣ`; +ã LEFT(`ã`,4) +܏ݏޏߏ ܏ݏޏ +܏ݏޏ ܏ݏޏ +܏ݏ ܏ݏ +܏ ܏ + + +SELECT `ã`, LEFT(`ã`,5) FROM `ԣ`; +ã LEFT(`ã`,5) +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏ ܏ݏޏ +܏ݏ ܏ݏ +܏ ܏ + + +SELECT `ã`, LEFT(`ã`,0) FROM `ԣ`; +ã LEFT(`ã`,0) + + + + + + +SELECT `ã`, LEFT(`ã`,1) FROM `ԣ`; +ã LEFT(`ã`,1) + + + + + + +SELECT `ã`, LEFT(`ã`,2) FROM `ԣ`; +ã LEFT(`ã`,2) + + + + + + +SELECT `ã`, LEFT(`ã`,3) FROM `ԣ`; +ã LEFT(`ã`,3) + + + + + + +SELECT `ã`, LEFT(`ã`,4) FROM `ԣ`; +ã LEFT(`ã`,4) + + + + + + +SELECT `ã`, LEFT(`ã`,5) FROM `ԣ`; +ã LEFT(`ã`,5) + + + + + + +SELECT `ã`, LEFT(`ã`,0) FROM `ԣ`; +ã LEFT(`ã`,0) + + + + + + +SELECT `ã`, LEFT(`ã`,1) FROM `ԣ`; +ã LEFT(`ã`,1) + + + + + + +SELECT `ã`, LEFT(`ã`,2) FROM `ԣ`; +ã LEFT(`ã`,2) + + + + + + +SELECT `ã`, LEFT(`ã`,3) FROM `ԣ`; +ã LEFT(`ã`,3) + + + + + + +SELECT `ã`, LEFT(`ã`,4) FROM `ԣ`; +ã LEFT(`ã`,4) + + + + + + +SELECT `ã`, LEFT(`ã`,5) FROM `ԣ`; +ã LEFT(`ã`,5) + + + + + + +SELECT `ã`, LEFT(`ã`,0) FROM `ԣ`; +ã LEFT(`ã`,0) +܏ݏޏߏ +܏ݏޏ +܏ݏ +܏ + + +SELECT `ã`, LEFT(`ã`,1) FROM `ԣ`; +ã LEFT(`ã`,1) +܏ݏޏߏ +܏ݏޏ +܏ݏ +܏ + + +SELECT `ã`, LEFT(`ã`,2) FROM `ԣ`; +ã LEFT(`ã`,2) +܏ݏޏߏ ܏ +܏ݏޏ ܏ +܏ݏ ܏ +܏ ܏ + + +SELECT `ã`, LEFT(`ã`,3) FROM `ԣ`; +ã LEFT(`ã`,3) +܏ݏޏߏ ܏ݏ +܏ݏޏ ܏ݏ +܏ݏ ܏ݏ +܏ ܏ + + +SELECT `ã`, LEFT(`ã`,4) FROM `ԣ`; +ã LEFT(`ã`,4) +܏ݏޏߏ ܏ݏޏ +܏ݏޏ ܏ݏޏ +܏ݏ ܏ݏ +܏ ܏ + + +SELECT `ã`, LEFT(`ã`,5) FROM `ԣ`; +ã LEFT(`ã`,5) +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏ ܏ݏޏ +܏ݏ ܏ݏ +܏ ܏ + + +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; diff --git a/mysql-test/suite/jp/r/jp_left_utf8.result b/mysql-test/suite/jp/r/jp_left_utf8.result new file mode 100755 index 00000000000..62cca976fe0 --- /dev/null +++ b/mysql-test/suite/jp/r/jp_left_utf8.result @@ -0,0 +1,626 @@ +drop table if exists `T1`; +drop table if exists `T2`; +drop table if exists `T3`; +drop table if exists `T4`; +drop table if exists `T5`; +drop table if exists `T6`; +drop table if exists `T7`; +drop table if exists `T8`; +drop table if exists `T9`; +drop table if exists `T10`; +drop table if exists `T11`; +drop table if exists `T12`; +SET NAMES utf8; +SET character_set_database = utf8; +CREATE TABLE `T1` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T2` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T3` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T4` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T5` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T6` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T7` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T8` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T9` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T10` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +CREATE TABLE `T11` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +CREATE TABLE `T12` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +INSERT INTO `T1` VALUES ('アイウエオ'),('アイウエ'),('アイウ'),('アイ'),('ア'),(''); +INSERT INTO `T2` VALUES ('あいうえお'),('あいうえ'),('あいう'),('あい'),('あ'),(''); +INSERT INTO `T3` VALUES ('龔龖龗龞龡'),('龔龖龗龞'),('龔龖龗'),('龔龖'),('龔'),(''); +INSERT INTO `T4` VALUES ('アイウエオ'),('アイウエ'),('アイウ'),('アイ'),('ア'),(''); +INSERT INTO `T5` VALUES ('あいうえお'),('あいうえ'),('あいう'),('あい'),('あ'),(''); +INSERT INTO `T6` VALUES ('龔龖龗龞龡'),('龔龖龗龞'),('龔龖龗'),('龔龖'),('龔'),(''); +INSERT INTO `T7` VALUES ('アイウエオ'),('アイウエ'),('アイウ'),('アイ'),('ア'),(''); +INSERT INTO `T8` VALUES ('あいうえお'),('あいうえ'),('あいう'),('あい'),('あ'),(''); +INSERT INTO `T9` VALUES ('龔龖龗龞龡'),('龔龖龗龞'),('龔龖龗'),('龔龖'),('龔'),(''); +INSERT INTO `T10` VALUES ('アイウエオ'),('アイウエ'),('アイウ'),('アイ'),('ア'),(''); +INSERT INTO `T11` VALUES ('あいうえお'),('あいうえ'),('あいう'),('あい'),('あ'),(''); +INSERT INTO `T12` VALUES ('龔龖龗龞龡'),('龔龖龗龞'),('龔龖龗'),('龔龖'),('龔'),(''); +SELECT `C1`, LEFT(`C1`,0) FROM `T1`; +C1 LEFT(`C1`,0) + +ア +アイ +アイウ +アイウエ +アイウエオ +SELECT `C1`, LEFT(`C1`,1) FROM `T1`; +C1 LEFT(`C1`,1) + +ア ア +アイ ア +アイウ ア +アイウエ ア +アイウエオ ア +SELECT `C1`, LEFT(`C1`,2) FROM `T1`; +C1 LEFT(`C1`,2) + +ア ア +アイ アイ +アイウ アイ +アイウエ アイ +アイウエオ アイ +SELECT `C1`, LEFT(`C1`,3) FROM `T1`; +C1 LEFT(`C1`,3) + +ア ア +アイ アイ +アイウ アイウ +アイウエ アイウ +アイウエオ アイウ +SELECT `C1`, LEFT(`C1`,4) FROM `T1`; +C1 LEFT(`C1`,4) + +ア ア +アイ アイ +アイウ アイウ +アイウエ アイウエ +アイウエオ アイウエ +SELECT `C1`, LEFT(`C1`,5) FROM `T1`; +C1 LEFT(`C1`,5) + +ア ア +アイ アイ +アイウ アイウ +アイウエ アイウエ +アイウエオ アイウエオ +SELECT `C1`, LEFT(`C1`,0) FROM `T2`; +C1 LEFT(`C1`,0) + +あ +あい +あいう +あいうえ +あいうえお +SELECT `C1`, LEFT(`C1`,1) FROM `T2`; +C1 LEFT(`C1`,1) + +あ あ +あい あ +あいう あ +あいうえ あ +あいうえお あ +SELECT `C1`, LEFT(`C1`,2) FROM `T2`; +C1 LEFT(`C1`,2) + +あ あ +あい あい +あいう あい +あいうえ あい +あいうえお あい +SELECT `C1`, LEFT(`C1`,3) FROM `T2`; +C1 LEFT(`C1`,3) + +あ あ +あい あい +あいう あいう +あいうえ あいう +あいうえお あいう +SELECT `C1`, LEFT(`C1`,4) FROM `T2`; +C1 LEFT(`C1`,4) + +あ あ +あい あい +あいう あいう +あいうえ あいうえ +あいうえお あいうえ +SELECT `C1`, LEFT(`C1`,5) FROM `T2`; +C1 LEFT(`C1`,5) + +あ あ +あい あい +あいう あいう +あいうえ あいうえ +あいうえお あいうえお +SELECT `C1`, LEFT(`C1`,0) FROM `T3`; +C1 LEFT(`C1`,0) + +龔 +龔龖 +龔龖龗 +龔龖龗龞 +龔龖龗龞龡 +SELECT `C1`, LEFT(`C1`,1) FROM `T3`; +C1 LEFT(`C1`,1) + +龔 龔 +龔龖 龔 +龔龖龗 龔 +龔龖龗龞 龔 +龔龖龗龞龡 龔 +SELECT `C1`, LEFT(`C1`,2) FROM `T3`; +C1 LEFT(`C1`,2) + +龔 龔 +龔龖 龔龖 +龔龖龗 龔龖 +龔龖龗龞 龔龖 +龔龖龗龞龡 龔龖 +SELECT `C1`, LEFT(`C1`,3) FROM `T3`; +C1 LEFT(`C1`,3) + +龔 龔 +龔龖 龔龖 +龔龖龗 龔龖龗 +龔龖龗龞 龔龖龗 +龔龖龗龞龡 龔龖龗 +SELECT `C1`, LEFT(`C1`,4) FROM `T3`; +C1 LEFT(`C1`,4) + +龔 龔 +龔龖 龔龖 +龔龖龗 龔龖龗 +龔龖龗龞 龔龖龗龞 +龔龖龗龞龡 龔龖龗龞 +SELECT `C1`, LEFT(`C1`,5) FROM `T3`; +C1 LEFT(`C1`,5) + +龔 龔 +龔龖 龔龖 +龔龖龗 龔龖龗 +龔龖龗龞 龔龖龗龞 +龔龖龗龞龡 龔龖龗龞龡 +SELECT `C1`, LEFT(`C1`,0) FROM `T4`; +C1 LEFT(`C1`,0) + +ア +アイ +アイウ +アイウエ +アイウエオ +SELECT `C1`, LEFT(`C1`,1) FROM `T4`; +C1 LEFT(`C1`,1) + +ア ア +アイ ア +アイウ ア +アイウエ ア +アイウエオ ア +SELECT `C1`, LEFT(`C1`,2) FROM `T4`; +C1 LEFT(`C1`,2) + +ア ア +アイ アイ +アイウ アイ +アイウエ アイ +アイウエオ アイ +SELECT `C1`, LEFT(`C1`,3) FROM `T4`; +C1 LEFT(`C1`,3) + +ア ア +アイ アイ +アイウ アイウ +アイウエ アイウ +アイウエオ アイウ +SELECT `C1`, LEFT(`C1`,4) FROM `T4`; +C1 LEFT(`C1`,4) + +ア ア +アイ アイ +アイウ アイウ +アイウエ アイウエ +アイウエオ アイウエ +SELECT `C1`, LEFT(`C1`,5) FROM `T4`; +C1 LEFT(`C1`,5) + +ア ア +アイ アイ +アイウ アイウ +アイウエ アイウエ +アイウエオ アイウエオ +SELECT `C1`, LEFT(`C1`,0) FROM `T5`; +C1 LEFT(`C1`,0) + +あ +あい +あいう +あいうえ +あいうえお +SELECT `C1`, LEFT(`C1`,1) FROM `T5`; +C1 LEFT(`C1`,1) + +あ あ +あい あ +あいう あ +あいうえ あ +あいうえお あ +SELECT `C1`, LEFT(`C1`,2) FROM `T5`; +C1 LEFT(`C1`,2) + +あ あ +あい あい +あいう あい +あいうえ あい +あいうえお あい +SELECT `C1`, LEFT(`C1`,3) FROM `T5`; +C1 LEFT(`C1`,3) + +あ あ +あい あい +あいう あいう +あいうえ あいう +あいうえお あいう +SELECT `C1`, LEFT(`C1`,4) FROM `T5`; +C1 LEFT(`C1`,4) + +あ あ +あい あい +あいう あいう +あいうえ あいうえ +あいうえお あいうえ +SELECT `C1`, LEFT(`C1`,5) FROM `T5`; +C1 LEFT(`C1`,5) + +あ あ +あい あい +あいう あいう +あいうえ あいうえ +あいうえお あいうえお +SELECT `C1`, LEFT(`C1`,0) FROM `T6`; +C1 LEFT(`C1`,0) + +龔 +龔龖 +龔龖龗 +龔龖龗龞 +龔龖龗龞龡 +SELECT `C1`, LEFT(`C1`,1) FROM `T6`; +C1 LEFT(`C1`,1) + +龔 龔 +龔龖 龔 +龔龖龗 龔 +龔龖龗龞 龔 +龔龖龗龞龡 龔 +SELECT `C1`, LEFT(`C1`,2) FROM `T6`; +C1 LEFT(`C1`,2) + +龔 龔 +龔龖 龔龖 +龔龖龗 龔龖 +龔龖龗龞 龔龖 +龔龖龗龞龡 龔龖 +SELECT `C1`, LEFT(`C1`,3) FROM `T6`; +C1 LEFT(`C1`,3) + +龔 龔 +龔龖 龔龖 +龔龖龗 龔龖龗 +龔龖龗龞 龔龖龗 +龔龖龗龞龡 龔龖龗 +SELECT `C1`, LEFT(`C1`,4) FROM `T6`; +C1 LEFT(`C1`,4) + +龔 龔 +龔龖 龔龖 +龔龖龗 龔龖龗 +龔龖龗龞 龔龖龗龞 +龔龖龗龞龡 龔龖龗龞 +SELECT `C1`, LEFT(`C1`,5) FROM `T6`; +C1 LEFT(`C1`,5) + +龔 龔 +龔龖 龔龖 +龔龖龗 龔龖龗 +龔龖龗龞 龔龖龗龞 +龔龖龗龞龡 龔龖龗龞龡 +SELECT `C1`, LEFT(`C1`,0) FROM `T7`; +C1 LEFT(`C1`,0) +アイウエオ +アイウエ +アイウ +アイ +ア + +SELECT `C1`, LEFT(`C1`,1) FROM `T7`; +C1 LEFT(`C1`,1) +アイウエオ ア +アイウエ ア +アイウ ア +アイ ア +ア ア + +SELECT `C1`, LEFT(`C1`,2) FROM `T7`; +C1 LEFT(`C1`,2) +アイウエオ アイ +アイウエ アイ +アイウ アイ +アイ アイ +ア ア + +SELECT `C1`, LEFT(`C1`,3) FROM `T7`; +C1 LEFT(`C1`,3) +アイウエオ アイウ +アイウエ アイウ +アイウ アイウ +アイ アイ +ア ア + +SELECT `C1`, LEFT(`C1`,4) FROM `T7`; +C1 LEFT(`C1`,4) +アイウエオ アイウエ +アイウエ アイウエ +アイウ アイウ +アイ アイ +ア ア + +SELECT `C1`, LEFT(`C1`,5) FROM `T7`; +C1 LEFT(`C1`,5) +アイウエオ アイウエオ +アイウエ アイウエ +アイウ アイウ +アイ アイ +ア ア + +SELECT `C1`, LEFT(`C1`,0) FROM `T8`; +C1 LEFT(`C1`,0) +あいうえお +あいうえ +あいう +あい +あ + +SELECT `C1`, LEFT(`C1`,1) FROM `T8`; +C1 LEFT(`C1`,1) +あいうえお あ +あいうえ あ +あいう あ +あい あ +あ あ + +SELECT `C1`, LEFT(`C1`,2) FROM `T8`; +C1 LEFT(`C1`,2) +あいうえお あい +あいうえ あい +あいう あい +あい あい +あ あ + +SELECT `C1`, LEFT(`C1`,3) FROM `T8`; +C1 LEFT(`C1`,3) +あいうえお あいう +あいうえ あいう +あいう あいう +あい あい +あ あ + +SELECT `C1`, LEFT(`C1`,4) FROM `T8`; +C1 LEFT(`C1`,4) +あいうえお あいうえ +あいうえ あいうえ +あいう あいう +あい あい +あ あ + +SELECT `C1`, LEFT(`C1`,5) FROM `T8`; +C1 LEFT(`C1`,5) +あいうえお あいうえお +あいうえ あいうえ +あいう あいう +あい あい +あ あ + +SELECT `C1`, LEFT(`C1`,0) FROM `T9`; +C1 LEFT(`C1`,0) +龔龖龗龞龡 +龔龖龗龞 +龔龖龗 +龔龖 +龔 + +SELECT `C1`, LEFT(`C1`,1) FROM `T9`; +C1 LEFT(`C1`,1) +龔龖龗龞龡 龔 +龔龖龗龞 龔 +龔龖龗 龔 +龔龖 龔 +龔 龔 + +SELECT `C1`, LEFT(`C1`,2) FROM `T9`; +C1 LEFT(`C1`,2) +龔龖龗龞龡 龔龖 +龔龖龗龞 龔龖 +龔龖龗 龔龖 +龔龖 龔龖 +龔 龔 + +SELECT `C1`, LEFT(`C1`,3) FROM `T9`; +C1 LEFT(`C1`,3) +龔龖龗龞龡 龔龖龗 +龔龖龗龞 龔龖龗 +龔龖龗 龔龖龗 +龔龖 龔龖 +龔 龔 + +SELECT `C1`, LEFT(`C1`,4) FROM `T9`; +C1 LEFT(`C1`,4) +龔龖龗龞龡 龔龖龗龞 +龔龖龗龞 龔龖龗龞 +龔龖龗 龔龖龗 +龔龖 龔龖 +龔 龔 + +SELECT `C1`, LEFT(`C1`,5) FROM `T9`; +C1 LEFT(`C1`,5) +龔龖龗龞龡 龔龖龗龞龡 +龔龖龗龞 龔龖龗龞 +龔龖龗 龔龖龗 +龔龖 龔龖 +龔 龔 + +SELECT `C1`, LEFT(`C1`,0) FROM `T10`; +C1 LEFT(`C1`,0) +アイウエオ +アイウエ +アイウ +アイ +ア + +SELECT `C1`, LEFT(`C1`,1) FROM `T10`; +C1 LEFT(`C1`,1) +アイウエオ ア +アイウエ ア +アイウ ア +アイ ア +ア ア + +SELECT `C1`, LEFT(`C1`,2) FROM `T10`; +C1 LEFT(`C1`,2) +アイウエオ アイ +アイウエ アイ +アイウ アイ +アイ アイ +ア ア + +SELECT `C1`, LEFT(`C1`,3) FROM `T10`; +C1 LEFT(`C1`,3) +アイウエオ アイウ +アイウエ アイウ +アイウ アイウ +アイ アイ +ア ア + +SELECT `C1`, LEFT(`C1`,4) FROM `T10`; +C1 LEFT(`C1`,4) +アイウエオ アイウエ +アイウエ アイウエ +アイウ アイウ +アイ アイ +ア ア + +SELECT `C1`, LEFT(`C1`,5) FROM `T10`; +C1 LEFT(`C1`,5) +アイウエオ アイウエオ +アイウエ アイウエ +アイウ アイウ +アイ アイ +ア ア + +SELECT `C1`, LEFT(`C1`,0) FROM `T11`; +C1 LEFT(`C1`,0) +あいうえお +あいうえ +あいう +あい +あ + +SELECT `C1`, LEFT(`C1`,1) FROM `T11`; +C1 LEFT(`C1`,1) +あいうえお あ +あいうえ あ +あいう あ +あい あ +あ あ + +SELECT `C1`, LEFT(`C1`,2) FROM `T11`; +C1 LEFT(`C1`,2) +あいうえお あい +あいうえ あい +あいう あい +あい あい +あ あ + +SELECT `C1`, LEFT(`C1`,3) FROM `T11`; +C1 LEFT(`C1`,3) +あいうえお あいう +あいうえ あいう +あいう あいう +あい あい +あ あ + +SELECT `C1`, LEFT(`C1`,4) FROM `T11`; +C1 LEFT(`C1`,4) +あいうえお あいうえ +あいうえ あいうえ +あいう あいう +あい あい +あ あ + +SELECT `C1`, LEFT(`C1`,5) FROM `T11`; +C1 LEFT(`C1`,5) +あいうえお あいうえお +あいうえ あいうえ +あいう あいう +あい あい +あ あ + +SELECT `C1`, LEFT(`C1`,0) FROM `T12`; +C1 LEFT(`C1`,0) +龔龖龗龞龡 +龔龖龗龞 +龔龖龗 +龔龖 +龔 + +SELECT `C1`, LEFT(`C1`,1) FROM `T12`; +C1 LEFT(`C1`,1) +龔龖龗龞龡 龔 +龔龖龗龞 龔 +龔龖龗 龔 +龔龖 龔 +龔 龔 + +SELECT `C1`, LEFT(`C1`,2) FROM `T12`; +C1 LEFT(`C1`,2) +龔龖龗龞龡 龔龖 +龔龖龗龞 龔龖 +龔龖龗 龔龖 +龔龖 龔龖 +龔 龔 + +SELECT `C1`, LEFT(`C1`,3) FROM `T12`; +C1 LEFT(`C1`,3) +龔龖龗龞龡 龔龖龗 +龔龖龗龞 龔龖龗 +龔龖龗 龔龖龗 +龔龖 龔龖 +龔 龔 + +SELECT `C1`, LEFT(`C1`,4) FROM `T12`; +C1 LEFT(`C1`,4) +龔龖龗龞龡 龔龖龗龞 +龔龖龗龞 龔龖龗龞 +龔龖龗 龔龖龗 +龔龖 龔龖 +龔 龔 + +SELECT `C1`, LEFT(`C1`,5) FROM `T12`; +C1 LEFT(`C1`,5) +龔龖龗龞龡 龔龖龗龞龡 +龔龖龗龞 龔龖龗龞 +龔龖龗 龔龖龗 +龔龖 龔龖 +龔 龔 + +DROP TABLE `T1`; +DROP TABLE `T2`; +DROP TABLE `T3`; +DROP TABLE `T4`; +DROP TABLE `T5`; +DROP TABLE `T6`; +DROP TABLE `T7`; +DROP TABLE `T8`; +DROP TABLE `T9`; +DROP TABLE `T10`; +DROP TABLE `T11`; +DROP TABLE `T12`; diff --git a/mysql-test/suite/jp/r/jp_length_sjis.result b/mysql-test/suite/jp/r/jp_length_sjis.result new file mode 100755 index 00000000000..51055e09233 --- /dev/null +++ b/mysql-test/suite/jp/r/jp_length_sjis.result @@ -0,0 +1,146 @@ +drop table if exists `sP`; +drop table if exists `sQ`; +drop table if exists `sR`; +drop table if exists `sS`; +drop table if exists `sT`; +drop table if exists `sU`; +drop table if exists `sV`; +drop table if exists `sW`; +drop table if exists `sX`; +drop table if exists `sPO`; +drop table if exists `sPP`; +drop table if exists `sPQ`; +SET NAMES sjis; +SET character_set_database = sjis; +CREATE TABLE `sP` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sQ` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sR` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sS` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sT` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sU` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sV` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sW` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sX` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sPO` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +CREATE TABLE `sPP` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +CREATE TABLE `sPQ` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +INSERT INTO `sP` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sQ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sR` VALUES ('\\\\\'),('\\\\'),('\\\'),('\\'),('\'),(''); +INSERT INTO `sS` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sT` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sU` VALUES ('\\\\\'),('\\\\'),('\\\'),('\\'),('\'),(''); +INSERT INTO `sV` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sW` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sX` VALUES ('\\\\\'),('\\\\'),('\\\'),('\\'),('\'),(''); +INSERT INTO `sPO` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sPP` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sPQ` VALUES ('\\\\\'),('\\\\'),('\\\'),('\\'),('\'),(''); +SELECT `bP`, LENGTH(`bP`) FROM `sP`; +bP LENGTH(`bP`) + 0 + 1 + 2 + 3 + 4 + 5 +SELECT `bP`, LENGTH(`bP`) FROM `sQ`; +bP LENGTH(`bP`) + 0 + 2 + 4 + 6 + 8 + 10 +SELECT `bP`, LENGTH(`bP`) FROM `sR`; +bP LENGTH(`bP`) + 0 +\ 2 +\\ 4 +\\\ 6 +\\\\ 8 +\\\\\ 10 +SELECT `bP`, LENGTH(`bP`) FROM `sS`; +bP LENGTH(`bP`) + 0 + 1 + 2 + 3 + 4 + 5 +SELECT `bP`, LENGTH(`bP`) FROM `sT`; +bP LENGTH(`bP`) + 0 + 2 + 4 + 6 + 8 + 10 +SELECT `bP`, LENGTH(`bP`) FROM `sU`; +bP LENGTH(`bP`) + 0 +\ 2 +\\ 4 +\\\ 6 +\\\\ 8 +\\\\\ 10 +SELECT `bP`, LENGTH(`bP`) FROM `sV`; +bP LENGTH(`bP`) + 5 + 4 + 3 + 2 + 1 + 0 +SELECT `bP`, LENGTH(`bP`) FROM `sW`; +bP LENGTH(`bP`) + 10 + 8 + 6 + 4 + 2 + 0 +SELECT `bP`, LENGTH(`bP`) FROM `sX`; +bP LENGTH(`bP`) +\\\\\ 10 +\\\\ 8 +\\\ 6 +\\ 4 +\ 2 + 0 +SELECT `bP`, LENGTH(`bP`) FROM `sPO`; +bP LENGTH(`bP`) + 5 + 4 + 3 + 2 + 1 + 0 +SELECT `bP`, LENGTH(`bP`) FROM `sPP`; +bP LENGTH(`bP`) + 10 + 8 + 6 + 4 + 2 + 0 +SELECT `bP`, LENGTH(`bP`) FROM `sPQ`; +bP LENGTH(`bP`) +\\\\\ 10 +\\\\ 8 +\\\ 6 +\\ 4 +\ 2 + 0 +DROP TABLE `sP`; +DROP TABLE `sQ`; +DROP TABLE `sR`; +DROP TABLE `sS`; +DROP TABLE `sT`; +DROP TABLE `sU`; +DROP TABLE `sV`; +DROP TABLE `sW`; +DROP TABLE `sX`; +DROP TABLE `sPO`; +DROP TABLE `sPP`; +DROP TABLE `sPQ`; diff --git a/mysql-test/suite/jp/r/jp_length_ucs2.result b/mysql-test/suite/jp/r/jp_length_ucs2.result new file mode 100755 index 00000000000..569e012f7d3 --- /dev/null +++ b/mysql-test/suite/jp/r/jp_length_ucs2.result @@ -0,0 +1,147 @@ +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +SET NAMES ujis; +SET character_set_database = ucs2; +SET collation_connection = ucs2_general_ci; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +SELECT `ã`, LENGTH(`ã`) FROM `ԣ`; +ã LENGTH(`ã`) + 0 + 2 + 4 + 6 + 8 + 10 +SELECT `ã`, LENGTH(`ã`) FROM `ԣ`; +ã LENGTH(`ã`) + 0 + 2 + 4 + 6 + 8 + 10 +SELECT `ã`, LENGTH(`ã`) FROM `ԣ`; +ã LENGTH(`ã`) + 0 + 2 +܏ 4 +܏ݏ 6 +܏ݏޏ 8 +܏ݏޏߏ 10 +SELECT `ã`, LENGTH(`ã`) FROM `ԣ`; +ã LENGTH(`ã`) + 0 + 2 + 4 + 6 + 8 + 10 +SELECT `ã`, LENGTH(`ã`) FROM `ԣ`; +ã LENGTH(`ã`) + 0 + 2 + 4 + 6 + 8 + 10 +SELECT `ã`, LENGTH(`ã`) FROM `ԣ`; +ã LENGTH(`ã`) + 0 + 2 +܏ 4 +܏ݏ 6 +܏ݏޏ 8 +܏ݏޏߏ 10 +SELECT `ã`, LENGTH(`ã`) FROM `ԣ`; +ã LENGTH(`ã`) + 10 + 8 + 6 + 4 + 2 + 0 +SELECT `ã`, LENGTH(`ã`) FROM `ԣ`; +ã LENGTH(`ã`) + 10 + 8 + 6 + 4 + 2 + 0 +SELECT `ã`, LENGTH(`ã`) FROM `ԣ`; +ã LENGTH(`ã`) +܏ݏޏߏ 10 +܏ݏޏ 8 +܏ݏ 6 +܏ 4 + 2 + 0 +SELECT `ã`, LENGTH(`ã`) FROM `ԣ`; +ã LENGTH(`ã`) + 10 + 8 + 6 + 4 + 2 + 0 +SELECT `ã`, LENGTH(`ã`) FROM `ԣ`; +ã LENGTH(`ã`) + 10 + 8 + 6 + 4 + 2 + 0 +SELECT `ã`, LENGTH(`ã`) FROM `ԣ`; +ã LENGTH(`ã`) +܏ݏޏߏ 10 +܏ݏޏ 8 +܏ݏ 6 +܏ 4 + 2 + 0 +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; diff --git a/mysql-test/suite/jp/r/jp_length_ujis.result b/mysql-test/suite/jp/r/jp_length_ujis.result new file mode 100755 index 00000000000..288cc06a2ef --- /dev/null +++ b/mysql-test/suite/jp/r/jp_length_ujis.result @@ -0,0 +1,146 @@ +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +SET NAMES ujis; +SET character_set_database = ujis; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +SELECT `ã`, LENGTH(`ã`) FROM `ԣ`; +ã LENGTH(`ã`) + 0 + 2 + 4 + 6 + 8 + 10 +SELECT `ã`, LENGTH(`ã`) FROM `ԣ`; +ã LENGTH(`ã`) + 0 + 2 + 4 + 6 + 8 + 10 +SELECT `ã`, LENGTH(`ã`) FROM `ԣ`; +ã LENGTH(`ã`) + 0 + 3 +܏ 6 +܏ݏ 9 +܏ݏޏ 12 +܏ݏޏߏ 15 +SELECT `ã`, LENGTH(`ã`) FROM `ԣ`; +ã LENGTH(`ã`) + 0 + 2 + 4 + 6 + 8 + 10 +SELECT `ã`, LENGTH(`ã`) FROM `ԣ`; +ã LENGTH(`ã`) + 0 + 2 + 4 + 6 + 8 + 10 +SELECT `ã`, LENGTH(`ã`) FROM `ԣ`; +ã LENGTH(`ã`) + 0 + 3 +܏ 6 +܏ݏ 9 +܏ݏޏ 12 +܏ݏޏߏ 15 +SELECT `ã`, LENGTH(`ã`) FROM `ԣ`; +ã LENGTH(`ã`) + 10 + 8 + 6 + 4 + 2 + 0 +SELECT `ã`, LENGTH(`ã`) FROM `ԣ`; +ã LENGTH(`ã`) + 10 + 8 + 6 + 4 + 2 + 0 +SELECT `ã`, LENGTH(`ã`) FROM `ԣ`; +ã LENGTH(`ã`) +܏ݏޏߏ 15 +܏ݏޏ 12 +܏ݏ 9 +܏ 6 + 3 + 0 +SELECT `ã`, LENGTH(`ã`) FROM `ԣ`; +ã LENGTH(`ã`) + 10 + 8 + 6 + 4 + 2 + 0 +SELECT `ã`, LENGTH(`ã`) FROM `ԣ`; +ã LENGTH(`ã`) + 10 + 8 + 6 + 4 + 2 + 0 +SELECT `ã`, LENGTH(`ã`) FROM `ԣ`; +ã LENGTH(`ã`) +܏ݏޏߏ 15 +܏ݏޏ 12 +܏ݏ 9 +܏ 6 + 3 + 0 +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; diff --git a/mysql-test/suite/jp/r/jp_length_utf8.result b/mysql-test/suite/jp/r/jp_length_utf8.result new file mode 100755 index 00000000000..11b4c523053 --- /dev/null +++ b/mysql-test/suite/jp/r/jp_length_utf8.result @@ -0,0 +1,146 @@ +drop table if exists `T1`; +drop table if exists `T2`; +drop table if exists `T3`; +drop table if exists `T4`; +drop table if exists `T5`; +drop table if exists `T6`; +drop table if exists `T7`; +drop table if exists `T8`; +drop table if exists `T9`; +drop table if exists `T10`; +drop table if exists `T11`; +drop table if exists `T12`; +SET NAMES utf8; +SET character_set_database = utf8; +CREATE TABLE `T1` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T2` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T3` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T4` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T5` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T6` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T7` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T8` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T9` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T10` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +CREATE TABLE `T11` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +CREATE TABLE `T12` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +INSERT INTO `T1` VALUES ('アイウエオ'),('アイウエ'),('アイウ'),('アイ'),('ア'),(''); +INSERT INTO `T2` VALUES ('あいうえお'),('あいうえ'),('あいう'),('あい'),('あ'),(''); +INSERT INTO `T3` VALUES ('龔龖龗龞龡'),('龔龖龗龞'),('龔龖龗'),('龔龖'),('龔'),(''); +INSERT INTO `T4` VALUES ('アイウエオ'),('アイウエ'),('アイウ'),('アイ'),('ア'),(''); +INSERT INTO `T5` VALUES ('あいうえお'),('あいうえ'),('あいう'),('あい'),('あ'),(''); +INSERT INTO `T6` VALUES ('龔龖龗龞龡'),('龔龖龗龞'),('龔龖龗'),('龔龖'),('龔'),(''); +INSERT INTO `T7` VALUES ('アイウエオ'),('アイウエ'),('アイウ'),('アイ'),('ア'),(''); +INSERT INTO `T8` VALUES ('あいうえお'),('あいうえ'),('あいう'),('あい'),('あ'),(''); +INSERT INTO `T9` VALUES ('龔龖龗龞龡'),('龔龖龗龞'),('龔龖龗'),('龔龖'),('龔'),(''); +INSERT INTO `T10` VALUES ('アイウエオ'),('アイウエ'),('アイウ'),('アイ'),('ア'),(''); +INSERT INTO `T11` VALUES ('あいうえお'),('あいうえ'),('あいう'),('あい'),('あ'),(''); +INSERT INTO `T12` VALUES ('龔龖龗龞龡'),('龔龖龗龞'),('龔龖龗'),('龔龖'),('龔'),(''); +SELECT `C1`, LENGTH(`C1`) FROM `T1`; +C1 LENGTH(`C1`) + 0 +ア 3 +アイ 6 +アイウ 9 +アイウエ 12 +アイウエオ 15 +SELECT `C1`, LENGTH(`C1`) FROM `T2`; +C1 LENGTH(`C1`) + 0 +あ 3 +あい 6 +あいう 9 +あいうえ 12 +あいうえお 15 +SELECT `C1`, LENGTH(`C1`) FROM `T3`; +C1 LENGTH(`C1`) + 0 +龔 3 +龔龖 6 +龔龖龗 9 +龔龖龗龞 12 +龔龖龗龞龡 15 +SELECT `C1`, LENGTH(`C1`) FROM `T4`; +C1 LENGTH(`C1`) + 0 +ア 3 +アイ 6 +アイウ 9 +アイウエ 12 +アイウエオ 15 +SELECT `C1`, LENGTH(`C1`) FROM `T5`; +C1 LENGTH(`C1`) + 0 +あ 3 +あい 6 +あいう 9 +あいうえ 12 +あいうえお 15 +SELECT `C1`, LENGTH(`C1`) FROM `T6`; +C1 LENGTH(`C1`) + 0 +龔 3 +龔龖 6 +龔龖龗 9 +龔龖龗龞 12 +龔龖龗龞龡 15 +SELECT `C1`, LENGTH(`C1`) FROM `T7`; +C1 LENGTH(`C1`) +アイウエオ 15 +アイウエ 12 +アイウ 9 +アイ 6 +ア 3 + 0 +SELECT `C1`, LENGTH(`C1`) FROM `T8`; +C1 LENGTH(`C1`) +あいうえお 15 +あいうえ 12 +あいう 9 +あい 6 +あ 3 + 0 +SELECT `C1`, LENGTH(`C1`) FROM `T9`; +C1 LENGTH(`C1`) +龔龖龗龞龡 15 +龔龖龗龞 12 +龔龖龗 9 +龔龖 6 +龔 3 + 0 +SELECT `C1`, LENGTH(`C1`) FROM `T10`; +C1 LENGTH(`C1`) +アイウエオ 15 +アイウエ 12 +アイウ 9 +アイ 6 +ア 3 + 0 +SELECT `C1`, LENGTH(`C1`) FROM `T11`; +C1 LENGTH(`C1`) +あいうえお 15 +あいうえ 12 +あいう 9 +あい 6 +あ 3 + 0 +SELECT `C1`, LENGTH(`C1`) FROM `T12`; +C1 LENGTH(`C1`) +龔龖龗龞龡 15 +龔龖龗龞 12 +龔龖龗 9 +龔龖 6 +龔 3 + 0 +DROP TABLE `T1`; +DROP TABLE `T2`; +DROP TABLE `T3`; +DROP TABLE `T4`; +DROP TABLE `T5`; +DROP TABLE `T6`; +DROP TABLE `T7`; +DROP TABLE `T8`; +DROP TABLE `T9`; +DROP TABLE `T10`; +DROP TABLE `T11`; +DROP TABLE `T12`; diff --git a/mysql-test/suite/jp/r/jp_like_sjis.result b/mysql-test/suite/jp/r/jp_like_sjis.result new file mode 100755 index 00000000000..a8145fb08f0 --- /dev/null +++ b/mysql-test/suite/jp/r/jp_like_sjis.result @@ -0,0 +1,322 @@ +drop table if exists `sP`; +drop table if exists `sQ`; +drop table if exists `sR`; +drop table if exists `sS`; +drop table if exists `sT`; +drop table if exists `sU`; +drop table if exists `sV`; +drop table if exists `sW`; +drop table if exists `sX`; +drop table if exists `sPO`; +drop table if exists `sPP`; +drop table if exists `sPQ`; +SET NAMES sjis; +SET character_set_database = sjis; +CREATE TABLE `sP` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sQ` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sR` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sS` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sT` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sU` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sV` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sW` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sX` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sPO` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +CREATE TABLE `sPP` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +CREATE TABLE `sPQ` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_sjis.dat' INTO TABLE `sP`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_sjis.dat' INTO TABLE `sQ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_sjis2.dat' INTO TABLE `sR`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_sjis.dat' INTO TABLE `sS`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_sjis.dat' INTO TABLE `sT`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_sjis2.dat' INTO TABLE `sU`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_sjis.dat' INTO TABLE `sV`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_sjis.dat' INTO TABLE `sW`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_sjis2.dat' INTO TABLE `sX`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_sjis.dat' INTO TABLE `sPO`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_sjis.dat' INTO TABLE `sPP`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_sjis2.dat' INTO TABLE `sPQ`; +SELECT * FROM `sP` WHERE `bP` LIKE ' %'; +bP + !"#$%&'()*+,-./ + +SELECT * FROM `sP` WHERE `bP` LIKE '% %'; +bP + !"#$%&'()*+,-./ + +SELECT * FROM `sP` WHERE `bP` LIKE '% '; +bP +SELECT * FROM `sP` WHERE `bP` LIKE '%'; +bP + +SELECT * FROM `sP` WHERE `bP` LIKE '%%'; +bP + +SELECT * FROM `sP` WHERE `bP` LIKE '%'; +bP + +SELECT * FROM `sP` WHERE `bP` LIKE '%'; +bP + +SELECT * FROM `sP` WHERE `bP` LIKE '%%'; +bP + +SELECT * FROM `sP` WHERE `bP` LIKE '%'; +bP + +SELECT * FROM `sQ` WHERE `bP` LIKE '@%'; +bP +@@ABCDEFGHIJKLMNOPQR +SELECT * FROM `sQ` WHERE `bP` LIKE '%@%'; +bP +@@ABCDEFGHIJKLMNOPQR +EEEEEEEEEE@ +SELECT * FROM `sQ` WHERE `bP` LIKE '%@'; +bP +EEEEEEEEEE@ +SELECT * FROM `sQ` WHERE `bP` LIKE '%'; +bP +ƂǂȂɂʂ˂̂͂΂ςЂт҂ӂԂՂւׂ؂ +SELECT * FROM `sQ` WHERE `bP` LIKE '%%'; +bP +E +SELECT * FROM `sQ` WHERE `bP` LIKE '%'; +bP +ڂۂ܂݂ނ߂ +SELECT * FROM `sQ` WHERE `bP` LIKE 'E%'; +bP +E +SELECT * FROM `sQ` WHERE `bP` LIKE '%E%'; +bP +E +SELECT * FROM `sQ` WHERE `bP` LIKE '%E'; +bP +E +SELECT * FROM `sR` WHERE `bP` LIKE '\%'; +bP +\\\\\\\\\\\\\\\\\\\\ +SELECT * FROM `sR` WHERE `bP` LIKE '%\%'; +bP +\\\\\\\\\\\\\\\\\\\\ +SELECT * FROM `sR` WHERE `bP` LIKE '%\'; +bP +\\\\\\\\\\\\\\\\\\\\ +SELECT * FROM `sR` WHERE `bP` LIKE '\\\\\\\\\\\\\\\\\\\\%'; +bP +\\\\\\\\\\\\\\\\\\\\ +SELECT * FROM `sR` WHERE `bP` LIKE '%\\\\\\\\\\\\\\\\\\\\%'; +bP +\\\\\\\\\\\\\\\\\\\\ +SELECT * FROM `sR` WHERE `bP` LIKE '%\\\\\\\\\\\\\\\\\\\\'; +bP +\\\\\\\\\\\\\\\\\\\\ +SELECT * FROM `sS` WHERE `bP` LIKE ' %'; +bP + !"#$%&'()*+,-./ + +SELECT * FROM `sS` WHERE `bP` LIKE '% %'; +bP + !"#$%&'()*+,-./ + +SELECT * FROM `sS` WHERE `bP` LIKE '% '; +bP +SELECT * FROM `sS` WHERE `bP` LIKE '%'; +bP + +SELECT * FROM `sS` WHERE `bP` LIKE '%%'; +bP + +SELECT * FROM `sS` WHERE `bP` LIKE '%'; +bP + +SELECT * FROM `sS` WHERE `bP` LIKE '%'; +bP + +SELECT * FROM `sS` WHERE `bP` LIKE '%%'; +bP + +SELECT * FROM `sS` WHERE `bP` LIKE '%'; +bP + +SELECT * FROM `sT` WHERE `bP` LIKE '@%'; +bP +@@ABCDEFGHIJKLMNOPQR +SELECT * FROM `sT` WHERE `bP` LIKE '%@%'; +bP +@@ABCDEFGHIJKLMNOPQR +EEEEEEEEEE@ +SELECT * FROM `sT` WHERE `bP` LIKE '%@'; +bP +EEEEEEEEEE@ +SELECT * FROM `sT` WHERE `bP` LIKE '%'; +bP +ƂǂȂɂʂ˂̂͂΂ςЂт҂ӂԂՂւׂ؂ +SELECT * FROM `sT` WHERE `bP` LIKE '%%'; +bP +E +SELECT * FROM `sT` WHERE `bP` LIKE '%'; +bP +ڂۂ܂݂ނ߂ +SELECT * FROM `sT` WHERE `bP` LIKE 'E%'; +bP +E +SELECT * FROM `sT` WHERE `bP` LIKE '%E%'; +bP +E +SELECT * FROM `sT` WHERE `bP` LIKE '%E'; +bP +E +SELECT * FROM `sU` WHERE `bP` LIKE '\%'; +bP +\\\\\\\\\\\\\\\\\\\\ +SELECT * FROM `sU` WHERE `bP` LIKE '%\%'; +bP +\\\\\\\\\\\\\\\\\\\\ +SELECT * FROM `sU` WHERE `bP` LIKE '%\'; +bP +\\\\\\\\\\\\\\\\\\\\ +SELECT * FROM `sU` WHERE `bP` LIKE '\\\\\\\\\\\\\\\\\\\\%'; +bP +\\\\\\\\\\\\\\\\\\\\ +SELECT * FROM `sU` WHERE `bP` LIKE '%\\\\\\\\\\\\\\\\\\\\%'; +bP +\\\\\\\\\\\\\\\\\\\\ +SELECT * FROM `sU` WHERE `bP` LIKE '%\\\\\\\\\\\\\\\\\\\\'; +bP +\\\\\\\\\\\\\\\\\\\\ +SELECT * FROM `sV` WHERE `bP` LIKE ' %'; +bP + !"#$%&'()*+,-./ + +SELECT * FROM `sV` WHERE `bP` LIKE '% %'; +bP + !"#$%&'()*+,-./ + +SELECT * FROM `sV` WHERE `bP` LIKE '% '; +bP +SELECT * FROM `sV` WHERE `bP` LIKE '%'; +bP + +SELECT * FROM `sV` WHERE `bP` LIKE '%%'; +bP + +SELECT * FROM `sV` WHERE `bP` LIKE '%'; +bP + +SELECT * FROM `sV` WHERE `bP` LIKE '%'; +bP + +SELECT * FROM `sV` WHERE `bP` LIKE '%%'; +bP + +SELECT * FROM `sV` WHERE `bP` LIKE '%'; +bP + +SELECT * FROM `sW` WHERE `bP` LIKE '@%'; +bP +@@ABCDEFGHIJKLMNOPQR +SELECT * FROM `sW` WHERE `bP` LIKE '%@%'; +bP +@@ABCDEFGHIJKLMNOPQR +EEEEEEEEEE@ +SELECT * FROM `sW` WHERE `bP` LIKE '%@'; +bP +EEEEEEEEEE@ +SELECT * FROM `sW` WHERE `bP` LIKE '%'; +bP +ƂǂȂɂʂ˂̂͂΂ςЂт҂ӂԂՂւׂ؂ +SELECT * FROM `sW` WHERE `bP` LIKE '%%'; +bP +E +SELECT * FROM `sW` WHERE `bP` LIKE '%'; +bP +ڂۂ܂݂ނ߂ +SELECT * FROM `sW` WHERE `bP` LIKE 'E%'; +bP +E +SELECT * FROM `sW` WHERE `bP` LIKE '%E%'; +bP +E +SELECT * FROM `sW` WHERE `bP` LIKE '%E'; +bP +E +SELECT * FROM `sX` WHERE `bP` LIKE '\%'; +bP +\\\\\\\\\\\\\\\\\\\\ +SELECT * FROM `sX` WHERE `bP` LIKE '%\%'; +bP +\\\\\\\\\\\\\\\\\\\\ +SELECT * FROM `sX` WHERE `bP` LIKE '%\'; +bP +\\\\\\\\\\\\\\\\\\\\ +SELECT * FROM `sX` WHERE `bP` LIKE '\\\\\\\\\\\\\\\\\\\\%'; +bP +\\\\\\\\\\\\\\\\\\\\ +SELECT * FROM `sX` WHERE `bP` LIKE '%\\\\\\\\\\\\\\\\\\\\%'; +bP +\\\\\\\\\\\\\\\\\\\\ +SELECT * FROM `sX` WHERE `bP` LIKE '%\\\\\\\\\\\\\\\\\\\\'; +bP +\\\\\\\\\\\\\\\\\\\\ +SELECT * FROM `sPO` WHERE `bP` LIKE ' %'; +bP + !"#$%&'()*+,-./ + +SELECT * FROM `sPO` WHERE `bP` LIKE '% %'; +bP + !"#$%&'()*+,-./ + +SELECT * FROM `sPO` WHERE `bP` LIKE '% '; +bP +SELECT * FROM `sPO` WHERE `bP` LIKE '%'; +bP + +SELECT * FROM `sPO` WHERE `bP` LIKE '%%'; +bP + +SELECT * FROM `sPO` WHERE `bP` LIKE '%'; +bP + +SELECT * FROM `sPO` WHERE `bP` LIKE '%'; +bP + +SELECT * FROM `sPP` WHERE `bP` LIKE '@%'; +bP +@@ABCDEFGHIJKLMNOPQR +SELECT * FROM `sPP` WHERE `bP` LIKE '%@%'; +bP +@@ABCDEFGHIJKLMNOPQR +EEEEEEEEEE@ +SELECT * FROM `sPP` WHERE `bP` LIKE '%@'; +bP +EEEEEEEEEE@ +SELECT * FROM `sPP` WHERE `bP` LIKE '%'; +bP +ƂǂȂɂʂ˂̂͂΂ςЂт҂ӂԂՂւׂ؂ +SELECT * FROM `sPP` WHERE `bP` LIKE '%%'; +bP +E +SELECT * FROM `sPP` WHERE `bP` LIKE '%'; +bP +ڂۂ܂݂ނ߂ +SELECT * FROM `sPQ` WHERE `bP` LIKE '\%'; +bP +\\\\\\\\\\\\\\\\\\\\ +SELECT * FROM `sPQ` WHERE `bP` LIKE '%\%'; +bP +\\\\\\\\\\\\\\\\\\\\ +SELECT * FROM `sPQ` WHERE `bP` LIKE '%\'; +bP +\\\\\\\\\\\\\\\\\\\\ +DROP TABLE `sP`; +DROP TABLE `sQ`; +DROP TABLE `sR`; +DROP TABLE `sS`; +DROP TABLE `sT`; +DROP TABLE `sU`; +DROP TABLE `sV`; +DROP TABLE `sW`; +DROP TABLE `sX`; +DROP TABLE `sPO`; +DROP TABLE `sPP`; +DROP TABLE `sPQ`; diff --git a/mysql-test/suite/jp/r/jp_like_ucs2.result b/mysql-test/suite/jp/r/jp_like_ucs2.result new file mode 100755 index 00000000000..229ef12a118 --- /dev/null +++ b/mysql-test/suite/jp/r/jp_like_ucs2.result @@ -0,0 +1,419 @@ +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +SET NAMES ujis; +SET character_set_database = ucs2; +SET collation_connection = ucs2_general_ci; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +INSERT INTO `ԣ` VALUES +('PQRSTUVWXYZ[\\]^_') +,(' ') +,('') +,('ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ') +,('ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ'); +INSERT INTO `ԣ` VALUES +('') +,('¡áġšơ') +,('ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ') +,('') +,('Ȥɤʤˤ̤ͤΤϤФѤҤӤԤդ֤פؤ٤ڤ') +,('ܤݤޤߤ') +,('') +,('') +,('СТУФХЦЧШЩЪЫЬЭЮЯабвг') +,(''); +INSERT INTO `ԣ` VALUES +('Ïġ') +,('ÏďŏƏ') +,('ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ') +,('܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰') +,('') +,('ÏďŏƏ') +,('ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ'); +INSERT INTO `ԣ` VALUES +('PQRSTUVWXYZ[\\]^_') +,(' ') +,('') +,('ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ') +,('ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ'); +INSERT INTO `ԣ` VALUES +('') +,('¡áġšơ') +,('ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ') +,('') +,('Ȥɤʤˤ̤ͤΤϤФѤҤӤԤդ֤פؤ٤ڤ') +,('ܤݤޤߤ') +,('') +,('') +,('СТУФХЦЧШЩЪЫЬЭЮЯабвг') +,(''); +INSERT INTO `ԣ` VALUES +('Ïġ') +,('ÏďŏƏ') +,('ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ') +,('܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰') +,('') +,('ÏďŏƏ') +,('ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ'); +INSERT INTO `ԣ` VALUES +('PQRSTUVWXYZ[\\]^_') +,(' ') +,('') +,('ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ') +,('ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ'); +INSERT INTO `ԣ` VALUES +('') +,('¡áġšơ') +,('ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ') +,('') +,('Ȥɤʤˤ̤ͤΤϤФѤҤӤԤդ֤פؤ٤ڤ') +,('ܤݤޤߤ') +,('') +,('') +,('СТУФХЦЧШЩЪЫЬЭЮЯабвг') +,(''); +INSERT INTO `ԣ` VALUES +('Ïġ') +,('ÏďŏƏ') +,('ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ') +,('܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰') +,('') +,('ÏďŏƏ') +,('ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ'); +INSERT INTO `ԣ` VALUES +('PQRSTUVWXYZ[\\]^_') +,(' ') +,('') +,('ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ') +,('ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ'); +INSERT INTO `ԣ` VALUES +('') +,('¡áġšơ') +,('ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ') +,('') +,('Ȥɤʤˤ̤ͤΤϤФѤҤӤԤդ֤פؤ٤ڤ') +,('ܤݤޤߤ') +,('') +,('') +,('СТУФХЦЧШЩЪЫЬЭЮЯабвг') +,(''); +INSERT INTO `ԣ` VALUES +('Ïġ') +,('ÏďŏƏ') +,('ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ') +,('܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰') +,('') +,('ÏďŏƏ') +,('ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ'); +SELECT * FROM `ԣ` WHERE `ã` LIKE ' %'; +ã + +SELECT * FROM `ԣ` WHERE `ã` LIKE '% %'; +ã + +SELECT * FROM `ԣ` WHERE `ã` LIKE '% '; +ã +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã +ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ +SELECT * FROM `ԣ` WHERE `ã` LIKE '%׎%'; +ã +ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã + +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã + +SELECT * FROM `ԣ` WHERE `ã` LIKE '%%'; +ã + +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã + +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã + +SELECT * FROM `ԣ` WHERE `ã` LIKE '%%'; +ã + +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã +Ȥɤʤˤ̤ͤΤϤФѤҤӤԤդ֤פؤ٤ڤ +SELECT * FROM `ԣ` WHERE `ã` LIKE '%%'; +ã + +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã +ܤݤޤߤ +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã + +SELECT * FROM `ԣ` WHERE `ã` LIKE '%%'; +ã + +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã + +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã +ÏďŏƏ +SELECT * FROM `ԣ` WHERE `ã` LIKE '%%'; +ã +ÏďŏƏ +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã +ÏďŏƏ +SELECT * FROM `ԣ` WHERE `ã` LIKE 'ÏďŏƏ%'; +ã +ÏďŏƏ +SELECT * FROM `ԣ` WHERE `ã` LIKE '%ÏďŏƏ%'; +ã +ÏďŏƏ +SELECT * FROM `ԣ` WHERE `ã` LIKE '%ÏďŏƏ'; +ã +ÏďŏƏ +SELECT * FROM `ԣ` WHERE `ã` LIKE ' %'; +ã + +SELECT * FROM `ԣ` WHERE `ã` LIKE '% %'; +ã + +SELECT * FROM `ԣ` WHERE `ã` LIKE '% '; +ã +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã +ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ +SELECT * FROM `ԣ` WHERE `ã` LIKE '%׎%'; +ã +ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã + +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã + +SELECT * FROM `ԣ` WHERE `ã` LIKE '%%'; +ã + +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã + +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã + +SELECT * FROM `ԣ` WHERE `ã` LIKE '%%'; +ã + +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã +Ȥɤʤˤ̤ͤΤϤФѤҤӤԤդ֤פؤ٤ڤ +SELECT * FROM `ԣ` WHERE `ã` LIKE '%%'; +ã + +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã +ܤݤޤߤ +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã + +SELECT * FROM `ԣ` WHERE `ã` LIKE '%%'; +ã + +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã + +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã +ÏďŏƏ +SELECT * FROM `ԣ` WHERE `ã` LIKE '%%'; +ã +ÏďŏƏ +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã +ÏďŏƏ +SELECT * FROM `ԣ` WHERE `ã` LIKE 'ÏďŏƏ%'; +ã +ÏďŏƏ +SELECT * FROM `ԣ` WHERE `ã` LIKE '%ÏďŏƏ%'; +ã +ÏďŏƏ +SELECT * FROM `ԣ` WHERE `ã` LIKE '%ÏďŏƏ'; +ã +ÏďŏƏ +SELECT * FROM `ԣ` WHERE `ã` LIKE ' %'; +ã + +SELECT * FROM `ԣ` WHERE `ã` LIKE '% %'; +ã + +SELECT * FROM `ԣ` WHERE `ã` LIKE '% '; +ã +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã +ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ +SELECT * FROM `ԣ` WHERE `ã` LIKE '%׎%'; +ã +ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã + +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã + +SELECT * FROM `ԣ` WHERE `ã` LIKE '%%'; +ã + +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã + +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã + +SELECT * FROM `ԣ` WHERE `ã` LIKE '%%'; +ã + +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã +Ȥɤʤˤ̤ͤΤϤФѤҤӤԤդ֤פؤ٤ڤ +SELECT * FROM `ԣ` WHERE `ã` LIKE '%%'; +ã + +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã +ܤݤޤߤ +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã + +SELECT * FROM `ԣ` WHERE `ã` LIKE '%%'; +ã + +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã + +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã +ÏďŏƏ +SELECT * FROM `ԣ` WHERE `ã` LIKE '%%'; +ã +ÏďŏƏ +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã +ÏďŏƏ +SELECT * FROM `ԣ` WHERE `ã` LIKE 'ÏďŏƏ%'; +ã +ÏďŏƏ +SELECT * FROM `ԣ` WHERE `ã` LIKE '%ÏďŏƏ%'; +ã +ÏďŏƏ +SELECT * FROM `ԣ` WHERE `ã` LIKE '%ÏďŏƏ'; +ã +ÏďŏƏ +SELECT * FROM `ԣ` WHERE `ã` LIKE ' %'; +ã + +SELECT * FROM `ԣ` WHERE `ã` LIKE '% %'; +ã + +SELECT * FROM `ԣ` WHERE `ã` LIKE '% '; +ã +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã +ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ +SELECT * FROM `ԣ` WHERE `ã` LIKE '%׎%'; +ã +ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã + +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã + +SELECT * FROM `ԣ` WHERE `ã` LIKE '%%'; +ã + +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã + +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã + +SELECT * FROM `ԣ` WHERE `ã` LIKE '%%'; +ã + +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã +Ȥɤʤˤ̤ͤΤϤФѤҤӤԤդ֤פؤ٤ڤ +SELECT * FROM `ԣ` WHERE `ã` LIKE '%%'; +ã + +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã +ܤݤޤߤ +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã + +SELECT * FROM `ԣ` WHERE `ã` LIKE '%%'; +ã + +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã + +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã +ÏďŏƏ +SELECT * FROM `ԣ` WHERE `ã` LIKE '%%'; +ã +ÏďŏƏ +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã +ÏďŏƏ +SELECT * FROM `ԣ` WHERE `ã` LIKE 'ÏďŏƏ%'; +ã +ÏďŏƏ +SELECT * FROM `ԣ` WHERE `ã` LIKE '%ÏďŏƏ%'; +ã +ÏďŏƏ +SELECT * FROM `ԣ` WHERE `ã` LIKE '%ÏďŏƏ'; +ã +ÏďŏƏ +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; diff --git a/mysql-test/suite/jp/r/jp_like_ujis.result b/mysql-test/suite/jp/r/jp_like_ujis.result new file mode 100755 index 00000000000..5d623df0384 --- /dev/null +++ b/mysql-test/suite/jp/r/jp_like_ujis.result @@ -0,0 +1,322 @@ +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +SET NAMES ujis; +SET character_set_database = ujis; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_ujis.dat' INTO TABLE `ԣ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_ujis.dat' INTO TABLE `ԣ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0212_ujis.dat' INTO TABLE `ԣ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_ujis.dat' INTO TABLE `ԣ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_ujis.dat' INTO TABLE `ԣ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0212_ujis.dat' INTO TABLE `ԣ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_ujis.dat' INTO TABLE `ԣ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_ujis.dat' INTO TABLE `ԣ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0212_ujis.dat' INTO TABLE `ԣ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_ujis.dat' INTO TABLE `ԣ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_ujis.dat' INTO TABLE `ԣ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0212_ujis.dat' INTO TABLE `ԣ`; +SELECT * FROM `ԣ` WHERE `ã` LIKE ' %'; +ã + !"#$%&'()*+,-./ + +SELECT * FROM `ԣ` WHERE `ã` LIKE '% %'; +ã + !"#$%&'()*+,-./ + +SELECT * FROM `ԣ` WHERE `ã` LIKE '% '; +ã +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã +ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ +SELECT * FROM `ԣ` WHERE `ã` LIKE '%׎%'; +ã +ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã + +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã + +SELECT * FROM `ԣ` WHERE `ã` LIKE '%%'; +ã + +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã + +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã + +SELECT * FROM `ԣ` WHERE `ã` LIKE '%%'; +ã + + +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã + +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã +Ȥɤʤˤ̤ͤΤϤФѤҤӤԤդ֤פؤ٤ڤ +SELECT * FROM `ԣ` WHERE `ã` LIKE '%%'; +ã + +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã +ܤݤޤߤ +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã + +SELECT * FROM `ԣ` WHERE `ã` LIKE '%%'; +ã + +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã + +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã +ÏďŏƏ +SELECT * FROM `ԣ` WHERE `ã` LIKE '%%'; +ã +ÏďŏƏ +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã +ÏďŏƏ +SELECT * FROM `ԣ` WHERE `ã` LIKE 'ÏďŏƏ%'; +ã +ÏďŏƏ +SELECT * FROM `ԣ` WHERE `ã` LIKE '%ÏďŏƏ%'; +ã +ÏďŏƏ +SELECT * FROM `ԣ` WHERE `ã` LIKE '%ÏďŏƏ'; +ã +ÏďŏƏ +SELECT * FROM `ԣ` WHERE `ã` LIKE ' %'; +ã + !"#$%&'()*+,-./ + +SELECT * FROM `ԣ` WHERE `ã` LIKE '% %'; +ã + !"#$%&'()*+,-./ + +SELECT * FROM `ԣ` WHERE `ã` LIKE '% '; +ã +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã +ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ +SELECT * FROM `ԣ` WHERE `ã` LIKE '%׎%'; +ã +ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã + +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã + +SELECT * FROM `ԣ` WHERE `ã` LIKE '%%'; +ã + +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã + +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã + +SELECT * FROM `ԣ` WHERE `ã` LIKE '%%'; +ã + + +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã + +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã +Ȥɤʤˤ̤ͤΤϤФѤҤӤԤդ֤פؤ٤ڤ +SELECT * FROM `ԣ` WHERE `ã` LIKE '%%'; +ã + +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã +ܤݤޤߤ +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã + +SELECT * FROM `ԣ` WHERE `ã` LIKE '%%'; +ã + +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã + +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã +ÏďŏƏ +SELECT * FROM `ԣ` WHERE `ã` LIKE '%%'; +ã +ÏďŏƏ +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã +ÏďŏƏ +SELECT * FROM `ԣ` WHERE `ã` LIKE 'ÏďŏƏ%'; +ã +ÏďŏƏ +SELECT * FROM `ԣ` WHERE `ã` LIKE '%ÏďŏƏ%'; +ã +ÏďŏƏ +SELECT * FROM `ԣ` WHERE `ã` LIKE '%ÏďŏƏ'; +ã +ÏďŏƏ +SELECT * FROM `ԣ` WHERE `ã` LIKE ' %'; +ã + !"#$%&'()*+,-./ + +SELECT * FROM `ԣ` WHERE `ã` LIKE '% %'; +ã + !"#$%&'()*+,-./ + +SELECT * FROM `ԣ` WHERE `ã` LIKE '% '; +ã +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã +ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ +SELECT * FROM `ԣ` WHERE `ã` LIKE '%׎%'; +ã +ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã + +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã + +SELECT * FROM `ԣ` WHERE `ã` LIKE '%%'; +ã + +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã + +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã + +SELECT * FROM `ԣ` WHERE `ã` LIKE '%%'; +ã + + +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã + +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã +Ȥɤʤˤ̤ͤΤϤФѤҤӤԤդ֤פؤ٤ڤ +SELECT * FROM `ԣ` WHERE `ã` LIKE '%%'; +ã + +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã +ܤݤޤߤ +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã + +SELECT * FROM `ԣ` WHERE `ã` LIKE '%%'; +ã + +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã + +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã +ÏďŏƏ +SELECT * FROM `ԣ` WHERE `ã` LIKE '%%'; +ã +ÏďŏƏ +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã +ÏďŏƏ +SELECT * FROM `ԣ` WHERE `ã` LIKE 'ÏďŏƏ%'; +ã +ÏďŏƏ +SELECT * FROM `ԣ` WHERE `ã` LIKE '%ÏďŏƏ%'; +ã +ÏďŏƏ +SELECT * FROM `ԣ` WHERE `ã` LIKE '%ÏďŏƏ'; +ã +ÏďŏƏ +SELECT * FROM `ԣ` WHERE `ã` LIKE ' %'; +ã + !"#$%&'()*+,-./ + +SELECT * FROM `ԣ` WHERE `ã` LIKE '% %'; +ã + !"#$%&'()*+,-./ + +SELECT * FROM `ԣ` WHERE `ã` LIKE '% '; +ã +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã +ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ +SELECT * FROM `ԣ` WHERE `ã` LIKE '%׎%'; +ã +ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã + +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã + +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã + +SELECT * FROM `ԣ` WHERE `ã` LIKE '%%'; +ã + + +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã + +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã +Ȥɤʤˤ̤ͤΤϤФѤҤӤԤդ֤פؤ٤ڤ +SELECT * FROM `ԣ` WHERE `ã` LIKE '%%'; +ã + +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã +ܤݤޤߤ +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã +ÏďŏƏ +SELECT * FROM `ԣ` WHERE `ã` LIKE '%%'; +ã +ÏďŏƏ +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +ã +ÏďŏƏ +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; diff --git a/mysql-test/suite/jp/r/jp_like_utf8.result b/mysql-test/suite/jp/r/jp_like_utf8.result new file mode 100755 index 00000000000..bf48da79951 --- /dev/null +++ b/mysql-test/suite/jp/r/jp_like_utf8.result @@ -0,0 +1,319 @@ +drop table if exists `T1`; +drop table if exists `T2`; +drop table if exists `T3`; +drop table if exists `T4`; +drop table if exists `T5`; +drop table if exists `T6`; +drop table if exists `T7`; +drop table if exists `T8`; +drop table if exists `T9`; +drop table if exists `T10`; +drop table if exists `T11`; +drop table if exists `T12`; +SET NAMES utf8; +SET character_set_database = utf8; +CREATE TABLE `T1` (`C1` char(20), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T2` (`C1` char(20), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T3` (`C1` char(20), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T4` (`C1` char(20), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T5` (`C1` char(20), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T6` (`C1` char(20), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T7` (`C1` char(20), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T8` (`C1` char(20), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T9` (`C1` char(20), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T10` (`C1` char(20), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +CREATE TABLE `T11` (`C1` char(20), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +CREATE TABLE `T12` (`C1` char(20), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_utf8.dat' INTO TABLE `T1`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_utf8.dat' INTO TABLE `T2`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0212_utf8.dat' INTO TABLE `T3`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_utf8.dat' INTO TABLE `T4`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_utf8.dat' INTO TABLE `T5`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0212_utf8.dat' INTO TABLE `T6`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_utf8.dat' INTO TABLE `T7`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_utf8.dat' INTO TABLE `T8`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0212_utf8.dat' INTO TABLE `T9`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_utf8.dat' INTO TABLE `T10`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_utf8.dat' INTO TABLE `T11`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0212_utf8.dat' INTO TABLE `T12`; +SELECT * FROM `T1` WHERE `C1` LIKE ' %'; +C1 + !"#$%&'()*+,-./ + 。「」、・ヲァィゥェォャュョッ +SELECT * FROM `T1` WHERE `C1` LIKE '% %'; +C1 + !"#$%&'()*+,-./ + 。「」、・ヲァィゥェォャュョッ +SELECT * FROM `T1` WHERE `C1` LIKE '% '; +C1 +SELECT * FROM `T1` WHERE `C1` LIKE 'タ%'; +C1 +タチツテトナニヌネノハヒフヘホマ +SELECT * FROM `T1` WHERE `C1` LIKE '%ラリ%'; +C1 +ミムメモヤユヨラリルレロワン゙゚ +SELECT * FROM `T1` WHERE `C1` LIKE '%ソ'; +C1 +ーアイウエオカキクケコサシスセソ +SELECT * FROM `T1` WHERE `C1` LIKE 'ーアイウエオカキクケコサシスセソ%'; +C1 +ーアイウエオカキクケコサシスセソ +SELECT * FROM `T1` WHERE `C1` LIKE '%ーアイウエオカキクケコサシスセソ%'; +C1 +ーアイウエオカキクケコサシスセソ +SELECT * FROM `T1` WHERE `C1` LIKE '%ーアイウエオカキクケコサシスセソ'; +C1 +ーアイウエオカキクケコサシスセソ +SELECT * FROM `T2` WHERE `C1` LIKE ' %'; +C1 +  、。,.・:;?!゛゜´`¨^ ̄_ヽ +SELECT * FROM `T2` WHERE `C1` LIKE '% %'; +C1 +  、。,.・:;?!゛゜´`¨^ ̄_ヽ +・・ʼn♯♭♪†‡¶・・・・◯・・・・  +SELECT * FROM `T2` WHERE `C1` LIKE '% '; +C1 +・・ʼn♯♭♪†‡¶・・・・◯・・・・  +SELECT * FROM `T2` WHERE `C1` LIKE 'と%'; +C1 +とどなにぬねのはばぱひびぴふぶぷへべぺほ +SELECT * FROM `T2` WHERE `C1` LIKE '%あ%'; +C1 +・ぁあぃいぅうぇえぉおかがきぎくぐけげこ +SELECT * FROM `T2` WHERE `C1` LIKE '%わ'; +C1 +ぼぽまみむめもゃやゅゆょよらりるれろゎわ +SELECT * FROM `T2` WHERE `C1` LIKE '・ぁあぃいぅうぇえぉおかがきぎくぐけげこ%'; +C1 +・ぁあぃいぅうぇえぉおかがきぎくぐけげこ +SELECT * FROM `T2` WHERE `C1` LIKE '%・ぁあぃいぅうぇえぉおかがきぎくぐけげこ%'; +C1 +・ぁあぃいぅうぇえぉおかがきぎくぐけげこ +SELECT * FROM `T2` WHERE `C1` LIKE '%・ぁあぃいぅうぇえぉおかがきぎくぐけげこ'; +C1 +・ぁあぃいぅうぇえぉおかがきぎくぐけげこ +SELECT * FROM `T3` WHERE `C1` LIKE '鼫%'; +C1 +鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃齄齅齆齇齓齕齖 +SELECT * FROM `T3` WHERE `C1` LIKE '%鼺%'; +C1 +鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃齄齅齆齇齓齕齖 +SELECT * FROM `T3` WHERE `C1` LIKE '%齖'; +C1 +鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃齄齅齆齇齓齕齖 +SELECT * FROM `T3` WHERE `C1` LIKE '鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃齄齅齆齇齓齕齖%'; +C1 +鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃齄齅齆齇齓齕齖 +SELECT * FROM `T3` WHERE `C1` LIKE '%鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃齄齅齆齇齓齕齖%'; +C1 +鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃齄齅齆齇齓齕齖 +SELECT * FROM `T3` WHERE `C1` LIKE '%鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃齄齅齆齇齓齕齖'; +C1 +鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃齄齅齆齇齓齕齖 +SELECT * FROM `T4` WHERE `C1` LIKE ' %'; +C1 + !"#$%&'()*+,-./ + 。「」、・ヲァィゥェォャュョッ +SELECT * FROM `T4` WHERE `C1` LIKE '% %'; +C1 + !"#$%&'()*+,-./ + 。「」、・ヲァィゥェォャュョッ +SELECT * FROM `T4` WHERE `C1` LIKE '% '; +C1 +SELECT * FROM `T4` WHERE `C1` LIKE 'タ%'; +C1 +タチツテトナニヌネノハヒフヘホマ +SELECT * FROM `T4` WHERE `C1` LIKE '%ラリ%'; +C1 +ミムメモヤユヨラリルレロワン゙゚ +SELECT * FROM `T4` WHERE `C1` LIKE '%ソ'; +C1 +ーアイウエオカキクケコサシスセソ +SELECT * FROM `T4` WHERE `C1` LIKE 'ーアイウエオカキクケコサシスセソ%'; +C1 +ーアイウエオカキクケコサシスセソ +SELECT * FROM `T4` WHERE `C1` LIKE '%ーアイウエオカキクケコサシスセソ%'; +C1 +ーアイウエオカキクケコサシスセソ +SELECT * FROM `T4` WHERE `C1` LIKE '%ーアイウエオカキクケコサシスセソ'; +C1 +ーアイウエオカキクケコサシスセソ +SELECT * FROM `T5` WHERE `C1` LIKE ' %'; +C1 +  、。,.・:;?!゛゜´`¨^ ̄_ヽ +SELECT * FROM `T5` WHERE `C1` LIKE '% %'; +C1 +  、。,.・:;?!゛゜´`¨^ ̄_ヽ +・・ʼn♯♭♪†‡¶・・・・◯・・・・  +SELECT * FROM `T5` WHERE `C1` LIKE '% '; +C1 +・・ʼn♯♭♪†‡¶・・・・◯・・・・  +SELECT * FROM `T5` WHERE `C1` LIKE 'と%'; +C1 +とどなにぬねのはばぱひびぴふぶぷへべぺほ +SELECT * FROM `T5` WHERE `C1` LIKE '%あ%'; +C1 +・ぁあぃいぅうぇえぉおかがきぎくぐけげこ +SELECT * FROM `T5` WHERE `C1` LIKE '%わ'; +C1 +ぼぽまみむめもゃやゅゆょよらりるれろゎわ +SELECT * FROM `T5` WHERE `C1` LIKE '・ぁあぃいぅうぇえぉおかがきぎくぐけげこ%'; +C1 +・ぁあぃいぅうぇえぉおかがきぎくぐけげこ +SELECT * FROM `T5` WHERE `C1` LIKE '%・ぁあぃいぅうぇえぉおかがきぎくぐけげこ%'; +C1 +・ぁあぃいぅうぇえぉおかがきぎくぐけげこ +SELECT * FROM `T5` WHERE `C1` LIKE '%・ぁあぃいぅうぇえぉおかがきぎくぐけげこ'; +C1 +・ぁあぃいぅうぇえぉおかがきぎくぐけげこ +SELECT * FROM `T6` WHERE `C1` LIKE '鼫%'; +C1 +鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃齄齅齆齇齓齕齖 +SELECT * FROM `T6` WHERE `C1` LIKE '%鼺%'; +C1 +鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃齄齅齆齇齓齕齖 +SELECT * FROM `T6` WHERE `C1` LIKE '%齖'; +C1 +鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃齄齅齆齇齓齕齖 +SELECT * FROM `T6` WHERE `C1` LIKE '鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃齄齅齆齇齓齕齖%'; +C1 +鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃齄齅齆齇齓齕齖 +SELECT * FROM `T6` WHERE `C1` LIKE '%鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃齄齅齆齇齓齕齖%'; +C1 +鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃齄齅齆齇齓齕齖 +SELECT * FROM `T6` WHERE `C1` LIKE '%鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃齄齅齆齇齓齕齖'; +C1 +鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃齄齅齆齇齓齕齖 +SELECT * FROM `T7` WHERE `C1` LIKE ' %'; +C1 + !"#$%&'()*+,-./ + 。「」、・ヲァィゥェォャュョッ +SELECT * FROM `T7` WHERE `C1` LIKE '% %'; +C1 + !"#$%&'()*+,-./ + 。「」、・ヲァィゥェォャュョッ +SELECT * FROM `T7` WHERE `C1` LIKE '% '; +C1 +SELECT * FROM `T7` WHERE `C1` LIKE 'タ%'; +C1 +タチツテトナニヌネノハヒフヘホマ +SELECT * FROM `T7` WHERE `C1` LIKE '%ラリ%'; +C1 +ミムメモヤユヨラリルレロワン゙゚ +SELECT * FROM `T7` WHERE `C1` LIKE '%ソ'; +C1 +ーアイウエオカキクケコサシスセソ +SELECT * FROM `T7` WHERE `C1` LIKE 'ーアイウエオカキクケコサシスセソ%'; +C1 +ーアイウエオカキクケコサシスセソ +SELECT * FROM `T7` WHERE `C1` LIKE '%ーアイウエオカキクケコサシスセソ%'; +C1 +ーアイウエオカキクケコサシスセソ +SELECT * FROM `T7` WHERE `C1` LIKE '%ーアイウエオカキクケコサシスセソ'; +C1 +ーアイウエオカキクケコサシスセソ +SELECT * FROM `T8` WHERE `C1` LIKE ' %'; +C1 +  、。,.・:;?!゛゜´`¨^ ̄_ヽ +SELECT * FROM `T8` WHERE `C1` LIKE '% %'; +C1 +  、。,.・:;?!゛゜´`¨^ ̄_ヽ +・・ʼn♯♭♪†‡¶・・・・◯・・・・  +SELECT * FROM `T8` WHERE `C1` LIKE '% '; +C1 +・・ʼn♯♭♪†‡¶・・・・◯・・・・  +SELECT * FROM `T8` WHERE `C1` LIKE 'と%'; +C1 +とどなにぬねのはばぱひびぴふぶぷへべぺほ +SELECT * FROM `T8` WHERE `C1` LIKE '%あ%'; +C1 +・ぁあぃいぅうぇえぉおかがきぎくぐけげこ +SELECT * FROM `T8` WHERE `C1` LIKE '%わ'; +C1 +ぼぽまみむめもゃやゅゆょよらりるれろゎわ +SELECT * FROM `T8` WHERE `C1` LIKE '・ぁあぃいぅうぇえぉおかがきぎくぐけげこ%'; +C1 +・ぁあぃいぅうぇえぉおかがきぎくぐけげこ +SELECT * FROM `T8` WHERE `C1` LIKE '%・ぁあぃいぅうぇえぉおかがきぎくぐけげこ%'; +C1 +・ぁあぃいぅうぇえぉおかがきぎくぐけげこ +SELECT * FROM `T8` WHERE `C1` LIKE '%・ぁあぃいぅうぇえぉおかがきぎくぐけげこ'; +C1 +・ぁあぃいぅうぇえぉおかがきぎくぐけげこ +SELECT * FROM `T9` WHERE `C1` LIKE '鼫%'; +C1 +鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃齄齅齆齇齓齕齖 +SELECT * FROM `T9` WHERE `C1` LIKE '%鼺%'; +C1 +鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃齄齅齆齇齓齕齖 +SELECT * FROM `T9` WHERE `C1` LIKE '%齖'; +C1 +鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃齄齅齆齇齓齕齖 +SELECT * FROM `T9` WHERE `C1` LIKE '鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃齄齅齆齇齓齕齖%'; +C1 +鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃齄齅齆齇齓齕齖 +SELECT * FROM `T9` WHERE `C1` LIKE '%鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃齄齅齆齇齓齕齖%'; +C1 +鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃齄齅齆齇齓齕齖 +SELECT * FROM `T9` WHERE `C1` LIKE '%鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃齄齅齆齇齓齕齖'; +C1 +鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃齄齅齆齇齓齕齖 +SELECT * FROM `T10` WHERE `C1` LIKE ' %'; +C1 + !"#$%&'()*+,-./ + 。「」、・ヲァィゥェォャュョッ +SELECT * FROM `T10` WHERE `C1` LIKE '% %'; +C1 + !"#$%&'()*+,-./ + 。「」、・ヲァィゥェォャュョッ +SELECT * FROM `T10` WHERE `C1` LIKE '% '; +C1 +SELECT * FROM `T10` WHERE `C1` LIKE 'タ%'; +C1 +タチツテトナニヌネノハヒフヘホマ +SELECT * FROM `T10` WHERE `C1` LIKE '%ラリ%'; +C1 +ミムメモヤユヨラリルレロワン゙゚ +SELECT * FROM `T10` WHERE `C1` LIKE '%ソ'; +C1 +ーアイウエオカキクケコサシスセソ +SELECT * FROM `T11` WHERE `C1` LIKE ' %'; +C1 +  、。,.・:;?!゛゜´`¨^ ̄_ヽ +SELECT * FROM `T11` WHERE `C1` LIKE '% %'; +C1 +  、。,.・:;?!゛゜´`¨^ ̄_ヽ +・・ʼn♯♭♪†‡¶・・・・◯・・・・  +SELECT * FROM `T11` WHERE `C1` LIKE '% '; +C1 +・・ʼn♯♭♪†‡¶・・・・◯・・・・  +SELECT * FROM `T11` WHERE `C1` LIKE 'と%'; +C1 +とどなにぬねのはばぱひびぴふぶぷへべぺほ +SELECT * FROM `T11` WHERE `C1` LIKE '%あ%'; +C1 +・ぁあぃいぅうぇえぉおかがきぎくぐけげこ +SELECT * FROM `T11` WHERE `C1` LIKE '%わ'; +C1 +ぼぽまみむめもゃやゅゆょよらりるれろゎわ +SELECT * FROM `T12` WHERE `C1` LIKE '鼫%'; +C1 +鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃齄齅齆齇齓齕齖 +SELECT * FROM `T12` WHERE `C1` LIKE '%鼺%'; +C1 +鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃齄齅齆齇齓齕齖 +SELECT * FROM `T12` WHERE `C1` LIKE '%齖'; +C1 +鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃齄齅齆齇齓齕齖 +DROP TABLE `T1`; +DROP TABLE `T2`; +DROP TABLE `T3`; +DROP TABLE `T4`; +DROP TABLE `T5`; +DROP TABLE `T6`; +DROP TABLE `T7`; +DROP TABLE `T8`; +DROP TABLE `T9`; +DROP TABLE `T10`; +DROP TABLE `T11`; +DROP TABLE `T12`; diff --git a/mysql-test/suite/jp/r/jp_locate_sjis.result b/mysql-test/suite/jp/r/jp_locate_sjis.result new file mode 100755 index 00000000000..b2455401db8 --- /dev/null +++ b/mysql-test/suite/jp/r/jp_locate_sjis.result @@ -0,0 +1,264 @@ +drop table if exists `sP`; +drop table if exists `sQ`; +drop table if exists `sR`; +drop table if exists `sS`; +drop table if exists `sT`; +drop table if exists `sU`; +drop table if exists `sV`; +drop table if exists `sW`; +drop table if exists `sX`; +drop table if exists `sPO`; +SET NAMES sjis; +SET character_set_database = sjis; +CREATE TABLE `sP` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sQ` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sR` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sS` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sT` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sU` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sV` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sW` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sX` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sPO` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +CREATE TABLE `sPP` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +CREATE TABLE `sPQ` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +INSERT INTO `sP` VALUES (''); +INSERT INTO `sQ` VALUES (''); +INSERT INTO `sR` VALUES ('\\\\\'); +INSERT INTO `sS` VALUES (''); +INSERT INTO `sT` VALUES (''); +INSERT INTO `sU` VALUES ('\\\\\'); +INSERT INTO `sV` VALUES (''); +INSERT INTO `sW` VALUES (''); +INSERT INTO `sX` VALUES ('\\\\\'); +INSERT INTO `sPO` VALUES (''); +INSERT INTO `sPP` VALUES (''); +INSERT INTO `sPQ` VALUES ('\\\\\'); +SELECT LOCATE('',`bP`) from `sP`; +LOCATE('',`bP`) +1 +SELECT LOCATE('',`bP`) from `sP`; +LOCATE('',`bP`) +2 +SELECT LOCATE('',`bP`) from `sP`; +LOCATE('',`bP`) +3 +SELECT LOCATE('',`bP`) from `sP`; +LOCATE('',`bP`) +4 +SELECT LOCATE('',`bP`) from `sP`; +LOCATE('',`bP`) +5 +SELECT LOCATE('',`bP`) from `sP`; +LOCATE('',`bP`) +0 +SELECT LOCATE('',`bP`) from `sQ`; +LOCATE('',`bP`) +1 +SELECT LOCATE('',`bP`) from `sQ`; +LOCATE('',`bP`) +2 +SELECT LOCATE('',`bP`) from `sQ`; +LOCATE('',`bP`) +3 +SELECT LOCATE('',`bP`) from `sQ`; +LOCATE('',`bP`) +4 +SELECT LOCATE('',`bP`) from `sQ`; +LOCATE('',`bP`) +5 +SELECT LOCATE('',`bP`) from `sQ`; +LOCATE('',`bP`) +0 +SELECT LOCATE('\',`bP`) from `sR`; +LOCATE('\',`bP`) +1 +SELECT LOCATE('\',`bP`) from `sR`; +LOCATE('\',`bP`) +2 +SELECT LOCATE('\',`bP`) from `sR`; +LOCATE('\',`bP`) +3 +SELECT LOCATE('\',`bP`) from `sR`; +LOCATE('\',`bP`) +4 +SELECT LOCATE('\',`bP`) from `sR`; +LOCATE('\',`bP`) +5 +SELECT LOCATE('\',`bP`) from `sR`; +LOCATE('\',`bP`) +0 +SELECT LOCATE('',`bP`) from `sS`; +LOCATE('',`bP`) +1 +SELECT LOCATE('',`bP`) from `sS`; +LOCATE('',`bP`) +2 +SELECT LOCATE('',`bP`) from `sS`; +LOCATE('',`bP`) +3 +SELECT LOCATE('',`bP`) from `sS`; +LOCATE('',`bP`) +4 +SELECT LOCATE('',`bP`) from `sS`; +LOCATE('',`bP`) +5 +SELECT LOCATE('',`bP`) from `sS`; +LOCATE('',`bP`) +0 +SELECT LOCATE('',`bP`) from `sT`; +LOCATE('',`bP`) +1 +SELECT LOCATE('',`bP`) from `sT`; +LOCATE('',`bP`) +2 +SELECT LOCATE('',`bP`) from `sT`; +LOCATE('',`bP`) +3 +SELECT LOCATE('',`bP`) from `sT`; +LOCATE('',`bP`) +4 +SELECT LOCATE('',`bP`) from `sT`; +LOCATE('',`bP`) +5 +SELECT LOCATE('',`bP`) from `sT`; +LOCATE('',`bP`) +0 +SELECT LOCATE('\',`bP`) from `sU`; +LOCATE('\',`bP`) +1 +SELECT LOCATE('\',`bP`) from `sU`; +LOCATE('\',`bP`) +2 +SELECT LOCATE('\',`bP`) from `sU`; +LOCATE('\',`bP`) +3 +SELECT LOCATE('\',`bP`) from `sU`; +LOCATE('\',`bP`) +4 +SELECT LOCATE('\',`bP`) from `sU`; +LOCATE('\',`bP`) +5 +SELECT LOCATE('\',`bP`) from `sU`; +LOCATE('\',`bP`) +0 +SELECT LOCATE('',`bP`) from `sV`; +LOCATE('',`bP`) +1 +SELECT LOCATE('',`bP`) from `sV`; +LOCATE('',`bP`) +2 +SELECT LOCATE('',`bP`) from `sV`; +LOCATE('',`bP`) +3 +SELECT LOCATE('',`bP`) from `sV`; +LOCATE('',`bP`) +4 +SELECT LOCATE('',`bP`) from `sV`; +LOCATE('',`bP`) +5 +SELECT LOCATE('',`bP`) from `sV`; +LOCATE('',`bP`) +0 +SELECT LOCATE('',`bP`) from `sW`; +LOCATE('',`bP`) +1 +SELECT LOCATE('',`bP`) from `sW`; +LOCATE('',`bP`) +2 +SELECT LOCATE('',`bP`) from `sW`; +LOCATE('',`bP`) +3 +SELECT LOCATE('',`bP`) from `sW`; +LOCATE('',`bP`) +4 +SELECT LOCATE('',`bP`) from `sW`; +LOCATE('',`bP`) +5 +SELECT LOCATE('',`bP`) from `sW`; +LOCATE('',`bP`) +0 +SELECT LOCATE('\',`bP`) from `sX`; +LOCATE('\',`bP`) +1 +SELECT LOCATE('\',`bP`) from `sX`; +LOCATE('\',`bP`) +2 +SELECT LOCATE('\',`bP`) from `sX`; +LOCATE('\',`bP`) +3 +SELECT LOCATE('\',`bP`) from `sX`; +LOCATE('\',`bP`) +4 +SELECT LOCATE('\',`bP`) from `sX`; +LOCATE('\',`bP`) +5 +SELECT LOCATE('\',`bP`) from `sX`; +LOCATE('\',`bP`) +0 +SELECT LOCATE('',`bP`) from `sPO`; +LOCATE('',`bP`) +1 +SELECT LOCATE('',`bP`) from `sPO`; +LOCATE('',`bP`) +2 +SELECT LOCATE('',`bP`) from `sPO`; +LOCATE('',`bP`) +3 +SELECT LOCATE('',`bP`) from `sPO`; +LOCATE('',`bP`) +4 +SELECT LOCATE('',`bP`) from `sPO`; +LOCATE('',`bP`) +5 +SELECT LOCATE('',`bP`) from `sPO`; +LOCATE('',`bP`) +0 +SELECT LOCATE('',`bP`) from `sPP`; +LOCATE('',`bP`) +1 +SELECT LOCATE('',`bP`) from `sPP`; +LOCATE('',`bP`) +2 +SELECT LOCATE('',`bP`) from `sPP`; +LOCATE('',`bP`) +3 +SELECT LOCATE('',`bP`) from `sPP`; +LOCATE('',`bP`) +4 +SELECT LOCATE('',`bP`) from `sPP`; +LOCATE('',`bP`) +5 +SELECT LOCATE('',`bP`) from `sPP`; +LOCATE('',`bP`) +0 +SELECT LOCATE('\',`bP`) from `sPQ`; +LOCATE('\',`bP`) +1 +SELECT LOCATE('\',`bP`) from `sPQ`; +LOCATE('\',`bP`) +2 +SELECT LOCATE('\',`bP`) from `sPQ`; +LOCATE('\',`bP`) +3 +SELECT LOCATE('\',`bP`) from `sPQ`; +LOCATE('\',`bP`) +4 +SELECT LOCATE('\',`bP`) from `sPQ`; +LOCATE('\',`bP`) +5 +SELECT LOCATE('\',`bP`) from `sPQ`; +LOCATE('\',`bP`) +0 +DROP TABLE `sP`; +DROP TABLE `sQ`; +DROP TABLE `sR`; +DROP TABLE `sS`; +DROP TABLE `sT`; +DROP TABLE `sU`; +DROP TABLE `sV`; +DROP TABLE `sW`; +DROP TABLE `sX`; +DROP TABLE `sPO`; +DROP TABLE `sPP`; +DROP TABLE `sPQ`; diff --git a/mysql-test/suite/jp/r/jp_locate_ucs2.result b/mysql-test/suite/jp/r/jp_locate_ucs2.result new file mode 100755 index 00000000000..37b219b3335 --- /dev/null +++ b/mysql-test/suite/jp/r/jp_locate_ucs2.result @@ -0,0 +1,265 @@ +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +SET NAMES ujis; +SET character_set_database = ucs2; +SET collation_connection = ucs2_general_ci; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +1 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +2 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +3 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +4 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +5 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +0 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +1 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +2 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +3 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +4 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +5 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +0 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +1 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +2 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +3 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +4 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +5 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +0 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +1 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +2 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +3 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +4 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +5 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +0 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +1 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +2 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +3 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +4 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +5 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +0 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +1 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +2 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +3 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +4 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +5 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +0 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +1 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +2 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +3 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +4 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +5 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +0 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +1 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +2 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +3 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +4 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +5 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +0 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +1 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +2 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +3 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +4 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +5 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +0 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +1 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +2 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +3 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +4 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +5 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +0 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +1 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +2 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +3 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +4 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +5 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +0 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +1 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +2 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +3 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +4 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +5 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +0 +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; diff --git a/mysql-test/suite/jp/r/jp_locate_ujis.result b/mysql-test/suite/jp/r/jp_locate_ujis.result new file mode 100755 index 00000000000..d139fa9203c --- /dev/null +++ b/mysql-test/suite/jp/r/jp_locate_ujis.result @@ -0,0 +1,264 @@ +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +SET NAMES ujis; +SET character_set_database = ujis; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +1 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +2 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +3 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +4 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +5 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +0 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +1 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +2 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +3 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +4 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +5 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +0 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +1 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +2 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +3 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +4 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +5 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +0 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +1 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +2 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +3 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +4 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +5 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +0 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +1 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +2 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +3 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +4 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +5 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +0 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +1 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +2 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +3 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +4 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +5 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +0 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +1 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +2 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +3 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +4 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +5 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +0 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +1 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +2 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +3 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +4 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +5 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +0 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +1 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +2 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +3 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +4 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +5 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +0 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +1 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +2 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +3 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +4 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +5 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +0 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +1 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +2 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +3 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +4 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +5 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +0 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +1 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +2 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +3 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +4 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +5 +SELECT LOCATE('',`ã`) from `ԣ`; +LOCATE('',`ã`) +0 +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; diff --git a/mysql-test/suite/jp/r/jp_locate_utf8.result b/mysql-test/suite/jp/r/jp_locate_utf8.result new file mode 100755 index 00000000000..a1ce9e8d2dc --- /dev/null +++ b/mysql-test/suite/jp/r/jp_locate_utf8.result @@ -0,0 +1,264 @@ +drop table if exists `T1`; +drop table if exists `T2`; +drop table if exists `T3`; +drop table if exists `T4`; +drop table if exists `T5`; +drop table if exists `T6`; +drop table if exists `T7`; +drop table if exists `T8`; +drop table if exists `T9`; +drop table if exists `T10`; +SET NAMES utf8; +SET character_set_database = utf8; +CREATE TABLE `T1` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T2` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T3` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T4` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T5` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T6` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T7` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T8` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T9` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T10` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +CREATE TABLE `T11` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +CREATE TABLE `T12` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +INSERT INTO `T1` VALUES ('アイウエオ'); +INSERT INTO `T2` VALUES ('あいうえお'); +INSERT INTO `T3` VALUES ('龔龖龗龞龡'); +INSERT INTO `T4` VALUES ('アイウエオ'); +INSERT INTO `T5` VALUES ('あいうえお'); +INSERT INTO `T6` VALUES ('龔龖龗龞龡'); +INSERT INTO `T7` VALUES ('アイウエオ'); +INSERT INTO `T8` VALUES ('あいうえお'); +INSERT INTO `T9` VALUES ('龔龖龗龞龡'); +INSERT INTO `T10` VALUES ('アイウエオ'); +INSERT INTO `T11` VALUES ('あいうえお'); +INSERT INTO `T12` VALUES ('龔龖龗龞龡'); +SELECT LOCATE('ア',`C1`) from `T1`; +LOCATE('ア',`C1`) +1 +SELECT LOCATE('イ',`C1`) from `T1`; +LOCATE('イ',`C1`) +2 +SELECT LOCATE('ウ',`C1`) from `T1`; +LOCATE('ウ',`C1`) +3 +SELECT LOCATE('エ',`C1`) from `T1`; +LOCATE('エ',`C1`) +4 +SELECT LOCATE('オ',`C1`) from `T1`; +LOCATE('オ',`C1`) +5 +SELECT LOCATE('ン',`C1`) from `T1`; +LOCATE('ン',`C1`) +0 +SELECT LOCATE('あ',`C1`) from `T2`; +LOCATE('あ',`C1`) +1 +SELECT LOCATE('い',`C1`) from `T2`; +LOCATE('い',`C1`) +2 +SELECT LOCATE('う',`C1`) from `T2`; +LOCATE('う',`C1`) +3 +SELECT LOCATE('え',`C1`) from `T2`; +LOCATE('え',`C1`) +4 +SELECT LOCATE('お',`C1`) from `T2`; +LOCATE('お',`C1`) +5 +SELECT LOCATE('ん',`C1`) from `T2`; +LOCATE('ん',`C1`) +0 +SELECT LOCATE('龔',`C1`) from `T3`; +LOCATE('龔',`C1`) +1 +SELECT LOCATE('龖',`C1`) from `T3`; +LOCATE('龖',`C1`) +2 +SELECT LOCATE('龗',`C1`) from `T3`; +LOCATE('龗',`C1`) +3 +SELECT LOCATE('龞',`C1`) from `T3`; +LOCATE('龞',`C1`) +4 +SELECT LOCATE('龡',`C1`) from `T3`; +LOCATE('龡',`C1`) +5 +SELECT LOCATE('丂',`C1`) from `T3`; +LOCATE('丂',`C1`) +0 +SELECT LOCATE('ア',`C1`) from `T4`; +LOCATE('ア',`C1`) +1 +SELECT LOCATE('イ',`C1`) from `T4`; +LOCATE('イ',`C1`) +2 +SELECT LOCATE('ウ',`C1`) from `T4`; +LOCATE('ウ',`C1`) +3 +SELECT LOCATE('エ',`C1`) from `T4`; +LOCATE('エ',`C1`) +4 +SELECT LOCATE('オ',`C1`) from `T4`; +LOCATE('オ',`C1`) +5 +SELECT LOCATE('ン',`C1`) from `T4`; +LOCATE('ン',`C1`) +0 +SELECT LOCATE('あ',`C1`) from `T5`; +LOCATE('あ',`C1`) +1 +SELECT LOCATE('い',`C1`) from `T5`; +LOCATE('い',`C1`) +2 +SELECT LOCATE('う',`C1`) from `T5`; +LOCATE('う',`C1`) +3 +SELECT LOCATE('え',`C1`) from `T5`; +LOCATE('え',`C1`) +4 +SELECT LOCATE('お',`C1`) from `T5`; +LOCATE('お',`C1`) +5 +SELECT LOCATE('ん',`C1`) from `T5`; +LOCATE('ん',`C1`) +0 +SELECT LOCATE('龔',`C1`) from `T6`; +LOCATE('龔',`C1`) +1 +SELECT LOCATE('龖',`C1`) from `T6`; +LOCATE('龖',`C1`) +2 +SELECT LOCATE('龗',`C1`) from `T6`; +LOCATE('龗',`C1`) +3 +SELECT LOCATE('龞',`C1`) from `T6`; +LOCATE('龞',`C1`) +4 +SELECT LOCATE('龡',`C1`) from `T6`; +LOCATE('龡',`C1`) +5 +SELECT LOCATE('丂',`C1`) from `T6`; +LOCATE('丂',`C1`) +0 +SELECT LOCATE('ア',`C1`) from `T7`; +LOCATE('ア',`C1`) +1 +SELECT LOCATE('イ',`C1`) from `T7`; +LOCATE('イ',`C1`) +2 +SELECT LOCATE('ウ',`C1`) from `T7`; +LOCATE('ウ',`C1`) +3 +SELECT LOCATE('エ',`C1`) from `T7`; +LOCATE('エ',`C1`) +4 +SELECT LOCATE('オ',`C1`) from `T7`; +LOCATE('オ',`C1`) +5 +SELECT LOCATE('ン',`C1`) from `T7`; +LOCATE('ン',`C1`) +0 +SELECT LOCATE('あ',`C1`) from `T8`; +LOCATE('あ',`C1`) +1 +SELECT LOCATE('い',`C1`) from `T8`; +LOCATE('い',`C1`) +2 +SELECT LOCATE('う',`C1`) from `T8`; +LOCATE('う',`C1`) +3 +SELECT LOCATE('え',`C1`) from `T8`; +LOCATE('え',`C1`) +4 +SELECT LOCATE('お',`C1`) from `T8`; +LOCATE('お',`C1`) +5 +SELECT LOCATE('ん',`C1`) from `T8`; +LOCATE('ん',`C1`) +0 +SELECT LOCATE('龔',`C1`) from `T9`; +LOCATE('龔',`C1`) +1 +SELECT LOCATE('龖',`C1`) from `T9`; +LOCATE('龖',`C1`) +2 +SELECT LOCATE('龗',`C1`) from `T9`; +LOCATE('龗',`C1`) +3 +SELECT LOCATE('龞',`C1`) from `T9`; +LOCATE('龞',`C1`) +4 +SELECT LOCATE('龡',`C1`) from `T9`; +LOCATE('龡',`C1`) +5 +SELECT LOCATE('丂',`C1`) from `T9`; +LOCATE('丂',`C1`) +0 +SELECT LOCATE('ア',`C1`) from `T10`; +LOCATE('ア',`C1`) +1 +SELECT LOCATE('イ',`C1`) from `T10`; +LOCATE('イ',`C1`) +2 +SELECT LOCATE('ウ',`C1`) from `T10`; +LOCATE('ウ',`C1`) +3 +SELECT LOCATE('エ',`C1`) from `T10`; +LOCATE('エ',`C1`) +4 +SELECT LOCATE('オ',`C1`) from `T10`; +LOCATE('オ',`C1`) +5 +SELECT LOCATE('ン',`C1`) from `T10`; +LOCATE('ン',`C1`) +0 +SELECT LOCATE('あ',`C1`) from `T11`; +LOCATE('あ',`C1`) +1 +SELECT LOCATE('い',`C1`) from `T11`; +LOCATE('い',`C1`) +2 +SELECT LOCATE('う',`C1`) from `T11`; +LOCATE('う',`C1`) +3 +SELECT LOCATE('え',`C1`) from `T11`; +LOCATE('え',`C1`) +4 +SELECT LOCATE('お',`C1`) from `T11`; +LOCATE('お',`C1`) +5 +SELECT LOCATE('ん',`C1`) from `T11`; +LOCATE('ん',`C1`) +0 +SELECT LOCATE('龔',`C1`) from `T12`; +LOCATE('龔',`C1`) +1 +SELECT LOCATE('龖',`C1`) from `T12`; +LOCATE('龖',`C1`) +2 +SELECT LOCATE('龗',`C1`) from `T12`; +LOCATE('龗',`C1`) +3 +SELECT LOCATE('龞',`C1`) from `T12`; +LOCATE('龞',`C1`) +4 +SELECT LOCATE('龡',`C1`) from `T12`; +LOCATE('龡',`C1`) +5 +SELECT LOCATE('丂',`C1`) from `T12`; +LOCATE('丂',`C1`) +0 +DROP TABLE `T1`; +DROP TABLE `T2`; +DROP TABLE `T3`; +DROP TABLE `T4`; +DROP TABLE `T5`; +DROP TABLE `T6`; +DROP TABLE `T7`; +DROP TABLE `T8`; +DROP TABLE `T9`; +DROP TABLE `T10`; +DROP TABLE `T11`; +DROP TABLE `T12`; diff --git a/mysql-test/suite/jp/r/jp_lpad_sjis.result b/mysql-test/suite/jp/r/jp_lpad_sjis.result new file mode 100755 index 00000000000..b45427ebf3d --- /dev/null +++ b/mysql-test/suite/jp/r/jp_lpad_sjis.result @@ -0,0 +1,146 @@ +drop table if exists `sP`; +drop table if exists `sQ`; +drop table if exists `sR`; +drop table if exists `sS`; +drop table if exists `sT`; +drop table if exists `sU`; +drop table if exists `sV`; +drop table if exists `sW`; +drop table if exists `sX`; +drop table if exists `sPO`; +drop table if exists `sPP`; +drop table if exists `sPQ`; +SET NAMES sjis; +SET character_set_database = sjis; +CREATE TABLE `sP` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sQ` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sR` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sS` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sT` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sU` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sV` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sW` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sX` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sPO` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +CREATE TABLE `sPP` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +CREATE TABLE `sPQ` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +INSERT INTO `sP` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sQ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sR` VALUES ('\\\\\'),('\\\\'),('\\\'),('\\'),('\'),(''); +INSERT INTO `sS` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sT` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sU` VALUES ('\\\\\'),('\\\\'),('\\\'),('\\'),('\'),(''); +INSERT INTO `sV` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sW` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sX` VALUES ('\\\\\'),('\\\\'),('\\\'),('\\'),('\'),(''); +INSERT INTO `sPO` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sPP` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sPQ` VALUES ('\\\\\'),('\\\\'),('\\\'),('\\'),('\'),(''); +SELECT `bP`, LPAD(`bP`,5,'') FROM `sP`; +bP LPAD(`bP`,5,'') + + + + + + +SELECT `bP`, LPAD(`bP`,5,'w') FROM `sQ`; +bP LPAD(`bP`,5,'w') + wwwww + wwww + www + ww + w + +SELECT `bP`, LPAD(`bP`,5,'\') FROM `sR`; +bP LPAD(`bP`,5,'\') + \\\\\ +\ \\\\\ +\\ \\\\\ +\\\ \\\\\ +\\\\ \\\\\ +\\\\\ \\\\\ +SELECT `bP`, LPAD(`bP`,5,'') FROM `sS`; +bP LPAD(`bP`,5,'') + + + + + + +SELECT `bP`, LPAD(`bP`,5,'w') FROM `sT`; +bP LPAD(`bP`,5,'w') + wwwww + wwww + www + ww + w + +SELECT `bP`, LPAD(`bP`,5,'\' ) FROM `sU`; +bP LPAD(`bP`,5,'\' ) + \\\\\ +\ \\\\\ +\\ \\\\\ +\\\ \\\\\ +\\\\ \\\\\ +\\\\\ \\\\\ +SELECT `bP`, LPAD(`bP`,5,'') FROM `sV`; +bP LPAD(`bP`,5,'') + + + + + + +SELECT `bP`, LPAD(`bP`,5,'w') FROM `sW`; +bP LPAD(`bP`,5,'w') + + w + ww + www + wwww + wwwww +SELECT `bP`, LPAD(`bP`,5,'\' ) FROM `sX`; +bP LPAD(`bP`,5,'\' ) +\\\\\ \\\\\ +\\\\ \\\\\ +\\\ \\\\\ +\\ \\\\\ +\ \\\\\ + \\\\\ +SELECT `bP`, LPAD(`bP`,5,'') FROM `sPO`; +bP LPAD(`bP`,5,'') + + + + + + +SELECT `bP`, LPAD(`bP`,5,'w') FROM `sPP`; +bP LPAD(`bP`,5,'w') + + w + ww + www + wwww + wwwww +SELECT `bP`, LPAD(`bP`,5,'\' ) FROM `sPQ`; +bP LPAD(`bP`,5,'\' ) +\\\\\ \\\\\ +\\\\ \\\\\ +\\\ \\\\\ +\\ \\\\\ +\ \\\\\ + \\\\\ +DROP TABLE `sP`; +DROP TABLE `sQ`; +DROP TABLE `sR`; +DROP TABLE `sS`; +DROP TABLE `sT`; +DROP TABLE `sU`; +DROP TABLE `sV`; +DROP TABLE `sW`; +DROP TABLE `sX`; +DROP TABLE `sPO`; +DROP TABLE `sPP`; +DROP TABLE `sPQ`; diff --git a/mysql-test/suite/jp/r/jp_lpad_ucs2.result b/mysql-test/suite/jp/r/jp_lpad_ucs2.result new file mode 100755 index 00000000000..951c5508a8f --- /dev/null +++ b/mysql-test/suite/jp/r/jp_lpad_ucs2.result @@ -0,0 +1,147 @@ +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +SET NAMES ujis; +SET character_set_database = ucs2; +SET collation_connection = ucs2_general_ci; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +SELECT `ã`, LPAD(`ã`,5,'') FROM `ԣ`; +ã LPAD(`ã`,5,'') + + + + + + +SELECT `ã`, LPAD(`ã`,5,'') FROM `ԣ`; +ã LPAD(`ã`,5,'') + أأأأ + أأأؤ + أأؤ + أؤ + ؤ + +SELECT `ã`, LPAD(`ã`,5,'') FROM `ԣ`; +ã LPAD(`ã`,5,'') + + +܏ ܏ +܏ݏ ܏ݏ +܏ݏޏ ܏ݏޏ +܏ݏޏߏ ܏ݏޏߏ +SELECT `ã`, LPAD(`ã`,5,'') FROM `ԣ`; +ã LPAD(`ã`,5,'') + + + + + + +SELECT `ã`, LPAD(`ã`,5,'') FROM `ԣ`; +ã LPAD(`ã`,5,'') + أأأأ + أأأؤ + أأؤ + أؤ + ؤ + +SELECT `ã`, LPAD(`ã`,5,'' ) FROM `ԣ`; +ã LPAD(`ã`,5,'' ) + + +܏ ܏ +܏ݏ ܏ݏ +܏ݏޏ ܏ݏޏ +܏ݏޏߏ ܏ݏޏߏ +SELECT `ã`, LPAD(`ã`,5,'') FROM `ԣ`; +ã LPAD(`ã`,5,'') + + + + + + +SELECT `ã`, LPAD(`ã`,5,'') FROM `ԣ`; +ã LPAD(`ã`,5,'') + + ؤ + أؤ + أأؤ + أأأؤ + أأأأ +SELECT `ã`, LPAD(`ã`,5,'' ) FROM `ԣ`; +ã LPAD(`ã`,5,'' ) +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏ ܏ݏޏ +܏ݏ ܏ݏ +܏ ܏ + + +SELECT `ã`, LPAD(`ã`,5,'') FROM `ԣ`; +ã LPAD(`ã`,5,'') + + + + + + +SELECT `ã`, LPAD(`ã`,5,'') FROM `ԣ`; +ã LPAD(`ã`,5,'') + + ؤ + أؤ + أأؤ + أأأؤ + أأأأ +SELECT `ã`, LPAD(`ã`,5,'' ) FROM `ԣ`; +ã LPAD(`ã`,5,'' ) +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏ ܏ݏޏ +܏ݏ ܏ݏ +܏ ܏ + + +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; diff --git a/mysql-test/suite/jp/r/jp_lpad_ujis.result b/mysql-test/suite/jp/r/jp_lpad_ujis.result new file mode 100755 index 00000000000..945e513d066 --- /dev/null +++ b/mysql-test/suite/jp/r/jp_lpad_ujis.result @@ -0,0 +1,146 @@ +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +SET NAMES ujis; +SET character_set_database = ujis; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +SELECT `ã`, LPAD(`ã`,5,'') FROM `ԣ`; +ã LPAD(`ã`,5,'') + + + + + + +SELECT `ã`, LPAD(`ã`,5,'') FROM `ԣ`; +ã LPAD(`ã`,5,'') + أأأأ + أأأؤ + أأؤ + أؤ + ؤ + +SELECT `ã`, LPAD(`ã`,5,'') FROM `ԣ`; +ã LPAD(`ã`,5,'') + + +܏ ܏ +܏ݏ ܏ݏ +܏ݏޏ ܏ݏޏ +܏ݏޏߏ ܏ݏޏߏ +SELECT `ã`, LPAD(`ã`,5,'') FROM `ԣ`; +ã LPAD(`ã`,5,'') + + + + + + +SELECT `ã`, LPAD(`ã`,5,'') FROM `ԣ`; +ã LPAD(`ã`,5,'') + أأأأ + أأأؤ + أأؤ + أؤ + ؤ + +SELECT `ã`, LPAD(`ã`,5,'' ) FROM `ԣ`; +ã LPAD(`ã`,5,'' ) + + +܏ ܏ +܏ݏ ܏ݏ +܏ݏޏ ܏ݏޏ +܏ݏޏߏ ܏ݏޏߏ +SELECT `ã`, LPAD(`ã`,5,'') FROM `ԣ`; +ã LPAD(`ã`,5,'') + + + + + + +SELECT `ã`, LPAD(`ã`,5,'') FROM `ԣ`; +ã LPAD(`ã`,5,'') + + ؤ + أؤ + أأؤ + أأأؤ + أأأأ +SELECT `ã`, LPAD(`ã`,5,'' ) FROM `ԣ`; +ã LPAD(`ã`,5,'' ) +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏ ܏ݏޏ +܏ݏ ܏ݏ +܏ ܏ + + +SELECT `ã`, LPAD(`ã`,5,'') FROM `ԣ`; +ã LPAD(`ã`,5,'') + + + + + + +SELECT `ã`, LPAD(`ã`,5,'') FROM `ԣ`; +ã LPAD(`ã`,5,'') + + ؤ + أؤ + أأؤ + أأأؤ + أأأأ +SELECT `ã`, LPAD(`ã`,5,'' ) FROM `ԣ`; +ã LPAD(`ã`,5,'' ) +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏ ܏ݏޏ +܏ݏ ܏ݏ +܏ ܏ + + +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; diff --git a/mysql-test/suite/jp/r/jp_lpad_utf8.result b/mysql-test/suite/jp/r/jp_lpad_utf8.result new file mode 100755 index 00000000000..8a3bae0153e --- /dev/null +++ b/mysql-test/suite/jp/r/jp_lpad_utf8.result @@ -0,0 +1,146 @@ +drop table if exists `T1`; +drop table if exists `T2`; +drop table if exists `T3`; +drop table if exists `T4`; +drop table if exists `T5`; +drop table if exists `T6`; +drop table if exists `T7`; +drop table if exists `T8`; +drop table if exists `T9`; +drop table if exists `T10`; +drop table if exists `T11`; +drop table if exists `T12`; +SET NAMES utf8; +SET character_set_database = utf8; +CREATE TABLE `T1` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T2` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T3` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T4` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T5` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T6` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T7` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T8` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T9` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T10` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +CREATE TABLE `T11` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +CREATE TABLE `T12` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +INSERT INTO `T1` VALUES ('アイウエオ'),('アイウエ'),('アイウ'),('アイ'),('ア'),(''); +INSERT INTO `T2` VALUES ('あいうえお'),('あいうえ'),('あいう'),('あい'),('あ'),(''); +INSERT INTO `T3` VALUES ('龔龖龗龞龡'),('龔龖龗龞'),('龔龖龗'),('龔龖'),('龔'),(''); +INSERT INTO `T4` VALUES ('アイウエオ'),('アイウエ'),('アイウ'),('アイ'),('ア'),(''); +INSERT INTO `T5` VALUES ('あいうえお'),('あいうえ'),('あいう'),('あい'),('あ'),(''); +INSERT INTO `T6` VALUES ('龔龖龗龞龡'),('龔龖龗龞'),('龔龖龗'),('龔龖'),('龔'),(''); +INSERT INTO `T7` VALUES ('アイウエオ'),('アイウエ'),('アイウ'),('アイ'),('ア'),(''); +INSERT INTO `T8` VALUES ('あいうえお'),('あいうえ'),('あいう'),('あい'),('あ'),(''); +INSERT INTO `T9` VALUES ('龔龖龗龞龡'),('龔龖龗龞'),('龔龖龗'),('龔龖'),('龔'),(''); +INSERT INTO `T10` VALUES ('アイウエオ'),('アイウエ'),('アイウ'),('アイ'),('ア'),(''); +INSERT INTO `T11` VALUES ('あいうえお'),('あいうえ'),('あいう'),('あい'),('あ'),(''); +INSERT INTO `T12` VALUES ('龔龖龗龞龡'),('龔龖龗龞'),('龔龖龗'),('龔龖'),('龔'),(''); +SELECT `C1`, LPAD(`C1`,5,'。') FROM `T1`; +C1 LPAD(`C1`,5,'。') + 。。。。。 +ア 。。。。ア +アイ 。。。アイ +アイウ 。。アイウ +アイウエ 。アイウエ +アイウエオ アイウエオ +SELECT `C1`, LPAD(`C1`,5,'X') FROM `T2`; +C1 LPAD(`C1`,5,'X') + XXXXX +あ XXXXあ +あい XXXあい +あいう XXあいう +あいうえ Xあいうえ +あいうえお あいうえお +SELECT `C1`, LPAD(`C1`,5,'丄') FROM `T3`; +C1 LPAD(`C1`,5,'丄') + 丄丄丄丄丄 +龔 丄丄丄丄龔 +龔龖 丄丄丄龔龖 +龔龖龗 丄丄龔龖龗 +龔龖龗龞 丄龔龖龗龞 +龔龖龗龞龡 龔龖龗龞龡 +SELECT `C1`, LPAD(`C1`,5,'。') FROM `T4`; +C1 LPAD(`C1`,5,'。') + 。。。。。 +ア 。。。。ア +アイ 。。。アイ +アイウ 。。アイウ +アイウエ 。アイウエ +アイウエオ アイウエオ +SELECT `C1`, LPAD(`C1`,5,'X') FROM `T5`; +C1 LPAD(`C1`,5,'X') + XXXXX +あ XXXXあ +あい XXXあい +あいう XXあいう +あいうえ Xあいうえ +あいうえお あいうえお +SELECT `C1`, LPAD(`C1`,5,'丄' ) FROM `T6`; +C1 LPAD(`C1`,5,'丄' ) + 丄丄丄丄丄 +龔 丄丄丄丄龔 +龔龖 丄丄丄龔龖 +龔龖龗 丄丄龔龖龗 +龔龖龗龞 丄龔龖龗龞 +龔龖龗龞龡 龔龖龗龞龡 +SELECT `C1`, LPAD(`C1`,5,'。') FROM `T7`; +C1 LPAD(`C1`,5,'。') +アイウエオ アイウエオ +アイウエ 。アイウエ +アイウ 。。アイウ +アイ 。。。アイ +ア 。。。。ア + 。。。。。 +SELECT `C1`, LPAD(`C1`,5,'X') FROM `T8`; +C1 LPAD(`C1`,5,'X') +あいうえお あいうえお +あいうえ Xあいうえ +あいう XXあいう +あい XXXあい +あ XXXXあ + XXXXX +SELECT `C1`, LPAD(`C1`,5,'丄' ) FROM `T9`; +C1 LPAD(`C1`,5,'丄' ) +龔龖龗龞龡 龔龖龗龞龡 +龔龖龗龞 丄龔龖龗龞 +龔龖龗 丄丄龔龖龗 +龔龖 丄丄丄龔龖 +龔 丄丄丄丄龔 + 丄丄丄丄丄 +SELECT `C1`, LPAD(`C1`,5,'。') FROM `T10`; +C1 LPAD(`C1`,5,'。') +アイウエオ アイウエオ +アイウエ 。アイウエ +アイウ 。。アイウ +アイ 。。。アイ +ア 。。。。ア + 。。。。。 +SELECT `C1`, LPAD(`C1`,5,'X') FROM `T11`; +C1 LPAD(`C1`,5,'X') +あいうえお あいうえお +あいうえ Xあいうえ +あいう XXあいう +あい XXXあい +あ XXXXあ + XXXXX +SELECT `C1`, LPAD(`C1`,5,'丄' ) FROM `T12`; +C1 LPAD(`C1`,5,'丄' ) +龔龖龗龞龡 龔龖龗龞龡 +龔龖龗龞 丄龔龖龗龞 +龔龖龗 丄丄龔龖龗 +龔龖 丄丄丄龔龖 +龔 丄丄丄丄龔 + 丄丄丄丄丄 +DROP TABLE `T1`; +DROP TABLE `T2`; +DROP TABLE `T3`; +DROP TABLE `T4`; +DROP TABLE `T5`; +DROP TABLE `T6`; +DROP TABLE `T7`; +DROP TABLE `T8`; +DROP TABLE `T9`; +DROP TABLE `T10`; +DROP TABLE `T11`; +DROP TABLE `T12`; diff --git a/mysql-test/suite/jp/r/jp_ltrim_sjis.result b/mysql-test/suite/jp/r/jp_ltrim_sjis.result new file mode 100755 index 00000000000..23032d65c56 --- /dev/null +++ b/mysql-test/suite/jp/r/jp_ltrim_sjis.result @@ -0,0 +1,228 @@ +drop table if exists `sP`; +drop table if exists `sQ`; +drop table if exists `sR`; +drop table if exists `sS`; +drop table if exists `sT`; +drop table if exists `sU`; +drop table if exists `sV`; +drop table if exists `sW`; +drop table if exists `sX`; +drop table if exists `sPO`; +SET NAMES sjis; +SET character_set_database = sjis; +CREATE TABLE `sP` (`bP` char(8), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sQ` (`bP` char(8), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sR` (`bP` char(8), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sS` (`bP` char(8), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sT` (`bP` char(8), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sU` (`bP` char(8), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sV` (`bP` char(8), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sW` (`bP` char(8), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sX` (`bP` char(8), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sPO` (`bP` char(8), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +CREATE TABLE `sPP` (`bP` char(8), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +CREATE TABLE `sPQ` (`bP` char(8), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +INSERT INTO `sP` VALUES (''); +INSERT INTO `sP` VALUES (' '); +INSERT INTO `sP` VALUES (' '); +INSERT INTO `sP` VALUES (' '); +INSERT INTO `sP` VALUES ('@'); +INSERT INTO `sP` VALUES ('@@'); +INSERT INTO `sP` VALUES ('@@@'); +INSERT INTO `sQ` VALUES (''); +INSERT INTO `sQ` VALUES (' '); +INSERT INTO `sQ` VALUES (' '); +INSERT INTO `sQ` VALUES (' '); +INSERT INTO `sQ` VALUES ('@'); +INSERT INTO `sQ` VALUES ('@@'); +INSERT INTO `sQ` VALUES ('@@@'); +INSERT INTO `sR` VALUES ('\\\\\'); +INSERT INTO `sR` VALUES (' \\\\\'); +INSERT INTO `sR` VALUES (' \\\\\'); +INSERT INTO `sR` VALUES (' \\\\\'); +INSERT INTO `sR` VALUES ('@\\\\\'); +INSERT INTO `sR` VALUES ('@@\\\\\'); +INSERT INTO `sR` VALUES ('@@@\\\\\'); +INSERT INTO `sS` VALUES (''); +INSERT INTO `sS` VALUES (' '); +INSERT INTO `sS` VALUES (' '); +INSERT INTO `sS` VALUES (' '); +INSERT INTO `sS` VALUES ('@'); +INSERT INTO `sS` VALUES ('@@'); +INSERT INTO `sS` VALUES ('@@@'); +INSERT INTO `sT` VALUES (''); +INSERT INTO `sT` VALUES (' '); +INSERT INTO `sT` VALUES (' '); +INSERT INTO `sT` VALUES (' '); +INSERT INTO `sT` VALUES ('@'); +INSERT INTO `sT` VALUES ('@@'); +INSERT INTO `sT` VALUES ('@@@'); +INSERT INTO `sU` VALUES ('\\\\\'); +INSERT INTO `sU` VALUES (' \\\\\'); +INSERT INTO `sU` VALUES (' \\\\\'); +INSERT INTO `sU` VALUES (' \\\\\'); +INSERT INTO `sU` VALUES ('@\\\\\'); +INSERT INTO `sU` VALUES ('@@\\\\\'); +INSERT INTO `sU` VALUES ('@@@\\\\\'); +INSERT INTO `sV` VALUES (''); +INSERT INTO `sV` VALUES (' '); +INSERT INTO `sV` VALUES (' '); +INSERT INTO `sV` VALUES (' '); +INSERT INTO `sV` VALUES ('@'); +INSERT INTO `sV` VALUES ('@@'); +INSERT INTO `sV` VALUES ('@@@'); +INSERT INTO `sW` VALUES (''); +INSERT INTO `sW` VALUES (' '); +INSERT INTO `sW` VALUES (' '); +INSERT INTO `sW` VALUES (' '); +INSERT INTO `sW` VALUES ('@'); +INSERT INTO `sW` VALUES ('@@'); +INSERT INTO `sW` VALUES ('@@@'); +INSERT INTO `sX` VALUES ('\\\\\'); +INSERT INTO `sX` VALUES (' \\\\\'); +INSERT INTO `sX` VALUES (' \\\\\'); +INSERT INTO `sX` VALUES (' \\\\\'); +INSERT INTO `sX` VALUES ('@\\\\\'); +INSERT INTO `sX` VALUES ('@@\\\\\'); +INSERT INTO `sX` VALUES ('@@@\\\\\'); +INSERT INTO `sPO` VALUES (''); +INSERT INTO `sPO` VALUES (' '); +INSERT INTO `sPO` VALUES (' '); +INSERT INTO `sPO` VALUES (' '); +INSERT INTO `sPO` VALUES ('@'); +INSERT INTO `sPO` VALUES ('@@'); +INSERT INTO `sPO` VALUES ('@@@'); +INSERT INTO `sPP` VALUES (''); +INSERT INTO `sPP` VALUES (' '); +INSERT INTO `sPP` VALUES (' '); +INSERT INTO `sPP` VALUES (' '); +INSERT INTO `sPP` VALUES ('@'); +INSERT INTO `sPP` VALUES ('@@'); +INSERT INTO `sPP` VALUES ('@@@'); +INSERT INTO `sPQ` VALUES ('\\\\\'); +INSERT INTO `sPQ` VALUES (' \\\\\'); +INSERT INTO `sPQ` VALUES (' \\\\\'); +INSERT INTO `sPQ` VALUES (' \\\\\'); +INSERT INTO `sPQ` VALUES ('@\\\\\'); +INSERT INTO `sPQ` VALUES ('@@\\\\\'); +INSERT INTO `sPQ` VALUES ('@@@\\\\\'); +SELECT LTRIM(`bP`) from `sP`; +LTRIM(`bP`) + + + +@@@ +@@ +@ + +SELECT LTRIM(`bP`) from `sQ`; +LTRIM(`bP`) + + + +@@@ +@@ +@ + +SELECT LTRIM(`bP`) from `sR`; +LTRIM(`bP`) +\\\\\ +\\\\\ +\\\\\ +@@@\\\\\ +@@\\\\\ +@\\\\\ +\\\\\ +SELECT LTRIM(`bP`) from `sS`; +LTRIM(`bP`) + + + +@@@ +@@ +@ + +SELECT LTRIM(`bP`) from `sT`; +LTRIM(`bP`) + + + +@@@ +@@ +@ + +SELECT LTRIM(`bP`) from `sU`; +LTRIM(`bP`) +\\\\\ +\\\\\ +\\\\\ +@@@\\\\\ +@@\\\\\ +@\\\\\ +\\\\\ +SELECT LTRIM(`bP`) from `sV`; +LTRIM(`bP`) + + + + +@ +@@ +@@@ +SELECT LTRIM(`bP`) from `sW`; +LTRIM(`bP`) + + + + +@ +@@ +@@@ +SELECT LTRIM(`bP`) from `sX`; +LTRIM(`bP`) +\\\\\ +\\\\\ +\\\\\ +\\\\\ +@\\\\\ +@@\\\\\ +@@@\\\\\ +SELECT LTRIM(`bP`) from `sPO`; +LTRIM(`bP`) + + + + +@ +@@ +@@@ +SELECT LTRIM(`bP`) from `sPP`; +LTRIM(`bP`) + + + + +@ +@@ +@@@ +SELECT LTRIM(`bP`) from `sPQ`; +LTRIM(`bP`) +\\\\\ +\\\\\ +\\\\\ +\\\\\ +@\\\\\ +@@\\\\\ +@@@\\\\\ +DROP TABLE `sP`; +DROP TABLE `sQ`; +DROP TABLE `sR`; +DROP TABLE `sS`; +DROP TABLE `sT`; +DROP TABLE `sU`; +DROP TABLE `sV`; +DROP TABLE `sW`; +DROP TABLE `sX`; +DROP TABLE `sPO`; +DROP TABLE `sPP`; +DROP TABLE `sPQ`; diff --git a/mysql-test/suite/jp/r/jp_ltrim_ucs2.result b/mysql-test/suite/jp/r/jp_ltrim_ucs2.result new file mode 100755 index 00000000000..533cf95a976 --- /dev/null +++ b/mysql-test/suite/jp/r/jp_ltrim_ucs2.result @@ -0,0 +1,229 @@ +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +SET NAMES ujis; +SET character_set_database = ucs2; +SET collation_connection = ucs2_general_ci; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (' ܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (' ܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (' ܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (' ܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (' ܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (' ܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (' ܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (' ܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (' ܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (' ܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (' ܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (' ܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +SELECT LTRIM(`ã`) from `ԣ`; +LTRIM(`ã`) + + + + + + + +SELECT LTRIM(`ã`) from `ԣ`; +LTRIM(`ã`) + + + + + + + +SELECT LTRIM(`ã`) from `ԣ`; +LTRIM(`ã`) +܏ݏޏߏ +܏ݏޏߏ +܏ݏޏߏ +܏ݏޏߏ +܏ݏޏߏ +܏ݏޏߏ +܏ݏޏߏ +SELECT LTRIM(`ã`) from `ԣ`; +LTRIM(`ã`) + + + + + + + +SELECT LTRIM(`ã`) from `ԣ`; +LTRIM(`ã`) + + + + + + + +SELECT LTRIM(`ã`) from `ԣ`; +LTRIM(`ã`) +܏ݏޏߏ +܏ݏޏߏ +܏ݏޏߏ +܏ݏޏߏ +܏ݏޏߏ +܏ݏޏߏ +܏ݏޏߏ +SELECT LTRIM(`ã`) from `ԣ`; +LTRIM(`ã`) + + + + + + + +SELECT LTRIM(`ã`) from `ԣ`; +LTRIM(`ã`) + + + + + + + +SELECT LTRIM(`ã`) from `ԣ`; +LTRIM(`ã`) +܏ݏޏߏ +܏ݏޏߏ +܏ݏޏߏ +܏ݏޏߏ +܏ݏޏߏ +܏ݏޏߏ +܏ݏޏߏ +SELECT LTRIM(`ã`) from `ԣ`; +LTRIM(`ã`) + + + + + + + +SELECT LTRIM(`ã`) from `ԣ`; +LTRIM(`ã`) + + + + + + + +SELECT LTRIM(`ã`) from `ԣ`; +LTRIM(`ã`) +܏ݏޏߏ +܏ݏޏߏ +܏ݏޏߏ +܏ݏޏߏ +܏ݏޏߏ +܏ݏޏߏ +܏ݏޏߏ +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; diff --git a/mysql-test/suite/jp/r/jp_ltrim_ujis.result b/mysql-test/suite/jp/r/jp_ltrim_ujis.result new file mode 100755 index 00000000000..1c95f28907f --- /dev/null +++ b/mysql-test/suite/jp/r/jp_ltrim_ujis.result @@ -0,0 +1,228 @@ +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +SET NAMES ujis; +SET character_set_database = ujis; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (' ܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (' ܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (' ܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (' ܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (' ܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (' ܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (' ܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (' ܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (' ܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (' ܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (' ܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (' ܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +SELECT LTRIM(`ã`) from `ԣ`; +LTRIM(`ã`) + + + + + + + +SELECT LTRIM(`ã`) from `ԣ`; +LTRIM(`ã`) + + + + + + + +SELECT LTRIM(`ã`) from `ԣ`; +LTRIM(`ã`) +܏ݏޏߏ +܏ݏޏߏ +܏ݏޏߏ +܏ݏޏߏ +܏ݏޏߏ +܏ݏޏߏ +܏ݏޏߏ +SELECT LTRIM(`ã`) from `ԣ`; +LTRIM(`ã`) + + + + + + + +SELECT LTRIM(`ã`) from `ԣ`; +LTRIM(`ã`) + + + + + + + +SELECT LTRIM(`ã`) from `ԣ`; +LTRIM(`ã`) +܏ݏޏߏ +܏ݏޏߏ +܏ݏޏߏ +܏ݏޏߏ +܏ݏޏߏ +܏ݏޏߏ +܏ݏޏߏ +SELECT LTRIM(`ã`) from `ԣ`; +LTRIM(`ã`) + + + + + + + +SELECT LTRIM(`ã`) from `ԣ`; +LTRIM(`ã`) + + + + + + + +SELECT LTRIM(`ã`) from `ԣ`; +LTRIM(`ã`) +܏ݏޏߏ +܏ݏޏߏ +܏ݏޏߏ +܏ݏޏߏ +܏ݏޏߏ +܏ݏޏߏ +܏ݏޏߏ +SELECT LTRIM(`ã`) from `ԣ`; +LTRIM(`ã`) + + + + + + + +SELECT LTRIM(`ã`) from `ԣ`; +LTRIM(`ã`) + + + + + + + +SELECT LTRIM(`ã`) from `ԣ`; +LTRIM(`ã`) +܏ݏޏߏ +܏ݏޏߏ +܏ݏޏߏ +܏ݏޏߏ +܏ݏޏߏ +܏ݏޏߏ +܏ݏޏߏ +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; diff --git a/mysql-test/suite/jp/r/jp_ltrim_utf8.result b/mysql-test/suite/jp/r/jp_ltrim_utf8.result new file mode 100755 index 00000000000..c6fae7233f1 --- /dev/null +++ b/mysql-test/suite/jp/r/jp_ltrim_utf8.result @@ -0,0 +1,228 @@ +drop table if exists `T1`; +drop table if exists `T2`; +drop table if exists `T3`; +drop table if exists `T4`; +drop table if exists `T5`; +drop table if exists `T6`; +drop table if exists `T7`; +drop table if exists `T8`; +drop table if exists `T9`; +drop table if exists `T10`; +SET NAMES utf8; +SET character_set_database = utf8; +CREATE TABLE `T1` (`C1` char(8), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T2` (`C1` char(8), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T3` (`C1` char(8), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T4` (`C1` char(8), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T5` (`C1` char(8), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T6` (`C1` char(8), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T7` (`C1` char(8), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T8` (`C1` char(8), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T9` (`C1` char(8), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T10` (`C1` char(8), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +CREATE TABLE `T11` (`C1` char(8), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +CREATE TABLE `T12` (`C1` char(8), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +INSERT INTO `T1` VALUES ('アイウエオ'); +INSERT INTO `T1` VALUES (' アイウエオ'); +INSERT INTO `T1` VALUES (' アイウエオ'); +INSERT INTO `T1` VALUES (' アイウエオ'); +INSERT INTO `T1` VALUES (' アイウエオ'); +INSERT INTO `T1` VALUES ('  アイウエオ'); +INSERT INTO `T1` VALUES ('   アイウエオ'); +INSERT INTO `T2` VALUES ('あいうえお'); +INSERT INTO `T2` VALUES (' あいうえお'); +INSERT INTO `T2` VALUES (' あいうえお'); +INSERT INTO `T2` VALUES (' あいうえお'); +INSERT INTO `T2` VALUES (' あいうえお'); +INSERT INTO `T2` VALUES ('  あいうえお'); +INSERT INTO `T2` VALUES ('   あいうえお'); +INSERT INTO `T3` VALUES ('龔龖龗龞龡'); +INSERT INTO `T3` VALUES (' 龔龖龗龞龡'); +INSERT INTO `T3` VALUES (' 龔龖龗龞龡'); +INSERT INTO `T3` VALUES (' 龔龖龗龞龡'); +INSERT INTO `T3` VALUES (' 龔龖龗龞龡'); +INSERT INTO `T3` VALUES ('  龔龖龗龞龡'); +INSERT INTO `T3` VALUES ('   龔龖龗龞龡'); +INSERT INTO `T4` VALUES ('アイウエオ'); +INSERT INTO `T4` VALUES (' アイウエオ'); +INSERT INTO `T4` VALUES (' アイウエオ'); +INSERT INTO `T4` VALUES (' アイウエオ'); +INSERT INTO `T4` VALUES (' アイウエオ'); +INSERT INTO `T4` VALUES ('  アイウエオ'); +INSERT INTO `T4` VALUES ('   アイウエオ'); +INSERT INTO `T5` VALUES ('あいうえお'); +INSERT INTO `T5` VALUES (' あいうえお'); +INSERT INTO `T5` VALUES (' あいうえお'); +INSERT INTO `T5` VALUES (' あいうえお'); +INSERT INTO `T5` VALUES (' あいうえお'); +INSERT INTO `T5` VALUES ('  あいうえお'); +INSERT INTO `T5` VALUES ('   あいうえお'); +INSERT INTO `T6` VALUES ('龔龖龗龞龡'); +INSERT INTO `T6` VALUES (' 龔龖龗龞龡'); +INSERT INTO `T6` VALUES (' 龔龖龗龞龡'); +INSERT INTO `T6` VALUES (' 龔龖龗龞龡'); +INSERT INTO `T6` VALUES (' 龔龖龗龞龡'); +INSERT INTO `T6` VALUES ('  龔龖龗龞龡'); +INSERT INTO `T6` VALUES ('   龔龖龗龞龡'); +INSERT INTO `T7` VALUES ('アイウエオ'); +INSERT INTO `T7` VALUES (' アイウエオ'); +INSERT INTO `T7` VALUES (' アイウエオ'); +INSERT INTO `T7` VALUES (' アイウエオ'); +INSERT INTO `T7` VALUES (' アイウエオ'); +INSERT INTO `T7` VALUES ('  アイウエオ'); +INSERT INTO `T7` VALUES ('   アイウエオ'); +INSERT INTO `T8` VALUES ('あいうえお'); +INSERT INTO `T8` VALUES (' あいうえお'); +INSERT INTO `T8` VALUES (' あいうえお'); +INSERT INTO `T8` VALUES (' あいうえお'); +INSERT INTO `T8` VALUES (' あいうえお'); +INSERT INTO `T8` VALUES ('  あいうえお'); +INSERT INTO `T8` VALUES ('   あいうえお'); +INSERT INTO `T9` VALUES ('龔龖龗龞龡'); +INSERT INTO `T9` VALUES (' 龔龖龗龞龡'); +INSERT INTO `T9` VALUES (' 龔龖龗龞龡'); +INSERT INTO `T9` VALUES (' 龔龖龗龞龡'); +INSERT INTO `T9` VALUES (' 龔龖龗龞龡'); +INSERT INTO `T9` VALUES ('  龔龖龗龞龡'); +INSERT INTO `T9` VALUES ('   龔龖龗龞龡'); +INSERT INTO `T10` VALUES ('アイウエオ'); +INSERT INTO `T10` VALUES (' アイウエオ'); +INSERT INTO `T10` VALUES (' アイウエオ'); +INSERT INTO `T10` VALUES (' アイウエオ'); +INSERT INTO `T10` VALUES (' アイウエオ'); +INSERT INTO `T10` VALUES ('  アイウエオ'); +INSERT INTO `T10` VALUES ('   アイウエオ'); +INSERT INTO `T11` VALUES ('あいうえお'); +INSERT INTO `T11` VALUES (' あいうえお'); +INSERT INTO `T11` VALUES (' あいうえお'); +INSERT INTO `T11` VALUES (' あいうえお'); +INSERT INTO `T11` VALUES (' あいうえお'); +INSERT INTO `T11` VALUES ('  あいうえお'); +INSERT INTO `T11` VALUES ('   あいうえお'); +INSERT INTO `T12` VALUES ('龔龖龗龞龡'); +INSERT INTO `T12` VALUES (' 龔龖龗龞龡'); +INSERT INTO `T12` VALUES (' 龔龖龗龞龡'); +INSERT INTO `T12` VALUES (' 龔龖龗龞龡'); +INSERT INTO `T12` VALUES (' 龔龖龗龞龡'); +INSERT INTO `T12` VALUES ('  龔龖龗龞龡'); +INSERT INTO `T12` VALUES ('   龔龖龗龞龡'); +SELECT LTRIM(`C1`) from `T1`; +LTRIM(`C1`) +アイウエオ +アイウエオ +アイウエオ +   アイウエオ +  アイウエオ + アイウエオ +アイウエオ +SELECT LTRIM(`C1`) from `T2`; +LTRIM(`C1`) +あいうえお +あいうえお +あいうえお +   あいうえお +  あいうえお + あいうえお +あいうえお +SELECT LTRIM(`C1`) from `T3`; +LTRIM(`C1`) +龔龖龗龞龡 +龔龖龗龞龡 +龔龖龗龞龡 +   龔龖龗龞龡 +  龔龖龗龞龡 + 龔龖龗龞龡 +龔龖龗龞龡 +SELECT LTRIM(`C1`) from `T4`; +LTRIM(`C1`) +アイウエオ +アイウエオ +アイウエオ +   アイウエオ +  アイウエオ + アイウエオ +アイウエオ +SELECT LTRIM(`C1`) from `T5`; +LTRIM(`C1`) +あいうえお +あいうえお +あいうえお +   あいうえお +  あいうえお + あいうえお +あいうえお +SELECT LTRIM(`C1`) from `T6`; +LTRIM(`C1`) +龔龖龗龞龡 +龔龖龗龞龡 +龔龖龗龞龡 +   龔龖龗龞龡 +  龔龖龗龞龡 + 龔龖龗龞龡 +龔龖龗龞龡 +SELECT LTRIM(`C1`) from `T7`; +LTRIM(`C1`) +アイウエオ +アイウエオ +アイウエオ +アイウエオ + アイウエオ +  アイウエオ +   アイウエオ +SELECT LTRIM(`C1`) from `T8`; +LTRIM(`C1`) +あいうえお +あいうえお +あいうえお +あいうえお + あいうえお +  あいうえお +   あいうえお +SELECT LTRIM(`C1`) from `T9`; +LTRIM(`C1`) +龔龖龗龞龡 +龔龖龗龞龡 +龔龖龗龞龡 +龔龖龗龞龡 + 龔龖龗龞龡 +  龔龖龗龞龡 +   龔龖龗龞龡 +SELECT LTRIM(`C1`) from `T10`; +LTRIM(`C1`) +アイウエオ +アイウエオ +アイウエオ +アイウエオ + アイウエオ +  アイウエオ +   アイウエオ +SELECT LTRIM(`C1`) from `T11`; +LTRIM(`C1`) +あいうえお +あいうえお +あいうえお +あいうえお + あいうえお +  あいうえお +   あいうえお +SELECT LTRIM(`C1`) from `T12`; +LTRIM(`C1`) +龔龖龗龞龡 +龔龖龗龞龡 +龔龖龗龞龡 +龔龖龗龞龡 + 龔龖龗龞龡 +  龔龖龗龞龡 +   龔龖龗龞龡 +DROP TABLE `T1`; +DROP TABLE `T2`; +DROP TABLE `T3`; +DROP TABLE `T4`; +DROP TABLE `T5`; +DROP TABLE `T6`; +DROP TABLE `T7`; +DROP TABLE `T8`; +DROP TABLE `T9`; +DROP TABLE `T10`; +DROP TABLE `T11`; +DROP TABLE `T12`; diff --git a/mysql-test/suite/jp/r/jp_ps_sjis.result b/mysql-test/suite/jp/r/jp_ps_sjis.result new file mode 100755 index 00000000000..2397bc78c5b --- /dev/null +++ b/mysql-test/suite/jp/r/jp_ps_sjis.result @@ -0,0 +1,896 @@ +DROP TABLE IF EXISTS t1; +DROP TABLE IF EXISTS t2; +DROP TABLE IF EXISTS t3; +DROP TABLE IF EXISTS t4; +SET NAMES sjis; +SET character_set_database = sjis; +CREATE TABLE t1(c1 char(3)) DEFAULT CHARSET = sjis ENGINE = InnoDB; +CREATE TABLE t2(c1 char(3)) DEFAULT CHARSET = sjis ENGINE = InnoDB; +CREATE TABLE t3( +`` char(1), +`` char(1), +`\` char(1) +)DEFAULT CHARSET = sjis ENGINE = InnoDB; +CREATE TABLE t4(c1 char(1)) DEFAULT CHARSET = sjis ENGINE = InnoDB; +INSERT INTO t1 VALUES ('xxx'); +INSERT INTO t2 VALUES ('\'); +INSERT INTO t3 VALUES ('x','x','x'),('x','x','x'),('y','y','y'),('y','y','y'),('z','z','z'),('z','z','z'); +INSERT INTO t4 VALUES (''),(''),('\'); +PREPARE stmt1 FROM 'SELECT ? FROM t3'; +PREPARE stmt2 FROM 'SELECT * FROM t3 ORDER BY ?'; +PREPARE stmt3 FROM 'SELECT COUNT(*) FROM t3 GROUP BY ?'; +PREPARE stmt4 FROM 'SELECT CHAR_LENGTH(?)'; +PREPARE stmt5 FROM 'SELECT CHARSET(?)'; +PREPARE stmt6 FROM 'SELECT INSERT(c1,1,1,?) FROM t1'; +PREPARE stmt7 FROM 'SELECT INSTR(c1,?) FROM t2'; +PREPARE stmt8 FROM 'SELECT LOCATE(?,c1) FROM t2'; +PREPARE stmt9 FROM 'SELECT LPAD(c1,10,?) FROM t1'; +PREPARE stmt10 FROM 'SELECT REPLACE(c1,?,\'x\') FROM t2'; +PREPARE stmt11 FROM 'SELECT REPLACE(c1,\'x\',?) FROM t1'; +PREPARE stmt12 FROM 'SELECT RPAD(c1,10,?) FROM t1'; +PREPARE stmt13 FROM 'UPDATE t4 SET c1=\'x\' WHERE c1=?'; +PREPARE stmt14 FROM 'UPDATE t4 SET c1=? WHERE c1=\'x\''; +SET @arg = ''; +EXECUTE stmt1 USING @arg; +? + + + + + + +EXECUTE stmt2 USING @arg; + \ +x x x +x x x +y y y +y y y +z z z +z z z +EXECUTE stmt3 USING @arg; +COUNT(*) +6 +EXECUTE stmt4 USING @arg; +CHAR_LENGTH(?) +1 +EXECUTE stmt5 USING @arg; +CHARSET(?) +sjis +EXECUTE stmt6 USING @arg; +INSERT(c1,1,1,?) +xx +EXECUTE stmt7 USING @arg; +INSTR(c1,?) +1 +EXECUTE stmt8 USING @arg; +LOCATE(?,c1) +1 +EXECUTE stmt9 USING @arg; +LPAD(c1,10,?) +xxx +EXECUTE stmt10 USING @arg; +REPLACE(c1,?,'x') +x\ +EXECUTE stmt11 USING @arg; +REPLACE(c1,'x',?) + +EXECUTE stmt12 USING @arg; +RPAD(c1,10,?) +xxx +EXECUTE stmt13 USING @arg; +SELECT * FROM t4; +c1 +x + +\ +EXECUTE stmt14 USING @arg; +SELECT * FROM t4; +c1 + + +\ +SET @arg = ''; +EXECUTE stmt1 USING @arg; +? + + + + + + +EXECUTE stmt2 USING @arg; + \ +x x x +x x x +y y y +y y y +z z z +z z z +EXECUTE stmt3 USING @arg; +COUNT(*) +6 +EXECUTE stmt4 USING @arg; +CHAR_LENGTH(?) +1 +EXECUTE stmt5 USING @arg; +CHARSET(?) +sjis +EXECUTE stmt6 USING @arg; +INSERT(c1,1,1,?) +xx +EXECUTE stmt7 USING @arg; +INSTR(c1,?) +2 +EXECUTE stmt8 USING @arg; +LOCATE(?,c1) +2 +EXECUTE stmt9 USING @arg; +LPAD(c1,10,?) +xxx +EXECUTE stmt10 USING @arg; +REPLACE(c1,?,'x') +x\ +EXECUTE stmt11 USING @arg; +REPLACE(c1,'x',?) + +EXECUTE stmt12 USING @arg; +RPAD(c1,10,?) +xxx +EXECUTE stmt13 USING @arg; +SELECT * FROM t4; +c1 + +x +\ +EXECUTE stmt14 USING @arg; +SELECT * FROM t4; +c1 + + +\ +SET @arg = '\'; +EXECUTE stmt1 USING @arg; +? +\ +\ +\ +\ +\ +\ +EXECUTE stmt2 USING @arg; + \ +x x x +x x x +y y y +y y y +z z z +z z z +EXECUTE stmt3 USING @arg; +COUNT(*) +6 +EXECUTE stmt4 USING @arg; +CHAR_LENGTH(?) +1 +EXECUTE stmt5 USING @arg; +CHARSET(?) +sjis +EXECUTE stmt6 USING @arg; +INSERT(c1,1,1,?) +\xx +EXECUTE stmt7 USING @arg; +INSTR(c1,?) +3 +EXECUTE stmt8 USING @arg; +LOCATE(?,c1) +3 +EXECUTE stmt9 USING @arg; +LPAD(c1,10,?) +\\\\\\\xxx +EXECUTE stmt10 USING @arg; +REPLACE(c1,?,'x') +x +EXECUTE stmt11 USING @arg; +REPLACE(c1,'x',?) +\\\ +EXECUTE stmt12 USING @arg; +RPAD(c1,10,?) +xxx\\\\\\\ +EXECUTE stmt13 USING @arg; +SELECT * FROM t4; +c1 + + +x +EXECUTE stmt14 USING @arg; +SELECT * FROM t4; +c1 + + +\ +DEALLOCATE PREPARE stmt1; +DEALLOCATE PREPARE stmt2; +DEALLOCATE PREPARE stmt3; +DEALLOCATE PREPARE stmt4; +DEALLOCATE PREPARE stmt5; +DEALLOCATE PREPARE stmt6; +DEALLOCATE PREPARE stmt7; +DEALLOCATE PREPARE stmt8; +DEALLOCATE PREPARE stmt9; +DEALLOCATE PREPARE stmt10; +DEALLOCATE PREPARE stmt11; +DEALLOCATE PREPARE stmt12; +DEALLOCATE PREPARE stmt13; +DEALLOCATE PREPARE stmt14; +DROP TABLE t1; +DROP TABLE t2; +DROP TABLE t3; +DROP TABLE t4; +CREATE TABLE t1(c1 char(3)) DEFAULT CHARSET = sjis ENGINE = MyISAM; +CREATE TABLE t2(c1 char(3)) DEFAULT CHARSET = sjis ENGINE = MyISAM; +CREATE TABLE t3( +`` char(1), +`` char(1), +`\` char(1) +)DEFAULT CHARSET = sjis ENGINE = MyISAM; +CREATE TABLE t4(c1 char(1)) DEFAULT CHARSET = sjis ENGINE = MyISAM; +INSERT INTO t1 VALUES ('xxx'); +INSERT INTO t2 VALUES ('\'); +INSERT INTO t3 VALUES ('x','x','x'),('x','x','x'),('y','y','y'),('y','y','y'),('z','z','z'),('z','z','z'); +INSERT INTO t4 VALUES (''),(''),('\' ); +PREPARE stmt1 FROM 'SELECT ? FROM t3'; +PREPARE stmt2 FROM 'SELECT * FROM t3 ORDER BY ?'; +PREPARE stmt3 FROM 'SELECT COUNT(*) FROM t3 GROUP BY ?'; +PREPARE stmt4 FROM 'SELECT CHAR_LENGTH(?)'; +PREPARE stmt5 FROM 'SELECT CHARSET(?)'; +PREPARE stmt6 FROM 'SELECT INSERT(c1,1,1,?) FROM t1'; +PREPARE stmt7 FROM 'SELECT INSTR(c1,?) FROM t2'; +PREPARE stmt8 FROM 'SELECT LOCATE(?,c1) FROM t2'; +PREPARE stmt9 FROM 'SELECT LPAD(c1,10,?) FROM t1'; +PREPARE stmt10 FROM 'SELECT REPLACE(c1,?,\'x\') FROM t2'; +PREPARE stmt11 FROM 'SELECT REPLACE(c1,\'x\',?) FROM t1'; +PREPARE stmt12 FROM 'SELECT RPAD(c1,10,?) FROM t1'; +PREPARE stmt13 FROM 'UPDATE t4 SET c1=\'x\' WHERE c1=?'; +PREPARE stmt14 FROM 'UPDATE t4 SET c1=? WHERE c1=\'x\''; +SET @arg = ''; +EXECUTE stmt1 USING @arg; +? + + + + + + +EXECUTE stmt2 USING @arg; + \ +x x x +x x x +y y y +y y y +z z z +z z z +EXECUTE stmt3 USING @arg; +COUNT(*) +6 +EXECUTE stmt4 USING @arg; +CHAR_LENGTH(?) +1 +EXECUTE stmt5 USING @arg; +CHARSET(?) +sjis +EXECUTE stmt6 USING @arg; +INSERT(c1,1,1,?) +xx +EXECUTE stmt7 USING @arg; +INSTR(c1,?) +1 +EXECUTE stmt8 USING @arg; +LOCATE(?,c1) +1 +EXECUTE stmt9 USING @arg; +LPAD(c1,10,?) +xxx +EXECUTE stmt10 USING @arg; +REPLACE(c1,?,'x') +x\ +EXECUTE stmt11 USING @arg; +REPLACE(c1,'x',?) + +EXECUTE stmt12 USING @arg; +RPAD(c1,10,?) +xxx +EXECUTE stmt13 USING @arg; +SELECT * FROM t4; +c1 +x + +\ +EXECUTE stmt14 USING @arg; +SELECT * FROM t4; +c1 + + +\ +SET @arg = ''; +EXECUTE stmt1 USING @arg; +? + + + + + + +EXECUTE stmt2 USING @arg; + \ +x x x +x x x +y y y +y y y +z z z +z z z +EXECUTE stmt3 USING @arg; +COUNT(*) +6 +EXECUTE stmt4 USING @arg; +CHAR_LENGTH(?) +1 +EXECUTE stmt5 USING @arg; +CHARSET(?) +sjis +EXECUTE stmt6 USING @arg; +INSERT(c1,1,1,?) +xx +EXECUTE stmt7 USING @arg; +INSTR(c1,?) +2 +EXECUTE stmt8 USING @arg; +LOCATE(?,c1) +2 +EXECUTE stmt9 USING @arg; +LPAD(c1,10,?) +xxx +EXECUTE stmt10 USING @arg; +REPLACE(c1,?,'x') +x\ +EXECUTE stmt11 USING @arg; +REPLACE(c1,'x',?) + +EXECUTE stmt12 USING @arg; +RPAD(c1,10,?) +xxx +EXECUTE stmt13 USING @arg; +SELECT * FROM t4; +c1 + +x +\ +EXECUTE stmt14 USING @arg; +SELECT * FROM t4; +c1 + + +\ +SET @arg = '\'; +EXECUTE stmt1 USING @arg; +? +\ +\ +\ +\ +\ +\ +EXECUTE stmt2 USING @arg; + \ +x x x +x x x +y y y +y y y +z z z +z z z +EXECUTE stmt3 USING @arg; +COUNT(*) +6 +EXECUTE stmt4 USING @arg; +CHAR_LENGTH(?) +1 +EXECUTE stmt5 USING @arg; +CHARSET(?) +sjis +EXECUTE stmt6 USING @arg; +INSERT(c1,1,1,?) +\xx +EXECUTE stmt7 USING @arg; +INSTR(c1,?) +3 +EXECUTE stmt8 USING @arg; +LOCATE(?,c1) +3 +EXECUTE stmt9 USING @arg; +LPAD(c1,10,?) +\\\\\\\xxx +EXECUTE stmt10 USING @arg; +REPLACE(c1,?,'x') +x +EXECUTE stmt11 USING @arg; +REPLACE(c1,'x',?) +\\\ +EXECUTE stmt12 USING @arg; +RPAD(c1,10,?) +xxx\\\\\\\ +EXECUTE stmt13 USING @arg; +SELECT * FROM t4; +c1 + + +x +EXECUTE stmt14 USING @arg; +SELECT * FROM t4; +c1 + + +\ +DEALLOCATE PREPARE stmt1; +DEALLOCATE PREPARE stmt2; +DEALLOCATE PREPARE stmt3; +DEALLOCATE PREPARE stmt4; +DEALLOCATE PREPARE stmt5; +DEALLOCATE PREPARE stmt6; +DEALLOCATE PREPARE stmt7; +DEALLOCATE PREPARE stmt8; +DEALLOCATE PREPARE stmt9; +DEALLOCATE PREPARE stmt10; +DEALLOCATE PREPARE stmt11; +DEALLOCATE PREPARE stmt12; +DEALLOCATE PREPARE stmt13; +DEALLOCATE PREPARE stmt14; +DROP TABLE t1; +DROP TABLE t2; +DROP TABLE t3; +DROP TABLE t4; +CREATE TABLE t1(c1 char(3)) DEFAULT CHARSET = sjis ENGINE = HEAP; +CREATE TABLE t2(c1 char(3)) DEFAULT CHARSET = sjis ENGINE = HEAP; +CREATE TABLE t3( +`` char(1), +`` char(1), +`\` char(1) +)DEFAULT CHARSET = sjis ENGINE = HEAP; +CREATE TABLE t4(c1 char(1)) DEFAULT CHARSET = sjis ENGINE =HEAP; +INSERT INTO t1 VALUES ('xxx'); +INSERT INTO t2 VALUES ('\'); +INSERT INTO t3 VALUES ('x','x','x'),('x','x','x'),('y','y','y'),('y','y','y'),('z','z','z'),('z','z','z'); +INSERT INTO t4 VALUES (''),(''),('\' ); +PREPARE stmt1 FROM 'SELECT ? FROM t3'; +PREPARE stmt2 FROM 'SELECT * FROM t3 ORDER BY ?'; +PREPARE stmt3 FROM 'SELECT COUNT(*) FROM t3 GROUP BY ?'; +PREPARE stmt4 FROM 'SELECT CHAR_LENGTH(?)'; +PREPARE stmt5 FROM 'SELECT CHARSET(?)'; +PREPARE stmt6 FROM 'SELECT INSERT(c1,1,1,?) FROM t1'; +PREPARE stmt7 FROM 'SELECT INSTR(c1,?) FROM t2'; +PREPARE stmt8 FROM 'SELECT LOCATE(?,c1) FROM t2'; +PREPARE stmt9 FROM 'SELECT LPAD(c1,10,?) FROM t1'; +PREPARE stmt10 FROM 'SELECT REPLACE(c1,?,\'x\') FROM t2'; +PREPARE stmt11 FROM 'SELECT REPLACE(c1,\'x\',?) FROM t1'; +PREPARE stmt12 FROM 'SELECT RPAD(c1,10,?) FROM t1'; +PREPARE stmt13 FROM 'UPDATE t4 SET c1=\'x\' WHERE c1=?'; +PREPARE stmt14 FROM 'UPDATE t4 SET c1=? WHERE c1=\'x\''; +SET @arg = ''; +EXECUTE stmt1 USING @arg; +? + + + + + + +EXECUTE stmt2 USING @arg; + \ +x x x +x x x +y y y +y y y +z z z +z z z +EXECUTE stmt3 USING @arg; +COUNT(*) +6 +EXECUTE stmt4 USING @arg; +CHAR_LENGTH(?) +1 +EXECUTE stmt5 USING @arg; +CHARSET(?) +sjis +EXECUTE stmt6 USING @arg; +INSERT(c1,1,1,?) +xx +EXECUTE stmt7 USING @arg; +INSTR(c1,?) +1 +EXECUTE stmt8 USING @arg; +LOCATE(?,c1) +1 +EXECUTE stmt9 USING @arg; +LPAD(c1,10,?) +xxx +EXECUTE stmt10 USING @arg; +REPLACE(c1,?,'x') +x\ +EXECUTE stmt11 USING @arg; +REPLACE(c1,'x',?) + +EXECUTE stmt12 USING @arg; +RPAD(c1,10,?) +xxx +EXECUTE stmt13 USING @arg; +SELECT * FROM t4; +c1 +x + +\ +EXECUTE stmt14 USING @arg; +SELECT * FROM t4; +c1 + + +\ +SET @arg = ''; +EXECUTE stmt1 USING @arg; +? + + + + + + +EXECUTE stmt2 USING @arg; + \ +x x x +x x x +y y y +y y y +z z z +z z z +EXECUTE stmt3 USING @arg; +COUNT(*) +6 +EXECUTE stmt4 USING @arg; +CHAR_LENGTH(?) +1 +EXECUTE stmt5 USING @arg; +CHARSET(?) +sjis +EXECUTE stmt6 USING @arg; +INSERT(c1,1,1,?) +xx +EXECUTE stmt7 USING @arg; +INSTR(c1,?) +2 +EXECUTE stmt8 USING @arg; +LOCATE(?,c1) +2 +EXECUTE stmt9 USING @arg; +LPAD(c1,10,?) +xxx +EXECUTE stmt10 USING @arg; +REPLACE(c1,?,'x') +x\ +EXECUTE stmt11 USING @arg; +REPLACE(c1,'x',?) + +EXECUTE stmt12 USING @arg; +RPAD(c1,10,?) +xxx +EXECUTE stmt13 USING @arg; +SELECT * FROM t4; +c1 + +x +\ +EXECUTE stmt14 USING @arg; +SELECT * FROM t4; +c1 + + +\ +SET @arg = '\'; +EXECUTE stmt1 USING @arg; +? +\ +\ +\ +\ +\ +\ +EXECUTE stmt2 USING @arg; + \ +x x x +x x x +y y y +y y y +z z z +z z z +EXECUTE stmt3 USING @arg; +COUNT(*) +6 +EXECUTE stmt4 USING @arg; +CHAR_LENGTH(?) +1 +EXECUTE stmt5 USING @arg; +CHARSET(?) +sjis +EXECUTE stmt6 USING @arg; +INSERT(c1,1,1,?) +\xx +EXECUTE stmt7 USING @arg; +INSTR(c1,?) +3 +EXECUTE stmt8 USING @arg; +LOCATE(?,c1) +3 +EXECUTE stmt9 USING @arg; +LPAD(c1,10,?) +\\\\\\\xxx +EXECUTE stmt10 USING @arg; +REPLACE(c1,?,'x') +x +EXECUTE stmt11 USING @arg; +REPLACE(c1,'x',?) +\\\ +EXECUTE stmt12 USING @arg; +RPAD(c1,10,?) +xxx\\\\\\\ +EXECUTE stmt13 USING @arg; +SELECT * FROM t4; +c1 + + +x +EXECUTE stmt14 USING @arg; +SELECT * FROM t4; +c1 + + +\ +DEALLOCATE PREPARE stmt1; +DEALLOCATE PREPARE stmt2; +DEALLOCATE PREPARE stmt3; +DEALLOCATE PREPARE stmt4; +DEALLOCATE PREPARE stmt5; +DEALLOCATE PREPARE stmt6; +DEALLOCATE PREPARE stmt7; +DEALLOCATE PREPARE stmt8; +DEALLOCATE PREPARE stmt9; +DEALLOCATE PREPARE stmt10; +DEALLOCATE PREPARE stmt11; +DEALLOCATE PREPARE stmt12; +DEALLOCATE PREPARE stmt13; +DEALLOCATE PREPARE stmt14; +DROP TABLE t1; +DROP TABLE t2; +DROP TABLE t3; +DROP TABLE t4; +CREATE TABLE t1(c1 char(3)) DEFAULT CHARSET = sjis ENGINE = BDB; +CREATE TABLE t2(c1 char(3)) DEFAULT CHARSET = sjis ENGINE = BDB; +CREATE TABLE t3( +`` char(1), +`` char(1), +`\` char(1) +)DEFAULT CHARSET = sjis ENGINE = BDB; +CREATE TABLE t4(c1 char(1)) DEFAULT CHARSET = sjis ENGINE = BDB; +INSERT INTO t1 VALUES ('xxx'); +INSERT INTO t2 VALUES ('\'); +INSERT INTO t3 VALUES ('x','x','x'),('x','x','x'),('y','y','y'),('y','y','y'),('z','z','z'),('z','z','z'); +INSERT INTO t4 VALUES (''),(''),('\' ); +PREPARE stmt1 FROM 'SELECT ? FROM t3'; +PREPARE stmt2 FROM 'SELECT * FROM t3 ORDER BY ?'; +PREPARE stmt3 FROM 'SELECT COUNT(*) FROM t3 GROUP BY ?'; +PREPARE stmt4 FROM 'SELECT CHAR_LENGTH(?)'; +PREPARE stmt5 FROM 'SELECT CHARSET(?)'; +PREPARE stmt6 FROM 'SELECT INSERT(c1,1,1,?) FROM t1'; +PREPARE stmt7 FROM 'SELECT INSTR(c1,?) FROM t2'; +PREPARE stmt8 FROM 'SELECT LOCATE(?,c1) FROM t2'; +PREPARE stmt9 FROM 'SELECT LPAD(c1,10,?) FROM t1'; +PREPARE stmt10 FROM 'SELECT REPLACE(c1,?,\'x\') FROM t2'; +PREPARE stmt11 FROM 'SELECT REPLACE(c1,\'x\',?) FROM t1'; +PREPARE stmt12 FROM 'SELECT RPAD(c1,10,?) FROM t1'; +PREPARE stmt13 FROM 'UPDATE t4 SET c1=\'x\' WHERE c1=?'; +PREPARE stmt14 FROM 'UPDATE t4 SET c1=? WHERE c1=\'x\''; +SET @arg = ''; +EXECUTE stmt1 USING @arg; +? + + + + + + +EXECUTE stmt2 USING @arg; + \ +x x x +x x x +y y y +y y y +z z z +z z z +EXECUTE stmt3 USING @arg; +COUNT(*) +6 +EXECUTE stmt4 USING @arg; +CHAR_LENGTH(?) +1 +EXECUTE stmt5 USING @arg; +CHARSET(?) +sjis +EXECUTE stmt6 USING @arg; +INSERT(c1,1,1,?) +xx +EXECUTE stmt7 USING @arg; +INSTR(c1,?) +1 +EXECUTE stmt8 USING @arg; +LOCATE(?,c1) +1 +EXECUTE stmt9 USING @arg; +LPAD(c1,10,?) +xxx +EXECUTE stmt10 USING @arg; +REPLACE(c1,?,'x') +x\ +EXECUTE stmt11 USING @arg; +REPLACE(c1,'x',?) + +EXECUTE stmt12 USING @arg; +RPAD(c1,10,?) +xxx +EXECUTE stmt13 USING @arg; +SELECT * FROM t3; + \ +x x x +x x x +y y y +y y y +z z z +z z z +EXECUTE stmt14 USING @arg; +SELECT * FROM t3; + \ +x x x +x x x +y y y +y y y +z z z +z z z +SET @arg = ''; +EXECUTE stmt1 USING @arg; +? + + + + + + +EXECUTE stmt2 USING @arg; + \ +x x x +x x x +y y y +y y y +z z z +z z z +EXECUTE stmt3 USING @arg; +COUNT(*) +6 +EXECUTE stmt4 USING @arg; +CHAR_LENGTH(?) +1 +EXECUTE stmt5 USING @arg; +CHARSET(?) +sjis +EXECUTE stmt6 USING @arg; +INSERT(c1,1,1,?) +xx +EXECUTE stmt7 USING @arg; +INSTR(c1,?) +2 +EXECUTE stmt8 USING @arg; +LOCATE(?,c1) +2 +EXECUTE stmt9 USING @arg; +LPAD(c1,10,?) +xxx +EXECUTE stmt10 USING @arg; +REPLACE(c1,?,'x') +x\ +EXECUTE stmt11 USING @arg; +REPLACE(c1,'x',?) + +EXECUTE stmt12 USING @arg; +RPAD(c1,10,?) +xxx +EXECUTE stmt13 USING @arg; +SELECT * FROM t4; +c1 + +x +\ +EXECUTE stmt14 USING @arg; +SELECT * FROM t4; +c1 + + +\ +SET @arg = '\'; +EXECUTE stmt1 USING @arg; +? +\ +\ +\ +\ +\ +\ +EXECUTE stmt2 USING @arg; + \ +x x x +x x x +y y y +y y y +z z z +z z z +EXECUTE stmt3 USING @arg; +COUNT(*) +6 +EXECUTE stmt4 USING @arg; +CHAR_LENGTH(?) +1 +EXECUTE stmt5 USING @arg; +CHARSET(?) +sjis +EXECUTE stmt6 USING @arg; +INSERT(c1,1,1,?) +\xx +EXECUTE stmt7 USING @arg; +INSTR(c1,?) +3 +EXECUTE stmt8 USING @arg; +LOCATE(?,c1) +3 +EXECUTE stmt9 USING @arg; +LPAD(c1,10,?) +\\\\\\\xxx +EXECUTE stmt10 USING @arg; +REPLACE(c1,?,'x') +x +EXECUTE stmt11 USING @arg; +REPLACE(c1,'x',?) +\\\ +EXECUTE stmt12 USING @arg; +RPAD(c1,10,?) +xxx\\\\\\\ +EXECUTE stmt13 USING @arg; +SELECT * FROM t4; +c1 + + +x +EXECUTE stmt14 USING @arg; +SELECT * FROM t4; +c1 + + +\ +DEALLOCATE PREPARE stmt1; +DEALLOCATE PREPARE stmt2; +DEALLOCATE PREPARE stmt3; +DEALLOCATE PREPARE stmt4; +DEALLOCATE PREPARE stmt5; +DEALLOCATE PREPARE stmt6; +DEALLOCATE PREPARE stmt7; +DEALLOCATE PREPARE stmt8; +DEALLOCATE PREPARE stmt9; +DEALLOCATE PREPARE stmt10; +DEALLOCATE PREPARE stmt11; +DEALLOCATE PREPARE stmt12; +DEALLOCATE PREPARE stmt13; +DEALLOCATE PREPARE stmt14; +DROP TABLE t1; +DROP TABLE t2; +DROP TABLE t3; +DROP TABLE t4; diff --git a/mysql-test/suite/jp/r/jp_ps_ujis.result b/mysql-test/suite/jp/r/jp_ps_ujis.result new file mode 100755 index 00000000000..9afef7f76d1 --- /dev/null +++ b/mysql-test/suite/jp/r/jp_ps_ujis.result @@ -0,0 +1,896 @@ +DROP TABLE IF EXISTS t1; +DROP TABLE IF EXISTS t2; +DROP TABLE IF EXISTS t3; +DROP TABLE IF EXISTS t4; +SET NAMES ujis; +SET character_set_database = ujis; +CREATE TABLE t1(c1 char(3)) DEFAULT CHARSET = ujis ENGINE = InnoDB; +CREATE TABLE t2(c1 char(3)) DEFAULT CHARSET = ujis ENGINE = InnoDB; +CREATE TABLE t3( +`` char(1), +`` char(1), +`` char(1) +)DEFAULT CHARSET = ujis ENGINE = InnoDB; +CREATE TABLE t4(c1 char(1)) DEFAULT CHARSET = ujis ENGINE = InnoDB; +INSERT INTO t1 VALUES ('xxx'); +INSERT INTO t2 VALUES (''); +INSERT INTO t3 VALUES ('x','x','x'),('x','x','x'),('y','y','y'),('y','y','y'),('z','z','z'),('z','z','z'); +INSERT INTO t4 VALUES (''),(''),(''); +PREPARE stmt1 FROM 'SELECT ? FROM t3'; +PREPARE stmt2 FROM 'SELECT * FROM t3 ORDER BY ?'; +PREPARE stmt3 FROM 'SELECT COUNT(*) FROM t3 GROUP BY ?'; +PREPARE stmt4 FROM 'SELECT CHAR_LENGTH(?)'; +PREPARE stmt5 FROM 'SELECT CHARSET(?)'; +PREPARE stmt6 FROM 'SELECT INSERT(c1,1,1,?) FROM t1'; +PREPARE stmt7 FROM 'SELECT INSTR(c1,?) FROM t2'; +PREPARE stmt8 FROM 'SELECT LOCATE(?,c1) FROM t2'; +PREPARE stmt9 FROM 'SELECT LPAD(c1,9,?) FROM t1'; +PREPARE stmt10 FROM 'SELECT REPLACE(c1,?,\'x\') FROM t2'; +PREPARE stmt11 FROM 'SELECT REPLACE(c1,\'x\',?) FROM t1'; +PREPARE stmt12 FROM 'SELECT RPAD(c1,9,?) FROM t1'; +PREPARE stmt13 FROM 'UPDATE t4 SET c1=\'x\' WHERE c1=?'; +PREPARE stmt14 FROM 'UPDATE t4 SET c1=? WHERE c1=\'x\''; +SET @arg = ''; +EXECUTE stmt1 USING @arg; +? + + + + + + +EXECUTE stmt2 USING @arg; + +x x x +x x x +y y y +y y y +z z z +z z z +EXECUTE stmt3 USING @arg; +COUNT(*) +6 +EXECUTE stmt4 USING @arg; +CHAR_LENGTH(?) +1 +EXECUTE stmt5 USING @arg; +CHARSET(?) +ujis +EXECUTE stmt6 USING @arg; +INSERT(c1,1,1,?) +xx +EXECUTE stmt7 USING @arg; +INSTR(c1,?) +1 +EXECUTE stmt8 USING @arg; +LOCATE(?,c1) +1 +EXECUTE stmt9 USING @arg; +LPAD(c1,9,?) +xxx +EXECUTE stmt10 USING @arg; +REPLACE(c1,?,'x') +x +EXECUTE stmt11 USING @arg; +REPLACE(c1,'x',?) + +EXECUTE stmt12 USING @arg; +RPAD(c1,9,?) +xxx +EXECUTE stmt13 USING @arg; +SELECT * FROM t4; +c1 +x + + +EXECUTE stmt14 USING @arg; +SELECT * FROM t4; +c1 + + + +SET @arg = ''; +EXECUTE stmt1 USING @arg; +? + + + + + + +EXECUTE stmt2 USING @arg; + +x x x +x x x +y y y +y y y +z z z +z z z +EXECUTE stmt3 USING @arg; +COUNT(*) +6 +EXECUTE stmt4 USING @arg; +CHAR_LENGTH(?) +1 +EXECUTE stmt5 USING @arg; +CHARSET(?) +ujis +EXECUTE stmt6 USING @arg; +INSERT(c1,1,1,?) +xx +EXECUTE stmt7 USING @arg; +INSTR(c1,?) +2 +EXECUTE stmt8 USING @arg; +LOCATE(?,c1) +2 +EXECUTE stmt9 USING @arg; +LPAD(c1,9,?) +xxx +EXECUTE stmt10 USING @arg; +REPLACE(c1,?,'x') +x +EXECUTE stmt11 USING @arg; +REPLACE(c1,'x',?) + +EXECUTE stmt12 USING @arg; +RPAD(c1,9,?) +xxx +EXECUTE stmt13 USING @arg; +SELECT * FROM t4; +c1 + +x + +EXECUTE stmt14 USING @arg; +SELECT * FROM t4; +c1 + + + +SET @arg = ''; +EXECUTE stmt1 USING @arg; +? + + + + + + +EXECUTE stmt2 USING @arg; + +x x x +x x x +y y y +y y y +z z z +z z z +EXECUTE stmt3 USING @arg; +COUNT(*) +6 +EXECUTE stmt4 USING @arg; +CHAR_LENGTH(?) +1 +EXECUTE stmt5 USING @arg; +CHARSET(?) +ujis +EXECUTE stmt6 USING @arg; +INSERT(c1,1,1,?) +xx +EXECUTE stmt7 USING @arg; +INSTR(c1,?) +3 +EXECUTE stmt8 USING @arg; +LOCATE(?,c1) +3 +EXECUTE stmt9 USING @arg; +LPAD(c1,9,?) +܏܏܏܏܏xxx +EXECUTE stmt10 USING @arg; +REPLACE(c1,?,'x') +x +EXECUTE stmt11 USING @arg; +REPLACE(c1,'x',?) +܏܏ +EXECUTE stmt12 USING @arg; +RPAD(c1,9,?) +xxx܏܏܏܏܏ +EXECUTE stmt13 USING @arg; +SELECT * FROM t4; +c1 + + +x +EXECUTE stmt14 USING @arg; +SELECT * FROM t4; +c1 + + + +DEALLOCATE PREPARE stmt1; +DEALLOCATE PREPARE stmt2; +DEALLOCATE PREPARE stmt3; +DEALLOCATE PREPARE stmt4; +DEALLOCATE PREPARE stmt5; +DEALLOCATE PREPARE stmt6; +DEALLOCATE PREPARE stmt7; +DEALLOCATE PREPARE stmt8; +DEALLOCATE PREPARE stmt9; +DEALLOCATE PREPARE stmt10; +DEALLOCATE PREPARE stmt11; +DEALLOCATE PREPARE stmt12; +DEALLOCATE PREPARE stmt13; +DEALLOCATE PREPARE stmt14; +DROP TABLE t1; +DROP TABLE t2; +DROP TABLE t3; +DROP TABLE t4; +CREATE TABLE t1(c1 char(3)) DEFAULT CHARSET = ujis ENGINE = MyISAM; +CREATE TABLE t2(c1 char(3)) DEFAULT CHARSET = ujis ENGINE = MyISAM; +CREATE TABLE t3( +`` char(1), +`` char(1), +`` char(1) +)DEFAULT CHARSET = ujis ENGINE = MyISAM; +CREATE TABLE t4(c1 char(1)) DEFAULT CHARSET = ujis ENGINE = MyISAM; +INSERT INTO t1 VALUES ('xxx'); +INSERT INTO t2 VALUES (''); +INSERT INTO t3 VALUES ('x','x','x'),('x','x','x'),('y','y','y'),('y','y','y'),('z','z','z'),('z','z','z'); +INSERT INTO t4 VALUES (''),(''),('' ); +PREPARE stmt1 FROM 'SELECT ? FROM t3'; +PREPARE stmt2 FROM 'SELECT * FROM t3 ORDER BY ?'; +PREPARE stmt3 FROM 'SELECT COUNT(*) FROM t3 GROUP BY ?'; +PREPARE stmt4 FROM 'SELECT CHAR_LENGTH(?)'; +PREPARE stmt5 FROM 'SELECT CHARSET(?)'; +PREPARE stmt6 FROM 'SELECT INSERT(c1,1,1,?) FROM t1'; +PREPARE stmt7 FROM 'SELECT INSTR(c1,?) FROM t2'; +PREPARE stmt8 FROM 'SELECT LOCATE(?,c1) FROM t2'; +PREPARE stmt9 FROM 'SELECT LPAD(c1,9,?) FROM t1'; +PREPARE stmt10 FROM 'SELECT REPLACE(c1,?,\'x\') FROM t2'; +PREPARE stmt11 FROM 'SELECT REPLACE(c1,\'x\',?) FROM t1'; +PREPARE stmt12 FROM 'SELECT RPAD(c1,9,?) FROM t1'; +PREPARE stmt13 FROM 'UPDATE t4 SET c1=\'x\' WHERE c1=?'; +PREPARE stmt14 FROM 'UPDATE t4 SET c1=? WHERE c1=\'x\''; +SET @arg = ''; +EXECUTE stmt1 USING @arg; +? + + + + + + +EXECUTE stmt2 USING @arg; + +x x x +x x x +y y y +y y y +z z z +z z z +EXECUTE stmt3 USING @arg; +COUNT(*) +6 +EXECUTE stmt4 USING @arg; +CHAR_LENGTH(?) +1 +EXECUTE stmt5 USING @arg; +CHARSET(?) +ujis +EXECUTE stmt6 USING @arg; +INSERT(c1,1,1,?) +xx +EXECUTE stmt7 USING @arg; +INSTR(c1,?) +1 +EXECUTE stmt8 USING @arg; +LOCATE(?,c1) +1 +EXECUTE stmt9 USING @arg; +LPAD(c1,9,?) +xxx +EXECUTE stmt10 USING @arg; +REPLACE(c1,?,'x') +x +EXECUTE stmt11 USING @arg; +REPLACE(c1,'x',?) + +EXECUTE stmt12 USING @arg; +RPAD(c1,9,?) +xxx +EXECUTE stmt13 USING @arg; +SELECT * FROM t4; +c1 +x + + +EXECUTE stmt14 USING @arg; +SELECT * FROM t4; +c1 + + + +SET @arg = ''; +EXECUTE stmt1 USING @arg; +? + + + + + + +EXECUTE stmt2 USING @arg; + +x x x +x x x +y y y +y y y +z z z +z z z +EXECUTE stmt3 USING @arg; +COUNT(*) +6 +EXECUTE stmt4 USING @arg; +CHAR_LENGTH(?) +1 +EXECUTE stmt5 USING @arg; +CHARSET(?) +ujis +EXECUTE stmt6 USING @arg; +INSERT(c1,1,1,?) +xx +EXECUTE stmt7 USING @arg; +INSTR(c1,?) +2 +EXECUTE stmt8 USING @arg; +LOCATE(?,c1) +2 +EXECUTE stmt9 USING @arg; +LPAD(c1,9,?) +xxx +EXECUTE stmt10 USING @arg; +REPLACE(c1,?,'x') +x +EXECUTE stmt11 USING @arg; +REPLACE(c1,'x',?) + +EXECUTE stmt12 USING @arg; +RPAD(c1,9,?) +xxx +EXECUTE stmt13 USING @arg; +SELECT * FROM t4; +c1 + +x + +EXECUTE stmt14 USING @arg; +SELECT * FROM t4; +c1 + + + +SET @arg = ''; +EXECUTE stmt1 USING @arg; +? + + + + + + +EXECUTE stmt2 USING @arg; + +x x x +x x x +y y y +y y y +z z z +z z z +EXECUTE stmt3 USING @arg; +COUNT(*) +6 +EXECUTE stmt4 USING @arg; +CHAR_LENGTH(?) +1 +EXECUTE stmt5 USING @arg; +CHARSET(?) +ujis +EXECUTE stmt6 USING @arg; +INSERT(c1,1,1,?) +xx +EXECUTE stmt7 USING @arg; +INSTR(c1,?) +3 +EXECUTE stmt8 USING @arg; +LOCATE(?,c1) +3 +EXECUTE stmt9 USING @arg; +LPAD(c1,9,?) +܏܏܏܏܏xxx +EXECUTE stmt10 USING @arg; +REPLACE(c1,?,'x') +x +EXECUTE stmt11 USING @arg; +REPLACE(c1,'x',?) +܏܏ +EXECUTE stmt12 USING @arg; +RPAD(c1,9,?) +xxx܏܏܏܏܏ +EXECUTE stmt13 USING @arg; +SELECT * FROM t4; +c1 + + +x +EXECUTE stmt14 USING @arg; +SELECT * FROM t4; +c1 + + + +DEALLOCATE PREPARE stmt1; +DEALLOCATE PREPARE stmt2; +DEALLOCATE PREPARE stmt3; +DEALLOCATE PREPARE stmt4; +DEALLOCATE PREPARE stmt5; +DEALLOCATE PREPARE stmt6; +DEALLOCATE PREPARE stmt7; +DEALLOCATE PREPARE stmt8; +DEALLOCATE PREPARE stmt9; +DEALLOCATE PREPARE stmt10; +DEALLOCATE PREPARE stmt11; +DEALLOCATE PREPARE stmt12; +DEALLOCATE PREPARE stmt13; +DEALLOCATE PREPARE stmt14; +DROP TABLE t1; +DROP TABLE t2; +DROP TABLE t3; +DROP TABLE t4; +CREATE TABLE t1(c1 char(3)) DEFAULT CHARSET = ujis ENGINE = HEAP; +CREATE TABLE t2(c1 char(3)) DEFAULT CHARSET = ujis ENGINE = HEAP; +CREATE TABLE t3( +`` char(1), +`` char(1), +`` char(1) +)DEFAULT CHARSET = ujis ENGINE = HEAP; +CREATE TABLE t4(c1 char(1)) DEFAULT CHARSET = ujis ENGINE =HEAP; +INSERT INTO t1 VALUES ('xxx'); +INSERT INTO t2 VALUES (''); +INSERT INTO t3 VALUES ('x','x','x'),('x','x','x'),('y','y','y'),('y','y','y'),('z','z','z'),('z','z','z'); +INSERT INTO t4 VALUES (''),(''),('' ); +PREPARE stmt1 FROM 'SELECT ? FROM t3'; +PREPARE stmt2 FROM 'SELECT * FROM t3 ORDER BY ?'; +PREPARE stmt3 FROM 'SELECT COUNT(*) FROM t3 GROUP BY ?'; +PREPARE stmt4 FROM 'SELECT CHAR_LENGTH(?)'; +PREPARE stmt5 FROM 'SELECT CHARSET(?)'; +PREPARE stmt6 FROM 'SELECT INSERT(c1,1,1,?) FROM t1'; +PREPARE stmt7 FROM 'SELECT INSTR(c1,?) FROM t2'; +PREPARE stmt8 FROM 'SELECT LOCATE(?,c1) FROM t2'; +PREPARE stmt9 FROM 'SELECT LPAD(c1,9,?) FROM t1'; +PREPARE stmt10 FROM 'SELECT REPLACE(c1,?,\'x\') FROM t2'; +PREPARE stmt11 FROM 'SELECT REPLACE(c1,\'x\',?) FROM t1'; +PREPARE stmt12 FROM 'SELECT RPAD(c1,9,?) FROM t1'; +PREPARE stmt13 FROM 'UPDATE t4 SET c1=\'x\' WHERE c1=?'; +PREPARE stmt14 FROM 'UPDATE t4 SET c1=? WHERE c1=\'x\''; +SET @arg = ''; +EXECUTE stmt1 USING @arg; +? + + + + + + +EXECUTE stmt2 USING @arg; + +x x x +x x x +y y y +y y y +z z z +z z z +EXECUTE stmt3 USING @arg; +COUNT(*) +6 +EXECUTE stmt4 USING @arg; +CHAR_LENGTH(?) +1 +EXECUTE stmt5 USING @arg; +CHARSET(?) +ujis +EXECUTE stmt6 USING @arg; +INSERT(c1,1,1,?) +xx +EXECUTE stmt7 USING @arg; +INSTR(c1,?) +1 +EXECUTE stmt8 USING @arg; +LOCATE(?,c1) +1 +EXECUTE stmt9 USING @arg; +LPAD(c1,9,?) +xxx +EXECUTE stmt10 USING @arg; +REPLACE(c1,?,'x') +x +EXECUTE stmt11 USING @arg; +REPLACE(c1,'x',?) + +EXECUTE stmt12 USING @arg; +RPAD(c1,9,?) +xxx +EXECUTE stmt13 USING @arg; +SELECT * FROM t4; +c1 +x + + +EXECUTE stmt14 USING @arg; +SELECT * FROM t4; +c1 + + + +SET @arg = ''; +EXECUTE stmt1 USING @arg; +? + + + + + + +EXECUTE stmt2 USING @arg; + +x x x +x x x +y y y +y y y +z z z +z z z +EXECUTE stmt3 USING @arg; +COUNT(*) +6 +EXECUTE stmt4 USING @arg; +CHAR_LENGTH(?) +1 +EXECUTE stmt5 USING @arg; +CHARSET(?) +ujis +EXECUTE stmt6 USING @arg; +INSERT(c1,1,1,?) +xx +EXECUTE stmt7 USING @arg; +INSTR(c1,?) +2 +EXECUTE stmt8 USING @arg; +LOCATE(?,c1) +2 +EXECUTE stmt9 USING @arg; +LPAD(c1,9,?) +xxx +EXECUTE stmt10 USING @arg; +REPLACE(c1,?,'x') +x +EXECUTE stmt11 USING @arg; +REPLACE(c1,'x',?) + +EXECUTE stmt12 USING @arg; +RPAD(c1,9,?) +xxx +EXECUTE stmt13 USING @arg; +SELECT * FROM t4; +c1 + +x + +EXECUTE stmt14 USING @arg; +SELECT * FROM t4; +c1 + + + +SET @arg = ''; +EXECUTE stmt1 USING @arg; +? + + + + + + +EXECUTE stmt2 USING @arg; + +x x x +x x x +y y y +y y y +z z z +z z z +EXECUTE stmt3 USING @arg; +COUNT(*) +6 +EXECUTE stmt4 USING @arg; +CHAR_LENGTH(?) +1 +EXECUTE stmt5 USING @arg; +CHARSET(?) +ujis +EXECUTE stmt6 USING @arg; +INSERT(c1,1,1,?) +xx +EXECUTE stmt7 USING @arg; +INSTR(c1,?) +3 +EXECUTE stmt8 USING @arg; +LOCATE(?,c1) +3 +EXECUTE stmt9 USING @arg; +LPAD(c1,9,?) +܏܏܏܏܏xxx +EXECUTE stmt10 USING @arg; +REPLACE(c1,?,'x') +x +EXECUTE stmt11 USING @arg; +REPLACE(c1,'x',?) +܏܏ +EXECUTE stmt12 USING @arg; +RPAD(c1,9,?) +xxx܏܏܏܏܏ +EXECUTE stmt13 USING @arg; +SELECT * FROM t4; +c1 + + +x +EXECUTE stmt14 USING @arg; +SELECT * FROM t4; +c1 + + + +DEALLOCATE PREPARE stmt1; +DEALLOCATE PREPARE stmt2; +DEALLOCATE PREPARE stmt3; +DEALLOCATE PREPARE stmt4; +DEALLOCATE PREPARE stmt5; +DEALLOCATE PREPARE stmt6; +DEALLOCATE PREPARE stmt7; +DEALLOCATE PREPARE stmt8; +DEALLOCATE PREPARE stmt9; +DEALLOCATE PREPARE stmt10; +DEALLOCATE PREPARE stmt11; +DEALLOCATE PREPARE stmt12; +DEALLOCATE PREPARE stmt13; +DEALLOCATE PREPARE stmt14; +DROP TABLE t1; +DROP TABLE t2; +DROP TABLE t3; +DROP TABLE t4; +CREATE TABLE t1(c1 char(3)) DEFAULT CHARSET = ujis ENGINE = BDB; +CREATE TABLE t2(c1 char(3)) DEFAULT CHARSET = ujis ENGINE = BDB; +CREATE TABLE t3( +`` char(1), +`` char(1), +`` char(1) +)DEFAULT CHARSET = ujis ENGINE = BDB; +CREATE TABLE t4(c1 char(1)) DEFAULT CHARSET = ujis ENGINE = BDB; +INSERT INTO t1 VALUES ('xxx'); +INSERT INTO t2 VALUES (''); +INSERT INTO t3 VALUES ('x','x','x'),('x','x','x'),('y','y','y'),('y','y','y'),('z','z','z'),('z','z','z'); +INSERT INTO t4 VALUES (''),(''),('' ); +PREPARE stmt1 FROM 'SELECT ? FROM t3'; +PREPARE stmt2 FROM 'SELECT * FROM t3 ORDER BY ?'; +PREPARE stmt3 FROM 'SELECT COUNT(*) FROM t3 GROUP BY ?'; +PREPARE stmt4 FROM 'SELECT CHAR_LENGTH(?)'; +PREPARE stmt5 FROM 'SELECT CHARSET(?)'; +PREPARE stmt6 FROM 'SELECT INSERT(c1,1,1,?) FROM t1'; +PREPARE stmt7 FROM 'SELECT INSTR(c1,?) FROM t2'; +PREPARE stmt8 FROM 'SELECT LOCATE(?,c1) FROM t2'; +PREPARE stmt9 FROM 'SELECT LPAD(c1,9,?) FROM t1'; +PREPARE stmt10 FROM 'SELECT REPLACE(c1,?,\'x\') FROM t2'; +PREPARE stmt11 FROM 'SELECT REPLACE(c1,\'x\',?) FROM t1'; +PREPARE stmt12 FROM 'SELECT RPAD(c1,9,?) FROM t1'; +PREPARE stmt13 FROM 'UPDATE t4 SET c1=\'x\' WHERE c1=?'; +PREPARE stmt14 FROM 'UPDATE t4 SET c1=? WHERE c1=\'x\''; +SET @arg = ''; +EXECUTE stmt1 USING @arg; +? + + + + + + +EXECUTE stmt2 USING @arg; + +x x x +x x x +y y y +y y y +z z z +z z z +EXECUTE stmt3 USING @arg; +COUNT(*) +6 +EXECUTE stmt4 USING @arg; +CHAR_LENGTH(?) +1 +EXECUTE stmt5 USING @arg; +CHARSET(?) +ujis +EXECUTE stmt6 USING @arg; +INSERT(c1,1,1,?) +xx +EXECUTE stmt7 USING @arg; +INSTR(c1,?) +1 +EXECUTE stmt8 USING @arg; +LOCATE(?,c1) +1 +EXECUTE stmt9 USING @arg; +LPAD(c1,9,?) +xxx +EXECUTE stmt10 USING @arg; +REPLACE(c1,?,'x') +x +EXECUTE stmt11 USING @arg; +REPLACE(c1,'x',?) + +EXECUTE stmt12 USING @arg; +RPAD(c1,9,?) +xxx +EXECUTE stmt13 USING @arg; +SELECT * FROM t3; + +x x x +x x x +y y y +y y y +z z z +z z z +EXECUTE stmt14 USING @arg; +SELECT * FROM t3; + +x x x +x x x +y y y +y y y +z z z +z z z +SET @arg = ''; +EXECUTE stmt1 USING @arg; +? + + + + + + +EXECUTE stmt2 USING @arg; + +x x x +x x x +y y y +y y y +z z z +z z z +EXECUTE stmt3 USING @arg; +COUNT(*) +6 +EXECUTE stmt4 USING @arg; +CHAR_LENGTH(?) +1 +EXECUTE stmt5 USING @arg; +CHARSET(?) +ujis +EXECUTE stmt6 USING @arg; +INSERT(c1,1,1,?) +xx +EXECUTE stmt7 USING @arg; +INSTR(c1,?) +2 +EXECUTE stmt8 USING @arg; +LOCATE(?,c1) +2 +EXECUTE stmt9 USING @arg; +LPAD(c1,9,?) +xxx +EXECUTE stmt10 USING @arg; +REPLACE(c1,?,'x') +x +EXECUTE stmt11 USING @arg; +REPLACE(c1,'x',?) + +EXECUTE stmt12 USING @arg; +RPAD(c1,9,?) +xxx +EXECUTE stmt13 USING @arg; +SELECT * FROM t4; +c1 + +x + +EXECUTE stmt14 USING @arg; +SELECT * FROM t4; +c1 + + + +SET @arg = ''; +EXECUTE stmt1 USING @arg; +? + + + + + + +EXECUTE stmt2 USING @arg; + +x x x +x x x +y y y +y y y +z z z +z z z +EXECUTE stmt3 USING @arg; +COUNT(*) +6 +EXECUTE stmt4 USING @arg; +CHAR_LENGTH(?) +1 +EXECUTE stmt5 USING @arg; +CHARSET(?) +ujis +EXECUTE stmt6 USING @arg; +INSERT(c1,1,1,?) +xx +EXECUTE stmt7 USING @arg; +INSTR(c1,?) +3 +EXECUTE stmt8 USING @arg; +LOCATE(?,c1) +3 +EXECUTE stmt9 USING @arg; +LPAD(c1,9,?) +܏܏܏܏܏xxx +EXECUTE stmt10 USING @arg; +REPLACE(c1,?,'x') +x +EXECUTE stmt11 USING @arg; +REPLACE(c1,'x',?) +܏܏ +EXECUTE stmt12 USING @arg; +RPAD(c1,9,?) +xxx܏܏܏܏܏ +EXECUTE stmt13 USING @arg; +SELECT * FROM t4; +c1 + + +x +EXECUTE stmt14 USING @arg; +SELECT * FROM t4; +c1 + + + +DEALLOCATE PREPARE stmt1; +DEALLOCATE PREPARE stmt2; +DEALLOCATE PREPARE stmt3; +DEALLOCATE PREPARE stmt4; +DEALLOCATE PREPARE stmt5; +DEALLOCATE PREPARE stmt6; +DEALLOCATE PREPARE stmt7; +DEALLOCATE PREPARE stmt8; +DEALLOCATE PREPARE stmt9; +DEALLOCATE PREPARE stmt10; +DEALLOCATE PREPARE stmt11; +DEALLOCATE PREPARE stmt12; +DEALLOCATE PREPARE stmt13; +DEALLOCATE PREPARE stmt14; +DROP TABLE t1; +DROP TABLE t2; +DROP TABLE t3; +DROP TABLE t4; diff --git a/mysql-test/suite/jp/r/jp_replace_sjis.result b/mysql-test/suite/jp/r/jp_replace_sjis.result new file mode 100755 index 00000000000..08e45968fdd --- /dev/null +++ b/mysql-test/suite/jp/r/jp_replace_sjis.result @@ -0,0 +1,230 @@ +drop table if exists `sP`; +drop table if exists `sQ`; +drop table if exists `sR`; +drop table if exists `sS`; +drop table if exists `sT`; +drop table if exists `sU`; +drop table if exists `sV`; +drop table if exists `sW`; +drop table if exists `sX`; +drop table if exists `sPO`; +drop table if exists `sPP`; +drop table if exists `sPQ`; +SET NAMES sjis; +SET character_set_database = sjis; +CREATE TABLE `sP` (`bP` char(5)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sQ` (`bP` char(5)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sR` (`bP` char(5)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sS` (`bP` char(5)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sT` (`bP` char(5)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sU` (`bP` char(5)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sV` (`bP` char(5)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sW` (`bP` char(5)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sX` (`bP` char(5)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sPO` (`bP` char(5)) DEFAULT CHARSET = sjis engine = bdb; +CREATE TABLE `sPP` (`bP` char(5)) DEFAULT CHARSET = sjis engine = bdb; +CREATE TABLE `sPQ` (`bP` char(5)) DEFAULT CHARSET = sjis engine = bdb; +INSERT INTO `sP` VALUES (''); +INSERT INTO `sQ` VALUES (''); +INSERT INTO `sR` VALUES ('\\\\\'); +INSERT INTO `sS` VALUES (''); +INSERT INTO `sT` VALUES (''); +INSERT INTO `sU` VALUES ('\\\\\'); +INSERT INTO `sV` VALUES (''); +INSERT INTO `sW` VALUES (''); +INSERT INTO `sX` VALUES ('\\\\\'); +INSERT INTO `sPO` VALUES (''); +INSERT INTO `sPP` VALUES (''); +INSERT INTO `sPQ` VALUES ('\\\\\'); +SELECT REPLACE(`bP`,'','') FROM `sP`; +REPLACE(`bP`,'','') + +SELECT REPLACE(`bP`,'','') FROM `sP`; +REPLACE(`bP`,'','') + +SELECT REPLACE(`bP`,'','') FROM `sP`; +REPLACE(`bP`,'','') + +SELECT REPLACE(`bP`,'','') FROM `sP`; +REPLACE(`bP`,'','') + +SELECT REPLACE(`bP`,'','') FROM `sP`; +REPLACE(`bP`,'','') + +SELECT REPLACE(`bP`,'','') FROM `sQ`; +REPLACE(`bP`,'','') + +SELECT REPLACE(`bP`,'','') FROM `sQ`; +REPLACE(`bP`,'','') + +SELECT REPLACE(`bP`,'','') FROM `sQ`; +REPLACE(`bP`,'','') + +SELECT REPLACE(`bP`,'','') FROM `sQ`; +REPLACE(`bP`,'','') + +SELECT REPLACE(`bP`,'','') FROM `sQ`; +REPLACE(`bP`,'','') + +SELECT REPLACE(`bP`,'\','\\') FROM `sR`; +REPLACE(`bP`,'\','\\') +\\\\\\ +SELECT REPLACE(`bP`,'\','\\') FROM `sR`; +REPLACE(`bP`,'\','\\') +\\\\\\ +SELECT REPLACE(`bP`,'\','\\') FROM `sR`; +REPLACE(`bP`,'\','\\') +\\\\\\ +SELECT REPLACE(`bP`,'\','\\') FROM `sR`; +REPLACE(`bP`,'\','\\') +\\\\\\ +SELECT REPLACE(`bP`,'\','\\') FROM `sR`; +REPLACE(`bP`,'\','\\') +\\\\\\ +SELECT REPLACE(`bP`,'','') FROM `sS`; +REPLACE(`bP`,'','') + +SELECT REPLACE(`bP`,'','') FROM `sS`; +REPLACE(`bP`,'','') + +SELECT REPLACE(`bP`,'','') FROM `sS`; +REPLACE(`bP`,'','') + +SELECT REPLACE(`bP`,'','') FROM `sS`; +REPLACE(`bP`,'','') + +SELECT REPLACE(`bP`,'','') FROM `sS`; +REPLACE(`bP`,'','') + +SELECT REPLACE(`bP`,'','') FROM `sT`; +REPLACE(`bP`,'','') + +SELECT REPLACE(`bP`,'','') FROM `sT`; +REPLACE(`bP`,'','') + +SELECT REPLACE(`bP`,'','') FROM `sT`; +REPLACE(`bP`,'','') + +SELECT REPLACE(`bP`,'','') FROM `sT`; +REPLACE(`bP`,'','') + +SELECT REPLACE(`bP`,'','') FROM `sT`; +REPLACE(`bP`,'','') + +SELECT REPLACE(`bP`,'\','\\') FROM `sU`; +REPLACE(`bP`,'\','\\') +\\\\\\ +SELECT REPLACE(`bP`,'\','\\') FROM `sU`; +REPLACE(`bP`,'\','\\') +\\\\\\ +SELECT REPLACE(`bP`,'\','\\') FROM `sU`; +REPLACE(`bP`,'\','\\') +\\\\\\ +SELECT REPLACE(`bP`,'\','\\') FROM `sU`; +REPLACE(`bP`,'\','\\') +\\\\\\ +SELECT REPLACE(`bP`,'\','\\') FROM `sU`; +REPLACE(`bP`,'\','\\') +\\\\\\ +SELECT REPLACE(`bP`,'','') FROM `sV`; +REPLACE(`bP`,'','') + +SELECT REPLACE(`bP`,'','') FROM `sV`; +REPLACE(`bP`,'','') + +SELECT REPLACE(`bP`,'','') FROM `sV`; +REPLACE(`bP`,'','') + +SELECT REPLACE(`bP`,'','') FROM `sV`; +REPLACE(`bP`,'','') + +SELECT REPLACE(`bP`,'','') FROM `sV`; +REPLACE(`bP`,'','') + +SELECT REPLACE(`bP`,'','') FROM `sW`; +REPLACE(`bP`,'','') + +SELECT REPLACE(`bP`,'','') FROM `sW`; +REPLACE(`bP`,'','') + +SELECT REPLACE(`bP`,'','') FROM `sW`; +REPLACE(`bP`,'','') + +SELECT REPLACE(`bP`,'','') FROM `sW`; +REPLACE(`bP`,'','') + +SELECT REPLACE(`bP`,'','') FROM `sW`; +REPLACE(`bP`,'','') + +SELECT REPLACE(`bP`,'\','\\') FROM `sX`; +REPLACE(`bP`,'\','\\') +\\\\\\ +SELECT REPLACE(`bP`,'\','\\') FROM `sX`; +REPLACE(`bP`,'\','\\') +\\\\\\ +SELECT REPLACE(`bP`,'\','\\') FROM `sX`; +REPLACE(`bP`,'\','\\') +\\\\\\ +SELECT REPLACE(`bP`,'\','\\') FROM `sX`; +REPLACE(`bP`,'\','\\') +\\\\\\ +SELECT REPLACE(`bP`,'\','\\') FROM `sX`; +REPLACE(`bP`,'\','\\') +\\\\\\ +SELECT REPLACE(`bP`,'','') FROM `sPO`; +REPLACE(`bP`,'','') + +SELECT REPLACE(`bP`,'','') FROM `sPO`; +REPLACE(`bP`,'','') + +SELECT REPLACE(`bP`,'','') FROM `sPO`; +REPLACE(`bP`,'','') + +SELECT REPLACE(`bP`,'','') FROM `sPO`; +REPLACE(`bP`,'','') + +SELECT REPLACE(`bP`,'','') FROM `sPO`; +REPLACE(`bP`,'','') + +SELECT REPLACE(`bP`,'','') FROM `sPP`; +REPLACE(`bP`,'','') + +SELECT REPLACE(`bP`,'','') FROM `sPP`; +REPLACE(`bP`,'','') + +SELECT REPLACE(`bP`,'','') FROM `sPP`; +REPLACE(`bP`,'','') + +SELECT REPLACE(`bP`,'','') FROM `sPP`; +REPLACE(`bP`,'','') + +SELECT REPLACE(`bP`,'','') FROM `sPP`; +REPLACE(`bP`,'','') + +SELECT REPLACE(`bP`,'\','\\') FROM `sPQ`; +REPLACE(`bP`,'\','\\') +\\\\\\ +SELECT REPLACE(`bP`,'\','\\') FROM `sPQ`; +REPLACE(`bP`,'\','\\') +\\\\\\ +SELECT REPLACE(`bP`,'\','\\') FROM `sPQ`; +REPLACE(`bP`,'\','\\') +\\\\\\ +SELECT REPLACE(`bP`,'\','\\') FROM `sPQ`; +REPLACE(`bP`,'\','\\') +\\\\\\ +SELECT REPLACE(`bP`,'\','\\') FROM `sPQ`; +REPLACE(`bP`,'\','\\') +\\\\\\ +DROP TABLE `sP`; +DROP TABLE `sQ`; +DROP TABLE `sR`; +DROP TABLE `sS`; +DROP TABLE `sT`; +DROP TABLE `sU`; +DROP TABLE `sV`; +DROP TABLE `sW`; +DROP TABLE `sX`; +DROP TABLE `sPO`; +DROP TABLE `sPP`; +DROP TABLE `sPQ`; diff --git a/mysql-test/suite/jp/r/jp_replace_ucs2.result b/mysql-test/suite/jp/r/jp_replace_ucs2.result new file mode 100755 index 00000000000..2911fe69b9a --- /dev/null +++ b/mysql-test/suite/jp/r/jp_replace_ucs2.result @@ -0,0 +1,231 @@ +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +SET NAMES ujis; +SET character_set_database = ucs2; +SET collation_connection = ucs2_general_ci; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ucs2 engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ucs2 engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ucs2 engine = bdb; +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +REPLACE(`ã`,'','') + +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +REPLACE(`ã`,'','') + +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +REPLACE(`ã`,'','') + +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +REPLACE(`ã`,'','') + +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +REPLACE(`ã`,'','') + +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +REPLACE(`ã`,'','') + +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +REPLACE(`ã`,'','') + +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +REPLACE(`ã`,'','') + +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +REPLACE(`ã`,'','') + +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +REPLACE(`ã`,'','') + +SELECT REPLACE(`ã`,'','܏') FROM `ԣ`; +REPLACE(`ã`,'','܏') +܏܏ݏޏߏ +SELECT REPLACE(`ã`,'','ݏ') FROM `ԣ`; +REPLACE(`ã`,'','ݏ') +܏ݏݏޏߏ +SELECT REPLACE(`ã`,'','ޏ') FROM `ԣ`; +REPLACE(`ã`,'','ޏ') +܏ݏޏޏߏ +SELECT REPLACE(`ã`,'','ߏ') FROM `ԣ`; +REPLACE(`ã`,'','ߏ') +܏ݏޏߏߏ +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +REPLACE(`ã`,'','') +܏ݏޏߏ +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +REPLACE(`ã`,'','') + +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +REPLACE(`ã`,'','') + +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +REPLACE(`ã`,'','') + +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +REPLACE(`ã`,'','') + +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +REPLACE(`ã`,'','') + +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +REPLACE(`ã`,'','') + +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +REPLACE(`ã`,'','') + +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +REPLACE(`ã`,'','') + +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +REPLACE(`ã`,'','') + +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +REPLACE(`ã`,'','') + +SELECT REPLACE(`ã`,'','܏') FROM `ԣ`; +REPLACE(`ã`,'','܏') +܏܏ݏޏߏ +SELECT REPLACE(`ã`,'','ݏ') FROM `ԣ`; +REPLACE(`ã`,'','ݏ') +܏ݏݏޏߏ +SELECT REPLACE(`ã`,'','ޏ') FROM `ԣ`; +REPLACE(`ã`,'','ޏ') +܏ݏޏޏߏ +SELECT REPLACE(`ã`,'','ߏ') FROM `ԣ`; +REPLACE(`ã`,'','ߏ') +܏ݏޏߏߏ +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +REPLACE(`ã`,'','') +܏ݏޏߏ +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +REPLACE(`ã`,'','') + +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +REPLACE(`ã`,'','') + +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +REPLACE(`ã`,'','') + +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +REPLACE(`ã`,'','') + +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +REPLACE(`ã`,'','') + +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +REPLACE(`ã`,'','') + +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +REPLACE(`ã`,'','') + +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +REPLACE(`ã`,'','') + +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +REPLACE(`ã`,'','') + +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +REPLACE(`ã`,'','') + +SELECT REPLACE(`ã`,'','܏') FROM `ԣ`; +REPLACE(`ã`,'','܏') +܏܏ݏޏߏ +SELECT REPLACE(`ã`,'','ݏ') FROM `ԣ`; +REPLACE(`ã`,'','ݏ') +܏ݏݏޏߏ +SELECT REPLACE(`ã`,'','ޏ') FROM `ԣ`; +REPLACE(`ã`,'','ޏ') +܏ݏޏޏߏ +SELECT REPLACE(`ã`,'','ߏ') FROM `ԣ`; +REPLACE(`ã`,'','ߏ') +܏ݏޏߏߏ +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +REPLACE(`ã`,'','') +܏ݏޏߏ +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +REPLACE(`ã`,'','') + +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +REPLACE(`ã`,'','') + +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +REPLACE(`ã`,'','') + +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +REPLACE(`ã`,'','') + +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +REPLACE(`ã`,'','') + +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +REPLACE(`ã`,'','') + +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +REPLACE(`ã`,'','') + +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +REPLACE(`ã`,'','') + +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +REPLACE(`ã`,'','') + +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +REPLACE(`ã`,'','') + +SELECT REPLACE(`ã`,'','܏') FROM `ԣ`; +REPLACE(`ã`,'','܏') +܏܏ݏޏߏ +SELECT REPLACE(`ã`,'','ݏ') FROM `ԣ`; +REPLACE(`ã`,'','ݏ') +܏ݏݏޏߏ +SELECT REPLACE(`ã`,'','ޏ') FROM `ԣ`; +REPLACE(`ã`,'','ޏ') +܏ݏޏޏߏ +SELECT REPLACE(`ã`,'','ߏ') FROM `ԣ`; +REPLACE(`ã`,'','ߏ') +܏ݏޏߏߏ +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +REPLACE(`ã`,'','') +܏ݏޏߏ +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; diff --git a/mysql-test/suite/jp/r/jp_replace_ujis.result b/mysql-test/suite/jp/r/jp_replace_ujis.result new file mode 100755 index 00000000000..7f776804ee9 --- /dev/null +++ b/mysql-test/suite/jp/r/jp_replace_ujis.result @@ -0,0 +1,230 @@ +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +SET NAMES ujis; +SET character_set_database = ujis; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ujis engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ujis engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ujis engine = bdb; +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +REPLACE(`ã`,'','') + +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +REPLACE(`ã`,'','') + +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +REPLACE(`ã`,'','') + +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +REPLACE(`ã`,'','') + +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +REPLACE(`ã`,'','') + +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +REPLACE(`ã`,'','') + +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +REPLACE(`ã`,'','') + +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +REPLACE(`ã`,'','') + +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +REPLACE(`ã`,'','') + +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +REPLACE(`ã`,'','') + +SELECT REPLACE(`ã`,'','܏') FROM `ԣ`; +REPLACE(`ã`,'','܏') +܏܏ݏޏߏ +SELECT REPLACE(`ã`,'','ݏ') FROM `ԣ`; +REPLACE(`ã`,'','ݏ') +܏ݏݏޏߏ +SELECT REPLACE(`ã`,'','ޏ') FROM `ԣ`; +REPLACE(`ã`,'','ޏ') +܏ݏޏޏߏ +SELECT REPLACE(`ã`,'','ߏ') FROM `ԣ`; +REPLACE(`ã`,'','ߏ') +܏ݏޏߏߏ +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +REPLACE(`ã`,'','') +܏ݏޏߏ +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +REPLACE(`ã`,'','') + +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +REPLACE(`ã`,'','') + +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +REPLACE(`ã`,'','') + +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +REPLACE(`ã`,'','') + +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +REPLACE(`ã`,'','') + +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +REPLACE(`ã`,'','') + +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +REPLACE(`ã`,'','') + +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +REPLACE(`ã`,'','') + +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +REPLACE(`ã`,'','') + +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +REPLACE(`ã`,'','') + +SELECT REPLACE(`ã`,'','܏') FROM `ԣ`; +REPLACE(`ã`,'','܏') +܏܏ݏޏߏ +SELECT REPLACE(`ã`,'','ݏ') FROM `ԣ`; +REPLACE(`ã`,'','ݏ') +܏ݏݏޏߏ +SELECT REPLACE(`ã`,'','ޏ') FROM `ԣ`; +REPLACE(`ã`,'','ޏ') +܏ݏޏޏߏ +SELECT REPLACE(`ã`,'','ߏ') FROM `ԣ`; +REPLACE(`ã`,'','ߏ') +܏ݏޏߏߏ +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +REPLACE(`ã`,'','') +܏ݏޏߏ +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +REPLACE(`ã`,'','') + +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +REPLACE(`ã`,'','') + +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +REPLACE(`ã`,'','') + +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +REPLACE(`ã`,'','') + +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +REPLACE(`ã`,'','') + +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +REPLACE(`ã`,'','') + +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +REPLACE(`ã`,'','') + +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +REPLACE(`ã`,'','') + +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +REPLACE(`ã`,'','') + +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +REPLACE(`ã`,'','') + +SELECT REPLACE(`ã`,'','܏') FROM `ԣ`; +REPLACE(`ã`,'','܏') +܏܏ݏޏߏ +SELECT REPLACE(`ã`,'','ݏ') FROM `ԣ`; +REPLACE(`ã`,'','ݏ') +܏ݏݏޏߏ +SELECT REPLACE(`ã`,'','ޏ') FROM `ԣ`; +REPLACE(`ã`,'','ޏ') +܏ݏޏޏߏ +SELECT REPLACE(`ã`,'','ߏ') FROM `ԣ`; +REPLACE(`ã`,'','ߏ') +܏ݏޏߏߏ +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +REPLACE(`ã`,'','') +܏ݏޏߏ +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +REPLACE(`ã`,'','') + +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +REPLACE(`ã`,'','') + +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +REPLACE(`ã`,'','') + +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +REPLACE(`ã`,'','') + +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +REPLACE(`ã`,'','') + +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +REPLACE(`ã`,'','') + +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +REPLACE(`ã`,'','') + +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +REPLACE(`ã`,'','') + +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +REPLACE(`ã`,'','') + +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +REPLACE(`ã`,'','') + +SELECT REPLACE(`ã`,'','܏') FROM `ԣ`; +REPLACE(`ã`,'','܏') +܏܏ݏޏߏ +SELECT REPLACE(`ã`,'','ݏ') FROM `ԣ`; +REPLACE(`ã`,'','ݏ') +܏ݏݏޏߏ +SELECT REPLACE(`ã`,'','ޏ') FROM `ԣ`; +REPLACE(`ã`,'','ޏ') +܏ݏޏޏߏ +SELECT REPLACE(`ã`,'','ߏ') FROM `ԣ`; +REPLACE(`ã`,'','ߏ') +܏ݏޏߏߏ +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +REPLACE(`ã`,'','') +܏ݏޏߏ +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; diff --git a/mysql-test/suite/jp/r/jp_replace_utf8.result b/mysql-test/suite/jp/r/jp_replace_utf8.result new file mode 100755 index 00000000000..16981fcd0d8 --- /dev/null +++ b/mysql-test/suite/jp/r/jp_replace_utf8.result @@ -0,0 +1,230 @@ +drop table if exists `T1`; +drop table if exists `T2`; +drop table if exists `T3`; +drop table if exists `T4`; +drop table if exists `T5`; +drop table if exists `T6`; +drop table if exists `T7`; +drop table if exists `T8`; +drop table if exists `T9`; +drop table if exists `T10`; +drop table if exists `T11`; +drop table if exists `T12`; +SET NAMES utf8; +SET character_set_database = utf8; +CREATE TABLE `T1` (`C1` char(5)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T2` (`C1` char(5)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T3` (`C1` char(5)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T4` (`C1` char(5)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T5` (`C1` char(5)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T6` (`C1` char(5)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T7` (`C1` char(5)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T8` (`C1` char(5)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T9` (`C1` char(5)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T10` (`C1` char(5)) DEFAULT CHARSET = utf8 engine = bdb; +CREATE TABLE `T11` (`C1` char(5)) DEFAULT CHARSET = utf8 engine = bdb; +CREATE TABLE `T12` (`C1` char(5)) DEFAULT CHARSET = utf8 engine = bdb; +INSERT INTO `T1` VALUES ('アイウエオ'); +INSERT INTO `T2` VALUES ('あいうえお'); +INSERT INTO `T3` VALUES ('龔龖龗龞龡'); +INSERT INTO `T4` VALUES ('アイウエオ'); +INSERT INTO `T5` VALUES ('あいうえお'); +INSERT INTO `T6` VALUES ('龔龖龗龞龡'); +INSERT INTO `T7` VALUES ('アイウエオ'); +INSERT INTO `T8` VALUES ('あいうえお'); +INSERT INTO `T9` VALUES ('龔龖龗龞龡'); +INSERT INTO `T10` VALUES ('アイウエオ'); +INSERT INTO `T11` VALUES ('あいうえお'); +INSERT INTO `T12` VALUES ('龔龖龗龞龡'); +SELECT REPLACE(`C1`,'ア','アア') FROM `T1`; +REPLACE(`C1`,'ア','アア') +アアイウエオ +SELECT REPLACE(`C1`,'イ','イイ') FROM `T1`; +REPLACE(`C1`,'イ','イイ') +アイイウエオ +SELECT REPLACE(`C1`,'ウ','ウウ') FROM `T1`; +REPLACE(`C1`,'ウ','ウウ') +アイウウエオ +SELECT REPLACE(`C1`,'エ','エエ') FROM `T1`; +REPLACE(`C1`,'エ','エエ') +アイウエエオ +SELECT REPLACE(`C1`,'オ','オオ') FROM `T1`; +REPLACE(`C1`,'オ','オオ') +アイウエオオ +SELECT REPLACE(`C1`,'あ','ああ') FROM `T2`; +REPLACE(`C1`,'あ','ああ') +ああいうえお +SELECT REPLACE(`C1`,'い','いい') FROM `T2`; +REPLACE(`C1`,'い','いい') +あいいうえお +SELECT REPLACE(`C1`,'う','うう') FROM `T2`; +REPLACE(`C1`,'う','うう') +あいううえお +SELECT REPLACE(`C1`,'え','ええ') FROM `T2`; +REPLACE(`C1`,'え','ええ') +あいうええお +SELECT REPLACE(`C1`,'お','おお') FROM `T2`; +REPLACE(`C1`,'お','おお') +あいうえおお +SELECT REPLACE(`C1`,'龔','龔龔') FROM `T3`; +REPLACE(`C1`,'龔','龔龔') +龔龔龖龗龞龡 +SELECT REPLACE(`C1`,'龖','龖龖') FROM `T3`; +REPLACE(`C1`,'龖','龖龖') +龔龖龖龗龞龡 +SELECT REPLACE(`C1`,'龗','龗龗') FROM `T3`; +REPLACE(`C1`,'龗','龗龗') +龔龖龗龗龞龡 +SELECT REPLACE(`C1`,'龞','龞龞') FROM `T3`; +REPLACE(`C1`,'龞','龞龞') +龔龖龗龞龞龡 +SELECT REPLACE(`C1`,'龡','龡龡') FROM `T3`; +REPLACE(`C1`,'龡','龡龡') +龔龖龗龞龡龡 +SELECT REPLACE(`C1`,'ア','アア') FROM `T4`; +REPLACE(`C1`,'ア','アア') +アアイウエオ +SELECT REPLACE(`C1`,'イ','イイ') FROM `T4`; +REPLACE(`C1`,'イ','イイ') +アイイウエオ +SELECT REPLACE(`C1`,'ウ','ウウ') FROM `T4`; +REPLACE(`C1`,'ウ','ウウ') +アイウウエオ +SELECT REPLACE(`C1`,'エ','エエ') FROM `T4`; +REPLACE(`C1`,'エ','エエ') +アイウエエオ +SELECT REPLACE(`C1`,'オ','オオ') FROM `T4`; +REPLACE(`C1`,'オ','オオ') +アイウエオオ +SELECT REPLACE(`C1`,'あ','ああ') FROM `T5`; +REPLACE(`C1`,'あ','ああ') +ああいうえお +SELECT REPLACE(`C1`,'い','いい') FROM `T5`; +REPLACE(`C1`,'い','いい') +あいいうえお +SELECT REPLACE(`C1`,'う','うう') FROM `T5`; +REPLACE(`C1`,'う','うう') +あいううえお +SELECT REPLACE(`C1`,'え','ええ') FROM `T5`; +REPLACE(`C1`,'え','ええ') +あいうええお +SELECT REPLACE(`C1`,'お','おお') FROM `T5`; +REPLACE(`C1`,'お','おお') +あいうえおお +SELECT REPLACE(`C1`,'龔','龔龔') FROM `T6`; +REPLACE(`C1`,'龔','龔龔') +龔龔龖龗龞龡 +SELECT REPLACE(`C1`,'龖','龖龖') FROM `T6`; +REPLACE(`C1`,'龖','龖龖') +龔龖龖龗龞龡 +SELECT REPLACE(`C1`,'龗','龗龗') FROM `T6`; +REPLACE(`C1`,'龗','龗龗') +龔龖龗龗龞龡 +SELECT REPLACE(`C1`,'龞','龞龞') FROM `T6`; +REPLACE(`C1`,'龞','龞龞') +龔龖龗龞龞龡 +SELECT REPLACE(`C1`,'龡','龡龡') FROM `T6`; +REPLACE(`C1`,'龡','龡龡') +龔龖龗龞龡龡 +SELECT REPLACE(`C1`,'ア','アア') FROM `T7`; +REPLACE(`C1`,'ア','アア') +アアイウエオ +SELECT REPLACE(`C1`,'イ','イイ') FROM `T7`; +REPLACE(`C1`,'イ','イイ') +アイイウエオ +SELECT REPLACE(`C1`,'ウ','ウウ') FROM `T7`; +REPLACE(`C1`,'ウ','ウウ') +アイウウエオ +SELECT REPLACE(`C1`,'エ','エエ') FROM `T7`; +REPLACE(`C1`,'エ','エエ') +アイウエエオ +SELECT REPLACE(`C1`,'オ','オオ') FROM `T7`; +REPLACE(`C1`,'オ','オオ') +アイウエオオ +SELECT REPLACE(`C1`,'あ','ああ') FROM `T8`; +REPLACE(`C1`,'あ','ああ') +ああいうえお +SELECT REPLACE(`C1`,'い','いい') FROM `T8`; +REPLACE(`C1`,'い','いい') +あいいうえお +SELECT REPLACE(`C1`,'う','うう') FROM `T8`; +REPLACE(`C1`,'う','うう') +あいううえお +SELECT REPLACE(`C1`,'え','ええ') FROM `T8`; +REPLACE(`C1`,'え','ええ') +あいうええお +SELECT REPLACE(`C1`,'お','おお') FROM `T8`; +REPLACE(`C1`,'お','おお') +あいうえおお +SELECT REPLACE(`C1`,'龔','龔龔') FROM `T9`; +REPLACE(`C1`,'龔','龔龔') +龔龔龖龗龞龡 +SELECT REPLACE(`C1`,'龖','龖龖') FROM `T9`; +REPLACE(`C1`,'龖','龖龖') +龔龖龖龗龞龡 +SELECT REPLACE(`C1`,'龗','龗龗') FROM `T9`; +REPLACE(`C1`,'龗','龗龗') +龔龖龗龗龞龡 +SELECT REPLACE(`C1`,'龞','龞龞') FROM `T9`; +REPLACE(`C1`,'龞','龞龞') +龔龖龗龞龞龡 +SELECT REPLACE(`C1`,'龡','龡龡') FROM `T9`; +REPLACE(`C1`,'龡','龡龡') +龔龖龗龞龡龡 +SELECT REPLACE(`C1`,'ア','アア') FROM `T10`; +REPLACE(`C1`,'ア','アア') +アアイウエオ +SELECT REPLACE(`C1`,'イ','イイ') FROM `T10`; +REPLACE(`C1`,'イ','イイ') +アイイウエオ +SELECT REPLACE(`C1`,'ウ','ウウ') FROM `T10`; +REPLACE(`C1`,'ウ','ウウ') +アイウウエオ +SELECT REPLACE(`C1`,'エ','エエ') FROM `T10`; +REPLACE(`C1`,'エ','エエ') +アイウエエオ +SELECT REPLACE(`C1`,'オ','オオ') FROM `T10`; +REPLACE(`C1`,'オ','オオ') +アイウエオオ +SELECT REPLACE(`C1`,'あ','ああ') FROM `T11`; +REPLACE(`C1`,'あ','ああ') +ああいうえお +SELECT REPLACE(`C1`,'い','いい') FROM `T11`; +REPLACE(`C1`,'い','いい') +あいいうえお +SELECT REPLACE(`C1`,'う','うう') FROM `T11`; +REPLACE(`C1`,'う','うう') +あいううえお +SELECT REPLACE(`C1`,'え','ええ') FROM `T11`; +REPLACE(`C1`,'え','ええ') +あいうええお +SELECT REPLACE(`C1`,'お','おお') FROM `T11`; +REPLACE(`C1`,'お','おお') +あいうえおお +SELECT REPLACE(`C1`,'龔','龔龔') FROM `T12`; +REPLACE(`C1`,'龔','龔龔') +龔龔龖龗龞龡 +SELECT REPLACE(`C1`,'龖','龖龖') FROM `T12`; +REPLACE(`C1`,'龖','龖龖') +龔龖龖龗龞龡 +SELECT REPLACE(`C1`,'龗','龗龗') FROM `T12`; +REPLACE(`C1`,'龗','龗龗') +龔龖龗龗龞龡 +SELECT REPLACE(`C1`,'龞','龞龞') FROM `T12`; +REPLACE(`C1`,'龞','龞龞') +龔龖龗龞龞龡 +SELECT REPLACE(`C1`,'龡','龡龡') FROM `T12`; +REPLACE(`C1`,'龡','龡龡') +龔龖龗龞龡龡 +DROP TABLE `T1`; +DROP TABLE `T2`; +DROP TABLE `T3`; +DROP TABLE `T4`; +DROP TABLE `T5`; +DROP TABLE `T6`; +DROP TABLE `T7`; +DROP TABLE `T8`; +DROP TABLE `T9`; +DROP TABLE `T10`; +DROP TABLE `T11`; +DROP TABLE `T12`; diff --git a/mysql-test/suite/jp/r/jp_reverse_sjis.result b/mysql-test/suite/jp/r/jp_reverse_sjis.result new file mode 100755 index 00000000000..76cf9d6b571 --- /dev/null +++ b/mysql-test/suite/jp/r/jp_reverse_sjis.result @@ -0,0 +1,86 @@ +drop table if exists `sP`; +drop table if exists `sQ`; +drop table if exists `sR`; +drop table if exists `sS`; +drop table if exists `sT`; +drop table if exists `sU`; +drop table if exists `sV`; +drop table if exists `sW`; +drop table if exists `sX`; +drop table if exists `sPO`; +drop table if exists `sPP`; +drop table if exists `sPQ`; +SET NAMES sjis; +SET character_set_database = sjis; +CREATE TABLE `sP` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sQ` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sR` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sS` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sT` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sU` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sV` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sW` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sX` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sPO` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +CREATE TABLE `sPP` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +CREATE TABLE `sPQ` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +INSERT INTO `sP` VALUES (''); +INSERT INTO `sQ` VALUES (''); +INSERT INTO `sR` VALUES ('\\\\\'); +INSERT INTO `sS` VALUES (''); +INSERT INTO `sT` VALUES (''); +INSERT INTO `sU` VALUES ('\\\\\'); +INSERT INTO `sV` VALUES (''); +INSERT INTO `sW` VALUES (''); +INSERT INTO `sX` VALUES ('\\\\\'); +INSERT INTO `sPO` VALUES (''); +INSERT INTO `sPP` VALUES (''); +INSERT INTO `sPQ` VALUES ('\\\\\'); +SELECT REVERSE(`bP`) FROM `sP`; +REVERSE(`bP`) + +SELECT REVERSE(`bP`) FROM `sQ`; +REVERSE(`bP`) + +SELECT REVERSE(`bP`) FROM `sR`; +REVERSE(`bP`) +\\\\\ +SELECT REVERSE(`bP`) FROM `sS`; +REVERSE(`bP`) + +SELECT REVERSE(`bP`) FROM `sT`; +REVERSE(`bP`) + +SELECT REVERSE(`bP`) FROM `sU`; +REVERSE(`bP`) +\\\\\ +SELECT REVERSE(`bP`) FROM `sV`; +REVERSE(`bP`) + +SELECT REVERSE(`bP`) FROM `sW`; +REVERSE(`bP`) + +SELECT REVERSE(`bP`) FROM `sX`; +REVERSE(`bP`) +\\\\\ +SELECT REVERSE(`bP`) FROM `sPO`; +REVERSE(`bP`) + +SELECT REVERSE(`bP`) FROM `sPP`; +REVERSE(`bP`) + +SELECT REVERSE(`bP`) FROM `sPQ`; +REVERSE(`bP`) +\\\\\ +DROP TABLE `sP`; +DROP TABLE `sQ`; +DROP TABLE `sR`; +DROP TABLE `sS`; +DROP TABLE `sT`; +DROP TABLE `sU`; +DROP TABLE `sV`; +DROP TABLE `sW`; +DROP TABLE `sX`; +DROP TABLE `sPO`; +DROP TABLE `sPP`; +DROP TABLE `sPQ`; diff --git a/mysql-test/suite/jp/r/jp_reverse_ucs2.result b/mysql-test/suite/jp/r/jp_reverse_ucs2.result new file mode 100755 index 00000000000..ad9782d5048 --- /dev/null +++ b/mysql-test/suite/jp/r/jp_reverse_ucs2.result @@ -0,0 +1,87 @@ +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +SET NAMES ujis; +SET character_set_database = ucs2; +SET collation_connection = ucs2_general_ci; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +SELECT REVERSE(`ã`) FROM `ԣ`; +REVERSE(`ã`) + +SELECT REVERSE(`ã`) FROM `ԣ`; +REVERSE(`ã`) + +SELECT REVERSE(`ã`) FROM `ԣ`; +REVERSE(`ã`) +ߏޏݏ +SELECT REVERSE(`ã`) FROM `ԣ`; +REVERSE(`ã`) + +SELECT REVERSE(`ã`) FROM `ԣ`; +REVERSE(`ã`) + +SELECT REVERSE(`ã`) FROM `ԣ`; +REVERSE(`ã`) +ߏޏݏ +SELECT REVERSE(`ã`) FROM `ԣ`; +REVERSE(`ã`) + +SELECT REVERSE(`ã`) FROM `ԣ`; +REVERSE(`ã`) + +SELECT REVERSE(`ã`) FROM `ԣ`; +REVERSE(`ã`) +ߏޏݏ +SELECT REVERSE(`ã`) FROM `ԣ`; +REVERSE(`ã`) + +SELECT REVERSE(`ã`) FROM `ԣ`; +REVERSE(`ã`) + +SELECT REVERSE(`ã`) FROM `ԣ`; +REVERSE(`ã`) +ߏޏݏ +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; diff --git a/mysql-test/suite/jp/r/jp_reverse_ujis.result b/mysql-test/suite/jp/r/jp_reverse_ujis.result new file mode 100755 index 00000000000..888f7f9e054 --- /dev/null +++ b/mysql-test/suite/jp/r/jp_reverse_ujis.result @@ -0,0 +1,86 @@ +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +SET NAMES ujis; +SET character_set_database = ujis; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +SELECT REVERSE(`ã`) FROM `ԣ`; +REVERSE(`ã`) + +SELECT REVERSE(`ã`) FROM `ԣ`; +REVERSE(`ã`) + +SELECT REVERSE(`ã`) FROM `ԣ`; +REVERSE(`ã`) +ߏޏݏ +SELECT REVERSE(`ã`) FROM `ԣ`; +REVERSE(`ã`) + +SELECT REVERSE(`ã`) FROM `ԣ`; +REVERSE(`ã`) + +SELECT REVERSE(`ã`) FROM `ԣ`; +REVERSE(`ã`) +ߏޏݏ +SELECT REVERSE(`ã`) FROM `ԣ`; +REVERSE(`ã`) + +SELECT REVERSE(`ã`) FROM `ԣ`; +REVERSE(`ã`) + +SELECT REVERSE(`ã`) FROM `ԣ`; +REVERSE(`ã`) +ߏޏݏ +SELECT REVERSE(`ã`) FROM `ԣ`; +REVERSE(`ã`) + +SELECT REVERSE(`ã`) FROM `ԣ`; +REVERSE(`ã`) + +SELECT REVERSE(`ã`) FROM `ԣ`; +REVERSE(`ã`) +ߏޏݏ +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; diff --git a/mysql-test/suite/jp/r/jp_reverse_utf8.result b/mysql-test/suite/jp/r/jp_reverse_utf8.result new file mode 100755 index 00000000000..4e02cf69645 --- /dev/null +++ b/mysql-test/suite/jp/r/jp_reverse_utf8.result @@ -0,0 +1,86 @@ +drop table if exists `T1`; +drop table if exists `T2`; +drop table if exists `T3`; +drop table if exists `T4`; +drop table if exists `T5`; +drop table if exists `T6`; +drop table if exists `T7`; +drop table if exists `T8`; +drop table if exists `T9`; +drop table if exists `T10`; +drop table if exists `T11`; +drop table if exists `T12`; +SET NAMES utf8; +SET character_set_database = utf8; +CREATE TABLE `T1` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T2` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T3` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T4` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T5` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T6` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T7` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T8` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T9` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T10` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +CREATE TABLE `T11` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +CREATE TABLE `T12` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +INSERT INTO `T1` VALUES ('アイウエオ'); +INSERT INTO `T2` VALUES ('あいうえお'); +INSERT INTO `T3` VALUES ('龔龖龗龞龡'); +INSERT INTO `T4` VALUES ('アイウエオ'); +INSERT INTO `T5` VALUES ('あいうえお'); +INSERT INTO `T6` VALUES ('龔龖龗龞龡'); +INSERT INTO `T7` VALUES ('アイウエオ'); +INSERT INTO `T8` VALUES ('あいうえお'); +INSERT INTO `T9` VALUES ('龔龖龗龞龡'); +INSERT INTO `T10` VALUES ('アイウエオ'); +INSERT INTO `T11` VALUES ('あいうえお'); +INSERT INTO `T12` VALUES ('龔龖龗龞龡'); +SELECT REVERSE(`C1`) FROM `T1`; +REVERSE(`C1`) +オエウイア +SELECT REVERSE(`C1`) FROM `T2`; +REVERSE(`C1`) +おえういあ +SELECT REVERSE(`C1`) FROM `T3`; +REVERSE(`C1`) +龡龞龗龖龔 +SELECT REVERSE(`C1`) FROM `T4`; +REVERSE(`C1`) +オエウイア +SELECT REVERSE(`C1`) FROM `T5`; +REVERSE(`C1`) +おえういあ +SELECT REVERSE(`C1`) FROM `T6`; +REVERSE(`C1`) +龡龞龗龖龔 +SELECT REVERSE(`C1`) FROM `T7`; +REVERSE(`C1`) +オエウイア +SELECT REVERSE(`C1`) FROM `T8`; +REVERSE(`C1`) +おえういあ +SELECT REVERSE(`C1`) FROM `T9`; +REVERSE(`C1`) +龡龞龗龖龔 +SELECT REVERSE(`C1`) FROM `T10`; +REVERSE(`C1`) +オエウイア +SELECT REVERSE(`C1`) FROM `T11`; +REVERSE(`C1`) +おえういあ +SELECT REVERSE(`C1`) FROM `T12`; +REVERSE(`C1`) +龡龞龗龖龔 +DROP TABLE `T1`; +DROP TABLE `T2`; +DROP TABLE `T3`; +DROP TABLE `T4`; +DROP TABLE `T5`; +DROP TABLE `T6`; +DROP TABLE `T7`; +DROP TABLE `T8`; +DROP TABLE `T9`; +DROP TABLE `T10`; +DROP TABLE `T11`; +DROP TABLE `T12`; diff --git a/mysql-test/suite/jp/r/jp_right_sjis.result b/mysql-test/suite/jp/r/jp_right_sjis.result new file mode 100755 index 00000000000..249d7bbb0bc --- /dev/null +++ b/mysql-test/suite/jp/r/jp_right_sjis.result @@ -0,0 +1,626 @@ +drop table if exists `sP`; +drop table if exists `sQ`; +drop table if exists `sR`; +drop table if exists `sS`; +drop table if exists `sT`; +drop table if exists `sU`; +drop table if exists `sV`; +drop table if exists `sW`; +drop table if exists `sX`; +drop table if exists `sPO`; +drop table if exists `sPP`; +drop table if exists `sPQ`; +SET NAMES sjis; +SET character_set_database = sjis; +CREATE TABLE `sP` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sQ` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sR` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sS` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sT` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sU` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sV` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sW` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sX` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sPO` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +CREATE TABLE `sPP` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +CREATE TABLE `sPQ` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +INSERT INTO `sP` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sQ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sR` VALUES ('\\\\\'),('\\\\'),('\\\'),('\\'),('\'),(''); +INSERT INTO `sS` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sT` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sU` VALUES ('\\\\\'),('\\\\'),('\\\'),('\\'),('\'),(''); +INSERT INTO `sV` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sW` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sX` VALUES ('\\\\\'),('\\\\'),('\\\'),('\\'),('\'),(''); +INSERT INTO `sPO` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sPP` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sPQ` VALUES ('\\\\\'),('\\\\'),('\\\'),('\\'),('\'),(''); +SELECT `bP`, RIGHT(`bP`,0) FROM `sP`; +bP RIGHT(`bP`,0) + + + + + + +SELECT `bP`, RIGHT(`bP`,1) FROM `sP`; +bP RIGHT(`bP`,1) + + + + + + +SELECT `bP`, RIGHT(`bP`,2) FROM `sP`; +bP RIGHT(`bP`,2) + + + + + + +SELECT `bP`, RIGHT(`bP`,3) FROM `sP`; +bP RIGHT(`bP`,3) + + + + + + +SELECT `bP`, RIGHT(`bP`,4) FROM `sP`; +bP RIGHT(`bP`,4) + + + + + + +SELECT `bP`, RIGHT(`bP`,5) FROM `sP`; +bP RIGHT(`bP`,5) + + + + + + +SELECT `bP`, RIGHT(`bP`,0) FROM `sQ`; +bP RIGHT(`bP`,0) + + + + + + +SELECT `bP`, RIGHT(`bP`,1) FROM `sQ`; +bP RIGHT(`bP`,1) + + + + + + +SELECT `bP`, RIGHT(`bP`,2) FROM `sQ`; +bP RIGHT(`bP`,2) + + + + + + +SELECT `bP`, RIGHT(`bP`,3) FROM `sQ`; +bP RIGHT(`bP`,3) + + + + + + +SELECT `bP`, RIGHT(`bP`,4) FROM `sQ`; +bP RIGHT(`bP`,4) + + + + + + +SELECT `bP`, RIGHT(`bP`,5) FROM `sQ`; +bP RIGHT(`bP`,5) + + + + + + +SELECT `bP`, RIGHT(`bP`,0) FROM `sR`; +bP RIGHT(`bP`,0) + +\ +\\ +\\\ +\\\\ +\\\\\ +SELECT `bP`, RIGHT(`bP`,1) FROM `sR`; +bP RIGHT(`bP`,1) + +\ \ +\\ \ +\\\ \ +\\\\ \ +\\\\\ \ +SELECT `bP`, RIGHT(`bP`,2) FROM `sR`; +bP RIGHT(`bP`,2) + +\ \ +\\ \\ +\\\ \\ +\\\\ \\ +\\\\\ \\ +SELECT `bP`, RIGHT(`bP`,3) FROM `sR`; +bP RIGHT(`bP`,3) + +\ \ +\\ \\ +\\\ \\\ +\\\\ \\\ +\\\\\ \\\ +SELECT `bP`, RIGHT(`bP`,4) FROM `sR`; +bP RIGHT(`bP`,4) + +\ \ +\\ \\ +\\\ \\\ +\\\\ \\\\ +\\\\\ \\\\ +SELECT `bP`, RIGHT(`bP`,5) FROM `sR`; +bP RIGHT(`bP`,5) + +\ \ +\\ \\ +\\\ \\\ +\\\\ \\\\ +\\\\\ \\\\\ +SELECT `bP`, RIGHT(`bP`,0) FROM `sS`; +bP RIGHT(`bP`,0) + + + + + + +SELECT `bP`, RIGHT(`bP`,1) FROM `sS`; +bP RIGHT(`bP`,1) + + + + + + +SELECT `bP`, RIGHT(`bP`,2) FROM `sS`; +bP RIGHT(`bP`,2) + + + + + + +SELECT `bP`, RIGHT(`bP`,3) FROM `sS`; +bP RIGHT(`bP`,3) + + + + + + +SELECT `bP`, RIGHT(`bP`,4) FROM `sS`; +bP RIGHT(`bP`,4) + + + + + + +SELECT `bP`, RIGHT(`bP`,5) FROM `sS`; +bP RIGHT(`bP`,5) + + + + + + +SELECT `bP`, RIGHT(`bP`,0) FROM `sT`; +bP RIGHT(`bP`,0) + + + + + + +SELECT `bP`, RIGHT(`bP`,1) FROM `sT`; +bP RIGHT(`bP`,1) + + + + + + +SELECT `bP`, RIGHT(`bP`,2) FROM `sT`; +bP RIGHT(`bP`,2) + + + + + + +SELECT `bP`, RIGHT(`bP`,3) FROM `sT`; +bP RIGHT(`bP`,3) + + + + + + +SELECT `bP`, RIGHT(`bP`,4) FROM `sT`; +bP RIGHT(`bP`,4) + + + + + + +SELECT `bP`, RIGHT(`bP`,5) FROM `sT`; +bP RIGHT(`bP`,5) + + + + + + +SELECT `bP`, RIGHT(`bP`,0) FROM `sU`; +bP RIGHT(`bP`,0) + +\ +\\ +\\\ +\\\\ +\\\\\ +SELECT `bP`, RIGHT(`bP`,1) FROM `sU`; +bP RIGHT(`bP`,1) + +\ \ +\\ \ +\\\ \ +\\\\ \ +\\\\\ \ +SELECT `bP`, RIGHT(`bP`,2) FROM `sU`; +bP RIGHT(`bP`,2) + +\ \ +\\ \\ +\\\ \\ +\\\\ \\ +\\\\\ \\ +SELECT `bP`, RIGHT(`bP`,3) FROM `sU`; +bP RIGHT(`bP`,3) + +\ \ +\\ \\ +\\\ \\\ +\\\\ \\\ +\\\\\ \\\ +SELECT `bP`, RIGHT(`bP`,4) FROM `sU`; +bP RIGHT(`bP`,4) + +\ \ +\\ \\ +\\\ \\\ +\\\\ \\\\ +\\\\\ \\\\ +SELECT `bP`, RIGHT(`bP`,5) FROM `sU`; +bP RIGHT(`bP`,5) + +\ \ +\\ \\ +\\\ \\\ +\\\\ \\\\ +\\\\\ \\\\\ +SELECT `bP`, RIGHT(`bP`,0) FROM `sV`; +bP RIGHT(`bP`,0) + + + + + + +SELECT `bP`, RIGHT(`bP`,1) FROM `sV`; +bP RIGHT(`bP`,1) + + + + + + +SELECT `bP`, RIGHT(`bP`,2) FROM `sV`; +bP RIGHT(`bP`,2) + + + + + + +SELECT `bP`, RIGHT(`bP`,3) FROM `sV`; +bP RIGHT(`bP`,3) + + + + + + +SELECT `bP`, RIGHT(`bP`,4) FROM `sV`; +bP RIGHT(`bP`,4) + + + + + + +SELECT `bP`, RIGHT(`bP`,5) FROM `sV`; +bP RIGHT(`bP`,5) + + + + + + +SELECT `bP`, RIGHT(`bP`,0) FROM `sW`; +bP RIGHT(`bP`,0) + + + + + + +SELECT `bP`, RIGHT(`bP`,1) FROM `sW`; +bP RIGHT(`bP`,1) + + + + + + +SELECT `bP`, RIGHT(`bP`,2) FROM `sW`; +bP RIGHT(`bP`,2) + + + + + + +SELECT `bP`, RIGHT(`bP`,3) FROM `sW`; +bP RIGHT(`bP`,3) + + + + + + +SELECT `bP`, RIGHT(`bP`,4) FROM `sW`; +bP RIGHT(`bP`,4) + + + + + + +SELECT `bP`, RIGHT(`bP`,5) FROM `sW`; +bP RIGHT(`bP`,5) + + + + + + +SELECT `bP`, RIGHT(`bP`,0) FROM `sX`; +bP RIGHT(`bP`,0) +\\\\\ +\\\\ +\\\ +\\ +\ + +SELECT `bP`, RIGHT(`bP`,1) FROM `sX`; +bP RIGHT(`bP`,1) +\\\\\ \ +\\\\ \ +\\\ \ +\\ \ +\ \ + +SELECT `bP`, RIGHT(`bP`,2) FROM `sX`; +bP RIGHT(`bP`,2) +\\\\\ \\ +\\\\ \\ +\\\ \\ +\\ \\ +\ \ + +SELECT `bP`, RIGHT(`bP`,3) FROM `sX`; +bP RIGHT(`bP`,3) +\\\\\ \\\ +\\\\ \\\ +\\\ \\\ +\\ \\ +\ \ + +SELECT `bP`, RIGHT(`bP`,4) FROM `sX`; +bP RIGHT(`bP`,4) +\\\\\ \\\\ +\\\\ \\\\ +\\\ \\\ +\\ \\ +\ \ + +SELECT `bP`, RIGHT(`bP`,5) FROM `sX`; +bP RIGHT(`bP`,5) +\\\\\ \\\\\ +\\\\ \\\\ +\\\ \\\ +\\ \\ +\ \ + +SELECT `bP`, RIGHT(`bP`,0) FROM `sPO`; +bP RIGHT(`bP`,0) + + + + + + +SELECT `bP`, RIGHT(`bP`,1) FROM `sPO`; +bP RIGHT(`bP`,1) + + + + + + +SELECT `bP`, RIGHT(`bP`,2) FROM `sPO`; +bP RIGHT(`bP`,2) + + + + + + +SELECT `bP`, RIGHT(`bP`,3) FROM `sPO`; +bP RIGHT(`bP`,3) + + + + + + +SELECT `bP`, RIGHT(`bP`,4) FROM `sPO`; +bP RIGHT(`bP`,4) + + + + + + +SELECT `bP`, RIGHT(`bP`,5) FROM `sPO`; +bP RIGHT(`bP`,5) + + + + + + +SELECT `bP`, RIGHT(`bP`,0) FROM `sPP`; +bP RIGHT(`bP`,0) + + + + + + +SELECT `bP`, RIGHT(`bP`,1) FROM `sPP`; +bP RIGHT(`bP`,1) + + + + + + +SELECT `bP`, RIGHT(`bP`,2) FROM `sPP`; +bP RIGHT(`bP`,2) + + + + + + +SELECT `bP`, RIGHT(`bP`,3) FROM `sPP`; +bP RIGHT(`bP`,3) + + + + + + +SELECT `bP`, RIGHT(`bP`,4) FROM `sPP`; +bP RIGHT(`bP`,4) + + + + + + +SELECT `bP`, RIGHT(`bP`,5) FROM `sPP`; +bP RIGHT(`bP`,5) + + + + + + +SELECT `bP`, RIGHT(`bP`,0) FROM `sPQ`; +bP RIGHT(`bP`,0) +\\\\\ +\\\\ +\\\ +\\ +\ + +SELECT `bP`, RIGHT(`bP`,1) FROM `sPQ`; +bP RIGHT(`bP`,1) +\\\\\ \ +\\\\ \ +\\\ \ +\\ \ +\ \ + +SELECT `bP`, RIGHT(`bP`,2) FROM `sPQ`; +bP RIGHT(`bP`,2) +\\\\\ \\ +\\\\ \\ +\\\ \\ +\\ \\ +\ \ + +SELECT `bP`, RIGHT(`bP`,3) FROM `sPQ`; +bP RIGHT(`bP`,3) +\\\\\ \\\ +\\\\ \\\ +\\\ \\\ +\\ \\ +\ \ + +SELECT `bP`, RIGHT(`bP`,4) FROM `sPQ`; +bP RIGHT(`bP`,4) +\\\\\ \\\\ +\\\\ \\\\ +\\\ \\\ +\\ \\ +\ \ + +SELECT `bP`, RIGHT(`bP`,5) FROM `sPQ`; +bP RIGHT(`bP`,5) +\\\\\ \\\\\ +\\\\ \\\\ +\\\ \\\ +\\ \\ +\ \ + +DROP TABLE `sP`; +DROP TABLE `sQ`; +DROP TABLE `sR`; +DROP TABLE `sS`; +DROP TABLE `sT`; +DROP TABLE `sU`; +DROP TABLE `sV`; +DROP TABLE `sW`; +DROP TABLE `sX`; +DROP TABLE `sPO`; +DROP TABLE `sPP`; +DROP TABLE `sPQ`; diff --git a/mysql-test/suite/jp/r/jp_right_ucs2.result b/mysql-test/suite/jp/r/jp_right_ucs2.result new file mode 100755 index 00000000000..a8a3fba0f92 --- /dev/null +++ b/mysql-test/suite/jp/r/jp_right_ucs2.result @@ -0,0 +1,627 @@ +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +SET NAMES ujis; +SET character_set_database = ucs2; +SET collation_connection = ucs2_general_ci; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +SELECT `ã`, RIGHT(`ã`,0) FROM `ԣ`; +ã RIGHT(`ã`,0) + + + + + + +SELECT `ã`, RIGHT(`ã`,1) FROM `ԣ`; +ã RIGHT(`ã`,1) + + + + + + +SELECT `ã`, RIGHT(`ã`,2) FROM `ԣ`; +ã RIGHT(`ã`,2) + + + + + + +SELECT `ã`, RIGHT(`ã`,3) FROM `ԣ`; +ã RIGHT(`ã`,3) + + + + + + +SELECT `ã`, RIGHT(`ã`,4) FROM `ԣ`; +ã RIGHT(`ã`,4) + + + + + + +SELECT `ã`, RIGHT(`ã`,5) FROM `ԣ`; +ã RIGHT(`ã`,5) + + + + + + +SELECT `ã`, RIGHT(`ã`,0) FROM `ԣ`; +ã RIGHT(`ã`,0) + + + + + + +SELECT `ã`, RIGHT(`ã`,1) FROM `ԣ`; +ã RIGHT(`ã`,1) + + + + + + +SELECT `ã`, RIGHT(`ã`,2) FROM `ԣ`; +ã RIGHT(`ã`,2) + + + + + + +SELECT `ã`, RIGHT(`ã`,3) FROM `ԣ`; +ã RIGHT(`ã`,3) + + + + + + +SELECT `ã`, RIGHT(`ã`,4) FROM `ԣ`; +ã RIGHT(`ã`,4) + + + + + + +SELECT `ã`, RIGHT(`ã`,5) FROM `ԣ`; +ã RIGHT(`ã`,5) + + + + + + +SELECT `ã`, RIGHT(`ã`,0) FROM `ԣ`; +ã RIGHT(`ã`,0) + + +܏ +܏ݏ +܏ݏޏ +܏ݏޏߏ +SELECT `ã`, RIGHT(`ã`,1) FROM `ԣ`; +ã RIGHT(`ã`,1) + + +܏ +܏ݏ +܏ݏޏ +܏ݏޏߏ +SELECT `ã`, RIGHT(`ã`,2) FROM `ԣ`; +ã RIGHT(`ã`,2) + + +܏ ܏ +܏ݏ ݏ +܏ݏޏ ޏ +܏ݏޏߏ ߏ +SELECT `ã`, RIGHT(`ã`,3) FROM `ԣ`; +ã RIGHT(`ã`,3) + + +܏ ܏ +܏ݏ ܏ݏ +܏ݏޏ ݏޏ +܏ݏޏߏ ޏߏ +SELECT `ã`, RIGHT(`ã`,4) FROM `ԣ`; +ã RIGHT(`ã`,4) + + +܏ ܏ +܏ݏ ܏ݏ +܏ݏޏ ܏ݏޏ +܏ݏޏߏ ݏޏߏ +SELECT `ã`, RIGHT(`ã`,5) FROM `ԣ`; +ã RIGHT(`ã`,5) + + +܏ ܏ +܏ݏ ܏ݏ +܏ݏޏ ܏ݏޏ +܏ݏޏߏ ܏ݏޏߏ +SELECT `ã`, RIGHT(`ã`,0) FROM `ԣ`; +ã RIGHT(`ã`,0) + + + + + + +SELECT `ã`, RIGHT(`ã`,1) FROM `ԣ`; +ã RIGHT(`ã`,1) + + + + + + +SELECT `ã`, RIGHT(`ã`,2) FROM `ԣ`; +ã RIGHT(`ã`,2) + + + + + + +SELECT `ã`, RIGHT(`ã`,3) FROM `ԣ`; +ã RIGHT(`ã`,3) + + + + + + +SELECT `ã`, RIGHT(`ã`,4) FROM `ԣ`; +ã RIGHT(`ã`,4) + + + + + + +SELECT `ã`, RIGHT(`ã`,5) FROM `ԣ`; +ã RIGHT(`ã`,5) + + + + + + +SELECT `ã`, RIGHT(`ã`,0) FROM `ԣ`; +ã RIGHT(`ã`,0) + + + + + + +SELECT `ã`, RIGHT(`ã`,1) FROM `ԣ`; +ã RIGHT(`ã`,1) + + + + + + +SELECT `ã`, RIGHT(`ã`,2) FROM `ԣ`; +ã RIGHT(`ã`,2) + + + + + + +SELECT `ã`, RIGHT(`ã`,3) FROM `ԣ`; +ã RIGHT(`ã`,3) + + + + + + +SELECT `ã`, RIGHT(`ã`,4) FROM `ԣ`; +ã RIGHT(`ã`,4) + + + + + + +SELECT `ã`, RIGHT(`ã`,5) FROM `ԣ`; +ã RIGHT(`ã`,5) + + + + + + +SELECT `ã`, RIGHT(`ã`,0) FROM `ԣ`; +ã RIGHT(`ã`,0) + + +܏ +܏ݏ +܏ݏޏ +܏ݏޏߏ +SELECT `ã`, RIGHT(`ã`,1) FROM `ԣ`; +ã RIGHT(`ã`,1) + + +܏ +܏ݏ +܏ݏޏ +܏ݏޏߏ +SELECT `ã`, RIGHT(`ã`,2) FROM `ԣ`; +ã RIGHT(`ã`,2) + + +܏ ܏ +܏ݏ ݏ +܏ݏޏ ޏ +܏ݏޏߏ ߏ +SELECT `ã`, RIGHT(`ã`,3) FROM `ԣ`; +ã RIGHT(`ã`,3) + + +܏ ܏ +܏ݏ ܏ݏ +܏ݏޏ ݏޏ +܏ݏޏߏ ޏߏ +SELECT `ã`, RIGHT(`ã`,4) FROM `ԣ`; +ã RIGHT(`ã`,4) + + +܏ ܏ +܏ݏ ܏ݏ +܏ݏޏ ܏ݏޏ +܏ݏޏߏ ݏޏߏ +SELECT `ã`, RIGHT(`ã`,5) FROM `ԣ`; +ã RIGHT(`ã`,5) + + +܏ ܏ +܏ݏ ܏ݏ +܏ݏޏ ܏ݏޏ +܏ݏޏߏ ܏ݏޏߏ +SELECT `ã`, RIGHT(`ã`,0) FROM `ԣ`; +ã RIGHT(`ã`,0) + + + + + + +SELECT `ã`, RIGHT(`ã`,1) FROM `ԣ`; +ã RIGHT(`ã`,1) + + + + + + +SELECT `ã`, RIGHT(`ã`,2) FROM `ԣ`; +ã RIGHT(`ã`,2) + + + + + + +SELECT `ã`, RIGHT(`ã`,3) FROM `ԣ`; +ã RIGHT(`ã`,3) + + + + + + +SELECT `ã`, RIGHT(`ã`,4) FROM `ԣ`; +ã RIGHT(`ã`,4) + + + + + + +SELECT `ã`, RIGHT(`ã`,5) FROM `ԣ`; +ã RIGHT(`ã`,5) + + + + + + +SELECT `ã`, RIGHT(`ã`,0) FROM `ԣ`; +ã RIGHT(`ã`,0) + + + + + + +SELECT `ã`, RIGHT(`ã`,1) FROM `ԣ`; +ã RIGHT(`ã`,1) + + + + + + +SELECT `ã`, RIGHT(`ã`,2) FROM `ԣ`; +ã RIGHT(`ã`,2) + + + + + + +SELECT `ã`, RIGHT(`ã`,3) FROM `ԣ`; +ã RIGHT(`ã`,3) + + + + + + +SELECT `ã`, RIGHT(`ã`,4) FROM `ԣ`; +ã RIGHT(`ã`,4) + + + + + + +SELECT `ã`, RIGHT(`ã`,5) FROM `ԣ`; +ã RIGHT(`ã`,5) + + + + + + +SELECT `ã`, RIGHT(`ã`,0) FROM `ԣ`; +ã RIGHT(`ã`,0) +܏ݏޏߏ +܏ݏޏ +܏ݏ +܏ + + +SELECT `ã`, RIGHT(`ã`,1) FROM `ԣ`; +ã RIGHT(`ã`,1) +܏ݏޏߏ +܏ݏޏ +܏ݏ +܏ + + +SELECT `ã`, RIGHT(`ã`,2) FROM `ԣ`; +ã RIGHT(`ã`,2) +܏ݏޏߏ ߏ +܏ݏޏ ޏ +܏ݏ ݏ +܏ ܏ + + +SELECT `ã`, RIGHT(`ã`,3) FROM `ԣ`; +ã RIGHT(`ã`,3) +܏ݏޏߏ ޏߏ +܏ݏޏ ݏޏ +܏ݏ ܏ݏ +܏ ܏ + + +SELECT `ã`, RIGHT(`ã`,4) FROM `ԣ`; +ã RIGHT(`ã`,4) +܏ݏޏߏ ݏޏߏ +܏ݏޏ ܏ݏޏ +܏ݏ ܏ݏ +܏ ܏ + + +SELECT `ã`, RIGHT(`ã`,5) FROM `ԣ`; +ã RIGHT(`ã`,5) +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏ ܏ݏޏ +܏ݏ ܏ݏ +܏ ܏ + + +SELECT `ã`, RIGHT(`ã`,0) FROM `ԣ`; +ã RIGHT(`ã`,0) + + + + + + +SELECT `ã`, RIGHT(`ã`,1) FROM `ԣ`; +ã RIGHT(`ã`,1) + + + + + + +SELECT `ã`, RIGHT(`ã`,2) FROM `ԣ`; +ã RIGHT(`ã`,2) + + + + + + +SELECT `ã`, RIGHT(`ã`,3) FROM `ԣ`; +ã RIGHT(`ã`,3) + + + + + + +SELECT `ã`, RIGHT(`ã`,4) FROM `ԣ`; +ã RIGHT(`ã`,4) + + + + + + +SELECT `ã`, RIGHT(`ã`,5) FROM `ԣ`; +ã RIGHT(`ã`,5) + + + + + + +SELECT `ã`, RIGHT(`ã`,0) FROM `ԣ`; +ã RIGHT(`ã`,0) + + + + + + +SELECT `ã`, RIGHT(`ã`,1) FROM `ԣ`; +ã RIGHT(`ã`,1) + + + + + + +SELECT `ã`, RIGHT(`ã`,2) FROM `ԣ`; +ã RIGHT(`ã`,2) + + + + + + +SELECT `ã`, RIGHT(`ã`,3) FROM `ԣ`; +ã RIGHT(`ã`,3) + + + + + + +SELECT `ã`, RIGHT(`ã`,4) FROM `ԣ`; +ã RIGHT(`ã`,4) + + + + + + +SELECT `ã`, RIGHT(`ã`,5) FROM `ԣ`; +ã RIGHT(`ã`,5) + + + + + + +SELECT `ã`, RIGHT(`ã`,0) FROM `ԣ`; +ã RIGHT(`ã`,0) +܏ݏޏߏ +܏ݏޏ +܏ݏ +܏ + + +SELECT `ã`, RIGHT(`ã`,1) FROM `ԣ`; +ã RIGHT(`ã`,1) +܏ݏޏߏ +܏ݏޏ +܏ݏ +܏ + + +SELECT `ã`, RIGHT(`ã`,2) FROM `ԣ`; +ã RIGHT(`ã`,2) +܏ݏޏߏ ߏ +܏ݏޏ ޏ +܏ݏ ݏ +܏ ܏ + + +SELECT `ã`, RIGHT(`ã`,3) FROM `ԣ`; +ã RIGHT(`ã`,3) +܏ݏޏߏ ޏߏ +܏ݏޏ ݏޏ +܏ݏ ܏ݏ +܏ ܏ + + +SELECT `ã`, RIGHT(`ã`,4) FROM `ԣ`; +ã RIGHT(`ã`,4) +܏ݏޏߏ ݏޏߏ +܏ݏޏ ܏ݏޏ +܏ݏ ܏ݏ +܏ ܏ + + +SELECT `ã`, RIGHT(`ã`,5) FROM `ԣ`; +ã RIGHT(`ã`,5) +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏ ܏ݏޏ +܏ݏ ܏ݏ +܏ ܏ + + +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; diff --git a/mysql-test/suite/jp/r/jp_right_ujis.result b/mysql-test/suite/jp/r/jp_right_ujis.result new file mode 100755 index 00000000000..bb182853d95 --- /dev/null +++ b/mysql-test/suite/jp/r/jp_right_ujis.result @@ -0,0 +1,626 @@ +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +SET NAMES ujis; +SET character_set_database = ujis; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +SELECT `ã`, RIGHT(`ã`,0) FROM `ԣ`; +ã RIGHT(`ã`,0) + + + + + + +SELECT `ã`, RIGHT(`ã`,1) FROM `ԣ`; +ã RIGHT(`ã`,1) + + + + + + +SELECT `ã`, RIGHT(`ã`,2) FROM `ԣ`; +ã RIGHT(`ã`,2) + + + + + + +SELECT `ã`, RIGHT(`ã`,3) FROM `ԣ`; +ã RIGHT(`ã`,3) + + + + + + +SELECT `ã`, RIGHT(`ã`,4) FROM `ԣ`; +ã RIGHT(`ã`,4) + + + + + + +SELECT `ã`, RIGHT(`ã`,5) FROM `ԣ`; +ã RIGHT(`ã`,5) + + + + + + +SELECT `ã`, RIGHT(`ã`,0) FROM `ԣ`; +ã RIGHT(`ã`,0) + + + + + + +SELECT `ã`, RIGHT(`ã`,1) FROM `ԣ`; +ã RIGHT(`ã`,1) + + + + + + +SELECT `ã`, RIGHT(`ã`,2) FROM `ԣ`; +ã RIGHT(`ã`,2) + + + + + + +SELECT `ã`, RIGHT(`ã`,3) FROM `ԣ`; +ã RIGHT(`ã`,3) + + + + + + +SELECT `ã`, RIGHT(`ã`,4) FROM `ԣ`; +ã RIGHT(`ã`,4) + + + + + + +SELECT `ã`, RIGHT(`ã`,5) FROM `ԣ`; +ã RIGHT(`ã`,5) + + + + + + +SELECT `ã`, RIGHT(`ã`,0) FROM `ԣ`; +ã RIGHT(`ã`,0) + + +܏ +܏ݏ +܏ݏޏ +܏ݏޏߏ +SELECT `ã`, RIGHT(`ã`,1) FROM `ԣ`; +ã RIGHT(`ã`,1) + + +܏ +܏ݏ +܏ݏޏ +܏ݏޏߏ +SELECT `ã`, RIGHT(`ã`,2) FROM `ԣ`; +ã RIGHT(`ã`,2) + + +܏ ܏ +܏ݏ ݏ +܏ݏޏ ޏ +܏ݏޏߏ ߏ +SELECT `ã`, RIGHT(`ã`,3) FROM `ԣ`; +ã RIGHT(`ã`,3) + + +܏ ܏ +܏ݏ ܏ݏ +܏ݏޏ ݏޏ +܏ݏޏߏ ޏߏ +SELECT `ã`, RIGHT(`ã`,4) FROM `ԣ`; +ã RIGHT(`ã`,4) + + +܏ ܏ +܏ݏ ܏ݏ +܏ݏޏ ܏ݏޏ +܏ݏޏߏ ݏޏߏ +SELECT `ã`, RIGHT(`ã`,5) FROM `ԣ`; +ã RIGHT(`ã`,5) + + +܏ ܏ +܏ݏ ܏ݏ +܏ݏޏ ܏ݏޏ +܏ݏޏߏ ܏ݏޏߏ +SELECT `ã`, RIGHT(`ã`,0) FROM `ԣ`; +ã RIGHT(`ã`,0) + + + + + + +SELECT `ã`, RIGHT(`ã`,1) FROM `ԣ`; +ã RIGHT(`ã`,1) + + + + + + +SELECT `ã`, RIGHT(`ã`,2) FROM `ԣ`; +ã RIGHT(`ã`,2) + + + + + + +SELECT `ã`, RIGHT(`ã`,3) FROM `ԣ`; +ã RIGHT(`ã`,3) + + + + + + +SELECT `ã`, RIGHT(`ã`,4) FROM `ԣ`; +ã RIGHT(`ã`,4) + + + + + + +SELECT `ã`, RIGHT(`ã`,5) FROM `ԣ`; +ã RIGHT(`ã`,5) + + + + + + +SELECT `ã`, RIGHT(`ã`,0) FROM `ԣ`; +ã RIGHT(`ã`,0) + + + + + + +SELECT `ã`, RIGHT(`ã`,1) FROM `ԣ`; +ã RIGHT(`ã`,1) + + + + + + +SELECT `ã`, RIGHT(`ã`,2) FROM `ԣ`; +ã RIGHT(`ã`,2) + + + + + + +SELECT `ã`, RIGHT(`ã`,3) FROM `ԣ`; +ã RIGHT(`ã`,3) + + + + + + +SELECT `ã`, RIGHT(`ã`,4) FROM `ԣ`; +ã RIGHT(`ã`,4) + + + + + + +SELECT `ã`, RIGHT(`ã`,5) FROM `ԣ`; +ã RIGHT(`ã`,5) + + + + + + +SELECT `ã`, RIGHT(`ã`,0) FROM `ԣ`; +ã RIGHT(`ã`,0) + + +܏ +܏ݏ +܏ݏޏ +܏ݏޏߏ +SELECT `ã`, RIGHT(`ã`,1) FROM `ԣ`; +ã RIGHT(`ã`,1) + + +܏ +܏ݏ +܏ݏޏ +܏ݏޏߏ +SELECT `ã`, RIGHT(`ã`,2) FROM `ԣ`; +ã RIGHT(`ã`,2) + + +܏ ܏ +܏ݏ ݏ +܏ݏޏ ޏ +܏ݏޏߏ ߏ +SELECT `ã`, RIGHT(`ã`,3) FROM `ԣ`; +ã RIGHT(`ã`,3) + + +܏ ܏ +܏ݏ ܏ݏ +܏ݏޏ ݏޏ +܏ݏޏߏ ޏߏ +SELECT `ã`, RIGHT(`ã`,4) FROM `ԣ`; +ã RIGHT(`ã`,4) + + +܏ ܏ +܏ݏ ܏ݏ +܏ݏޏ ܏ݏޏ +܏ݏޏߏ ݏޏߏ +SELECT `ã`, RIGHT(`ã`,5) FROM `ԣ`; +ã RIGHT(`ã`,5) + + +܏ ܏ +܏ݏ ܏ݏ +܏ݏޏ ܏ݏޏ +܏ݏޏߏ ܏ݏޏߏ +SELECT `ã`, RIGHT(`ã`,0) FROM `ԣ`; +ã RIGHT(`ã`,0) + + + + + + +SELECT `ã`, RIGHT(`ã`,1) FROM `ԣ`; +ã RIGHT(`ã`,1) + + + + + + +SELECT `ã`, RIGHT(`ã`,2) FROM `ԣ`; +ã RIGHT(`ã`,2) + + + + + + +SELECT `ã`, RIGHT(`ã`,3) FROM `ԣ`; +ã RIGHT(`ã`,3) + + + + + + +SELECT `ã`, RIGHT(`ã`,4) FROM `ԣ`; +ã RIGHT(`ã`,4) + + + + + + +SELECT `ã`, RIGHT(`ã`,5) FROM `ԣ`; +ã RIGHT(`ã`,5) + + + + + + +SELECT `ã`, RIGHT(`ã`,0) FROM `ԣ`; +ã RIGHT(`ã`,0) + + + + + + +SELECT `ã`, RIGHT(`ã`,1) FROM `ԣ`; +ã RIGHT(`ã`,1) + + + + + + +SELECT `ã`, RIGHT(`ã`,2) FROM `ԣ`; +ã RIGHT(`ã`,2) + + + + + + +SELECT `ã`, RIGHT(`ã`,3) FROM `ԣ`; +ã RIGHT(`ã`,3) + + + + + + +SELECT `ã`, RIGHT(`ã`,4) FROM `ԣ`; +ã RIGHT(`ã`,4) + + + + + + +SELECT `ã`, RIGHT(`ã`,5) FROM `ԣ`; +ã RIGHT(`ã`,5) + + + + + + +SELECT `ã`, RIGHT(`ã`,0) FROM `ԣ`; +ã RIGHT(`ã`,0) +܏ݏޏߏ +܏ݏޏ +܏ݏ +܏ + + +SELECT `ã`, RIGHT(`ã`,1) FROM `ԣ`; +ã RIGHT(`ã`,1) +܏ݏޏߏ +܏ݏޏ +܏ݏ +܏ + + +SELECT `ã`, RIGHT(`ã`,2) FROM `ԣ`; +ã RIGHT(`ã`,2) +܏ݏޏߏ ߏ +܏ݏޏ ޏ +܏ݏ ݏ +܏ ܏ + + +SELECT `ã`, RIGHT(`ã`,3) FROM `ԣ`; +ã RIGHT(`ã`,3) +܏ݏޏߏ ޏߏ +܏ݏޏ ݏޏ +܏ݏ ܏ݏ +܏ ܏ + + +SELECT `ã`, RIGHT(`ã`,4) FROM `ԣ`; +ã RIGHT(`ã`,4) +܏ݏޏߏ ݏޏߏ +܏ݏޏ ܏ݏޏ +܏ݏ ܏ݏ +܏ ܏ + + +SELECT `ã`, RIGHT(`ã`,5) FROM `ԣ`; +ã RIGHT(`ã`,5) +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏ ܏ݏޏ +܏ݏ ܏ݏ +܏ ܏ + + +SELECT `ã`, RIGHT(`ã`,0) FROM `ԣ`; +ã RIGHT(`ã`,0) + + + + + + +SELECT `ã`, RIGHT(`ã`,1) FROM `ԣ`; +ã RIGHT(`ã`,1) + + + + + + +SELECT `ã`, RIGHT(`ã`,2) FROM `ԣ`; +ã RIGHT(`ã`,2) + + + + + + +SELECT `ã`, RIGHT(`ã`,3) FROM `ԣ`; +ã RIGHT(`ã`,3) + + + + + + +SELECT `ã`, RIGHT(`ã`,4) FROM `ԣ`; +ã RIGHT(`ã`,4) + + + + + + +SELECT `ã`, RIGHT(`ã`,5) FROM `ԣ`; +ã RIGHT(`ã`,5) + + + + + + +SELECT `ã`, RIGHT(`ã`,0) FROM `ԣ`; +ã RIGHT(`ã`,0) + + + + + + +SELECT `ã`, RIGHT(`ã`,1) FROM `ԣ`; +ã RIGHT(`ã`,1) + + + + + + +SELECT `ã`, RIGHT(`ã`,2) FROM `ԣ`; +ã RIGHT(`ã`,2) + + + + + + +SELECT `ã`, RIGHT(`ã`,3) FROM `ԣ`; +ã RIGHT(`ã`,3) + + + + + + +SELECT `ã`, RIGHT(`ã`,4) FROM `ԣ`; +ã RIGHT(`ã`,4) + + + + + + +SELECT `ã`, RIGHT(`ã`,5) FROM `ԣ`; +ã RIGHT(`ã`,5) + + + + + + +SELECT `ã`, RIGHT(`ã`,0) FROM `ԣ`; +ã RIGHT(`ã`,0) +܏ݏޏߏ +܏ݏޏ +܏ݏ +܏ + + +SELECT `ã`, RIGHT(`ã`,1) FROM `ԣ`; +ã RIGHT(`ã`,1) +܏ݏޏߏ +܏ݏޏ +܏ݏ +܏ + + +SELECT `ã`, RIGHT(`ã`,2) FROM `ԣ`; +ã RIGHT(`ã`,2) +܏ݏޏߏ ߏ +܏ݏޏ ޏ +܏ݏ ݏ +܏ ܏ + + +SELECT `ã`, RIGHT(`ã`,3) FROM `ԣ`; +ã RIGHT(`ã`,3) +܏ݏޏߏ ޏߏ +܏ݏޏ ݏޏ +܏ݏ ܏ݏ +܏ ܏ + + +SELECT `ã`, RIGHT(`ã`,4) FROM `ԣ`; +ã RIGHT(`ã`,4) +܏ݏޏߏ ݏޏߏ +܏ݏޏ ܏ݏޏ +܏ݏ ܏ݏ +܏ ܏ + + +SELECT `ã`, RIGHT(`ã`,5) FROM `ԣ`; +ã RIGHT(`ã`,5) +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏ ܏ݏޏ +܏ݏ ܏ݏ +܏ ܏ + + +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; diff --git a/mysql-test/suite/jp/r/jp_right_utf8.result b/mysql-test/suite/jp/r/jp_right_utf8.result new file mode 100755 index 00000000000..50ba18ce3c4 --- /dev/null +++ b/mysql-test/suite/jp/r/jp_right_utf8.result @@ -0,0 +1,626 @@ +drop table if exists `T1`; +drop table if exists `T2`; +drop table if exists `T3`; +drop table if exists `T4`; +drop table if exists `T5`; +drop table if exists `T6`; +drop table if exists `T7`; +drop table if exists `T8`; +drop table if exists `T9`; +drop table if exists `T10`; +drop table if exists `T11`; +drop table if exists `T12`; +SET NAMES utf8; +SET character_set_database = utf8; +CREATE TABLE `T1` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T2` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T3` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T4` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T5` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T6` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T7` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T8` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T9` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T10` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +CREATE TABLE `T11` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +CREATE TABLE `T12` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +INSERT INTO `T1` VALUES ('アイウエオ'),('アイウエ'),('アイウ'),('アイ'),('ア'),(''); +INSERT INTO `T2` VALUES ('あいうえお'),('あいうえ'),('あいう'),('あい'),('あ'),(''); +INSERT INTO `T3` VALUES ('龔龖龗龞龡'),('龔龖龗龞'),('龔龖龗'),('龔龖'),('龔'),(''); +INSERT INTO `T4` VALUES ('アイウエオ'),('アイウエ'),('アイウ'),('アイ'),('ア'),(''); +INSERT INTO `T5` VALUES ('あいうえお'),('あいうえ'),('あいう'),('あい'),('あ'),(''); +INSERT INTO `T6` VALUES ('龔龖龗龞龡'),('龔龖龗龞'),('龔龖龗'),('龔龖'),('龔'),(''); +INSERT INTO `T7` VALUES ('アイウエオ'),('アイウエ'),('アイウ'),('アイ'),('ア'),(''); +INSERT INTO `T8` VALUES ('あいうえお'),('あいうえ'),('あいう'),('あい'),('あ'),(''); +INSERT INTO `T9` VALUES ('龔龖龗龞龡'),('龔龖龗龞'),('龔龖龗'),('龔龖'),('龔'),(''); +INSERT INTO `T10` VALUES ('アイウエオ'),('アイウエ'),('アイウ'),('アイ'),('ア'),(''); +INSERT INTO `T11` VALUES ('あいうえお'),('あいうえ'),('あいう'),('あい'),('あ'),(''); +INSERT INTO `T12` VALUES ('龔龖龗龞龡'),('龔龖龗龞'),('龔龖龗'),('龔龖'),('龔'),(''); +SELECT `C1`, RIGHT(`C1`,0) FROM `T1`; +C1 RIGHT(`C1`,0) + +ア +アイ +アイウ +アイウエ +アイウエオ +SELECT `C1`, RIGHT(`C1`,1) FROM `T1`; +C1 RIGHT(`C1`,1) + +ア ア +アイ イ +アイウ ウ +アイウエ エ +アイウエオ オ +SELECT `C1`, RIGHT(`C1`,2) FROM `T1`; +C1 RIGHT(`C1`,2) + +ア ア +アイ アイ +アイウ イウ +アイウエ ウエ +アイウエオ エオ +SELECT `C1`, RIGHT(`C1`,3) FROM `T1`; +C1 RIGHT(`C1`,3) + +ア ア +アイ アイ +アイウ アイウ +アイウエ イウエ +アイウエオ ウエオ +SELECT `C1`, RIGHT(`C1`,4) FROM `T1`; +C1 RIGHT(`C1`,4) + +ア ア +アイ アイ +アイウ アイウ +アイウエ アイウエ +アイウエオ イウエオ +SELECT `C1`, RIGHT(`C1`,5) FROM `T1`; +C1 RIGHT(`C1`,5) + +ア ア +アイ アイ +アイウ アイウ +アイウエ アイウエ +アイウエオ アイウエオ +SELECT `C1`, RIGHT(`C1`,0) FROM `T2`; +C1 RIGHT(`C1`,0) + +あ +あい +あいう +あいうえ +あいうえお +SELECT `C1`, RIGHT(`C1`,1) FROM `T2`; +C1 RIGHT(`C1`,1) + +あ あ +あい い +あいう う +あいうえ え +あいうえお お +SELECT `C1`, RIGHT(`C1`,2) FROM `T2`; +C1 RIGHT(`C1`,2) + +あ あ +あい あい +あいう いう +あいうえ うえ +あいうえお えお +SELECT `C1`, RIGHT(`C1`,3) FROM `T2`; +C1 RIGHT(`C1`,3) + +あ あ +あい あい +あいう あいう +あいうえ いうえ +あいうえお うえお +SELECT `C1`, RIGHT(`C1`,4) FROM `T2`; +C1 RIGHT(`C1`,4) + +あ あ +あい あい +あいう あいう +あいうえ あいうえ +あいうえお いうえお +SELECT `C1`, RIGHT(`C1`,5) FROM `T2`; +C1 RIGHT(`C1`,5) + +あ あ +あい あい +あいう あいう +あいうえ あいうえ +あいうえお あいうえお +SELECT `C1`, RIGHT(`C1`,0) FROM `T3`; +C1 RIGHT(`C1`,0) + +龔 +龔龖 +龔龖龗 +龔龖龗龞 +龔龖龗龞龡 +SELECT `C1`, RIGHT(`C1`,1) FROM `T3`; +C1 RIGHT(`C1`,1) + +龔 龔 +龔龖 龖 +龔龖龗 龗 +龔龖龗龞 龞 +龔龖龗龞龡 龡 +SELECT `C1`, RIGHT(`C1`,2) FROM `T3`; +C1 RIGHT(`C1`,2) + +龔 龔 +龔龖 龔龖 +龔龖龗 龖龗 +龔龖龗龞 龗龞 +龔龖龗龞龡 龞龡 +SELECT `C1`, RIGHT(`C1`,3) FROM `T3`; +C1 RIGHT(`C1`,3) + +龔 龔 +龔龖 龔龖 +龔龖龗 龔龖龗 +龔龖龗龞 龖龗龞 +龔龖龗龞龡 龗龞龡 +SELECT `C1`, RIGHT(`C1`,4) FROM `T3`; +C1 RIGHT(`C1`,4) + +龔 龔 +龔龖 龔龖 +龔龖龗 龔龖龗 +龔龖龗龞 龔龖龗龞 +龔龖龗龞龡 龖龗龞龡 +SELECT `C1`, RIGHT(`C1`,5) FROM `T3`; +C1 RIGHT(`C1`,5) + +龔 龔 +龔龖 龔龖 +龔龖龗 龔龖龗 +龔龖龗龞 龔龖龗龞 +龔龖龗龞龡 龔龖龗龞龡 +SELECT `C1`, RIGHT(`C1`,0) FROM `T4`; +C1 RIGHT(`C1`,0) + +ア +アイ +アイウ +アイウエ +アイウエオ +SELECT `C1`, RIGHT(`C1`,1) FROM `T4`; +C1 RIGHT(`C1`,1) + +ア ア +アイ イ +アイウ ウ +アイウエ エ +アイウエオ オ +SELECT `C1`, RIGHT(`C1`,2) FROM `T4`; +C1 RIGHT(`C1`,2) + +ア ア +アイ アイ +アイウ イウ +アイウエ ウエ +アイウエオ エオ +SELECT `C1`, RIGHT(`C1`,3) FROM `T4`; +C1 RIGHT(`C1`,3) + +ア ア +アイ アイ +アイウ アイウ +アイウエ イウエ +アイウエオ ウエオ +SELECT `C1`, RIGHT(`C1`,4) FROM `T4`; +C1 RIGHT(`C1`,4) + +ア ア +アイ アイ +アイウ アイウ +アイウエ アイウエ +アイウエオ イウエオ +SELECT `C1`, RIGHT(`C1`,5) FROM `T4`; +C1 RIGHT(`C1`,5) + +ア ア +アイ アイ +アイウ アイウ +アイウエ アイウエ +アイウエオ アイウエオ +SELECT `C1`, RIGHT(`C1`,0) FROM `T5`; +C1 RIGHT(`C1`,0) + +あ +あい +あいう +あいうえ +あいうえお +SELECT `C1`, RIGHT(`C1`,1) FROM `T5`; +C1 RIGHT(`C1`,1) + +あ あ +あい い +あいう う +あいうえ え +あいうえお お +SELECT `C1`, RIGHT(`C1`,2) FROM `T5`; +C1 RIGHT(`C1`,2) + +あ あ +あい あい +あいう いう +あいうえ うえ +あいうえお えお +SELECT `C1`, RIGHT(`C1`,3) FROM `T5`; +C1 RIGHT(`C1`,3) + +あ あ +あい あい +あいう あいう +あいうえ いうえ +あいうえお うえお +SELECT `C1`, RIGHT(`C1`,4) FROM `T5`; +C1 RIGHT(`C1`,4) + +あ あ +あい あい +あいう あいう +あいうえ あいうえ +あいうえお いうえお +SELECT `C1`, RIGHT(`C1`,5) FROM `T5`; +C1 RIGHT(`C1`,5) + +あ あ +あい あい +あいう あいう +あいうえ あいうえ +あいうえお あいうえお +SELECT `C1`, RIGHT(`C1`,0) FROM `T6`; +C1 RIGHT(`C1`,0) + +龔 +龔龖 +龔龖龗 +龔龖龗龞 +龔龖龗龞龡 +SELECT `C1`, RIGHT(`C1`,1) FROM `T6`; +C1 RIGHT(`C1`,1) + +龔 龔 +龔龖 龖 +龔龖龗 龗 +龔龖龗龞 龞 +龔龖龗龞龡 龡 +SELECT `C1`, RIGHT(`C1`,2) FROM `T6`; +C1 RIGHT(`C1`,2) + +龔 龔 +龔龖 龔龖 +龔龖龗 龖龗 +龔龖龗龞 龗龞 +龔龖龗龞龡 龞龡 +SELECT `C1`, RIGHT(`C1`,3) FROM `T6`; +C1 RIGHT(`C1`,3) + +龔 龔 +龔龖 龔龖 +龔龖龗 龔龖龗 +龔龖龗龞 龖龗龞 +龔龖龗龞龡 龗龞龡 +SELECT `C1`, RIGHT(`C1`,4) FROM `T6`; +C1 RIGHT(`C1`,4) + +龔 龔 +龔龖 龔龖 +龔龖龗 龔龖龗 +龔龖龗龞 龔龖龗龞 +龔龖龗龞龡 龖龗龞龡 +SELECT `C1`, RIGHT(`C1`,5) FROM `T6`; +C1 RIGHT(`C1`,5) + +龔 龔 +龔龖 龔龖 +龔龖龗 龔龖龗 +龔龖龗龞 龔龖龗龞 +龔龖龗龞龡 龔龖龗龞龡 +SELECT `C1`, RIGHT(`C1`,0) FROM `T7`; +C1 RIGHT(`C1`,0) +アイウエオ +アイウエ +アイウ +アイ +ア + +SELECT `C1`, RIGHT(`C1`,1) FROM `T7`; +C1 RIGHT(`C1`,1) +アイウエオ オ +アイウエ エ +アイウ ウ +アイ イ +ア ア + +SELECT `C1`, RIGHT(`C1`,2) FROM `T7`; +C1 RIGHT(`C1`,2) +アイウエオ エオ +アイウエ ウエ +アイウ イウ +アイ アイ +ア ア + +SELECT `C1`, RIGHT(`C1`,3) FROM `T7`; +C1 RIGHT(`C1`,3) +アイウエオ ウエオ +アイウエ イウエ +アイウ アイウ +アイ アイ +ア ア + +SELECT `C1`, RIGHT(`C1`,4) FROM `T7`; +C1 RIGHT(`C1`,4) +アイウエオ イウエオ +アイウエ アイウエ +アイウ アイウ +アイ アイ +ア ア + +SELECT `C1`, RIGHT(`C1`,5) FROM `T7`; +C1 RIGHT(`C1`,5) +アイウエオ アイウエオ +アイウエ アイウエ +アイウ アイウ +アイ アイ +ア ア + +SELECT `C1`, RIGHT(`C1`,0) FROM `T8`; +C1 RIGHT(`C1`,0) +あいうえお +あいうえ +あいう +あい +あ + +SELECT `C1`, RIGHT(`C1`,1) FROM `T8`; +C1 RIGHT(`C1`,1) +あいうえお お +あいうえ え +あいう う +あい い +あ あ + +SELECT `C1`, RIGHT(`C1`,2) FROM `T8`; +C1 RIGHT(`C1`,2) +あいうえお えお +あいうえ うえ +あいう いう +あい あい +あ あ + +SELECT `C1`, RIGHT(`C1`,3) FROM `T8`; +C1 RIGHT(`C1`,3) +あいうえお うえお +あいうえ いうえ +あいう あいう +あい あい +あ あ + +SELECT `C1`, RIGHT(`C1`,4) FROM `T8`; +C1 RIGHT(`C1`,4) +あいうえお いうえお +あいうえ あいうえ +あいう あいう +あい あい +あ あ + +SELECT `C1`, RIGHT(`C1`,5) FROM `T8`; +C1 RIGHT(`C1`,5) +あいうえお あいうえお +あいうえ あいうえ +あいう あいう +あい あい +あ あ + +SELECT `C1`, RIGHT(`C1`,0) FROM `T9`; +C1 RIGHT(`C1`,0) +龔龖龗龞龡 +龔龖龗龞 +龔龖龗 +龔龖 +龔 + +SELECT `C1`, RIGHT(`C1`,1) FROM `T9`; +C1 RIGHT(`C1`,1) +龔龖龗龞龡 龡 +龔龖龗龞 龞 +龔龖龗 龗 +龔龖 龖 +龔 龔 + +SELECT `C1`, RIGHT(`C1`,2) FROM `T9`; +C1 RIGHT(`C1`,2) +龔龖龗龞龡 龞龡 +龔龖龗龞 龗龞 +龔龖龗 龖龗 +龔龖 龔龖 +龔 龔 + +SELECT `C1`, RIGHT(`C1`,3) FROM `T9`; +C1 RIGHT(`C1`,3) +龔龖龗龞龡 龗龞龡 +龔龖龗龞 龖龗龞 +龔龖龗 龔龖龗 +龔龖 龔龖 +龔 龔 + +SELECT `C1`, RIGHT(`C1`,4) FROM `T9`; +C1 RIGHT(`C1`,4) +龔龖龗龞龡 龖龗龞龡 +龔龖龗龞 龔龖龗龞 +龔龖龗 龔龖龗 +龔龖 龔龖 +龔 龔 + +SELECT `C1`, RIGHT(`C1`,5) FROM `T9`; +C1 RIGHT(`C1`,5) +龔龖龗龞龡 龔龖龗龞龡 +龔龖龗龞 龔龖龗龞 +龔龖龗 龔龖龗 +龔龖 龔龖 +龔 龔 + +SELECT `C1`, RIGHT(`C1`,0) FROM `T10`; +C1 RIGHT(`C1`,0) +アイウエオ +アイウエ +アイウ +アイ +ア + +SELECT `C1`, RIGHT(`C1`,1) FROM `T10`; +C1 RIGHT(`C1`,1) +アイウエオ オ +アイウエ エ +アイウ ウ +アイ イ +ア ア + +SELECT `C1`, RIGHT(`C1`,2) FROM `T10`; +C1 RIGHT(`C1`,2) +アイウエオ エオ +アイウエ ウエ +アイウ イウ +アイ アイ +ア ア + +SELECT `C1`, RIGHT(`C1`,3) FROM `T10`; +C1 RIGHT(`C1`,3) +アイウエオ ウエオ +アイウエ イウエ +アイウ アイウ +アイ アイ +ア ア + +SELECT `C1`, RIGHT(`C1`,4) FROM `T10`; +C1 RIGHT(`C1`,4) +アイウエオ イウエオ +アイウエ アイウエ +アイウ アイウ +アイ アイ +ア ア + +SELECT `C1`, RIGHT(`C1`,5) FROM `T10`; +C1 RIGHT(`C1`,5) +アイウエオ アイウエオ +アイウエ アイウエ +アイウ アイウ +アイ アイ +ア ア + +SELECT `C1`, RIGHT(`C1`,0) FROM `T11`; +C1 RIGHT(`C1`,0) +あいうえお +あいうえ +あいう +あい +あ + +SELECT `C1`, RIGHT(`C1`,1) FROM `T11`; +C1 RIGHT(`C1`,1) +あいうえお お +あいうえ え +あいう う +あい い +あ あ + +SELECT `C1`, RIGHT(`C1`,2) FROM `T11`; +C1 RIGHT(`C1`,2) +あいうえお えお +あいうえ うえ +あいう いう +あい あい +あ あ + +SELECT `C1`, RIGHT(`C1`,3) FROM `T11`; +C1 RIGHT(`C1`,3) +あいうえお うえお +あいうえ いうえ +あいう あいう +あい あい +あ あ + +SELECT `C1`, RIGHT(`C1`,4) FROM `T11`; +C1 RIGHT(`C1`,4) +あいうえお いうえお +あいうえ あいうえ +あいう あいう +あい あい +あ あ + +SELECT `C1`, RIGHT(`C1`,5) FROM `T11`; +C1 RIGHT(`C1`,5) +あいうえお あいうえお +あいうえ あいうえ +あいう あいう +あい あい +あ あ + +SELECT `C1`, RIGHT(`C1`,0) FROM `T12`; +C1 RIGHT(`C1`,0) +龔龖龗龞龡 +龔龖龗龞 +龔龖龗 +龔龖 +龔 + +SELECT `C1`, RIGHT(`C1`,1) FROM `T12`; +C1 RIGHT(`C1`,1) +龔龖龗龞龡 龡 +龔龖龗龞 龞 +龔龖龗 龗 +龔龖 龖 +龔 龔 + +SELECT `C1`, RIGHT(`C1`,2) FROM `T12`; +C1 RIGHT(`C1`,2) +龔龖龗龞龡 龞龡 +龔龖龗龞 龗龞 +龔龖龗 龖龗 +龔龖 龔龖 +龔 龔 + +SELECT `C1`, RIGHT(`C1`,3) FROM `T12`; +C1 RIGHT(`C1`,3) +龔龖龗龞龡 龗龞龡 +龔龖龗龞 龖龗龞 +龔龖龗 龔龖龗 +龔龖 龔龖 +龔 龔 + +SELECT `C1`, RIGHT(`C1`,4) FROM `T12`; +C1 RIGHT(`C1`,4) +龔龖龗龞龡 龖龗龞龡 +龔龖龗龞 龔龖龗龞 +龔龖龗 龔龖龗 +龔龖 龔龖 +龔 龔 + +SELECT `C1`, RIGHT(`C1`,5) FROM `T12`; +C1 RIGHT(`C1`,5) +龔龖龗龞龡 龔龖龗龞龡 +龔龖龗龞 龔龖龗龞 +龔龖龗 龔龖龗 +龔龖 龔龖 +龔 龔 + +DROP TABLE `T1`; +DROP TABLE `T2`; +DROP TABLE `T3`; +DROP TABLE `T4`; +DROP TABLE `T5`; +DROP TABLE `T6`; +DROP TABLE `T7`; +DROP TABLE `T8`; +DROP TABLE `T9`; +DROP TABLE `T10`; +DROP TABLE `T11`; +DROP TABLE `T12`; diff --git a/mysql-test/suite/jp/r/jp_rpad_sjis.result b/mysql-test/suite/jp/r/jp_rpad_sjis.result new file mode 100755 index 00000000000..9c61c200672 --- /dev/null +++ b/mysql-test/suite/jp/r/jp_rpad_sjis.result @@ -0,0 +1,146 @@ +drop table if exists `sP`; +drop table if exists `sQ`; +drop table if exists `sR`; +drop table if exists `sS`; +drop table if exists `sT`; +drop table if exists `sU`; +drop table if exists `sV`; +drop table if exists `sW`; +drop table if exists `sX`; +drop table if exists `sPO`; +drop table if exists `sPP`; +drop table if exists `sPQ`; +SET NAMES sjis; +SET character_set_database = sjis; +CREATE TABLE `sP` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sQ` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sR` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sS` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sT` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sU` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sV` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sW` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sX` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sPO` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +CREATE TABLE `sPP` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +CREATE TABLE `sPQ` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +INSERT INTO `sP` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sQ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sR` VALUES ('\\\\\'),('\\\\'),('\\\'),('\\'),('\'),(''); +INSERT INTO `sS` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sT` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sU` VALUES ('\\\\\'),('\\\\'),('\\\'),('\\'),('\'),(''); +INSERT INTO `sV` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sW` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sX` VALUES ('\\\\\'),('\\\\'),('\\\'),('\\'),('\'),(''); +INSERT INTO `sPO` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sPP` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sPQ` VALUES ('\\\\\'),('\\\\'),('\\\'),('\\'),('\'),(''); +SELECT `bP`, RPAD(`bP`,5,'') FROM `sP`; +bP RPAD(`bP`,5,'') + + + + + + +SELECT `bP`, RPAD(`bP`,5,'w') FROM `sQ`; +bP RPAD(`bP`,5,'w') + wwwww + wwww + www + ww + w + +SELECT `bP`, RPAD(`bP`,5,'\') FROM `sR`; +bP RPAD(`bP`,5,'\') + \\\\\ +\ \\\\\ +\\ \\\\\ +\\\ \\\\\ +\\\\ \\\\\ +\\\\\ \\\\\ +SELECT `bP`, RPAD(`bP`,5,'') FROM `sS`; +bP RPAD(`bP`,5,'') + + + + + + +SELECT `bP`, RPAD(`bP`,5,'w') FROM `sT`; +bP RPAD(`bP`,5,'w') + wwwww + wwww + www + ww + w + +SELECT `bP`, RPAD(`bP`,5,'\' ) FROM `sU`; +bP RPAD(`bP`,5,'\' ) + \\\\\ +\ \\\\\ +\\ \\\\\ +\\\ \\\\\ +\\\\ \\\\\ +\\\\\ \\\\\ +SELECT `bP`, RPAD(`bP`,5,'') FROM `sV`; +bP RPAD(`bP`,5,'') + + + + + + +SELECT `bP`, RPAD(`bP`,5,'w') FROM `sW`; +bP RPAD(`bP`,5,'w') + + w + ww + www + wwww + wwwww +SELECT `bP`, RPAD(`bP`,5,'\' ) FROM `sX`; +bP RPAD(`bP`,5,'\' ) +\\\\\ \\\\\ +\\\\ \\\\\ +\\\ \\\\\ +\\ \\\\\ +\ \\\\\ + \\\\\ +SELECT `bP`, RPAD(`bP`,5,'') FROM `sPO`; +bP RPAD(`bP`,5,'') + + + + + + +SELECT `bP`, RPAD(`bP`,5,'w') FROM `sPP`; +bP RPAD(`bP`,5,'w') + + w + ww + www + wwww + wwwww +SELECT `bP`, RPAD(`bP`,5,'\' ) FROM `sPQ`; +bP RPAD(`bP`,5,'\' ) +\\\\\ \\\\\ +\\\\ \\\\\ +\\\ \\\\\ +\\ \\\\\ +\ \\\\\ + \\\\\ +DROP TABLE `sP`; +DROP TABLE `sQ`; +DROP TABLE `sR`; +DROP TABLE `sS`; +DROP TABLE `sT`; +DROP TABLE `sU`; +DROP TABLE `sV`; +DROP TABLE `sW`; +DROP TABLE `sX`; +DROP TABLE `sPO`; +DROP TABLE `sPP`; +DROP TABLE `sPQ`; diff --git a/mysql-test/suite/jp/r/jp_rpad_ucs2.result b/mysql-test/suite/jp/r/jp_rpad_ucs2.result new file mode 100755 index 00000000000..b9df4cf6783 --- /dev/null +++ b/mysql-test/suite/jp/r/jp_rpad_ucs2.result @@ -0,0 +1,147 @@ +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +SET NAMES ujis; +SET character_set_database = ucs2; +SET collation_connection = ucs2_general_ci; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +SELECT `ã`, RPAD(`ã`,5,'') FROM `ԣ`; +ã RPAD(`ã`,5,'') + + + + + + +SELECT `ã`, RPAD(`ã`,5,'') FROM `ԣ`; +ã RPAD(`ã`,5,'') + أأأأ + أأأ + أأ + أ + + +SELECT `ã`, RPAD(`ã`,5,'') FROM `ԣ`; +ã RPAD(`ã`,5,'') + + ܏ +܏ ܏ݏ +܏ݏ ܏ݏޏ +܏ݏޏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +SELECT `ã`, RPAD(`ã`,5,'') FROM `ԣ`; +ã RPAD(`ã`,5,'') + + + + + + +SELECT `ã`, RPAD(`ã`,5,'') FROM `ԣ`; +ã RPAD(`ã`,5,'') + أأأأ + أأأ + أأ + أ + + +SELECT `ã`, RPAD(`ã`,5,'' ) FROM `ԣ`; +ã RPAD(`ã`,5,'' ) + + ܏ +܏ ܏ݏ +܏ݏ ܏ݏޏ +܏ݏޏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +SELECT `ã`, RPAD(`ã`,5,'') FROM `ԣ`; +ã RPAD(`ã`,5,'') + + + + + + +SELECT `ã`, RPAD(`ã`,5,'') FROM `ԣ`; +ã RPAD(`ã`,5,'') + + + أ + أأ + أأأ + أأأأ +SELECT `ã`, RPAD(`ã`,5,'' ) FROM `ԣ`; +ã RPAD(`ã`,5,'' ) +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏ ܏ݏޏߏ +܏ݏ ܏ݏޏ +܏ ܏ݏ + ܏ + +SELECT `ã`, RPAD(`ã`,5,'') FROM `ԣ`; +ã RPAD(`ã`,5,'') + + + + + + +SELECT `ã`, RPAD(`ã`,5,'') FROM `ԣ`; +ã RPAD(`ã`,5,'') + + + أ + أأ + أأأ + أأأأ +SELECT `ã`, RPAD(`ã`,5,'' ) FROM `ԣ`; +ã RPAD(`ã`,5,'' ) +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏ ܏ݏޏߏ +܏ݏ ܏ݏޏ +܏ ܏ݏ + ܏ + +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; diff --git a/mysql-test/suite/jp/r/jp_rpad_ujis.result b/mysql-test/suite/jp/r/jp_rpad_ujis.result new file mode 100755 index 00000000000..3183b4f5fcd --- /dev/null +++ b/mysql-test/suite/jp/r/jp_rpad_ujis.result @@ -0,0 +1,146 @@ +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +SET NAMES ujis; +SET character_set_database = ujis; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +SELECT `ã`, RPAD(`ã`,5,'') FROM `ԣ`; +ã RPAD(`ã`,5,'') + + + + + + +SELECT `ã`, RPAD(`ã`,5,'') FROM `ԣ`; +ã RPAD(`ã`,5,'') + أأأأ + أأأ + أأ + أ + + +SELECT `ã`, RPAD(`ã`,5,'') FROM `ԣ`; +ã RPAD(`ã`,5,'') + + ܏ +܏ ܏ݏ +܏ݏ ܏ݏޏ +܏ݏޏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +SELECT `ã`, RPAD(`ã`,5,'') FROM `ԣ`; +ã RPAD(`ã`,5,'') + + + + + + +SELECT `ã`, RPAD(`ã`,5,'') FROM `ԣ`; +ã RPAD(`ã`,5,'') + أأأأ + أأأ + أأ + أ + + +SELECT `ã`, RPAD(`ã`,5,'' ) FROM `ԣ`; +ã RPAD(`ã`,5,'' ) + + ܏ +܏ ܏ݏ +܏ݏ ܏ݏޏ +܏ݏޏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +SELECT `ã`, RPAD(`ã`,5,'') FROM `ԣ`; +ã RPAD(`ã`,5,'') + + + + + + +SELECT `ã`, RPAD(`ã`,5,'') FROM `ԣ`; +ã RPAD(`ã`,5,'') + + + أ + أأ + أأأ + أأأأ +SELECT `ã`, RPAD(`ã`,5,'' ) FROM `ԣ`; +ã RPAD(`ã`,5,'' ) +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏ ܏ݏޏߏ +܏ݏ ܏ݏޏ +܏ ܏ݏ + ܏ + +SELECT `ã`, RPAD(`ã`,5,'') FROM `ԣ`; +ã RPAD(`ã`,5,'') + + + + + + +SELECT `ã`, RPAD(`ã`,5,'') FROM `ԣ`; +ã RPAD(`ã`,5,'') + + + أ + أأ + أأأ + أأأأ +SELECT `ã`, RPAD(`ã`,5,'' ) FROM `ԣ`; +ã RPAD(`ã`,5,'' ) +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏ ܏ݏޏߏ +܏ݏ ܏ݏޏ +܏ ܏ݏ + ܏ + +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; diff --git a/mysql-test/suite/jp/r/jp_rpad_utf8.result b/mysql-test/suite/jp/r/jp_rpad_utf8.result new file mode 100755 index 00000000000..c482a058bd8 --- /dev/null +++ b/mysql-test/suite/jp/r/jp_rpad_utf8.result @@ -0,0 +1,146 @@ +drop table if exists `T1`; +drop table if exists `T2`; +drop table if exists `T3`; +drop table if exists `T4`; +drop table if exists `T5`; +drop table if exists `T6`; +drop table if exists `T7`; +drop table if exists `T8`; +drop table if exists `T9`; +drop table if exists `T10`; +drop table if exists `T11`; +drop table if exists `T12`; +SET NAMES utf8; +SET character_set_database = utf8; +CREATE TABLE `T1` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T2` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T3` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T4` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T5` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T6` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T7` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T8` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T9` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T10` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +CREATE TABLE `T11` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +CREATE TABLE `T12` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +INSERT INTO `T1` VALUES ('アイウエオ'),('アイウエ'),('アイウ'),('アイ'),('ア'),(''); +INSERT INTO `T2` VALUES ('あいうえお'),('あいうえ'),('あいう'),('あい'),('あ'),(''); +INSERT INTO `T3` VALUES ('龔龖龗龞龡'),('龔龖龗龞'),('龔龖龗'),('龔龖'),('龔'),(''); +INSERT INTO `T4` VALUES ('アイウエオ'),('アイウエ'),('アイウ'),('アイ'),('ア'),(''); +INSERT INTO `T5` VALUES ('あいうえお'),('あいうえ'),('あいう'),('あい'),('あ'),(''); +INSERT INTO `T6` VALUES ('龔龖龗龞龡'),('龔龖龗龞'),('龔龖龗'),('龔龖'),('龔'),(''); +INSERT INTO `T7` VALUES ('アイウエオ'),('アイウエ'),('アイウ'),('アイ'),('ア'),(''); +INSERT INTO `T8` VALUES ('あいうえお'),('あいうえ'),('あいう'),('あい'),('あ'),(''); +INSERT INTO `T9` VALUES ('龔龖龗龞龡'),('龔龖龗龞'),('龔龖龗'),('龔龖'),('龔'),(''); +INSERT INTO `T10` VALUES ('アイウエオ'),('アイウエ'),('アイウ'),('アイ'),('ア'),(''); +INSERT INTO `T11` VALUES ('あいうえお'),('あいうえ'),('あいう'),('あい'),('あ'),(''); +INSERT INTO `T12` VALUES ('龔龖龗龞龡'),('龔龖龗龞'),('龔龖龗'),('龔龖'),('龔'),(''); +SELECT `C1`, RPAD(`C1`,5,'。') FROM `T1`; +C1 RPAD(`C1`,5,'。') + 。。。。。 +ア ア。。。。 +アイ アイ。。。 +アイウ アイウ。。 +アイウエ アイウエ。 +アイウエオ アイウエオ +SELECT `C1`, RPAD(`C1`,5,'X') FROM `T2`; +C1 RPAD(`C1`,5,'X') + XXXXX +あ あXXXX +あい あいXXX +あいう あいうXX +あいうえ あいうえX +あいうえお あいうえお +SELECT `C1`, RPAD(`C1`,5,'丄') FROM `T3`; +C1 RPAD(`C1`,5,'丄') + 丄丄丄丄丄 +龔 龔丄丄丄丄 +龔龖 龔龖丄丄丄 +龔龖龗 龔龖龗丄丄 +龔龖龗龞 龔龖龗龞丄 +龔龖龗龞龡 龔龖龗龞龡 +SELECT `C1`, RPAD(`C1`,5,'。') FROM `T4`; +C1 RPAD(`C1`,5,'。') + 。。。。。 +ア ア。。。。 +アイ アイ。。。 +アイウ アイウ。。 +アイウエ アイウエ。 +アイウエオ アイウエオ +SELECT `C1`, RPAD(`C1`,5,'X') FROM `T5`; +C1 RPAD(`C1`,5,'X') + XXXXX +あ あXXXX +あい あいXXX +あいう あいうXX +あいうえ あいうえX +あいうえお あいうえお +SELECT `C1`, RPAD(`C1`,5,'丄' ) FROM `T6`; +C1 RPAD(`C1`,5,'丄' ) + 丄丄丄丄丄 +龔 龔丄丄丄丄 +龔龖 龔龖丄丄丄 +龔龖龗 龔龖龗丄丄 +龔龖龗龞 龔龖龗龞丄 +龔龖龗龞龡 龔龖龗龞龡 +SELECT `C1`, RPAD(`C1`,5,'。') FROM `T7`; +C1 RPAD(`C1`,5,'。') +アイウエオ アイウエオ +アイウエ アイウエ。 +アイウ アイウ。。 +アイ アイ。。。 +ア ア。。。。 + 。。。。。 +SELECT `C1`, RPAD(`C1`,5,'X') FROM `T8`; +C1 RPAD(`C1`,5,'X') +あいうえお あいうえお +あいうえ あいうえX +あいう あいうXX +あい あいXXX +あ あXXXX + XXXXX +SELECT `C1`, RPAD(`C1`,5,'丄' ) FROM `T9`; +C1 RPAD(`C1`,5,'丄' ) +龔龖龗龞龡 龔龖龗龞龡 +龔龖龗龞 龔龖龗龞丄 +龔龖龗 龔龖龗丄丄 +龔龖 龔龖丄丄丄 +龔 龔丄丄丄丄 + 丄丄丄丄丄 +SELECT `C1`, RPAD(`C1`,5,'。') FROM `T10`; +C1 RPAD(`C1`,5,'。') +アイウエオ アイウエオ +アイウエ アイウエ。 +アイウ アイウ。。 +アイ アイ。。。 +ア ア。。。。 + 。。。。。 +SELECT `C1`, RPAD(`C1`,5,'X') FROM `T11`; +C1 RPAD(`C1`,5,'X') +あいうえお あいうえお +あいうえ あいうえX +あいう あいうXX +あい あいXXX +あ あXXXX + XXXXX +SELECT `C1`, RPAD(`C1`,5,'丄' ) FROM `T12`; +C1 RPAD(`C1`,5,'丄' ) +龔龖龗龞龡 龔龖龗龞龡 +龔龖龗龞 龔龖龗龞丄 +龔龖龗 龔龖龗丄丄 +龔龖 龔龖丄丄丄 +龔 龔丄丄丄丄 + 丄丄丄丄丄 +DROP TABLE `T1`; +DROP TABLE `T2`; +DROP TABLE `T3`; +DROP TABLE `T4`; +DROP TABLE `T5`; +DROP TABLE `T6`; +DROP TABLE `T7`; +DROP TABLE `T8`; +DROP TABLE `T9`; +DROP TABLE `T10`; +DROP TABLE `T11`; +DROP TABLE `T12`; diff --git a/mysql-test/suite/jp/r/jp_rtrim_sjis.result b/mysql-test/suite/jp/r/jp_rtrim_sjis.result new file mode 100755 index 00000000000..01ab173c982 --- /dev/null +++ b/mysql-test/suite/jp/r/jp_rtrim_sjis.result @@ -0,0 +1,228 @@ +drop table if exists `sP`; +drop table if exists `sQ`; +drop table if exists `sR`; +drop table if exists `sS`; +drop table if exists `sT`; +drop table if exists `sU`; +drop table if exists `sV`; +drop table if exists `sW`; +drop table if exists `sX`; +drop table if exists `sPO`; +SET NAMES sjis; +SET character_set_database = sjis; +CREATE TABLE `sP` (`bP` char(8), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sQ` (`bP` char(8), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sR` (`bP` char(8), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sS` (`bP` char(8), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sT` (`bP` char(8), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sU` (`bP` char(8), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sV` (`bP` char(8), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sW` (`bP` char(8), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sX` (`bP` char(8), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sPO` (`bP` char(8), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +CREATE TABLE `sPP` (`bP` char(8), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +CREATE TABLE `sPQ` (`bP` char(8), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +INSERT INTO `sP` VALUES (''); +INSERT INTO `sP` VALUES (' '); +INSERT INTO `sP` VALUES (' '); +INSERT INTO `sP` VALUES (' '); +INSERT INTO `sP` VALUES ('@'); +INSERT INTO `sP` VALUES ('@@'); +INSERT INTO `sP` VALUES ('@@@'); +INSERT INTO `sQ` VALUES (''); +INSERT INTO `sQ` VALUES (' '); +INSERT INTO `sQ` VALUES (' '); +INSERT INTO `sQ` VALUES (' '); +INSERT INTO `sQ` VALUES ('@'); +INSERT INTO `sQ` VALUES ('@@'); +INSERT INTO `sQ` VALUES ('@@@'); +INSERT INTO `sR` VALUES ('\\\\\'); +INSERT INTO `sR` VALUES ('\\\\\ '); +INSERT INTO `sR` VALUES ('\\\\\ '); +INSERT INTO `sR` VALUES ('\\\\\ '); +INSERT INTO `sR` VALUES ('\\\\\@'); +INSERT INTO `sR` VALUES ('\\\\\@@'); +INSERT INTO `sR` VALUES ('\\\\\@@@'); +INSERT INTO `sS` VALUES (''); +INSERT INTO `sS` VALUES (' '); +INSERT INTO `sS` VALUES (' '); +INSERT INTO `sS` VALUES (' '); +INSERT INTO `sS` VALUES ('@'); +INSERT INTO `sS` VALUES ('@@'); +INSERT INTO `sS` VALUES ('@@@'); +INSERT INTO `sT` VALUES (''); +INSERT INTO `sT` VALUES (' '); +INSERT INTO `sT` VALUES (' '); +INSERT INTO `sT` VALUES (' '); +INSERT INTO `sT` VALUES ('@'); +INSERT INTO `sT` VALUES ('@@'); +INSERT INTO `sT` VALUES ('@@@'); +INSERT INTO `sU` VALUES ('\\\\\'); +INSERT INTO `sU` VALUES ('\\\\\ '); +INSERT INTO `sU` VALUES ('\\\\\ '); +INSERT INTO `sU` VALUES ('\\\\\ '); +INSERT INTO `sU` VALUES ('\\\\\@'); +INSERT INTO `sU` VALUES ('\\\\\@@'); +INSERT INTO `sU` VALUES ('\\\\\@@@'); +INSERT INTO `sV` VALUES (''); +INSERT INTO `sV` VALUES (' '); +INSERT INTO `sV` VALUES (' '); +INSERT INTO `sV` VALUES (' '); +INSERT INTO `sV` VALUES ('@'); +INSERT INTO `sV` VALUES ('@@'); +INSERT INTO `sV` VALUES ('@@@'); +INSERT INTO `sW` VALUES (''); +INSERT INTO `sW` VALUES (' '); +INSERT INTO `sW` VALUES (' '); +INSERT INTO `sW` VALUES (' '); +INSERT INTO `sW` VALUES ('@'); +INSERT INTO `sW` VALUES ('@@'); +INSERT INTO `sW` VALUES ('@@@'); +INSERT INTO `sX` VALUES ('\\\\\'); +INSERT INTO `sX` VALUES ('\\\\\ '); +INSERT INTO `sX` VALUES ('\\\\\ '); +INSERT INTO `sX` VALUES ('\\\\\ '); +INSERT INTO `sX` VALUES ('\\\\\@'); +INSERT INTO `sX` VALUES ('\\\\\@@'); +INSERT INTO `sX` VALUES ('\\\\\@@@'); +INSERT INTO `sPO` VALUES (''); +INSERT INTO `sPO` VALUES (' '); +INSERT INTO `sPO` VALUES (' '); +INSERT INTO `sPO` VALUES (' '); +INSERT INTO `sPO` VALUES ('@'); +INSERT INTO `sPO` VALUES ('@@'); +INSERT INTO `sPO` VALUES ('@@@'); +INSERT INTO `sPP` VALUES (''); +INSERT INTO `sPP` VALUES (' '); +INSERT INTO `sPP` VALUES (' '); +INSERT INTO `sPP` VALUES (' '); +INSERT INTO `sPP` VALUES ('@'); +INSERT INTO `sPP` VALUES ('@@'); +INSERT INTO `sPP` VALUES ('@@@'); +INSERT INTO `sPQ` VALUES ('\\\\\'); +INSERT INTO `sPQ` VALUES ('\\\\\ '); +INSERT INTO `sPQ` VALUES ('\\\\\ '); +INSERT INTO `sPQ` VALUES ('\\\\\ '); +INSERT INTO `sPQ` VALUES ('\\\\\@'); +INSERT INTO `sPQ` VALUES ('\\\\\@@'); +INSERT INTO `sPQ` VALUES ('\\\\\@@@'); +SELECT RTRIM(`bP`) from `sP`; +RTRIM(`bP`) + + + + +@ +@@ +@@@ +SELECT RTRIM(`bP`) from `sQ`; +RTRIM(`bP`) + + + + +@ +@@ +@@@ +SELECT RTRIM(`bP`) from `sR`; +RTRIM(`bP`) +\\\\\ +\\\\\ +\\\\\ +\\\\\ +\\\\\@ +\\\\\@@ +\\\\\@@@ +SELECT RTRIM(`bP`) from `sS`; +RTRIM(`bP`) + + + + +@ +@@ +@@@ +SELECT RTRIM(`bP`) from `sT`; +RTRIM(`bP`) + + + + +@ +@@ +@@@ +SELECT RTRIM(`bP`) from `sU`; +RTRIM(`bP`) +\\\\\ +\\\\\ +\\\\\ +\\\\\ +\\\\\@ +\\\\\@@ +\\\\\@@@ +SELECT RTRIM(`bP`) from `sV`; +RTRIM(`bP`) + + + + +@ +@@ +@@@ +SELECT RTRIM(`bP`) from `sW`; +RTRIM(`bP`) + + + + +@ +@@ +@@@ +SELECT RTRIM(`bP`) from `sX`; +RTRIM(`bP`) +\\\\\ +\\\\\ +\\\\\ +\\\\\ +\\\\\@ +\\\\\@@ +\\\\\@@@ +SELECT RTRIM(`bP`) from `sPO`; +RTRIM(`bP`) + + + + +@ +@@ +@@@ +SELECT RTRIM(`bP`) from `sPP`; +RTRIM(`bP`) + + + + +@ +@@ +@@@ +SELECT RTRIM(`bP`) from `sPQ`; +RTRIM(`bP`) +\\\\\ +\\\\\ +\\\\\ +\\\\\ +\\\\\@ +\\\\\@@ +\\\\\@@@ +DROP TABLE `sP`; +DROP TABLE `sQ`; +DROP TABLE `sR`; +DROP TABLE `sS`; +DROP TABLE `sT`; +DROP TABLE `sU`; +DROP TABLE `sV`; +DROP TABLE `sW`; +DROP TABLE `sX`; +DROP TABLE `sPO`; +DROP TABLE `sPP`; +DROP TABLE `sPQ`; diff --git a/mysql-test/suite/jp/r/jp_rtrim_ucs2.result b/mysql-test/suite/jp/r/jp_rtrim_ucs2.result new file mode 100755 index 00000000000..905f5bef08f --- /dev/null +++ b/mysql-test/suite/jp/r/jp_rtrim_ucs2.result @@ -0,0 +1,229 @@ +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +SET NAMES ujis; +SET character_set_database = ucs2; +SET collation_connection = ucs2_general_ci; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ '); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ '); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ '); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏࡡ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏࡡ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏࡡ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ '); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ '); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ '); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏࡡ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏࡡ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏࡡ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ '); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ '); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ '); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏࡡ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏࡡ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏࡡ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ '); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ '); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ '); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏࡡ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏࡡ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏࡡ'); +SELECT RTRIM(`ã`) from `ԣ`; +RTRIM(`ã`) + + + + + + + +SELECT RTRIM(`ã`) from `ԣ`; +RTRIM(`ã`) + + + + + + + +SELECT RTRIM(`ã`) from `ԣ`; +RTRIM(`ã`) +܏ݏޏߏ +܏ݏޏߏ +܏ݏޏߏ +܏ݏޏߏ +܏ݏޏߏࡡ +܏ݏޏߏࡡ +܏ݏޏߏࡡ +SELECT RTRIM(`ã`) from `ԣ`; +RTRIM(`ã`) + + + + + + + +SELECT RTRIM(`ã`) from `ԣ`; +RTRIM(`ã`) + + + + + + + +SELECT RTRIM(`ã`) from `ԣ`; +RTRIM(`ã`) +܏ݏޏߏ +܏ݏޏߏ +܏ݏޏߏ +܏ݏޏߏ +܏ݏޏߏࡡ +܏ݏޏߏࡡ +܏ݏޏߏࡡ +SELECT RTRIM(`ã`) from `ԣ`; +RTRIM(`ã`) + + + + + + + +SELECT RTRIM(`ã`) from `ԣ`; +RTRIM(`ã`) + + + + + + + +SELECT RTRIM(`ã`) from `ԣ`; +RTRIM(`ã`) +܏ݏޏߏ +܏ݏޏߏ +܏ݏޏߏ +܏ݏޏߏ +܏ݏޏߏࡡ +܏ݏޏߏࡡ +܏ݏޏߏࡡ +SELECT RTRIM(`ã`) from `ԣ`; +RTRIM(`ã`) + + + + + + + +SELECT RTRIM(`ã`) from `ԣ`; +RTRIM(`ã`) + + + + + + + +SELECT RTRIM(`ã`) from `ԣ`; +RTRIM(`ã`) +܏ݏޏߏ +܏ݏޏߏ +܏ݏޏߏ +܏ݏޏߏ +܏ݏޏߏࡡ +܏ݏޏߏࡡ +܏ݏޏߏࡡ +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; diff --git a/mysql-test/suite/jp/r/jp_rtrim_ujis.result b/mysql-test/suite/jp/r/jp_rtrim_ujis.result new file mode 100755 index 00000000000..84b141c16dc --- /dev/null +++ b/mysql-test/suite/jp/r/jp_rtrim_ujis.result @@ -0,0 +1,228 @@ +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +SET NAMES ujis; +SET character_set_database = ujis; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ '); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ '); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ '); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏࡡ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏࡡ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏࡡ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ '); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ '); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ '); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏࡡ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏࡡ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏࡡ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ '); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ '); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ '); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏࡡ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏࡡ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏࡡ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ '); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ '); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ '); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏࡡ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏࡡ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏࡡ'); +SELECT RTRIM(`ã`) from `ԣ`; +RTRIM(`ã`) + + + + + + + +SELECT RTRIM(`ã`) from `ԣ`; +RTRIM(`ã`) + + + + + + + +SELECT RTRIM(`ã`) from `ԣ`; +RTRIM(`ã`) +܏ݏޏߏ +܏ݏޏߏ +܏ݏޏߏ +܏ݏޏߏ +܏ݏޏߏࡡ +܏ݏޏߏࡡ +܏ݏޏߏࡡ +SELECT RTRIM(`ã`) from `ԣ`; +RTRIM(`ã`) + + + + + + + +SELECT RTRIM(`ã`) from `ԣ`; +RTRIM(`ã`) + + + + + + + +SELECT RTRIM(`ã`) from `ԣ`; +RTRIM(`ã`) +܏ݏޏߏ +܏ݏޏߏ +܏ݏޏߏ +܏ݏޏߏ +܏ݏޏߏࡡ +܏ݏޏߏࡡ +܏ݏޏߏࡡ +SELECT RTRIM(`ã`) from `ԣ`; +RTRIM(`ã`) + + + + + + + +SELECT RTRIM(`ã`) from `ԣ`; +RTRIM(`ã`) + + + + + + + +SELECT RTRIM(`ã`) from `ԣ`; +RTRIM(`ã`) +܏ݏޏߏ +܏ݏޏߏ +܏ݏޏߏ +܏ݏޏߏ +܏ݏޏߏࡡ +܏ݏޏߏࡡ +܏ݏޏߏࡡ +SELECT RTRIM(`ã`) from `ԣ`; +RTRIM(`ã`) + + + + + + + +SELECT RTRIM(`ã`) from `ԣ`; +RTRIM(`ã`) + + + + + + + +SELECT RTRIM(`ã`) from `ԣ`; +RTRIM(`ã`) +܏ݏޏߏ +܏ݏޏߏ +܏ݏޏߏ +܏ݏޏߏ +܏ݏޏߏࡡ +܏ݏޏߏࡡ +܏ݏޏߏࡡ +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; diff --git a/mysql-test/suite/jp/r/jp_rtrim_utf8.result b/mysql-test/suite/jp/r/jp_rtrim_utf8.result new file mode 100755 index 00000000000..09d719f3386 --- /dev/null +++ b/mysql-test/suite/jp/r/jp_rtrim_utf8.result @@ -0,0 +1,228 @@ +drop table if exists `T1`; +drop table if exists `T2`; +drop table if exists `T3`; +drop table if exists `T4`; +drop table if exists `T5`; +drop table if exists `T6`; +drop table if exists `T7`; +drop table if exists `T8`; +drop table if exists `T9`; +drop table if exists `T10`; +SET NAMES utf8; +SET character_set_database = utf8; +CREATE TABLE `T1` (`C1` char(8), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T2` (`C1` char(8), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T3` (`C1` char(8), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T4` (`C1` char(8), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T5` (`C1` char(8), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T6` (`C1` char(8), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T7` (`C1` char(8), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T8` (`C1` char(8), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T9` (`C1` char(8), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T10` (`C1` char(8), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +CREATE TABLE `T11` (`C1` char(8), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +CREATE TABLE `T12` (`C1` char(8), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +INSERT INTO `T1` VALUES ('アイウエオ'); +INSERT INTO `T1` VALUES ('アイウエオ '); +INSERT INTO `T1` VALUES ('アイウエオ '); +INSERT INTO `T1` VALUES ('アイウエオ '); +INSERT INTO `T1` VALUES ('アイウエオ '); +INSERT INTO `T1` VALUES ('アイウエオ  '); +INSERT INTO `T1` VALUES ('アイウエオ   '); +INSERT INTO `T2` VALUES ('あいうえお'); +INSERT INTO `T2` VALUES ('あいうえお '); +INSERT INTO `T2` VALUES ('あいうえお '); +INSERT INTO `T2` VALUES ('あいうえお '); +INSERT INTO `T2` VALUES ('あいうえお '); +INSERT INTO `T2` VALUES ('あいうえお  '); +INSERT INTO `T2` VALUES ('あいうえお   '); +INSERT INTO `T3` VALUES ('龔龖龗龞龡'); +INSERT INTO `T3` VALUES ('龔龖龗龞龡 '); +INSERT INTO `T3` VALUES ('龔龖龗龞龡 '); +INSERT INTO `T3` VALUES ('龔龖龗龞龡 '); +INSERT INTO `T3` VALUES ('龔龖龗龞龡 '); +INSERT INTO `T3` VALUES ('龔龖龗龞龡  '); +INSERT INTO `T3` VALUES ('龔龖龗龞龡   '); +INSERT INTO `T4` VALUES ('アイウエオ'); +INSERT INTO `T4` VALUES ('アイウエオ '); +INSERT INTO `T4` VALUES ('アイウエオ '); +INSERT INTO `T4` VALUES ('アイウエオ '); +INSERT INTO `T4` VALUES ('アイウエオ '); +INSERT INTO `T4` VALUES ('アイウエオ  '); +INSERT INTO `T4` VALUES ('アイウエオ   '); +INSERT INTO `T5` VALUES ('あいうえお'); +INSERT INTO `T5` VALUES ('あいうえお '); +INSERT INTO `T5` VALUES ('あいうえお '); +INSERT INTO `T5` VALUES ('あいうえお '); +INSERT INTO `T5` VALUES ('あいうえお '); +INSERT INTO `T5` VALUES ('あいうえお  '); +INSERT INTO `T5` VALUES ('あいうえお   '); +INSERT INTO `T6` VALUES ('龔龖龗龞龡'); +INSERT INTO `T6` VALUES ('龔龖龗龞龡 '); +INSERT INTO `T6` VALUES ('龔龖龗龞龡 '); +INSERT INTO `T6` VALUES ('龔龖龗龞龡 '); +INSERT INTO `T6` VALUES ('龔龖龗龞龡 '); +INSERT INTO `T6` VALUES ('龔龖龗龞龡  '); +INSERT INTO `T6` VALUES ('龔龖龗龞龡   '); +INSERT INTO `T7` VALUES ('アイウエオ'); +INSERT INTO `T7` VALUES ('アイウエオ '); +INSERT INTO `T7` VALUES ('アイウエオ '); +INSERT INTO `T7` VALUES ('アイウエオ '); +INSERT INTO `T7` VALUES ('アイウエオ '); +INSERT INTO `T7` VALUES ('アイウエオ  '); +INSERT INTO `T7` VALUES ('アイウエオ   '); +INSERT INTO `T8` VALUES ('あいうえお'); +INSERT INTO `T8` VALUES ('あいうえお '); +INSERT INTO `T8` VALUES ('あいうえお '); +INSERT INTO `T8` VALUES ('あいうえお '); +INSERT INTO `T8` VALUES ('あいうえお '); +INSERT INTO `T8` VALUES ('あいうえお  '); +INSERT INTO `T8` VALUES ('あいうえお   '); +INSERT INTO `T9` VALUES ('龔龖龗龞龡'); +INSERT INTO `T9` VALUES ('龔龖龗龞龡 '); +INSERT INTO `T9` VALUES ('龔龖龗龞龡 '); +INSERT INTO `T9` VALUES ('龔龖龗龞龡 '); +INSERT INTO `T9` VALUES ('龔龖龗龞龡 '); +INSERT INTO `T9` VALUES ('龔龖龗龞龡  '); +INSERT INTO `T9` VALUES ('龔龖龗龞龡   '); +INSERT INTO `T10` VALUES ('アイウエオ'); +INSERT INTO `T10` VALUES ('アイウエオ '); +INSERT INTO `T10` VALUES ('アイウエオ '); +INSERT INTO `T10` VALUES ('アイウエオ '); +INSERT INTO `T10` VALUES ('アイウエオ '); +INSERT INTO `T10` VALUES ('アイウエオ  '); +INSERT INTO `T10` VALUES ('アイウエオ   '); +INSERT INTO `T11` VALUES ('あいうえお'); +INSERT INTO `T11` VALUES ('あいうえお '); +INSERT INTO `T11` VALUES ('あいうえお '); +INSERT INTO `T11` VALUES ('あいうえお '); +INSERT INTO `T11` VALUES ('あいうえお '); +INSERT INTO `T11` VALUES ('あいうえお  '); +INSERT INTO `T11` VALUES ('あいうえお   '); +INSERT INTO `T12` VALUES ('龔龖龗龞龡'); +INSERT INTO `T12` VALUES ('龔龖龗龞龡 '); +INSERT INTO `T12` VALUES ('龔龖龗龞龡 '); +INSERT INTO `T12` VALUES ('龔龖龗龞龡 '); +INSERT INTO `T12` VALUES ('龔龖龗龞龡 '); +INSERT INTO `T12` VALUES ('龔龖龗龞龡  '); +INSERT INTO `T12` VALUES ('龔龖龗龞龡   '); +SELECT RTRIM(`C1`) from `T1`; +RTRIM(`C1`) +アイウエオ +アイウエオ +アイウエオ +アイウエオ +アイウエオ  +アイウエオ   +アイウエオ    +SELECT RTRIM(`C1`) from `T2`; +RTRIM(`C1`) +あいうえお +あいうえお +あいうえお +あいうえお +あいうえお  +あいうえお   +あいうえお    +SELECT RTRIM(`C1`) from `T3`; +RTRIM(`C1`) +龔龖龗龞龡 +龔龖龗龞龡 +龔龖龗龞龡 +龔龖龗龞龡 +龔龖龗龞龡  +龔龖龗龞龡   +龔龖龗龞龡    +SELECT RTRIM(`C1`) from `T4`; +RTRIM(`C1`) +アイウエオ +アイウエオ +アイウエオ +アイウエオ +アイウエオ  +アイウエオ   +アイウエオ    +SELECT RTRIM(`C1`) from `T5`; +RTRIM(`C1`) +あいうえお +あいうえお +あいうえお +あいうえお +あいうえお  +あいうえお   +あいうえお    +SELECT RTRIM(`C1`) from `T6`; +RTRIM(`C1`) +龔龖龗龞龡 +龔龖龗龞龡 +龔龖龗龞龡 +龔龖龗龞龡 +龔龖龗龞龡  +龔龖龗龞龡   +龔龖龗龞龡    +SELECT RTRIM(`C1`) from `T7`; +RTRIM(`C1`) +アイウエオ +アイウエオ +アイウエオ +アイウエオ +アイウエオ  +アイウエオ   +アイウエオ    +SELECT RTRIM(`C1`) from `T8`; +RTRIM(`C1`) +あいうえお +あいうえお +あいうえお +あいうえお +あいうえお  +あいうえお   +あいうえお    +SELECT RTRIM(`C1`) from `T9`; +RTRIM(`C1`) +龔龖龗龞龡 +龔龖龗龞龡 +龔龖龗龞龡 +龔龖龗龞龡 +龔龖龗龞龡  +龔龖龗龞龡   +龔龖龗龞龡    +SELECT RTRIM(`C1`) from `T10`; +RTRIM(`C1`) +アイウエオ +アイウエオ +アイウエオ +アイウエオ +アイウエオ  +アイウエオ   +アイウエオ    +SELECT RTRIM(`C1`) from `T11`; +RTRIM(`C1`) +あいうえお +あいうえお +あいうえお +あいうえお +あいうえお  +あいうえお   +あいうえお    +SELECT RTRIM(`C1`) from `T12`; +RTRIM(`C1`) +龔龖龗龞龡 +龔龖龗龞龡 +龔龖龗龞龡 +龔龖龗龞龡 +龔龖龗龞龡  +龔龖龗龞龡   +龔龖龗龞龡    +DROP TABLE `T1`; +DROP TABLE `T2`; +DROP TABLE `T3`; +DROP TABLE `T4`; +DROP TABLE `T5`; +DROP TABLE `T6`; +DROP TABLE `T7`; +DROP TABLE `T8`; +DROP TABLE `T9`; +DROP TABLE `T10`; +DROP TABLE `T11`; +DROP TABLE `T12`; diff --git a/mysql-test/suite/jp/r/jp_select_sjis.result b/mysql-test/suite/jp/r/jp_select_sjis.result new file mode 100755 index 00000000000..d48d08d745f --- /dev/null +++ b/mysql-test/suite/jp/r/jp_select_sjis.result @@ -0,0 +1,382 @@ +drop table if exists `sP`; +drop table if exists `sQ`; +drop table if exists `sR`; +drop table if exists `sS`; +drop table if exists `sT`; +drop table if exists `sU`; +drop table if exists `sV`; +drop table if exists `sW`; +drop table if exists `sX`; +drop table if exists `sPO`; +drop table if exists `sPP`; +drop table if exists `sPQ`; +SET NAMES sjis; +SET character_set_database = sjis; +CREATE TABLE `sP` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sQ` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sR` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sS` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sT` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sU` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sV` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sW` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sX` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sPO` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +CREATE TABLE `sPP` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +CREATE TABLE `sPQ` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_sjis.dat' INTO TABLE `sP`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_sjis.dat' INTO TABLE `sQ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_sjis2.dat' INTO TABLE `sR`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_sjis.dat' INTO TABLE `sS`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_sjis.dat' INTO TABLE `sT`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_sjis2.dat' INTO TABLE `sU`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_sjis.dat' INTO TABLE `sV`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_sjis.dat' INTO TABLE `sW`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_sjis2.dat' INTO TABLE `sX`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_sjis.dat' INTO TABLE `sPO`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_sjis.dat' INTO TABLE `sPP`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_sjis2.dat' INTO TABLE `sPQ`; +SELECT * FROM `sP`; +bP + !"#$%&'()*+,-./ + +0123456789:;<=>? +@ABCDEFGHIJKLMNO +abcdefghijklmno +PQRSTUVWXYZ[\]^_ +pqrstuvwxyz{|}~ + + + +SELECT * FROM `sQ`; +bP +@@ABCDEFGHIJKLMNOPQR +EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEOPQR +EEEEEEEEEpqrstuvwxyz +EEEEEEEEEEEE +EEEEE +EEȁɁʁˁ́́΁EEEEEEEEEEE +EEEEEEEEEE@ +EEEEEE +E +E@ABCDEFGHIJKLMNOPQR +E +E@ABCDEFGHIJKLMNOPQR +E +E +E@ABCDEFGHIJKLMNOPQR +E +E@ABCDEFGHIJKLMNOPQR +E꤁EEEEEEEEEEEEE +STUVWXYZ[\]^_`abcdef +ghijklmnopqrstuvwxyz +{]}~ +EEEEE +ځہ܁݁ށ߁EEEEE +STUVWXEEEEEEE`abcdef +ghijklmnopqrstuvwxyE +EEEEEEEEE +‚ÂĂ +ƂǂȂɂʂ˂̂͂΂ςЂт҂ӂԂՂւׂ؂ +ڂۂ܂݂ނ߂ +EEEEEEEEEEEEEEEE +STUVWXYZ[\]^_`abcdef +ghijklmnopqrstuvwxyz +{|}~ +EEEEEEEEEEEEE +EEEEEEEEƒÃă +ƃǃȃɃʃ˃̃̓΃σЃу҃ӃԃՃցEEE +STUVWXYZ[\]^_`EEEEEE +{|}~ +EEEEEEEEEEEEEEEEEE +EEEEEEE +ˆÈĈ +ƈLjȈɈʈˈ͈̈ΈψЈш҈ӈԈՈֈ׈؈ +ڈۈ܈݈ވ߈ +EEEEE +STUVWXYZ[\]^_`abcdef +ghijklmnopqrEEEEEEEE +˜ØĘ +ƘǘȘɘʘ˘̘͘ΘϘИјҘӘԘ՘֘טؘ +ژۘܘݘޘߘ +EEEEE +STUVWXYZ[\]^_`abcdef +ghijklmnopqrstuvwxyz +{|}~ +ꞁEEEEE +SELECT * FROM `sR`; +bP +\\\\\\\\\\\\\\\\\\\\ +SELECT * FROM `sS`; +bP + !"#$%&'()*+,-./ + +0123456789:;<=>? +@ABCDEFGHIJKLMNO +abcdefghijklmno +PQRSTUVWXYZ[\]^_ +pqrstuvwxyz{|}~ + + + +SELECT * FROM `sT`; +bP +@@ABCDEFGHIJKLMNOPQR +EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEOPQR +EEEEEEEEEpqrstuvwxyz +EEEEEEEEEEEE +EEEEE +EEȁɁʁˁ́́΁EEEEEEEEEEE +EEEEEEEEEE@ +EEEEEE +E +E@ABCDEFGHIJKLMNOPQR +E +E@ABCDEFGHIJKLMNOPQR +E +E +E@ABCDEFGHIJKLMNOPQR +E +E@ABCDEFGHIJKLMNOPQR +E꤁EEEEEEEEEEEEE +STUVWXYZ[\]^_`abcdef +ghijklmnopqrstuvwxyz +{]}~ +EEEEE +ځہ܁݁ށ߁EEEEE +STUVWXEEEEEEE`abcdef +ghijklmnopqrstuvwxyE +EEEEEEEEE +‚ÂĂ +ƂǂȂɂʂ˂̂͂΂ςЂт҂ӂԂՂւׂ؂ +ڂۂ܂݂ނ߂ +EEEEEEEEEEEEEEEE +STUVWXYZ[\]^_`abcdef +ghijklmnopqrstuvwxyz +{|}~ +EEEEEEEEEEEEE +EEEEEEEEƒÃă +ƃǃȃɃʃ˃̃̓΃σЃу҃ӃԃՃցEEE +STUVWXYZ[\]^_`EEEEEE +{|}~ +EEEEEEEEEEEEEEEEEE +EEEEEEE +ˆÈĈ +ƈLjȈɈʈˈ͈̈ΈψЈш҈ӈԈՈֈ׈؈ +ڈۈ܈݈ވ߈ +EEEEE +STUVWXYZ[\]^_`abcdef +ghijklmnopqrEEEEEEEE +˜ØĘ +ƘǘȘɘʘ˘̘͘ΘϘИјҘӘԘ՘֘טؘ +ژۘܘݘޘߘ +EEEEE +STUVWXYZ[\]^_`abcdef +ghijklmnopqrstuvwxyz +{|}~ +ꞁEEEEE +SELECT * FROM `sU`; +bP +\\\\\\\\\\\\\\\\\\\\ +SELECT * FROM `sV`; +bP + !"#$%&'()*+,-./ +0123456789:;<=>? +@ABCDEFGHIJKLMNO +PQRSTUVWXYZ[\]^_ +abcdefghijklmno +pqrstuvwxyz{|}~ + + + + +SELECT * FROM `sW`; +bP +@@ABCDEFGHIJKLMNOPQR +STUVWXYZ[\]^_`abcdef +ghijklmnopqrstuvwxyz +{]}~ +EEEEE +EEEEEE +EEEEEEEEEEEE +EEȁɁʁˁ́́΁EEEEEEEEEEE +ځہ܁݁ށ߁EEEEE +EEEEEEEEEE@ +EEEEEEEEEEEEEEEEOPQR +STUVWXEEEEEEE`abcdef +ghijklmnopqrstuvwxyE +EEEEE +EEEEEEEEE +E +‚ÂĂ +ƂǂȂɂʂ˂̂͂΂ςЂт҂ӂԂՂւׂ؂ +ڂۂ܂݂ނ߂ +EEEEEEEEEEEEEEEE +E@ABCDEFGHIJKLMNOPQR +STUVWXYZ[\]^_`abcdef +ghijklmnopqrstuvwxyz +{|}~ +EEEEEEEEEEEEE +E +EEEEEEEEƒÃă +ƃǃȃɃʃ˃̃̓΃σЃу҃ӃԃՃցEEE +EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE +E@ABCDEFGHIJKLMNOPQR +STUVWXYZ[\]^_`EEEEEE +EEEEEEEEEpqrstuvwxyz +{|}~ +EEEEEEEEEEEEEEEEEE +E +EEEEEEE +EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE +E +ˆÈĈ +ƈLjȈɈʈˈ͈̈ΈψЈш҈ӈԈՈֈ׈؈ +ڈۈ܈݈ވ߈ +EEEEE +E@ABCDEFGHIJKLMNOPQR +STUVWXYZ[\]^_`abcdef +ghijklmnopqrEEEEEEEE +EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE +E +˜ØĘ +ƘǘȘɘʘ˘̘͘ΘϘИјҘӘԘ՘֘טؘ +ژۘܘݘޘߘ +EEEEE +E@ABCDEFGHIJKLMNOPQR +STUVWXYZ[\]^_`abcdef +ghijklmnopqrstuvwxyz +{|}~ +ꞁEEEEE +E꤁EEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE +SELECT * FROM `sX`; +bP +\\\\\\\\\\\\\\\\\\\\ +SELECT * FROM `sPO`; +bP + !"#$%&'()*+,-./ +0123456789:;<=>? +@ABCDEFGHIJKLMNO +PQRSTUVWXYZ[\]^_ +abcdefghijklmno +pqrstuvwxyz{|}~ + + + + +SELECT * FROM `sPP`; +bP +@@ABCDEFGHIJKLMNOPQR +STUVWXYZ[\]^_`abcdef +ghijklmnopqrstuvwxyz +{]}~ +EEEEE +EEEEEE +EEEEEEEEEEEE +EEȁɁʁˁ́́΁EEEEEEEEEEE +ځہ܁݁ށ߁EEEEE +EEEEEEEEEE@ +EEEEEEEEEEEEEEEEOPQR +STUVWXEEEEEEE`abcdef +ghijklmnopqrstuvwxyE +EEEEE +EEEEEEEEE +E +‚ÂĂ +ƂǂȂɂʂ˂̂͂΂ςЂт҂ӂԂՂւׂ؂ +ڂۂ܂݂ނ߂ +EEEEEEEEEEEEEEEE +E@ABCDEFGHIJKLMNOPQR +STUVWXYZ[\]^_`abcdef +ghijklmnopqrstuvwxyz +{|}~ +EEEEEEEEEEEEE +E +EEEEEEEEƒÃă +ƃǃȃɃʃ˃̃̓΃σЃу҃ӃԃՃցEEE +EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE +E@ABCDEFGHIJKLMNOPQR +STUVWXYZ[\]^_`EEEEEE +EEEEEEEEEpqrstuvwxyz +{|}~ +EEEEEEEEEEEEEEEEEE +E +EEEEEEE +EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE +E +ˆÈĈ +ƈLjȈɈʈˈ͈̈ΈψЈш҈ӈԈՈֈ׈؈ +ڈۈ܈݈ވ߈ +EEEEE +E@ABCDEFGHIJKLMNOPQR +STUVWXYZ[\]^_`abcdef +ghijklmnopqrEEEEEEEE +EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE +E +˜ØĘ +ƘǘȘɘʘ˘̘͘ΘϘИјҘӘԘ՘֘טؘ +ژۘܘݘޘߘ +EEEEE +E@ABCDEFGHIJKLMNOPQR +STUVWXYZ[\]^_`abcdef +ghijklmnopqrstuvwxyz +{|}~ +ꞁEEEEE +E꤁EEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE +SELECT * FROM `sPQ`; +bP +\\\\\\\\\\\\\\\\\\\\ +drop table `sP`; +drop table `sQ`; +drop table `sR`; +drop table `sS`; +drop table `sT`; +drop table `sU`; +drop table `sV`; +drop table `sW`; +drop table `sX`; +drop table `sPO`; +drop table `sPP`; +drop table `sPQ`; diff --git a/mysql-test/suite/jp/r/jp_select_ucs2.result b/mysql-test/suite/jp/r/jp_select_ucs2.result new file mode 100755 index 00000000000..39d057ed107 --- /dev/null +++ b/mysql-test/suite/jp/r/jp_select_ucs2.result @@ -0,0 +1,227 @@ +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +SET NAMES ujis; +SET character_set_database = ucs2; +SET collation_connection = ucs2_general_ci; +CREATE TABLE `ԣ` (c1 char(20), INDEX(c1)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (c1 char(20), INDEX(c1)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (c1 char(20), INDEX(c1)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (c1 char(20), INDEX(c1)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (c1 char(20), INDEX(c1)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (c1 char(20), INDEX(c1)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (c1 char(20), INDEX(c1)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (c1 char(20), INDEX(c1)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (c1 char(20), INDEX(c1)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (c1 char(20), INDEX(c1)) DEFAULT CHARSET = ucs2 engine = bdb; +CREATE TABLE `ԣ` (c1 char(20), INDEX(c1)) DEFAULT CHARSET = ucs2 engine = bdb; +CREATE TABLE `ԣ` (c1 char(20), INDEX(c1)) DEFAULT CHARSET = ucs2 engine = bdb; +INSERT INTO `ԣ` VALUES +('PQRSTUVWXYZ[\\]^_') +,(' ') +,('') +,('ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ') +,('ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ'); +INSERT INTO `ԣ` VALUES +('¡áġšơ') +,('ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ') +,('') +,('') +,('') +,('СТУФХЦЧШЩЪЫЬЭЮЯабвг') +,(''); +INSERT INTO `ԣ` VALUES +('Ïġ') +,('ÏďŏƏ') +,('ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ') +,('܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰') +,('') +,('ÏďŏƏ') +,('ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ'); +INSERT INTO `ԣ` VALUES +('PQRSTUVWXYZ[\\]^_') +,(' ') +,('') +,('ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ') +,('ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ'); +INSERT INTO `ԣ` VALUES +('¡áġšơ') +,('ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ') +,('') +,('') +,('') +,('СТУФХЦЧШЩЪЫЬЭЮЯабвг') +,(''); +INSERT INTO `ԣ` VALUES +('Ïġ') +,('ÏďŏƏ') +,('ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ') +,('܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰') +,('') +,('ÏďŏƏ') +,('ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ'); +INSERT INTO `ԣ` VALUES +('PQRSTUVWXYZ[\\]^_') +,(' ') +,('') +,('ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ') +,('ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ'); +INSERT INTO `ԣ` VALUES +('¡áġšơ') +,('ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ') +,('') +,('') +,('') +,('СТУФХЦЧШЩЪЫЬЭЮЯабвг') +,(''); +INSERT INTO `ԣ` VALUES +('Ïġ') +,('ÏďŏƏ') +,('ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ') +,('܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰') +,('') +,('ÏďŏƏ') +,('ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ'); +INSERT INTO `ԣ` VALUES +('PQRSTUVWXYZ[\\]^_') +,(' ') +,('') +,('ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ') +,('ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ'); +INSERT INTO `ԣ` VALUES +('¡áġšơ') +,('ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ') +,('') +,('') +,('') +,('СТУФХЦЧШЩЪЫЬЭЮЯабвг') +,(''); +INSERT INTO `ԣ` VALUES +('Ïġ') +,('ÏďŏƏ') +,('ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ') +,('܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰') +,('') +,('ÏďŏƏ') +,('ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ'); +SELECT * FROM `ԣ`; +c1 + +PQRSTUVWXYZ[\]^_ + +ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ +ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ +SELECT * FROM `ԣ`; +c1 +ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ + + + +СТУФХЦЧШЩЪЫЬЭЮЯабвг + +\¡áġšơ +SELECT * FROM `ԣ`; +c1 +~Ïġ + +ÏďŏƏ +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ +܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰 +ÏďŏƏ +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ +SELECT * FROM `ԣ`; +c1 + +PQRSTUVWXYZ[\]^_ + +ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ +ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ +SELECT * FROM `ԣ`; +c1 +ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ + + + +СТУФХЦЧШЩЪЫЬЭЮЯабвг + +\¡áġšơ +SELECT * FROM `ԣ`; +c1 +~Ïġ + +ÏďŏƏ +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ +܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰 +ÏďŏƏ +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ +SELECT * FROM `ԣ`; +c1 +PQRSTUVWXYZ[\]^_ + + +ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ +ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ +SELECT * FROM `ԣ`; +c1 +\¡áġšơ +ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ + + + +СТУФХЦЧШЩЪЫЬЭЮЯабвг + +SELECT * FROM `ԣ`; +c1 +~Ïġ +ÏďŏƏ +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ +܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰 + +ÏďŏƏ +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ +SELECT * FROM `ԣ`; +c1 +PQRSTUVWXYZ[\]^_ + + +ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ +ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ +SELECT * FROM `ԣ`; +c1 +\¡áġšơ +ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ + + + +СТУФХЦЧШЩЪЫЬЭЮЯабвг + +SELECT * FROM `ԣ`; +c1 +~Ïġ +ÏďŏƏ +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ +܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰 + +ÏďŏƏ +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; diff --git a/mysql-test/suite/jp/r/jp_select_ujis.result b/mysql-test/suite/jp/r/jp_select_ujis.result new file mode 100755 index 00000000000..3eea73c8083 --- /dev/null +++ b/mysql-test/suite/jp/r/jp_select_ujis.result @@ -0,0 +1,538 @@ +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +SET NAMES ujis; +SET character_set_database = ujis; +CREATE TABLE `ԣ` (c1 char(20), INDEX(c1)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (c1 char(20), INDEX(c1)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (c1 char(20), INDEX(c1)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (c1 char(20), INDEX(c1)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (c1 char(20), INDEX(c1)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (c1 char(20), INDEX(c1)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (c1 char(20), INDEX(c1)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (c1 char(20), INDEX(c1)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (c1 char(20), INDEX(c1)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (c1 char(20), INDEX(c1)) DEFAULT CHARSET = ujis engine = bdb; +CREATE TABLE `ԣ` (c1 char(20), INDEX(c1)) DEFAULT CHARSET = ujis engine = bdb; +CREATE TABLE `ԣ` (c1 char(20), INDEX(c1)) DEFAULT CHARSET = ujis engine = bdb; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_ujis.dat' INTO TABLE `ԣ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_ujis.dat' INTO TABLE `ԣ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0212_ujis.dat' INTO TABLE `ԣ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_ujis.dat' INTO TABLE `ԣ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_ujis.dat' INTO TABLE `ԣ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0212_ujis.dat' INTO TABLE `ԣ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_ujis.dat' INTO TABLE `ԣ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_ujis.dat' INTO TABLE `ԣ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0212_ujis.dat' INTO TABLE `ԣ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_ujis.dat' INTO TABLE `ԣ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_ujis.dat' INTO TABLE `ԣ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0212_ujis.dat' INTO TABLE `ԣ`; +SELECT * FROM `ԣ`; +c1 + !"#$%&'()*+,-./ + +0123456789:;<=>? +@ABCDEFGHIJKLMNO +abcdefghijklmno +PQRSTUVWXYZ[\]^_ +pqrstuvwxyz{|}~ + +ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ +ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ +SELECT * FROM `ԣ`; +c1 + + + + + + + + + + + + + + +ѧҧӧԧէ֧קا٧ڧ + + +ʢˢ̢͢΢ϢС + + + + + + + + +ϡϢϣϤϥϦϧϨϩϪϫϬϭϮϯϰϱϲϳ +СТУФХЦЧШЩЪЫЬЭЮЯабвг + + +¡áġšơ +ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ +ܡޡߡ + +ܢݢޢߢꡦ +£ãģţƣ +ȣɣʣˣ̣ͣΣϣУѣңӣԣգ֣ףأ٣ڡ + +¤äĤŤƤ +Ȥɤʤˤ̤ͤΤϤФѤҤӤԤդ֤פؤ٤ڤ +ܤݤޤߤ +󡦡 +¥åĥťƥ +ȥɥʥ˥̥ͥΥϥХѥҥӥԥե֥ץإ٥ڥ +ܥݥޥߥ + +¦æĦŦƦ +Ȧɦʦ˦̦ͦΦϦЦѦҦӦԦզ֦צء + +ܧݧާߧ +񡦡 + +°ðİŰư +Ȱɰʰ˰̰ͰΰϰаѰҰӰ԰հְװذٰڰ +ܰݰް߰ + +ϴϵ϶ϷϸϹϺϻϼϽϾϿ +ӡ +дежзийклмноп + + + + + + + +SELECT * FROM `ԣ`; +c1 +񡦡 +ȏɏʏˏ̏͏Ρ +ȏɏʏˏ̏͏ΏϏС +ÏďŏƏ +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ +܏ݏޏߏᏪ⏪㏪䏪只揪珪菪鏪ꏪ돪쏪폪 + +áŏƏ +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ +܏ݏޏߏᏫ⏫㏫䏫叫揫珫菫鏫ꏫ돫쏫폫 + +ÏďŏƏ +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ +܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰 + +ÏďŏƏ +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ +܏ݏޏߏ㡦 +Ïġ + + + + + + + +Ꮶ⏦㏦䏦塦硦鏦ꡦ졦 +ÏďŏƏ +ÏďŏƏ + +돢쏢폢 + + + + + + + + + +SELECT * FROM `ԣ`; +c1 + !"#$%&'()*+,-./ + +0123456789:;<=>? +@ABCDEFGHIJKLMNO +abcdefghijklmno +PQRSTUVWXYZ[\]^_ +pqrstuvwxyz{|}~ + +ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ +ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ +SELECT * FROM `ԣ`; +c1 + + + + + + + + + + + + + + +ѧҧӧԧէ֧קا٧ڧ + + +ʢˢ̢͢΢ϢС + + + + + + + + +ϡϢϣϤϥϦϧϨϩϪϫϬϭϮϯϰϱϲϳ +СТУФХЦЧШЩЪЫЬЭЮЯабвг + + +¡áġšơ +ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ +ܡޡߡ + +ܢݢޢߢꡦ +£ãģţƣ +ȣɣʣˣ̣ͣΣϣУѣңӣԣգ֣ףأ٣ڡ + +¤äĤŤƤ +Ȥɤʤˤ̤ͤΤϤФѤҤӤԤդ֤פؤ٤ڤ +ܤݤޤߤ +󡦡 +¥åĥťƥ +ȥɥʥ˥̥ͥΥϥХѥҥӥԥե֥ץإ٥ڥ +ܥݥޥߥ + +¦æĦŦƦ +Ȧɦʦ˦̦ͦΦϦЦѦҦӦԦզ֦צء + +ܧݧާߧ +񡦡 + +°ðİŰư +Ȱɰʰ˰̰ͰΰϰаѰҰӰ԰հְװذٰڰ +ܰݰް߰ + +ϴϵ϶ϷϸϹϺϻϼϽϾϿ +ӡ +дежзийклмноп + + + + + + + +SELECT * FROM `ԣ`; +c1 +񡦡 +ȏɏʏˏ̏͏Ρ +ȏɏʏˏ̏͏ΏϏС +ÏďŏƏ +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ +܏ݏޏߏᏪ⏪㏪䏪只揪珪菪鏪ꏪ돪쏪폪 + +áŏƏ +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ +܏ݏޏߏᏫ⏫㏫䏫叫揫珫菫鏫ꏫ돫쏫폫 + +ÏďŏƏ +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ +܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰 + +ÏďŏƏ +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ +܏ݏޏߏ㡦 +Ïġ + + + + + + + +Ꮶ⏦㏦䏦塦硦鏦ꡦ졦 +ÏďŏƏ +ÏďŏƏ + +돢쏢폢 + + + + + + + + + +SELECT * FROM `ԣ`; +c1 + !"#$%&'()*+,-./ +0123456789:;<=>? +@ABCDEFGHIJKLMNO +PQRSTUVWXYZ[\]^_ +abcdefghijklmno +pqrstuvwxyz{|}~ + + +ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ +ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ +SELECT * FROM `ԣ`; +c1 + +¡áġšơ +ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ +ܡޡߡ + + + +ʢˢ̢͢΢ϢС +ܢݢޢߢꡦ + + +£ãģţƣ +ȣɣʣˣ̣ͣΣϣУѣңӣԣգ֣ףأ٣ڡ + + + +¤äĤŤƤ +Ȥɤʤˤ̤ͤΤϤФѤҤӤԤդ֤פؤ٤ڤ +ܤݤޤߤ +󡦡 + +¥åĥťƥ +ȥɥʥ˥̥ͥΥϥХѥҥӥԥե֥ץإ٥ڥ +ܥݥޥߥ + + +¦æĦŦƦ +Ȧɦʦ˦̦ͦΦϦЦѦҦӦԦզ֦צء + + + + + +ѧҧӧԧէ֧קا٧ڧ +ܧݧާߧ +񡦡 + + + + + + +°ðİŰư +Ȱɰʰ˰̰ͰΰϰаѰҰӰ԰հְװذٰڰ +ܰݰް߰ + +ϡϢϣϤϥϦϧϨϩϪϫϬϭϮϯϰϱϲϳ +ϴϵ϶ϷϸϹϺϻϼϽϾϿ +ӡ + + +СТУФХЦЧШЩЪЫЬЭЮЯабвг +дежзийклмноп + + + + + + + + + + + + + +SELECT * FROM `ԣ`; +c1 + +Ïġ + +돢쏢폢 +񡦡 + + + +Ꮶ⏦㏦䏦塦硦鏦ꡦ졦 + + +ÏďŏƏ +ȏɏʏˏ̏͏Ρ + + + +ÏďŏƏ +ȏɏʏˏ̏͏ΏϏС + + + +ÏďŏƏ +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ +܏ݏޏߏᏪ⏪㏪䏪只揪珪菪鏪ꏪ돪쏪폪 + + +áŏƏ +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ +܏ݏޏߏᏫ⏫㏫䏫叫揫珫菫鏫ꏫ돫쏫폫 + + +ÏďŏƏ +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ +܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰 + + +ÏďŏƏ +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ +܏ݏޏߏ㡦 + +SELECT * FROM `ԣ`; +c1 + !"#$%&'()*+,-./ +0123456789:;<=>? +@ABCDEFGHIJKLMNO +PQRSTUVWXYZ[\]^_ +abcdefghijklmno +pqrstuvwxyz{|}~ + + +ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ +ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ +SELECT * FROM `ԣ`; +c1 + +¡áġšơ +ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ +ܡޡߡ + + + +ʢˢ̢͢΢ϢС +ܢݢޢߢꡦ + + +£ãģţƣ +ȣɣʣˣ̣ͣΣϣУѣңӣԣգ֣ףأ٣ڡ + + + +¤äĤŤƤ +Ȥɤʤˤ̤ͤΤϤФѤҤӤԤդ֤פؤ٤ڤ +ܤݤޤߤ +󡦡 + +¥åĥťƥ +ȥɥʥ˥̥ͥΥϥХѥҥӥԥե֥ץإ٥ڥ +ܥݥޥߥ + + +¦æĦŦƦ +Ȧɦʦ˦̦ͦΦϦЦѦҦӦԦզ֦צء + + + + + +ѧҧӧԧէ֧קا٧ڧ +ܧݧާߧ +񡦡 + + + + + + +°ðİŰư +Ȱɰʰ˰̰ͰΰϰаѰҰӰ԰հְװذٰڰ +ܰݰް߰ + +ϡϢϣϤϥϦϧϨϩϪϫϬϭϮϯϰϱϲϳ +ϴϵ϶ϷϸϹϺϻϼϽϾϿ +ӡ + + +СТУФХЦЧШЩЪЫЬЭЮЯабвг +дежзийклмноп + + + + + + + + + + + + + +SELECT * FROM `ԣ`; +c1 + +Ïġ + +돢쏢폢 +񡦡 + + + +Ꮶ⏦㏦䏦塦硦鏦ꡦ졦 + + +ÏďŏƏ +ȏɏʏˏ̏͏Ρ + + + +ÏďŏƏ +ȏɏʏˏ̏͏ΏϏС + + + +ÏďŏƏ +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ +܏ݏޏߏᏪ⏪㏪䏪只揪珪菪鏪ꏪ돪쏪폪 + + +áŏƏ +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ +܏ݏޏߏᏫ⏫㏫䏫叫揫珫菫鏫ꏫ돫쏫폫 + + +ÏďŏƏ +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ +܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰 + + +ÏďŏƏ +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ +܏ݏޏߏ㡦 + +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; diff --git a/mysql-test/suite/jp/r/jp_select_utf8.result b/mysql-test/suite/jp/r/jp_select_utf8.result new file mode 100755 index 00000000000..43704ad2f6e --- /dev/null +++ b/mysql-test/suite/jp/r/jp_select_utf8.result @@ -0,0 +1,538 @@ +drop table if exists `T1`; +drop table if exists `T2`; +drop table if exists `T3`; +drop table if exists `T4`; +drop table if exists `T5`; +drop table if exists `T6`; +drop table if exists `T7`; +drop table if exists `T8`; +drop table if exists `T9`; +drop table if exists `T10`; +drop table if exists `T11`; +drop table if exists `T12`; +SET NAMES utf8; +SET character_set_database = utf8; +CREATE TABLE `T1` (c1 char(20), INDEX(c1)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T2` (c1 char(20), INDEX(c1)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T3` (c1 char(20), INDEX(c1)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T4` (c1 char(20), INDEX(c1)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T5` (c1 char(20), INDEX(c1)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T6` (c1 char(20), INDEX(c1)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T7` (c1 char(20), INDEX(c1)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T8` (c1 char(20), INDEX(c1)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T9` (c1 char(20), INDEX(c1)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T10` (c1 char(20), INDEX(c1)) DEFAULT CHARSET = utf8 engine = bdb; +CREATE TABLE `T11` (c1 char(20), INDEX(c1)) DEFAULT CHARSET = utf8 engine = bdb; +CREATE TABLE `T12` (c1 char(20), INDEX(c1)) DEFAULT CHARSET = utf8 engine = bdb; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_utf8.dat' INTO TABLE `T1`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_utf8.dat' INTO TABLE `T2`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0212_utf8.dat' INTO TABLE `T3`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_utf8.dat' INTO TABLE `T4`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_utf8.dat' INTO TABLE `T5`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0212_utf8.dat' INTO TABLE `T6`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_utf8.dat' INTO TABLE `T7`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_utf8.dat' INTO TABLE `T8`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0212_utf8.dat' INTO TABLE `T9`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_utf8.dat' INTO TABLE `T10`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_utf8.dat' INTO TABLE `T11`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0212_utf8.dat' INTO TABLE `T12`; +SELECT * FROM `T1`; +c1 + !"#$%&'()*+,-./ + 。「」、・ヲァィゥェォャュョッ +0123456789:;<=>? +@ABCDEFGHIJKLMNO +abcdefghijklmno +PQRSTUVWXYZ[\]^_ +pqrstuvwxyz{|}~ +ーアイウエオカキクケコサシスセソ +タチツテトナニヌネノハヒフヘホマ +ミムメモヤユヨラリルレロワン゙゚ +SELECT * FROM `T2`; +c1 +θικλμνξοπρστυφχψω・・・ +ΥΦΧΨΩ・・・・・・・・αβγδεζη +клмнопрстуфхцчшщъыьэ +ТУФХЦЧШЩЪЫЬЭЮЯ・・・・・・ +юя・・・・・・・・・・・・・・・・・・ +“”()〔〕[]{}〈〉《》「」『』【】 +∠⊥⌒∂∇≡≒≪≫√∽∝∵∫∬・・・・・ +┫┻╋┠┯┨┷┿┝┰┥┸╂・・・・・・・ +  、。,.・:;?!゛゜´`¨^ ̄_ヽ +ごさざしじすずせぜそぞただちぢっつづてで +とどなにぬねのはばぱひびぴふぶぷへべぺほ +ぼぽまみむめもゃやゅゆょよらりるれろゎわ +ゐゑをん・・・・・・・・・・・・・・・・ +ゴサザシジスズセゼソゾタダチヂッツヅテデ +トドナニヌネノハバパヒビピフブプヘベペホ +ボポマミムメモャヤュユョヨラリルレロヮワ +ヰヱヲンヴヵヶ・・・・・・・・・・・・・ +・ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤ +・АБВГДЕЁЖЗИЙКЛМНОПРС +・─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳ +・◆□■△▲▽▼※〒→←↑↓〓・・・・・ +・ぁあぃいぅうぇえぉおかがきぎくぐけげこ +・ァアィイゥウェエォオカガキギクグケゲコ +・・ʼn♯♭♪†‡¶・・・・◯・・・・  +・・∧∨¬⇒⇔∀∃・・・・・・・・・・・ +・・・・・・∈∋⊆⊇⊂⊃∪∩・・・・・・ +・・・・・・・・・абвгдеёжзий +・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・0123 +・・・・・abcdefghijklmno +・亜唖娃阿哀愛挨姶逢葵茜穐悪握渥旭葦芦鯵 +・堯槇遙瑤凜熙・・・・・・・・・・・・・ +・弌丐丕个丱丶丼丿乂乖乘亂亅豫亊舒弍于亞 +・蓮連錬呂魯櫓炉賂路露労婁廊弄朗楼榔浪漏 +・鵝鵞鵤鵑鵐鵙鵲鶉鶇鶫鵯鵺鶚鶤鶩鶲鷄鷁鶻 +ヾゝゞ〃仝々〆〇ー―‐/\〜‖|…‥‘’ +亟亠亢亰亳亶从仍仄仆仂仗仞仭仟价伉佚估佛 +佝佗佇佶侈侏侘佻佩佰侑佯來侖儘俔俟俎俘俛 +俑俚俐俤俥倚倨倔倪倥倅伜俶倡倩倬俾俯們倆 +偃假會偕偐偈做偖偬偸傀傚傅傴傲・・・・・ +枠鷲亙亘鰐詫藁蕨椀湾碗腕・・・・・・・・ +梓圧斡扱宛姐虻飴絢綾鮎或粟袷安庵按暗案闇 +牢狼篭老聾蝋郎六麓禄肋録論倭和話歪賄脇惑 +移維緯胃萎衣謂違遺医井亥域育郁磯一壱溢逸 +稲茨芋鰯允印咽員因姻引飲淫胤蔭・・・・・ +鞍杏以伊位依偉囲夷委威尉惟意慰易椅為畏異 +鶸鶺鷆鷏鷂鷙鷓鷸鷦鷭鷯鷽鸚鸛鸞鹵鹹鹽麁麈 +麋麌麒麕麑麝麥麩麸麪麭靡黌黎黏黐黔黜點黝 +黠黥黨黯黴黶黷黹黻黼黽鼇鼈皷鼕鼡鼬鼾齊齒 +齔齣齟齠齡齦齧齬齪齷齲齶龕龜龠・・・・・ +$¢£%#&*@§☆★○●◎◇・・・・・ ++‐±×÷=≠<>≦≧∞∴♂♀°′″℃¥ +456789・・・・・・・ABCDEFG +HIJKLMNOPQRSTUVWXYZ・ +pqrstuvwxyz・・・・・・・・・ +SELECT * FROM `T3`; +c1 +êěėēęǵĝğ・ġĥíìïîǐ・īįĩ +ÊĚĖĒĘ・ĜĞĢĠĤÍÌÏÎǏİĪĮĨ +ĴĶĹĽĻŃŇŅÑÓÒÖÔǑŐŌÕŔŘŖ +ĵķĺľļńňņñóòöôǒőōõŕřŗ +ŚŜŠŞŤŢÚÙÜÛŬǓŰŪŲŮŨǗǛǙ +śŝšşťţúùüûŭǔűūųůũǘǜǚ +ǕŴÝŸŶŹŽŻ・・・・・・・・・・・・ +ǖŵýÿŷźžż・・・・・・・・・・・・ +¤№・・・・・・・・・・・・・・・・・・ +łŀʼnŋøœßŧþ・・・・・・・・・・・ +ЈЉЊЋЌЎЏ・・・・・・・・・・・・・ +・ÁÀÄÂĂǍĀĄÅÃĆĈČÇĊĎÉÈË +・áàäâăǎāąåãćĉčçċďéèë +・ÆĐ・Ħ・IJ・ŁĿ・ŊØŒ・ŦÞ・・・ +・˛˚~΄΅・・・・・・・・¡¦¿・・・ +・άέήίϊΐόςύϋΰώ・・・・・・・ +・・ђѓєѕіїјљњћќўџ・・・・・ +・・・・・ΆΈΉΊΪ・Ό・ΎΫ・Ώ・・・ +・・・・・・・・・・・・・æđðħıijĸ +・・・・・・・・・・・・・・ЂЃЄЅІЇ +・・・・・・・・・・・・・・・ºª©®™ +・・・・・・・・・・・・・・・˘ˇ¸˙˝ +・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ +・丂丄丅丌丒丟丣两丨丫丮丯丰丵乀乁乄乇乑 +・黸黿鼂鼃鼉鼏鼐鼑鼒鼔鼖鼗鼙鼚鼛鼟鼢鼦鼪 +乚乜乣乨乩乴乵乹乿亍亖亗亝亯亹仃仐仚仛仠 +仡仢仨仯仱仳仵份仾仿伀伂伃伈伋伌伒伕伖众 +伙伮伱你伳伵伷伹伻伾佀佂佈佉佋佌佒佔佖佘 +佟佣佪佬佮佱佷佸佹佺佽佾侁侂侄・・・・・ +鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃齄齅齆齇齓齕齖 +齗齘齚齝齞齨齩齭齮齯齰齱齳齵齺齽龏龐龑龒 +龔龖龗龞龡龢龣龥・・・・・・・・・・・・ +SELECT * FROM `T4`; +c1 + !"#$%&'()*+,-./ + 。「」、・ヲァィゥェォャュョッ +0123456789:;<=>? +@ABCDEFGHIJKLMNO +abcdefghijklmno +PQRSTUVWXYZ[\]^_ +pqrstuvwxyz{|}~ +ーアイウエオカキクケコサシスセソ +タチツテトナニヌネノハヒフヘホマ +ミムメモヤユヨラリルレロワン゙゚ +SELECT * FROM `T5`; +c1 +θικλμνξοπρστυφχψω・・・ +ΥΦΧΨΩ・・・・・・・・αβγδεζη +клмнопрстуфхцчшщъыьэ +ТУФХЦЧШЩЪЫЬЭЮЯ・・・・・・ +юя・・・・・・・・・・・・・・・・・・ +“”()〔〕[]{}〈〉《》「」『』【】 +∠⊥⌒∂∇≡≒≪≫√∽∝∵∫∬・・・・・ +┫┻╋┠┯┨┷┿┝┰┥┸╂・・・・・・・ +  、。,.・:;?!゛゜´`¨^ ̄_ヽ +ごさざしじすずせぜそぞただちぢっつづてで +とどなにぬねのはばぱひびぴふぶぷへべぺほ +ぼぽまみむめもゃやゅゆょよらりるれろゎわ +ゐゑをん・・・・・・・・・・・・・・・・ +ゴサザシジスズセゼソゾタダチヂッツヅテデ +トドナニヌネノハバパヒビピフブプヘベペホ +ボポマミムメモャヤュユョヨラリルレロヮワ +ヰヱヲンヴヵヶ・・・・・・・・・・・・・ +・ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤ +・АБВГДЕЁЖЗИЙКЛМНОПРС +・─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳ +・◆□■△▲▽▼※〒→←↑↓〓・・・・・ +・ぁあぃいぅうぇえぉおかがきぎくぐけげこ +・ァアィイゥウェエォオカガキギクグケゲコ +・・ʼn♯♭♪†‡¶・・・・◯・・・・  +・・∧∨¬⇒⇔∀∃・・・・・・・・・・・ +・・・・・・∈∋⊆⊇⊂⊃∪∩・・・・・・ +・・・・・・・・・абвгдеёжзий +・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・0123 +・・・・・abcdefghijklmno +・亜唖娃阿哀愛挨姶逢葵茜穐悪握渥旭葦芦鯵 +・堯槇遙瑤凜熙・・・・・・・・・・・・・ +・弌丐丕个丱丶丼丿乂乖乘亂亅豫亊舒弍于亞 +・蓮連錬呂魯櫓炉賂路露労婁廊弄朗楼榔浪漏 +・鵝鵞鵤鵑鵐鵙鵲鶉鶇鶫鵯鵺鶚鶤鶩鶲鷄鷁鶻 +ヾゝゞ〃仝々〆〇ー―‐/\〜‖|…‥‘’ +亟亠亢亰亳亶从仍仄仆仂仗仞仭仟价伉佚估佛 +佝佗佇佶侈侏侘佻佩佰侑佯來侖儘俔俟俎俘俛 +俑俚俐俤俥倚倨倔倪倥倅伜俶倡倩倬俾俯們倆 +偃假會偕偐偈做偖偬偸傀傚傅傴傲・・・・・ +枠鷲亙亘鰐詫藁蕨椀湾碗腕・・・・・・・・ +梓圧斡扱宛姐虻飴絢綾鮎或粟袷安庵按暗案闇 +牢狼篭老聾蝋郎六麓禄肋録論倭和話歪賄脇惑 +移維緯胃萎衣謂違遺医井亥域育郁磯一壱溢逸 +稲茨芋鰯允印咽員因姻引飲淫胤蔭・・・・・ +鞍杏以伊位依偉囲夷委威尉惟意慰易椅為畏異 +鶸鶺鷆鷏鷂鷙鷓鷸鷦鷭鷯鷽鸚鸛鸞鹵鹹鹽麁麈 +麋麌麒麕麑麝麥麩麸麪麭靡黌黎黏黐黔黜點黝 +黠黥黨黯黴黶黷黹黻黼黽鼇鼈皷鼕鼡鼬鼾齊齒 +齔齣齟齠齡齦齧齬齪齷齲齶龕龜龠・・・・・ +$¢£%#&*@§☆★○●◎◇・・・・・ ++‐±×÷=≠<>≦≧∞∴♂♀°′″℃¥ +456789・・・・・・・ABCDEFG +HIJKLMNOPQRSTUVWXYZ・ +pqrstuvwxyz・・・・・・・・・ +SELECT * FROM `T6`; +c1 +êěėēęǵĝğ・ġĥíìïîǐ・īįĩ +ÊĚĖĒĘ・ĜĞĢĠĤÍÌÏÎǏİĪĮĨ +ĴĶĹĽĻŃŇŅÑÓÒÖÔǑŐŌÕŔŘŖ +ĵķĺľļńňņñóòöôǒőōõŕřŗ +ŚŜŠŞŤŢÚÙÜÛŬǓŰŪŲŮŨǗǛǙ +śŝšşťţúùüûŭǔűūųůũǘǜǚ +ǕŴÝŸŶŹŽŻ・・・・・・・・・・・・ +ǖŵýÿŷźžż・・・・・・・・・・・・ +¤№・・・・・・・・・・・・・・・・・・ +łŀʼnŋøœßŧþ・・・・・・・・・・・ +ЈЉЊЋЌЎЏ・・・・・・・・・・・・・ +・ÁÀÄÂĂǍĀĄÅÃĆĈČÇĊĎÉÈË +・áàäâăǎāąåãćĉčçċďéèë +・ÆĐ・Ħ・IJ・ŁĿ・ŊØŒ・ŦÞ・・・ +・˛˚~΄΅・・・・・・・・¡¦¿・・・ +・άέήίϊΐόςύϋΰώ・・・・・・・ +・・ђѓєѕіїјљњћќўџ・・・・・ +・・・・・ΆΈΉΊΪ・Ό・ΎΫ・Ώ・・・ +・・・・・・・・・・・・・æđðħıijĸ +・・・・・・・・・・・・・・ЂЃЄЅІЇ +・・・・・・・・・・・・・・・ºª©®™ +・・・・・・・・・・・・・・・˘ˇ¸˙˝ +・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ +・丂丄丅丌丒丟丣两丨丫丮丯丰丵乀乁乄乇乑 +・黸黿鼂鼃鼉鼏鼐鼑鼒鼔鼖鼗鼙鼚鼛鼟鼢鼦鼪 +乚乜乣乨乩乴乵乹乿亍亖亗亝亯亹仃仐仚仛仠 +仡仢仨仯仱仳仵份仾仿伀伂伃伈伋伌伒伕伖众 +伙伮伱你伳伵伷伹伻伾佀佂佈佉佋佌佒佔佖佘 +佟佣佪佬佮佱佷佸佹佺佽佾侁侂侄・・・・・ +鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃齄齅齆齇齓齕齖 +齗齘齚齝齞齨齩齭齮齯齰齱齳齵齺齽龏龐龑龒 +龔龖龗龞龡龢龣龥・・・・・・・・・・・・ +SELECT * FROM `T7`; +c1 + !"#$%&'()*+,-./ +0123456789:;<=>? +@ABCDEFGHIJKLMNO +PQRSTUVWXYZ[\]^_ +abcdefghijklmno +pqrstuvwxyz{|}~ + 。「」、・ヲァィゥェォャュョッ +ーアイウエオカキクケコサシスセソ +タチツテトナニヌネノハヒフヘホマ +ミムメモヤユヨラリルレロワン゙゚ +SELECT * FROM `T8`; +c1 +  、。,.・:;?!゛゜´`¨^ ̄_ヽ +ヾゝゞ〃仝々〆〇ー―‐/\〜‖|…‥‘’ +“”()〔〕[]{}〈〉《》「」『』【】 ++‐±×÷=≠<>≦≧∞∴♂♀°′″℃¥ +$¢£%#&*@§☆★○●◎◇・・・・・ +・◆□■△▲▽▼※〒→←↑↓〓・・・・・ +・・・・・・∈∋⊆⊇⊂⊃∪∩・・・・・・ +・・∧∨¬⇒⇔∀∃・・・・・・・・・・・ +∠⊥⌒∂∇≡≒≪≫√∽∝∵∫∬・・・・・ +・・ʼn♯♭♪†‡¶・・・・◯・・・・  +・・・・・・・・・・・・・・・・0123 +456789・・・・・・・ABCDEFG +HIJKLMNOPQRSTUVWXYZ・ +・・・・・abcdefghijklmno +pqrstuvwxyz・・・・・・・・・ +・ぁあぃいぅうぇえぉおかがきぎくぐけげこ +ごさざしじすずせぜそぞただちぢっつづてで +とどなにぬねのはばぱひびぴふぶぷへべぺほ +ぼぽまみむめもゃやゅゆょよらりるれろゎわ +ゐゑをん・・・・・・・・・・・・・・・・ +・ァアィイゥウェエォオカガキギクグケゲコ +ゴサザシジスズセゼソゾタダチヂッツヅテデ +トドナニヌネノハバパヒビピフブプヘベペホ +ボポマミムメモャヤュユョヨラリルレロヮワ +ヰヱヲンヴヵヶ・・・・・・・・・・・・・ +・ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤ +ΥΦΧΨΩ・・・・・・・・αβγδεζη +θικλμνξοπρστυφχψω・・・ +・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ +・АБВГДЕЁЖЗИЙКЛМНОПРС +ТУФХЦЧШЩЪЫЬЭЮЯ・・・・・・ +・・・・・・・・・абвгдеёжзий +клмнопрстуфхцчшщъыьэ +юя・・・・・・・・・・・・・・・・・・ +・─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳ +┫┻╋┠┯┨┷┿┝┰┥┸╂・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ +・亜唖娃阿哀愛挨姶逢葵茜穐悪握渥旭葦芦鯵 +梓圧斡扱宛姐虻飴絢綾鮎或粟袷安庵按暗案闇 +鞍杏以伊位依偉囲夷委威尉惟意慰易椅為畏異 +移維緯胃萎衣謂違遺医井亥域育郁磯一壱溢逸 +稲茨芋鰯允印咽員因姻引飲淫胤蔭・・・・・ +・蓮連錬呂魯櫓炉賂路露労婁廊弄朗楼榔浪漏 +牢狼篭老聾蝋郎六麓禄肋録論倭和話歪賄脇惑 +枠鷲亙亘鰐詫藁蕨椀湾碗腕・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ +・弌丐丕个丱丶丼丿乂乖乘亂亅豫亊舒弍于亞 +亟亠亢亰亳亶从仍仄仆仂仗仞仭仟价伉佚估佛 +佝佗佇佶侈侏侘佻佩佰侑佯來侖儘俔俟俎俘俛 +俑俚俐俤俥倚倨倔倪倥倅伜俶倡倩倬俾俯們倆 +偃假會偕偐偈做偖偬偸傀傚傅傴傲・・・・・ +・鵝鵞鵤鵑鵐鵙鵲鶉鶇鶫鵯鵺鶚鶤鶩鶲鷄鷁鶻 +鶸鶺鷆鷏鷂鷙鷓鷸鷦鷭鷯鷽鸚鸛鸞鹵鹹鹽麁麈 +麋麌麒麕麑麝麥麩麸麪麭靡黌黎黏黐黔黜點黝 +黠黥黨黯黴黶黷黹黻黼黽鼇鼈皷鼕鼡鼬鼾齊齒 +齔齣齟齠齡齦齧齬齪齷齲齶龕龜龠・・・・・ +・堯槇遙瑤凜熙・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ +SELECT * FROM `T9`; +c1 +・・・・・・・・・・・・・・・˘ˇ¸˙˝ +・˛˚~΄΅・・・・・・・・¡¦¿・・・ +・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・ºª©®™ +¤№・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ +・・・・・ΆΈΉΊΪ・Ό・ΎΫ・Ώ・・・ +・άέήίϊΐόςύϋΰώ・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・ЂЃЄЅІЇ +ЈЉЊЋЌЎЏ・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ +・・ђѓєѕіїјљњћќўџ・・・・・ +・ÆĐ・Ħ・IJ・ŁĿ・ŊØŒ・ŦÞ・・・ +・・・・・・・・・・・・・æđðħıijĸ +łŀʼnŋøœßŧþ・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ +・ÁÀÄÂĂǍĀĄÅÃĆĈČÇĊĎÉÈË +ÊĚĖĒĘ・ĜĞĢĠĤÍÌÏÎǏİĪĮĨ +ĴĶĹĽĻŃŇŅÑÓÒÖÔǑŐŌÕŔŘŖ +ŚŜŠŞŤŢÚÙÜÛŬǓŰŪŲŮŨǗǛǙ +ǕŴÝŸŶŹŽŻ・・・・・・・・・・・・ +・áàäâăǎāąåãćĉčçċďéèë +êěėēęǵĝğ・ġĥíìïîǐ・īįĩ +ĵķĺľļńňņñóòöôǒőōõŕřŗ +śŝšşťţúùüûŭǔűūųůũǘǜǚ +ǖŵýÿŷźžż・・・・・・・・・・・・ +・丂丄丅丌丒丟丣两丨丫丮丯丰丵乀乁乄乇乑 +乚乜乣乨乩乴乵乹乿亍亖亗亝亯亹仃仐仚仛仠 +仡仢仨仯仱仳仵份仾仿伀伂伃伈伋伌伒伕伖众 +伙伮伱你伳伵伷伹伻伾佀佂佈佉佋佌佒佔佖佘 +佟佣佪佬佮佱佷佸佹佺佽佾侁侂侄・・・・・ +・黸黿鼂鼃鼉鼏鼐鼑鼒鼔鼖鼗鼙鼚鼛鼟鼢鼦鼪 +鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃齄齅齆齇齓齕齖 +齗齘齚齝齞齨齩齭齮齯齰齱齳齵齺齽龏龐龑龒 +龔龖龗龞龡龢龣龥・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ +SELECT * FROM `T10`; +c1 + !"#$%&'()*+,-./ +0123456789:;<=>? +@ABCDEFGHIJKLMNO +PQRSTUVWXYZ[\]^_ +abcdefghijklmno +pqrstuvwxyz{|}~ + 。「」、・ヲァィゥェォャュョッ +ーアイウエオカキクケコサシスセソ +タチツテトナニヌネノハヒフヘホマ +ミムメモヤユヨラリルレロワン゙゚ +SELECT * FROM `T11`; +c1 +  、。,.・:;?!゛゜´`¨^ ̄_ヽ +ヾゝゞ〃仝々〆〇ー―‐/\〜‖|…‥‘’ +“”()〔〕[]{}〈〉《》「」『』【】 ++‐±×÷=≠<>≦≧∞∴♂♀°′″℃¥ +$¢£%#&*@§☆★○●◎◇・・・・・ +・◆□■△▲▽▼※〒→←↑↓〓・・・・・ +・・・・・・∈∋⊆⊇⊂⊃∪∩・・・・・・ +・・∧∨¬⇒⇔∀∃・・・・・・・・・・・ +∠⊥⌒∂∇≡≒≪≫√∽∝∵∫∬・・・・・ +・・ʼn♯♭♪†‡¶・・・・◯・・・・  +・・・・・・・・・・・・・・・・0123 +456789・・・・・・・ABCDEFG +HIJKLMNOPQRSTUVWXYZ・ +・・・・・abcdefghijklmno +pqrstuvwxyz・・・・・・・・・ +・ぁあぃいぅうぇえぉおかがきぎくぐけげこ +ごさざしじすずせぜそぞただちぢっつづてで +とどなにぬねのはばぱひびぴふぶぷへべぺほ +ぼぽまみむめもゃやゅゆょよらりるれろゎわ +ゐゑをん・・・・・・・・・・・・・・・・ +・ァアィイゥウェエォオカガキギクグケゲコ +ゴサザシジスズセゼソゾタダチヂッツヅテデ +トドナニヌネノハバパヒビピフブプヘベペホ +ボポマミムメモャヤュユョヨラリルレロヮワ +ヰヱヲンヴヵヶ・・・・・・・・・・・・・ +・ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤ +ΥΦΧΨΩ・・・・・・・・αβγδεζη +θικλμνξοπρστυφχψω・・・ +・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ +・АБВГДЕЁЖЗИЙКЛМНОПРС +ТУФХЦЧШЩЪЫЬЭЮЯ・・・・・・ +・・・・・・・・・абвгдеёжзий +клмнопрстуфхцчшщъыьэ +юя・・・・・・・・・・・・・・・・・・ +・─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳ +┫┻╋┠┯┨┷┿┝┰┥┸╂・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ +・亜唖娃阿哀愛挨姶逢葵茜穐悪握渥旭葦芦鯵 +梓圧斡扱宛姐虻飴絢綾鮎或粟袷安庵按暗案闇 +鞍杏以伊位依偉囲夷委威尉惟意慰易椅為畏異 +移維緯胃萎衣謂違遺医井亥域育郁磯一壱溢逸 +稲茨芋鰯允印咽員因姻引飲淫胤蔭・・・・・ +・蓮連錬呂魯櫓炉賂路露労婁廊弄朗楼榔浪漏 +牢狼篭老聾蝋郎六麓禄肋録論倭和話歪賄脇惑 +枠鷲亙亘鰐詫藁蕨椀湾碗腕・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ +・弌丐丕个丱丶丼丿乂乖乘亂亅豫亊舒弍于亞 +亟亠亢亰亳亶从仍仄仆仂仗仞仭仟价伉佚估佛 +佝佗佇佶侈侏侘佻佩佰侑佯來侖儘俔俟俎俘俛 +俑俚俐俤俥倚倨倔倪倥倅伜俶倡倩倬俾俯們倆 +偃假會偕偐偈做偖偬偸傀傚傅傴傲・・・・・ +・鵝鵞鵤鵑鵐鵙鵲鶉鶇鶫鵯鵺鶚鶤鶩鶲鷄鷁鶻 +鶸鶺鷆鷏鷂鷙鷓鷸鷦鷭鷯鷽鸚鸛鸞鹵鹹鹽麁麈 +麋麌麒麕麑麝麥麩麸麪麭靡黌黎黏黐黔黜點黝 +黠黥黨黯黴黶黷黹黻黼黽鼇鼈皷鼕鼡鼬鼾齊齒 +齔齣齟齠齡齦齧齬齪齷齲齶龕龜龠・・・・・ +・堯槇遙瑤凜熙・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ +SELECT * FROM `T12`; +c1 +・・・・・・・・・・・・・・・˘ˇ¸˙˝ +・˛˚~΄΅・・・・・・・・¡¦¿・・・ +・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・ºª©®™ +¤№・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ +・・・・・ΆΈΉΊΪ・Ό・ΎΫ・Ώ・・・ +・άέήίϊΐόςύϋΰώ・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・ЂЃЄЅІЇ +ЈЉЊЋЌЎЏ・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ +・・ђѓєѕіїјљњћќўџ・・・・・ +・ÆĐ・Ħ・IJ・ŁĿ・ŊØŒ・ŦÞ・・・ +・・・・・・・・・・・・・æđðħıijĸ +łŀʼnŋøœßŧþ・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ +・ÁÀÄÂĂǍĀĄÅÃĆĈČÇĊĎÉÈË +ÊĚĖĒĘ・ĜĞĢĠĤÍÌÏÎǏİĪĮĨ +ĴĶĹĽĻŃŇŅÑÓÒÖÔǑŐŌÕŔŘŖ +ŚŜŠŞŤŢÚÙÜÛŬǓŰŪŲŮŨǗǛǙ +ǕŴÝŸŶŹŽŻ・・・・・・・・・・・・ +・áàäâăǎāąåãćĉčçċďéèë +êěėēęǵĝğ・ġĥíìïîǐ・īįĩ +ĵķĺľļńňņñóòöôǒőōõŕřŗ +śŝšşťţúùüûŭǔűūųůũǘǜǚ +ǖŵýÿŷźžż・・・・・・・・・・・・ +・丂丄丅丌丒丟丣两丨丫丮丯丰丵乀乁乄乇乑 +乚乜乣乨乩乴乵乹乿亍亖亗亝亯亹仃仐仚仛仠 +仡仢仨仯仱仳仵份仾仿伀伂伃伈伋伌伒伕伖众 +伙伮伱你伳伵伷伹伻伾佀佂佈佉佋佌佒佔佖佘 +佟佣佪佬佮佱佷佸佹佺佽佾侁侂侄・・・・・ +・黸黿鼂鼃鼉鼏鼐鼑鼒鼔鼖鼗鼙鼚鼛鼟鼢鼦鼪 +鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃齄齅齆齇齓齕齖 +齗齘齚齝齞齨齩齭齮齯齰齱齳齵齺齽龏龐龑龒 +龔龖龗龞龡龢龣龥・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ +drop table `T1`; +drop table `T2`; +drop table `T3`; +drop table `T4`; +drop table `T5`; +drop table `T6`; +drop table `T7`; +drop table `T8`; +drop table `T9`; +drop table `T10`; +drop table `T11`; +drop table `T12`; diff --git a/mysql-test/suite/jp/r/jp_subquery_sjis.result b/mysql-test/suite/jp/r/jp_subquery_sjis.result new file mode 100755 index 00000000000..b94de3630af --- /dev/null +++ b/mysql-test/suite/jp/r/jp_subquery_sjis.result @@ -0,0 +1,206 @@ +drop table if exists `sP`; +drop table if exists `sQ`; +drop table if exists `sR`; +drop table if exists `sS`; +drop table if exists `sT`; +drop table if exists `sU`; +drop table if exists `sV`; +drop table if exists `sW`; +drop table if exists `sX`; +drop table if exists `sPO`; +drop table if exists `sPP`; +drop table if exists `sPQ`; +SET NAMES sjis; +SET character_set_database = sjis; +CREATE TABLE `sPa` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sPb` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sQa` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sQb` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sRa` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sRb` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sSa` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sSb` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sTa` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sTb` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sUa` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sUb` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sVa` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sVb` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sWa` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sWb` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sXa` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sXb` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sPOa` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sPOb` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sPPa` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sPPb` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sPQa` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sPQb` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = heap; +INSERT INTO `sPa` VALUES (''),(''),(''); +INSERT INTO `sPb` VALUES (''); +INSERT INTO `sQa` VALUES (''),(''),(''); +INSERT INTO `sQb` VALUES (''); +INSERT INTO `sRa` VALUES ('\'),('\'),('\'); +INSERT INTO `sRb` VALUES ('\'); +INSERT INTO `sSa` VALUES (''),(''),(''); +INSERT INTO `sSb` VALUES (''); +INSERT INTO `sTa` VALUES (''),(''),(''); +INSERT INTO `sTb` VALUES (''); +INSERT INTO `sUa` VALUES ('\'),('\'),('\'); +INSERT INTO `sUb` VALUES ('\'); +INSERT INTO `sVa` VALUES (''),(''),(''); +INSERT INTO `sVb` VALUES (''); +INSERT INTO `sWa` VALUES (''),(''),(''); +INSERT INTO `sWb` VALUES (''); +INSERT INTO `sXa` VALUES ('\'),('\'),('\'); +INSERT INTO `sXb` VALUES ('\'); +INSERT INTO `sPOa` VALUES (''),(''),(''); +INSERT INTO `sPOb` VALUES (''); +INSERT INTO `sPPa` VALUES (''),(''),(''); +INSERT INTO `sPPb` VALUES (''); +INSERT INTO `sPQa` VALUES ('\'),('\'),('\'); +INSERT INTO `sPQb` VALUES ('\'); +SELECT `bP` FROM `sPa` WHERE `bP` IN (SELECT `bP` FROM `sPb`); +bP + +SELECT `bP` FROM `sPa` WHERE EXISTS (SELECT `bP` FROM `sPb` WHERE `sPa`.`bP` = `sPb`.`bP`); +bP + +SELECT `bP` FROM `sPa` WHERE NOT EXISTS (SELECT `bP` FROM `sPb` WHERE `sPa`.`bP` = `sPb`.`bP`); +bP + + +SELECT `bP` FROM `sQa` WHERE `bP` IN (SELECT `bP` FROM `sQb`); +bP + +SELECT `bP` FROM `sQa` WHERE EXISTS (SELECT `bP` FROM `sQb` WHERE `sQa`.`bP` = `sQb`.`bP`); +bP + +SELECT `bP` FROM `sQa` WHERE NOT EXISTS (SELECT `bP` FROM `sQb` WHERE `sQa`.`bP` = `sQb`.`bP`); +bP + + +SELECT `bP` FROM `sRa` WHERE `bP` IN (SELECT `bP` FROM `sRb`); +bP +\ +SELECT `bP` FROM `sRa` WHERE EXISTS (SELECT `bP` FROM `sRb` WHERE `sRa`.`bP` = `sRb`.`bP`); +bP +\ +SELECT `bP` FROM `sRa` WHERE NOT EXISTS (SELECT `bP` FROM `sRb` WHERE `sRa`.`bP` = `sRb`.`bP`); +bP +\ +\ +SELECT `bP` FROM `sSa` WHERE `bP` IN (SELECT `bP` FROM `sSb`); +bP + +SELECT `bP` FROM `sSa` WHERE EXISTS (SELECT `bP` FROM `sSb` WHERE `sSa`.`bP` = `sSb`.`bP`); +bP + +SELECT `bP` FROM `sSa` WHERE NOT EXISTS (SELECT `bP` FROM `sSb` WHERE `sSa`.`bP` = `sSb`.`bP`); +bP + + +SELECT `bP` FROM `sTa` WHERE `bP` IN (SELECT `bP` FROM `sTb`); +bP + +SELECT `bP` FROM `sTa` WHERE EXISTS (SELECT `bP` FROM `sTb` WHERE `sTa`.`bP` = `sTb`.`bP`); +bP + +SELECT `bP` FROM `sTa` WHERE NOT EXISTS (SELECT `bP` FROM `sTb` WHERE `sTa`.`bP` = `sTb`.`bP`); +bP + + +SELECT `bP` FROM `sUa` WHERE `bP` IN (SELECT `bP` FROM `sUb`); +bP +\ +SELECT `bP` FROM `sUa` WHERE EXISTS (SELECT `bP` FROM `sUb` WHERE `sUa`.`bP` = `sUb`.`bP`); +bP +\ +SELECT `bP` FROM `sUa` WHERE NOT EXISTS (SELECT `bP` FROM `sUb` WHERE `sUa`.`bP` = `sUb`.`bP`); +bP +\ +\ +SELECT `bP` FROM `sVa` WHERE `bP` IN (SELECT `bP` FROM `sVb`); +bP + +SELECT `bP` FROM `sVa` WHERE EXISTS (SELECT `bP` FROM `sVb` WHERE `sVa`.`bP` = `sVb`.`bP`); +bP + +SELECT `bP` FROM `sVa` WHERE NOT EXISTS (SELECT `bP` FROM `sVb` WHERE `sVa`.`bP` = `sVb`.`bP`); +bP + + +SELECT `bP` FROM `sWa` WHERE `bP` IN (SELECT `bP` FROM `sWb`); +bP + +SELECT `bP` FROM `sWa` WHERE EXISTS (SELECT `bP` FROM `sWb` WHERE `sWa`.`bP` = `sWb`.`bP`); +bP + +SELECT `bP` FROM `sWa` WHERE NOT EXISTS (SELECT `bP` FROM `sWb` WHERE `sWa`.`bP` = `sWb`.`bP`); +bP + + +SELECT `bP` FROM `sXa` WHERE `bP` IN (SELECT `bP` FROM `sXb`); +bP +\ +SELECT `bP` FROM `sXa` WHERE EXISTS (SELECT `bP` FROM `sXb` WHERE `sXa`.`bP` = `sXb`.`bP`); +bP +\ +SELECT `bP` FROM `sXa` WHERE NOT EXISTS (SELECT `bP` FROM `sXb` WHERE `sXa`.`bP` = `sXb`.`bP`); +bP +\ +\ +SELECT `bP` FROM `sPOa` WHERE `bP` IN (SELECT `bP` FROM `sPOb`); +bP + +SELECT `bP` FROM `sPOa` WHERE EXISTS (SELECT `bP` FROM `sPOb` WHERE `sPOa`.`bP` = `sPOb`.`bP`); +bP + +SELECT `bP` FROM `sPOa` WHERE NOT EXISTS (SELECT `bP` FROM `sPOb` WHERE `sPOa`.`bP` = `sPOb`.`bP`); +bP + + +SELECT `bP` FROM `sPPa` WHERE `bP` IN (SELECT `bP` FROM `sPPb`); +bP + +SELECT `bP` FROM `sPPa` WHERE EXISTS (SELECT `bP` FROM `sPPb` WHERE `sPPa`.`bP` = `sPPb`.`bP`); +bP + +SELECT `bP` FROM `sPPa` WHERE NOT EXISTS (SELECT `bP` FROM `sPPb` WHERE `sPPa`.`bP` = `sPPb`.`bP`); +bP + + +SELECT `bP` FROM `sPQa` WHERE `bP` IN (SELECT `bP` FROM `sPQb`); +bP +\ +SELECT `bP` FROM `sPQa` WHERE EXISTS (SELECT `bP` FROM `sPQb` WHERE `sPQa`.`bP` = `sPQb`.`bP`); +bP +\ +SELECT `bP` FROM `sPQa` WHERE NOT EXISTS (SELECT `bP` FROM `sPQb` WHERE `sPQa`.`bP` = `sPQb`.`bP`); +bP +\ +\ +DROP TABLE `sPa`; +DROP TABLE `sPb`; +DROP TABLE `sQa`; +DROP TABLE `sQb`; +DROP TABLE `sRa`; +DROP TABLE `sRb`; +DROP TABLE `sSa`; +DROP TABLE `sSb`; +DROP TABLE `sTa`; +DROP TABLE `sTb`; +DROP TABLE `sUa`; +DROP TABLE `sUb`; +DROP TABLE `sVa`; +DROP TABLE `sVb`; +DROP TABLE `sWa`; +DROP TABLE `sWb`; +DROP TABLE `sXa`; +DROP TABLE `sXb`; +DROP TABLE `sPOa`; +DROP TABLE `sPOb`; +DROP TABLE `sPPa`; +DROP TABLE `sPPb`; +DROP TABLE `sPQa`; +DROP TABLE `sPQb`; diff --git a/mysql-test/suite/jp/r/jp_subquery_ucs2.result b/mysql-test/suite/jp/r/jp_subquery_ucs2.result new file mode 100755 index 00000000000..023100ecce3 --- /dev/null +++ b/mysql-test/suite/jp/r/jp_subquery_ucs2.result @@ -0,0 +1,207 @@ +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +SET NAMES ujis; +SET character_set_database = ucs2; +SET collation_connection = ucs2_general_ci; +CREATE TABLE `ԣa` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣb` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣa` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣb` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣa` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣb` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣa` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣb` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣa` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣb` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣa` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣb` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣa` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣb` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣa` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣb` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣa` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣb` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣa` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣb` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣa` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣb` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣa` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣb` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = heap; +INSERT INTO `ԣa` VALUES (''),(''),(''); +INSERT INTO `ԣb` VALUES (''); +INSERT INTO `ԣa` VALUES (''),(''),(''); +INSERT INTO `ԣb` VALUES (''); +INSERT INTO `ԣa` VALUES (''),(''),(''); +INSERT INTO `ԣb` VALUES (''); +INSERT INTO `ԣa` VALUES (''),(''),(''); +INSERT INTO `ԣb` VALUES (''); +INSERT INTO `ԣa` VALUES (''),(''),(''); +INSERT INTO `ԣb` VALUES (''); +INSERT INTO `ԣa` VALUES (''),(''),(''); +INSERT INTO `ԣb` VALUES (''); +INSERT INTO `ԣa` VALUES (''),(''),(''); +INSERT INTO `ԣb` VALUES (''); +INSERT INTO `ԣa` VALUES (''),(''),(''); +INSERT INTO `ԣb` VALUES (''); +INSERT INTO `ԣa` VALUES (''),(''),(''); +INSERT INTO `ԣb` VALUES (''); +INSERT INTO `ԣa` VALUES (''),(''),(''); +INSERT INTO `ԣb` VALUES (''); +INSERT INTO `ԣa` VALUES (''),(''),(''); +INSERT INTO `ԣb` VALUES (''); +INSERT INTO `ԣa` VALUES (''),(''),(''); +INSERT INTO `ԣb` VALUES (''); +SELECT `ã` FROM `ԣa` WHERE `ã` IN (SELECT `ã` FROM `ԣb`); +ã + +SELECT `ã` FROM `ԣa` WHERE EXISTS (SELECT `ã` FROM `ԣb` WHERE `ԣa`.`ã` = `ԣb`.`ã`); +ã + +SELECT `ã` FROM `ԣa` WHERE NOT EXISTS (SELECT `ã` FROM `ԣb` WHERE `ԣa`.`ã` = `ԣb`.`ã`); +ã + + +SELECT `ã` FROM `ԣa` WHERE `ã` IN (SELECT `ã` FROM `ԣb`); +ã + +SELECT `ã` FROM `ԣa` WHERE EXISTS (SELECT `ã` FROM `ԣb` WHERE `ԣa`.`ã` = `ԣb`.`ã`); +ã + +SELECT `ã` FROM `ԣa` WHERE NOT EXISTS (SELECT `ã` FROM `ԣb` WHERE `ԣa`.`ã` = `ԣb`.`ã`); +ã + + +SELECT `ã` FROM `ԣa` WHERE `ã` IN (SELECT `ã` FROM `ԣb`); +ã + +SELECT `ã` FROM `ԣa` WHERE EXISTS (SELECT `ã` FROM `ԣb` WHERE `ԣa`.`ã` = `ԣb`.`ã`); +ã + +SELECT `ã` FROM `ԣa` WHERE NOT EXISTS (SELECT `ã` FROM `ԣb` WHERE `ԣa`.`ã` = `ԣb`.`ã`); +ã + + +SELECT `ã` FROM `ԣa` WHERE `ã` IN (SELECT `ã` FROM `ԣb`); +ã + +SELECT `ã` FROM `ԣa` WHERE EXISTS (SELECT `ã` FROM `ԣb` WHERE `ԣa`.`ã` = `ԣb`.`ã`); +ã + +SELECT `ã` FROM `ԣa` WHERE NOT EXISTS (SELECT `ã` FROM `ԣb` WHERE `ԣa`.`ã` = `ԣb`.`ã`); +ã + + +SELECT `ã` FROM `ԣa` WHERE `ã` IN (SELECT `ã` FROM `ԣb`); +ã + +SELECT `ã` FROM `ԣa` WHERE EXISTS (SELECT `ã` FROM `ԣb` WHERE `ԣa`.`ã` = `ԣb`.`ã`); +ã + +SELECT `ã` FROM `ԣa` WHERE NOT EXISTS (SELECT `ã` FROM `ԣb` WHERE `ԣa`.`ã` = `ԣb`.`ã`); +ã + + +SELECT `ã` FROM `ԣa` WHERE `ã` IN (SELECT `ã` FROM `ԣb`); +ã + +SELECT `ã` FROM `ԣa` WHERE EXISTS (SELECT `ã` FROM `ԣb` WHERE `ԣa`.`ã` = `ԣb`.`ã`); +ã + +SELECT `ã` FROM `ԣa` WHERE NOT EXISTS (SELECT `ã` FROM `ԣb` WHERE `ԣa`.`ã` = `ԣb`.`ã`); +ã + + +SELECT `ã` FROM `ԣa` WHERE `ã` IN (SELECT `ã` FROM `ԣb`); +ã + +SELECT `ã` FROM `ԣa` WHERE EXISTS (SELECT `ã` FROM `ԣb` WHERE `ԣa`.`ã` = `ԣb`.`ã`); +ã + +SELECT `ã` FROM `ԣa` WHERE NOT EXISTS (SELECT `ã` FROM `ԣb` WHERE `ԣa`.`ã` = `ԣb`.`ã`); +ã + + +SELECT `ã` FROM `ԣa` WHERE `ã` IN (SELECT `ã` FROM `ԣb`); +ã + +SELECT `ã` FROM `ԣa` WHERE EXISTS (SELECT `ã` FROM `ԣb` WHERE `ԣa`.`ã` = `ԣb`.`ã`); +ã + +SELECT `ã` FROM `ԣa` WHERE NOT EXISTS (SELECT `ã` FROM `ԣb` WHERE `ԣa`.`ã` = `ԣb`.`ã`); +ã + + +SELECT `ã` FROM `ԣa` WHERE `ã` IN (SELECT `ã` FROM `ԣb`); +ã + +SELECT `ã` FROM `ԣa` WHERE EXISTS (SELECT `ã` FROM `ԣb` WHERE `ԣa`.`ã` = `ԣb`.`ã`); +ã + +SELECT `ã` FROM `ԣa` WHERE NOT EXISTS (SELECT `ã` FROM `ԣb` WHERE `ԣa`.`ã` = `ԣb`.`ã`); +ã + + +SELECT `ã` FROM `ԣa` WHERE `ã` IN (SELECT `ã` FROM `ԣb`); +ã + +SELECT `ã` FROM `ԣa` WHERE EXISTS (SELECT `ã` FROM `ԣb` WHERE `ԣa`.`ã` = `ԣb`.`ã`); +ã + +SELECT `ã` FROM `ԣa` WHERE NOT EXISTS (SELECT `ã` FROM `ԣb` WHERE `ԣa`.`ã` = `ԣb`.`ã`); +ã + + +SELECT `ã` FROM `ԣa` WHERE `ã` IN (SELECT `ã` FROM `ԣb`); +ã + +SELECT `ã` FROM `ԣa` WHERE EXISTS (SELECT `ã` FROM `ԣb` WHERE `ԣa`.`ã` = `ԣb`.`ã`); +ã + +SELECT `ã` FROM `ԣa` WHERE NOT EXISTS (SELECT `ã` FROM `ԣb` WHERE `ԣa`.`ã` = `ԣb`.`ã`); +ã + + +SELECT `ã` FROM `ԣa` WHERE `ã` IN (SELECT `ã` FROM `ԣb`); +ã + +SELECT `ã` FROM `ԣa` WHERE EXISTS (SELECT `ã` FROM `ԣb` WHERE `ԣa`.`ã` = `ԣb`.`ã`); +ã + +SELECT `ã` FROM `ԣa` WHERE NOT EXISTS (SELECT `ã` FROM `ԣb` WHERE `ԣa`.`ã` = `ԣb`.`ã`); +ã + + +DROP TABLE `ԣa`; +DROP TABLE `ԣb`; +DROP TABLE `ԣa`; +DROP TABLE `ԣb`; +DROP TABLE `ԣa`; +DROP TABLE `ԣb`; +DROP TABLE `ԣa`; +DROP TABLE `ԣb`; +DROP TABLE `ԣa`; +DROP TABLE `ԣb`; +DROP TABLE `ԣa`; +DROP TABLE `ԣb`; +DROP TABLE `ԣa`; +DROP TABLE `ԣb`; +DROP TABLE `ԣa`; +DROP TABLE `ԣb`; +DROP TABLE `ԣa`; +DROP TABLE `ԣb`; +DROP TABLE `ԣa`; +DROP TABLE `ԣb`; +DROP TABLE `ԣa`; +DROP TABLE `ԣb`; +DROP TABLE `ԣa`; +DROP TABLE `ԣb`; diff --git a/mysql-test/suite/jp/r/jp_subquery_ujis.result b/mysql-test/suite/jp/r/jp_subquery_ujis.result new file mode 100755 index 00000000000..0b6aa03970f --- /dev/null +++ b/mysql-test/suite/jp/r/jp_subquery_ujis.result @@ -0,0 +1,206 @@ +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +SET NAMES ujis; +SET character_set_database = ujis; +CREATE TABLE `ԣa` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣb` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣa` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣb` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣa` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣb` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣa` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣb` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣa` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣb` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣa` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣb` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣa` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣb` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣa` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣb` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣa` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣb` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣa` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣb` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣa` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣb` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣa` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣb` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ujis engine = heap; +INSERT INTO `ԣa` VALUES (''),(''),(''); +INSERT INTO `ԣb` VALUES (''); +INSERT INTO `ԣa` VALUES (''),(''),(''); +INSERT INTO `ԣb` VALUES (''); +INSERT INTO `ԣa` VALUES (''),(''),(''); +INSERT INTO `ԣb` VALUES (''); +INSERT INTO `ԣa` VALUES (''),(''),(''); +INSERT INTO `ԣb` VALUES (''); +INSERT INTO `ԣa` VALUES (''),(''),(''); +INSERT INTO `ԣb` VALUES (''); +INSERT INTO `ԣa` VALUES (''),(''),(''); +INSERT INTO `ԣb` VALUES (''); +INSERT INTO `ԣa` VALUES (''),(''),(''); +INSERT INTO `ԣb` VALUES (''); +INSERT INTO `ԣa` VALUES (''),(''),(''); +INSERT INTO `ԣb` VALUES (''); +INSERT INTO `ԣa` VALUES (''),(''),(''); +INSERT INTO `ԣb` VALUES (''); +INSERT INTO `ԣa` VALUES (''),(''),(''); +INSERT INTO `ԣb` VALUES (''); +INSERT INTO `ԣa` VALUES (''),(''),(''); +INSERT INTO `ԣb` VALUES (''); +INSERT INTO `ԣa` VALUES (''),(''),(''); +INSERT INTO `ԣb` VALUES (''); +SELECT `ã` FROM `ԣa` WHERE `ã` IN (SELECT `ã` FROM `ԣb`); +ã + +SELECT `ã` FROM `ԣa` WHERE EXISTS (SELECT `ã` FROM `ԣb` WHERE `ԣa`.`ã` = `ԣb`.`ã`); +ã + +SELECT `ã` FROM `ԣa` WHERE NOT EXISTS (SELECT `ã` FROM `ԣb` WHERE `ԣa`.`ã` = `ԣb`.`ã`); +ã + + +SELECT `ã` FROM `ԣa` WHERE `ã` IN (SELECT `ã` FROM `ԣb`); +ã + +SELECT `ã` FROM `ԣa` WHERE EXISTS (SELECT `ã` FROM `ԣb` WHERE `ԣa`.`ã` = `ԣb`.`ã`); +ã + +SELECT `ã` FROM `ԣa` WHERE NOT EXISTS (SELECT `ã` FROM `ԣb` WHERE `ԣa`.`ã` = `ԣb`.`ã`); +ã + + +SELECT `ã` FROM `ԣa` WHERE `ã` IN (SELECT `ã` FROM `ԣb`); +ã + +SELECT `ã` FROM `ԣa` WHERE EXISTS (SELECT `ã` FROM `ԣb` WHERE `ԣa`.`ã` = `ԣb`.`ã`); +ã + +SELECT `ã` FROM `ԣa` WHERE NOT EXISTS (SELECT `ã` FROM `ԣb` WHERE `ԣa`.`ã` = `ԣb`.`ã`); +ã + + +SELECT `ã` FROM `ԣa` WHERE `ã` IN (SELECT `ã` FROM `ԣb`); +ã + +SELECT `ã` FROM `ԣa` WHERE EXISTS (SELECT `ã` FROM `ԣb` WHERE `ԣa`.`ã` = `ԣb`.`ã`); +ã + +SELECT `ã` FROM `ԣa` WHERE NOT EXISTS (SELECT `ã` FROM `ԣb` WHERE `ԣa`.`ã` = `ԣb`.`ã`); +ã + + +SELECT `ã` FROM `ԣa` WHERE `ã` IN (SELECT `ã` FROM `ԣb`); +ã + +SELECT `ã` FROM `ԣa` WHERE EXISTS (SELECT `ã` FROM `ԣb` WHERE `ԣa`.`ã` = `ԣb`.`ã`); +ã + +SELECT `ã` FROM `ԣa` WHERE NOT EXISTS (SELECT `ã` FROM `ԣb` WHERE `ԣa`.`ã` = `ԣb`.`ã`); +ã + + +SELECT `ã` FROM `ԣa` WHERE `ã` IN (SELECT `ã` FROM `ԣb`); +ã + +SELECT `ã` FROM `ԣa` WHERE EXISTS (SELECT `ã` FROM `ԣb` WHERE `ԣa`.`ã` = `ԣb`.`ã`); +ã + +SELECT `ã` FROM `ԣa` WHERE NOT EXISTS (SELECT `ã` FROM `ԣb` WHERE `ԣa`.`ã` = `ԣb`.`ã`); +ã + + +SELECT `ã` FROM `ԣa` WHERE `ã` IN (SELECT `ã` FROM `ԣb`); +ã + +SELECT `ã` FROM `ԣa` WHERE EXISTS (SELECT `ã` FROM `ԣb` WHERE `ԣa`.`ã` = `ԣb`.`ã`); +ã + +SELECT `ã` FROM `ԣa` WHERE NOT EXISTS (SELECT `ã` FROM `ԣb` WHERE `ԣa`.`ã` = `ԣb`.`ã`); +ã + + +SELECT `ã` FROM `ԣa` WHERE `ã` IN (SELECT `ã` FROM `ԣb`); +ã + +SELECT `ã` FROM `ԣa` WHERE EXISTS (SELECT `ã` FROM `ԣb` WHERE `ԣa`.`ã` = `ԣb`.`ã`); +ã + +SELECT `ã` FROM `ԣa` WHERE NOT EXISTS (SELECT `ã` FROM `ԣb` WHERE `ԣa`.`ã` = `ԣb`.`ã`); +ã + + +SELECT `ã` FROM `ԣa` WHERE `ã` IN (SELECT `ã` FROM `ԣb`); +ã + +SELECT `ã` FROM `ԣa` WHERE EXISTS (SELECT `ã` FROM `ԣb` WHERE `ԣa`.`ã` = `ԣb`.`ã`); +ã + +SELECT `ã` FROM `ԣa` WHERE NOT EXISTS (SELECT `ã` FROM `ԣb` WHERE `ԣa`.`ã` = `ԣb`.`ã`); +ã + + +SELECT `ã` FROM `ԣa` WHERE `ã` IN (SELECT `ã` FROM `ԣb`); +ã + +SELECT `ã` FROM `ԣa` WHERE EXISTS (SELECT `ã` FROM `ԣb` WHERE `ԣa`.`ã` = `ԣb`.`ã`); +ã + +SELECT `ã` FROM `ԣa` WHERE NOT EXISTS (SELECT `ã` FROM `ԣb` WHERE `ԣa`.`ã` = `ԣb`.`ã`); +ã + + +SELECT `ã` FROM `ԣa` WHERE `ã` IN (SELECT `ã` FROM `ԣb`); +ã + +SELECT `ã` FROM `ԣa` WHERE EXISTS (SELECT `ã` FROM `ԣb` WHERE `ԣa`.`ã` = `ԣb`.`ã`); +ã + +SELECT `ã` FROM `ԣa` WHERE NOT EXISTS (SELECT `ã` FROM `ԣb` WHERE `ԣa`.`ã` = `ԣb`.`ã`); +ã + + +SELECT `ã` FROM `ԣa` WHERE `ã` IN (SELECT `ã` FROM `ԣb`); +ã + +SELECT `ã` FROM `ԣa` WHERE EXISTS (SELECT `ã` FROM `ԣb` WHERE `ԣa`.`ã` = `ԣb`.`ã`); +ã + +SELECT `ã` FROM `ԣa` WHERE NOT EXISTS (SELECT `ã` FROM `ԣb` WHERE `ԣa`.`ã` = `ԣb`.`ã`); +ã + + +DROP TABLE `ԣa`; +DROP TABLE `ԣb`; +DROP TABLE `ԣa`; +DROP TABLE `ԣb`; +DROP TABLE `ԣa`; +DROP TABLE `ԣb`; +DROP TABLE `ԣa`; +DROP TABLE `ԣb`; +DROP TABLE `ԣa`; +DROP TABLE `ԣb`; +DROP TABLE `ԣa`; +DROP TABLE `ԣb`; +DROP TABLE `ԣa`; +DROP TABLE `ԣb`; +DROP TABLE `ԣa`; +DROP TABLE `ԣb`; +DROP TABLE `ԣa`; +DROP TABLE `ԣb`; +DROP TABLE `ԣa`; +DROP TABLE `ԣb`; +DROP TABLE `ԣa`; +DROP TABLE `ԣb`; +DROP TABLE `ԣa`; +DROP TABLE `ԣb`; diff --git a/mysql-test/suite/jp/r/jp_subquery_utf8.result b/mysql-test/suite/jp/r/jp_subquery_utf8.result new file mode 100755 index 00000000000..ce56e660a65 --- /dev/null +++ b/mysql-test/suite/jp/r/jp_subquery_utf8.result @@ -0,0 +1,206 @@ +drop table if exists `T1`; +drop table if exists `T2`; +drop table if exists `T3`; +drop table if exists `T4`; +drop table if exists `T5`; +drop table if exists `T6`; +drop table if exists `T7`; +drop table if exists `T8`; +drop table if exists `T9`; +drop table if exists `T10`; +drop table if exists `T11`; +drop table if exists `T12`; +SET NAMES utf8; +SET character_set_database = utf8; +CREATE TABLE `T1a` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T1b` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T2a` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T2b` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T3a` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T3b` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T4a` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T4b` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T5a` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T5b` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T6a` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T6b` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T7a` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T7b` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T8a` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T8b` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T9a` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T9b` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T10a` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T10b` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T11a` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T11b` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T12a` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T12b` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = heap; +INSERT INTO `T1a` VALUES ('ア'),('カ'),('サ'); +INSERT INTO `T1b` VALUES ('ア'); +INSERT INTO `T2a` VALUES ('あ'),('か'),('さ'); +INSERT INTO `T2b` VALUES ('あ'); +INSERT INTO `T3a` VALUES ('龔'),('龖'),('龗'); +INSERT INTO `T3b` VALUES ('龔'); +INSERT INTO `T4a` VALUES ('ア'),('カ'),('サ'); +INSERT INTO `T4b` VALUES ('ア'); +INSERT INTO `T5a` VALUES ('あ'),('か'),('さ'); +INSERT INTO `T5b` VALUES ('あ'); +INSERT INTO `T6a` VALUES ('龔'),('龖'),('龗'); +INSERT INTO `T6b` VALUES ('龔'); +INSERT INTO `T7a` VALUES ('ア'),('カ'),('サ'); +INSERT INTO `T7b` VALUES ('ア'); +INSERT INTO `T8a` VALUES ('あ'),('か'),('さ'); +INSERT INTO `T8b` VALUES ('あ'); +INSERT INTO `T9a` VALUES ('龔'),('龖'),('龗'); +INSERT INTO `T9b` VALUES ('龔'); +INSERT INTO `T10a` VALUES ('ア'),('カ'),('サ'); +INSERT INTO `T10b` VALUES ('ア'); +INSERT INTO `T11a` VALUES ('あ'),('か'),('さ'); +INSERT INTO `T11b` VALUES ('あ'); +INSERT INTO `T12a` VALUES ('龔'),('龖'),('龗'); +INSERT INTO `T12b` VALUES ('龔'); +SELECT `C1` FROM `T1a` WHERE `C1` IN (SELECT `C1` FROM `T1b`); +C1 +ア +SELECT `C1` FROM `T1a` WHERE EXISTS (SELECT `C1` FROM `T1b` WHERE `T1a`.`C1` = `T1b`.`C1`); +C1 +ア +SELECT `C1` FROM `T1a` WHERE NOT EXISTS (SELECT `C1` FROM `T1b` WHERE `T1a`.`C1` = `T1b`.`C1`); +C1 +カ +サ +SELECT `C1` FROM `T2a` WHERE `C1` IN (SELECT `C1` FROM `T2b`); +C1 +あ +SELECT `C1` FROM `T2a` WHERE EXISTS (SELECT `C1` FROM `T2b` WHERE `T2a`.`C1` = `T2b`.`C1`); +C1 +あ +SELECT `C1` FROM `T2a` WHERE NOT EXISTS (SELECT `C1` FROM `T2b` WHERE `T2a`.`C1` = `T2b`.`C1`); +C1 +か +さ +SELECT `C1` FROM `T3a` WHERE `C1` IN (SELECT `C1` FROM `T3b`); +C1 +龔 +SELECT `C1` FROM `T3a` WHERE EXISTS (SELECT `C1` FROM `T3b` WHERE `T3a`.`C1` = `T3b`.`C1`); +C1 +龔 +SELECT `C1` FROM `T3a` WHERE NOT EXISTS (SELECT `C1` FROM `T3b` WHERE `T3a`.`C1` = `T3b`.`C1`); +C1 +龖 +龗 +SELECT `C1` FROM `T4a` WHERE `C1` IN (SELECT `C1` FROM `T4b`); +C1 +ア +SELECT `C1` FROM `T4a` WHERE EXISTS (SELECT `C1` FROM `T4b` WHERE `T4a`.`C1` = `T4b`.`C1`); +C1 +ア +SELECT `C1` FROM `T4a` WHERE NOT EXISTS (SELECT `C1` FROM `T4b` WHERE `T4a`.`C1` = `T4b`.`C1`); +C1 +カ +サ +SELECT `C1` FROM `T5a` WHERE `C1` IN (SELECT `C1` FROM `T5b`); +C1 +あ +SELECT `C1` FROM `T5a` WHERE EXISTS (SELECT `C1` FROM `T5b` WHERE `T5a`.`C1` = `T5b`.`C1`); +C1 +あ +SELECT `C1` FROM `T5a` WHERE NOT EXISTS (SELECT `C1` FROM `T5b` WHERE `T5a`.`C1` = `T5b`.`C1`); +C1 +か +さ +SELECT `C1` FROM `T6a` WHERE `C1` IN (SELECT `C1` FROM `T6b`); +C1 +龔 +SELECT `C1` FROM `T6a` WHERE EXISTS (SELECT `C1` FROM `T6b` WHERE `T6a`.`C1` = `T6b`.`C1`); +C1 +龔 +SELECT `C1` FROM `T6a` WHERE NOT EXISTS (SELECT `C1` FROM `T6b` WHERE `T6a`.`C1` = `T6b`.`C1`); +C1 +龖 +龗 +SELECT `C1` FROM `T7a` WHERE `C1` IN (SELECT `C1` FROM `T7b`); +C1 +ア +SELECT `C1` FROM `T7a` WHERE EXISTS (SELECT `C1` FROM `T7b` WHERE `T7a`.`C1` = `T7b`.`C1`); +C1 +ア +SELECT `C1` FROM `T7a` WHERE NOT EXISTS (SELECT `C1` FROM `T7b` WHERE `T7a`.`C1` = `T7b`.`C1`); +C1 +カ +サ +SELECT `C1` FROM `T8a` WHERE `C1` IN (SELECT `C1` FROM `T8b`); +C1 +あ +SELECT `C1` FROM `T8a` WHERE EXISTS (SELECT `C1` FROM `T8b` WHERE `T8a`.`C1` = `T8b`.`C1`); +C1 +あ +SELECT `C1` FROM `T8a` WHERE NOT EXISTS (SELECT `C1` FROM `T8b` WHERE `T8a`.`C1` = `T8b`.`C1`); +C1 +か +さ +SELECT `C1` FROM `T9a` WHERE `C1` IN (SELECT `C1` FROM `T9b`); +C1 +龔 +SELECT `C1` FROM `T9a` WHERE EXISTS (SELECT `C1` FROM `T9b` WHERE `T9a`.`C1` = `T9b`.`C1`); +C1 +龔 +SELECT `C1` FROM `T9a` WHERE NOT EXISTS (SELECT `C1` FROM `T9b` WHERE `T9a`.`C1` = `T9b`.`C1`); +C1 +龖 +龗 +SELECT `C1` FROM `T10a` WHERE `C1` IN (SELECT `C1` FROM `T10b`); +C1 +ア +SELECT `C1` FROM `T10a` WHERE EXISTS (SELECT `C1` FROM `T10b` WHERE `T10a`.`C1` = `T10b`.`C1`); +C1 +ア +SELECT `C1` FROM `T10a` WHERE NOT EXISTS (SELECT `C1` FROM `T10b` WHERE `T10a`.`C1` = `T10b`.`C1`); +C1 +カ +サ +SELECT `C1` FROM `T11a` WHERE `C1` IN (SELECT `C1` FROM `T11b`); +C1 +あ +SELECT `C1` FROM `T11a` WHERE EXISTS (SELECT `C1` FROM `T11b` WHERE `T11a`.`C1` = `T11b`.`C1`); +C1 +あ +SELECT `C1` FROM `T11a` WHERE NOT EXISTS (SELECT `C1` FROM `T11b` WHERE `T11a`.`C1` = `T11b`.`C1`); +C1 +か +さ +SELECT `C1` FROM `T12a` WHERE `C1` IN (SELECT `C1` FROM `T12b`); +C1 +龔 +SELECT `C1` FROM `T12a` WHERE EXISTS (SELECT `C1` FROM `T12b` WHERE `T12a`.`C1` = `T12b`.`C1`); +C1 +龔 +SELECT `C1` FROM `T12a` WHERE NOT EXISTS (SELECT `C1` FROM `T12b` WHERE `T12a`.`C1` = `T12b`.`C1`); +C1 +龖 +龗 +DROP TABLE `T1a`; +DROP TABLE `T1b`; +DROP TABLE `T2a`; +DROP TABLE `T2b`; +DROP TABLE `T3a`; +DROP TABLE `T3b`; +DROP TABLE `T4a`; +DROP TABLE `T4b`; +DROP TABLE `T5a`; +DROP TABLE `T5b`; +DROP TABLE `T6a`; +DROP TABLE `T6b`; +DROP TABLE `T7a`; +DROP TABLE `T7b`; +DROP TABLE `T8a`; +DROP TABLE `T8b`; +DROP TABLE `T9a`; +DROP TABLE `T9b`; +DROP TABLE `T10a`; +DROP TABLE `T10b`; +DROP TABLE `T11a`; +DROP TABLE `T11b`; +DROP TABLE `T12a`; +DROP TABLE `T12b`; diff --git a/mysql-test/suite/jp/r/jp_substring_sjis.result b/mysql-test/suite/jp/r/jp_substring_sjis.result new file mode 100755 index 00000000000..3fe5bf44b86 --- /dev/null +++ b/mysql-test/suite/jp/r/jp_substring_sjis.result @@ -0,0 +1,2738 @@ +drop table if exists `sP`; +drop table if exists `sQ`; +drop table if exists `sR`; +drop table if exists `sS`; +drop table if exists `sT`; +drop table if exists `sU`; +drop table if exists `sV`; +drop table if exists `sW`; +drop table if exists `sX`; +drop table if exists `sPO`; +drop table if exists `sPP`; +drop table if exists `sPQ`; +SET NAMES sjis; +SET character_set_database = sjis; +CREATE TABLE `sP` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sQ` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sR` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sS` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sT` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sU` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sV` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sW` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sX` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sPO` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +CREATE TABLE `sPP` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +CREATE TABLE `sPQ` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +INSERT INTO `sP` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sQ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sR` VALUES ('\\\\\'),('\\\\'),('\\\'),('\\'),('\'),(''); +INSERT INTO `sS` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sT` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sU` VALUES ('\\\\\'),('\\\\'),('\\\'),('\\'),('\'),(''); +INSERT INTO `sV` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sW` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sX` VALUES ('\\\\\'),('\\\\'),('\\\'),('\\'),('\'),(''); +INSERT INTO `sPO` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sPP` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sPQ` VALUES ('\\\\\'),('\\\\'),('\\\'),('\\'),('\'),(''); +SELECT `bP`, SUBSTRING(`bP`,0) FROM `sP`; +bP SUBSTRING(`bP`,0) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,1) FROM `sP`; +bP SUBSTRING(`bP`,1) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,2) FROM `sP`; +bP SUBSTRING(`bP`,2) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,3) FROM `sP`; +bP SUBSTRING(`bP`,3) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,4) FROM `sP`; +bP SUBSTRING(`bP`,4) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,5) FROM `sP`; +bP SUBSTRING(`bP`,5) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,6) FROM `sP`; +bP SUBSTRING(`bP`,6) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 0) FROM `sP`; +bP SUBSTRING(`bP` FROM 0) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 1) FROM `sP`; +bP SUBSTRING(`bP` FROM 1) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 2) FROM `sP`; +bP SUBSTRING(`bP` FROM 2) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 3) FROM `sP`; +bP SUBSTRING(`bP` FROM 3) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 4) FROM `sP`; +bP SUBSTRING(`bP` FROM 4) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 5) FROM `sP`; +bP SUBSTRING(`bP` FROM 5) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 6) FROM `sP`; +bP SUBSTRING(`bP` FROM 6) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,1,0) FROM `sP`; +bP SUBSTRING(`bP`,1,0) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,1,1) FROM `sP`; +bP SUBSTRING(`bP`,1,1) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,1,2) FROM `sP`; +bP SUBSTRING(`bP`,1,2) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,1,3) FROM `sP`; +bP SUBSTRING(`bP`,1,3) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,1,4) FROM `sP`; +bP SUBSTRING(`bP`,1,4) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,1,5) FROM `sP`; +bP SUBSTRING(`bP`,1,5) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,1,6) FROM `sP`; +bP SUBSTRING(`bP`,1,6) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 0) FROM `sP`; +bP SUBSTRING(`bP` FROM 1 FOR 0) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 1) FROM `sP`; +bP SUBSTRING(`bP` FROM 1 FOR 1) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 2) FROM `sP`; +bP SUBSTRING(`bP` FROM 1 FOR 2) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 3) FROM `sP`; +bP SUBSTRING(`bP` FROM 1 FOR 3) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 4) FROM `sP`; +bP SUBSTRING(`bP` FROM 1 FOR 4) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 5) FROM `sP`; +bP SUBSTRING(`bP` FROM 1 FOR 5) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 6) FROM `sP`; +bP SUBSTRING(`bP` FROM 1 FOR 6) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,0) FROM `sQ`; +bP SUBSTRING(`bP`,0) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,1) FROM `sQ`; +bP SUBSTRING(`bP`,1) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,2) FROM `sQ`; +bP SUBSTRING(`bP`,2) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,3) FROM `sQ`; +bP SUBSTRING(`bP`,3) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,4) FROM `sQ`; +bP SUBSTRING(`bP`,4) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,5) FROM `sQ`; +bP SUBSTRING(`bP`,5) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,6) FROM `sQ`; +bP SUBSTRING(`bP`,6) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 0) FROM `sQ`; +bP SUBSTRING(`bP` FROM 0) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 1) FROM `sQ`; +bP SUBSTRING(`bP` FROM 1) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 2) FROM `sQ`; +bP SUBSTRING(`bP` FROM 2) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 3) FROM `sQ`; +bP SUBSTRING(`bP` FROM 3) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 4) FROM `sQ`; +bP SUBSTRING(`bP` FROM 4) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 5) FROM `sQ`; +bP SUBSTRING(`bP` FROM 5) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 6) FROM `sQ`; +bP SUBSTRING(`bP` FROM 6) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,1,0) FROM `sQ`; +bP SUBSTRING(`bP`,1,0) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,1,1) FROM `sQ`; +bP SUBSTRING(`bP`,1,1) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,1,2) FROM `sQ`; +bP SUBSTRING(`bP`,1,2) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,1,3) FROM `sQ`; +bP SUBSTRING(`bP`,1,3) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,1,4) FROM `sQ`; +bP SUBSTRING(`bP`,1,4) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,1,5) FROM `sQ`; +bP SUBSTRING(`bP`,1,5) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,1,6) FROM `sQ`; +bP SUBSTRING(`bP`,1,6) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 0) FROM `sQ`; +bP SUBSTRING(`bP` FROM 1 FOR 0) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 1) FROM `sQ`; +bP SUBSTRING(`bP` FROM 1 FOR 1) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 2) FROM `sQ`; +bP SUBSTRING(`bP` FROM 1 FOR 2) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 3) FROM `sQ`; +bP SUBSTRING(`bP` FROM 1 FOR 3) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 4) FROM `sQ`; +bP SUBSTRING(`bP` FROM 1 FOR 4) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 5) FROM `sQ`; +bP SUBSTRING(`bP` FROM 1 FOR 5) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 6) FROM `sQ`; +bP SUBSTRING(`bP` FROM 1 FOR 6) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,0) FROM `sR`; +bP SUBSTRING(`bP`,0) + +\ +\\ +\\\ +\\\\ +\\\\\ +SELECT `bP`, SUBSTRING(`bP`,1) FROM `sR`; +bP SUBSTRING(`bP`,1) + +\ \ +\\ \\ +\\\ \\\ +\\\\ \\\\ +\\\\\ \\\\\ +SELECT `bP`, SUBSTRING(`bP`,2) FROM `sR`; +bP SUBSTRING(`bP`,2) + +\ +\\ \ +\\\ \\ +\\\\ \\\ +\\\\\ \\\\ +SELECT `bP`, SUBSTRING(`bP`,3) FROM `sR`; +bP SUBSTRING(`bP`,3) + +\ +\\ +\\\ \ +\\\\ \\ +\\\\\ \\\ +SELECT `bP`, SUBSTRING(`bP`,4) FROM `sR`; +bP SUBSTRING(`bP`,4) + +\ +\\ +\\\ +\\\\ \ +\\\\\ \\ +SELECT `bP`, SUBSTRING(`bP`,5) FROM `sR`; +bP SUBSTRING(`bP`,5) + +\ +\\ +\\\ +\\\\ +\\\\\ \ +SELECT `bP`, SUBSTRING(`bP`,6) FROM `sR`; +bP SUBSTRING(`bP`,6) + +\ +\\ +\\\ +\\\\ +\\\\\ +SELECT `bP`, SUBSTRING(`bP` FROM 0) FROM `sR`; +bP SUBSTRING(`bP` FROM 0) + +\ +\\ +\\\ +\\\\ +\\\\\ +SELECT `bP`, SUBSTRING(`bP` FROM 1) FROM `sR`; +bP SUBSTRING(`bP` FROM 1) + +\ \ +\\ \\ +\\\ \\\ +\\\\ \\\\ +\\\\\ \\\\\ +SELECT `bP`, SUBSTRING(`bP` FROM 2) FROM `sR`; +bP SUBSTRING(`bP` FROM 2) + +\ +\\ \ +\\\ \\ +\\\\ \\\ +\\\\\ \\\\ +SELECT `bP`, SUBSTRING(`bP` FROM 3) FROM `sR`; +bP SUBSTRING(`bP` FROM 3) + +\ +\\ +\\\ \ +\\\\ \\ +\\\\\ \\\ +SELECT `bP`, SUBSTRING(`bP` FROM 4) FROM `sR`; +bP SUBSTRING(`bP` FROM 4) + +\ +\\ +\\\ +\\\\ \ +\\\\\ \\ +SELECT `bP`, SUBSTRING(`bP` FROM 5) FROM `sR`; +bP SUBSTRING(`bP` FROM 5) + +\ +\\ +\\\ +\\\\ +\\\\\ \ +SELECT `bP`, SUBSTRING(`bP` FROM 6) FROM `sR`; +bP SUBSTRING(`bP` FROM 6) + +\ +\\ +\\\ +\\\\ +\\\\\ +SELECT `bP`, SUBSTRING(`bP`,1,0) FROM `sR`; +bP SUBSTRING(`bP`,1,0) + +\ +\\ +\\\ +\\\\ +\\\\\ +SELECT `bP`, SUBSTRING(`bP`,1,1) FROM `sR`; +bP SUBSTRING(`bP`,1,1) + +\ \ +\\ \ +\\\ \ +\\\\ \ +\\\\\ \ +SELECT `bP`, SUBSTRING(`bP`,1,2) FROM `sR`; +bP SUBSTRING(`bP`,1,2) + +\ \ +\\ \\ +\\\ \\ +\\\\ \\ +\\\\\ \\ +SELECT `bP`, SUBSTRING(`bP`,1,3) FROM `sR`; +bP SUBSTRING(`bP`,1,3) + +\ \ +\\ \\ +\\\ \\\ +\\\\ \\\ +\\\\\ \\\ +SELECT `bP`, SUBSTRING(`bP`,1,4) FROM `sR`; +bP SUBSTRING(`bP`,1,4) + +\ \ +\\ \\ +\\\ \\\ +\\\\ \\\\ +\\\\\ \\\\ +SELECT `bP`, SUBSTRING(`bP`,1,5) FROM `sR`; +bP SUBSTRING(`bP`,1,5) + +\ \ +\\ \\ +\\\ \\\ +\\\\ \\\\ +\\\\\ \\\\\ +SELECT `bP`, SUBSTRING(`bP`,1,6) FROM `sR`; +bP SUBSTRING(`bP`,1,6) + +\ \ +\\ \\ +\\\ \\\ +\\\\ \\\\ +\\\\\ \\\\\ +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 0) FROM `sR`; +bP SUBSTRING(`bP` FROM 1 FOR 0) + +\ +\\ +\\\ +\\\\ +\\\\\ +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 1) FROM `sR`; +bP SUBSTRING(`bP` FROM 1 FOR 1) + +\ \ +\\ \ +\\\ \ +\\\\ \ +\\\\\ \ +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 2) FROM `sR`; +bP SUBSTRING(`bP` FROM 1 FOR 2) + +\ \ +\\ \\ +\\\ \\ +\\\\ \\ +\\\\\ \\ +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 3) FROM `sR`; +bP SUBSTRING(`bP` FROM 1 FOR 3) + +\ \ +\\ \\ +\\\ \\\ +\\\\ \\\ +\\\\\ \\\ +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 4) FROM `sR`; +bP SUBSTRING(`bP` FROM 1 FOR 4) + +\ \ +\\ \\ +\\\ \\\ +\\\\ \\\\ +\\\\\ \\\\ +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 5) FROM `sR`; +bP SUBSTRING(`bP` FROM 1 FOR 5) + +\ \ +\\ \\ +\\\ \\\ +\\\\ \\\\ +\\\\\ \\\\\ +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 6) FROM `sR`; +bP SUBSTRING(`bP` FROM 1 FOR 6) + +\ \ +\\ \\ +\\\ \\\ +\\\\ \\\\ +\\\\\ \\\\\ +SELECT `bP`, SUBSTRING(`bP`,0) FROM `sS`; +bP SUBSTRING(`bP`,0) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,1) FROM `sS`; +bP SUBSTRING(`bP`,1) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,2) FROM `sS`; +bP SUBSTRING(`bP`,2) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,3) FROM `sS`; +bP SUBSTRING(`bP`,3) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,4) FROM `sS`; +bP SUBSTRING(`bP`,4) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,5) FROM `sS`; +bP SUBSTRING(`bP`,5) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,6) FROM `sS`; +bP SUBSTRING(`bP`,6) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 0) FROM `sS`; +bP SUBSTRING(`bP` FROM 0) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 1) FROM `sS`; +bP SUBSTRING(`bP` FROM 1) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 2) FROM `sS`; +bP SUBSTRING(`bP` FROM 2) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 3) FROM `sS`; +bP SUBSTRING(`bP` FROM 3) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 4) FROM `sS`; +bP SUBSTRING(`bP` FROM 4) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 5) FROM `sS`; +bP SUBSTRING(`bP` FROM 5) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 6) FROM `sS`; +bP SUBSTRING(`bP` FROM 6) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,1,0) FROM `sS`; +bP SUBSTRING(`bP`,1,0) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,1,1) FROM `sS`; +bP SUBSTRING(`bP`,1,1) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,1,2) FROM `sS`; +bP SUBSTRING(`bP`,1,2) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,1,3) FROM `sS`; +bP SUBSTRING(`bP`,1,3) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,1,4) FROM `sS`; +bP SUBSTRING(`bP`,1,4) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,1,5) FROM `sS`; +bP SUBSTRING(`bP`,1,5) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,1,6) FROM `sS`; +bP SUBSTRING(`bP`,1,6) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 0) FROM `sS`; +bP SUBSTRING(`bP` FROM 1 FOR 0) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 1) FROM `sS`; +bP SUBSTRING(`bP` FROM 1 FOR 1) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 2) FROM `sS`; +bP SUBSTRING(`bP` FROM 1 FOR 2) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 3) FROM `sS`; +bP SUBSTRING(`bP` FROM 1 FOR 3) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 4) FROM `sS`; +bP SUBSTRING(`bP` FROM 1 FOR 4) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 5) FROM `sS`; +bP SUBSTRING(`bP` FROM 1 FOR 5) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 6) FROM `sS`; +bP SUBSTRING(`bP` FROM 1 FOR 6) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,0) FROM `sT`; +bP SUBSTRING(`bP`,0) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,1) FROM `sT`; +bP SUBSTRING(`bP`,1) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,2) FROM `sT`; +bP SUBSTRING(`bP`,2) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,3) FROM `sT`; +bP SUBSTRING(`bP`,3) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,4) FROM `sT`; +bP SUBSTRING(`bP`,4) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,5) FROM `sT`; +bP SUBSTRING(`bP`,5) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,6) FROM `sT`; +bP SUBSTRING(`bP`,6) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 0) FROM `sT`; +bP SUBSTRING(`bP` FROM 0) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 1) FROM `sT`; +bP SUBSTRING(`bP` FROM 1) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 2) FROM `sT`; +bP SUBSTRING(`bP` FROM 2) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 3) FROM `sT`; +bP SUBSTRING(`bP` FROM 3) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 4) FROM `sT`; +bP SUBSTRING(`bP` FROM 4) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 5) FROM `sT`; +bP SUBSTRING(`bP` FROM 5) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 6) FROM `sT`; +bP SUBSTRING(`bP` FROM 6) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,1,0) FROM `sT`; +bP SUBSTRING(`bP`,1,0) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,1,1) FROM `sT`; +bP SUBSTRING(`bP`,1,1) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,1,2) FROM `sT`; +bP SUBSTRING(`bP`,1,2) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,1,3) FROM `sT`; +bP SUBSTRING(`bP`,1,3) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,1,4) FROM `sT`; +bP SUBSTRING(`bP`,1,4) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,1,5) FROM `sT`; +bP SUBSTRING(`bP`,1,5) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,1,6) FROM `sT`; +bP SUBSTRING(`bP`,1,6) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 0) FROM `sT`; +bP SUBSTRING(`bP` FROM 1 FOR 0) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 1) FROM `sT`; +bP SUBSTRING(`bP` FROM 1 FOR 1) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 2) FROM `sT`; +bP SUBSTRING(`bP` FROM 1 FOR 2) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 3) FROM `sT`; +bP SUBSTRING(`bP` FROM 1 FOR 3) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 4) FROM `sT`; +bP SUBSTRING(`bP` FROM 1 FOR 4) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 5) FROM `sT`; +bP SUBSTRING(`bP` FROM 1 FOR 5) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 6) FROM `sT`; +bP SUBSTRING(`bP` FROM 1 FOR 6) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,0) FROM `sU`; +bP SUBSTRING(`bP`,0) + +\ +\\ +\\\ +\\\\ +\\\\\ +SELECT `bP`, SUBSTRING(`bP`,1) FROM `sU`; +bP SUBSTRING(`bP`,1) + +\ \ +\\ \\ +\\\ \\\ +\\\\ \\\\ +\\\\\ \\\\\ +SELECT `bP`, SUBSTRING(`bP`,2) FROM `sU`; +bP SUBSTRING(`bP`,2) + +\ +\\ \ +\\\ \\ +\\\\ \\\ +\\\\\ \\\\ +SELECT `bP`, SUBSTRING(`bP`,3) FROM `sU`; +bP SUBSTRING(`bP`,3) + +\ +\\ +\\\ \ +\\\\ \\ +\\\\\ \\\ +SELECT `bP`, SUBSTRING(`bP`,4) FROM `sU`; +bP SUBSTRING(`bP`,4) + +\ +\\ +\\\ +\\\\ \ +\\\\\ \\ +SELECT `bP`, SUBSTRING(`bP`,5) FROM `sU`; +bP SUBSTRING(`bP`,5) + +\ +\\ +\\\ +\\\\ +\\\\\ \ +SELECT `bP`, SUBSTRING(`bP`,6) FROM `sU`; +bP SUBSTRING(`bP`,6) + +\ +\\ +\\\ +\\\\ +\\\\\ +SELECT `bP`, SUBSTRING(`bP` FROM 0) FROM `sU`; +bP SUBSTRING(`bP` FROM 0) + +\ +\\ +\\\ +\\\\ +\\\\\ +SELECT `bP`, SUBSTRING(`bP` FROM 1) FROM `sU`; +bP SUBSTRING(`bP` FROM 1) + +\ \ +\\ \\ +\\\ \\\ +\\\\ \\\\ +\\\\\ \\\\\ +SELECT `bP`, SUBSTRING(`bP` FROM 2) FROM `sU`; +bP SUBSTRING(`bP` FROM 2) + +\ +\\ \ +\\\ \\ +\\\\ \\\ +\\\\\ \\\\ +SELECT `bP`, SUBSTRING(`bP` FROM 3) FROM `sU`; +bP SUBSTRING(`bP` FROM 3) + +\ +\\ +\\\ \ +\\\\ \\ +\\\\\ \\\ +SELECT `bP`, SUBSTRING(`bP` FROM 4) FROM `sU`; +bP SUBSTRING(`bP` FROM 4) + +\ +\\ +\\\ +\\\\ \ +\\\\\ \\ +SELECT `bP`, SUBSTRING(`bP` FROM 5) FROM `sU`; +bP SUBSTRING(`bP` FROM 5) + +\ +\\ +\\\ +\\\\ +\\\\\ \ +SELECT `bP`, SUBSTRING(`bP` FROM 6) FROM `sU`; +bP SUBSTRING(`bP` FROM 6) + +\ +\\ +\\\ +\\\\ +\\\\\ +SELECT `bP`, SUBSTRING(`bP`,1,0) FROM `sU`; +bP SUBSTRING(`bP`,1,0) + +\ +\\ +\\\ +\\\\ +\\\\\ +SELECT `bP`, SUBSTRING(`bP`,1,1) FROM `sU`; +bP SUBSTRING(`bP`,1,1) + +\ \ +\\ \ +\\\ \ +\\\\ \ +\\\\\ \ +SELECT `bP`, SUBSTRING(`bP`,1,2) FROM `sU`; +bP SUBSTRING(`bP`,1,2) + +\ \ +\\ \\ +\\\ \\ +\\\\ \\ +\\\\\ \\ +SELECT `bP`, SUBSTRING(`bP`,1,3) FROM `sU`; +bP SUBSTRING(`bP`,1,3) + +\ \ +\\ \\ +\\\ \\\ +\\\\ \\\ +\\\\\ \\\ +SELECT `bP`, SUBSTRING(`bP`,1,4) FROM `sU`; +bP SUBSTRING(`bP`,1,4) + +\ \ +\\ \\ +\\\ \\\ +\\\\ \\\\ +\\\\\ \\\\ +SELECT `bP`, SUBSTRING(`bP`,1,5) FROM `sU`; +bP SUBSTRING(`bP`,1,5) + +\ \ +\\ \\ +\\\ \\\ +\\\\ \\\\ +\\\\\ \\\\\ +SELECT `bP`, SUBSTRING(`bP`,1,6) FROM `sU`; +bP SUBSTRING(`bP`,1,6) + +\ \ +\\ \\ +\\\ \\\ +\\\\ \\\\ +\\\\\ \\\\\ +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 0) FROM `sU`; +bP SUBSTRING(`bP` FROM 1 FOR 0) + +\ +\\ +\\\ +\\\\ +\\\\\ +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 1) FROM `sU`; +bP SUBSTRING(`bP` FROM 1 FOR 1) + +\ \ +\\ \ +\\\ \ +\\\\ \ +\\\\\ \ +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 2) FROM `sU`; +bP SUBSTRING(`bP` FROM 1 FOR 2) + +\ \ +\\ \\ +\\\ \\ +\\\\ \\ +\\\\\ \\ +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 3) FROM `sU`; +bP SUBSTRING(`bP` FROM 1 FOR 3) + +\ \ +\\ \\ +\\\ \\\ +\\\\ \\\ +\\\\\ \\\ +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 4) FROM `sU`; +bP SUBSTRING(`bP` FROM 1 FOR 4) + +\ \ +\\ \\ +\\\ \\\ +\\\\ \\\\ +\\\\\ \\\\ +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 5) FROM `sU`; +bP SUBSTRING(`bP` FROM 1 FOR 5) + +\ \ +\\ \\ +\\\ \\\ +\\\\ \\\\ +\\\\\ \\\\\ +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 6) FROM `sU`; +bP SUBSTRING(`bP` FROM 1 FOR 6) + +\ \ +\\ \\ +\\\ \\\ +\\\\ \\\\ +\\\\\ \\\\\ +SELECT `bP`, SUBSTRING(`bP`,0) FROM `sV`; +bP SUBSTRING(`bP`,0) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,1) FROM `sV`; +bP SUBSTRING(`bP`,1) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,2) FROM `sV`; +bP SUBSTRING(`bP`,2) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,3) FROM `sV`; +bP SUBSTRING(`bP`,3) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,4) FROM `sV`; +bP SUBSTRING(`bP`,4) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,5) FROM `sV`; +bP SUBSTRING(`bP`,5) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,6) FROM `sV`; +bP SUBSTRING(`bP`,6) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 0) FROM `sV`; +bP SUBSTRING(`bP` FROM 0) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 1) FROM `sV`; +bP SUBSTRING(`bP` FROM 1) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 2) FROM `sV`; +bP SUBSTRING(`bP` FROM 2) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 3) FROM `sV`; +bP SUBSTRING(`bP` FROM 3) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 4) FROM `sV`; +bP SUBSTRING(`bP` FROM 4) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 5) FROM `sV`; +bP SUBSTRING(`bP` FROM 5) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 6) FROM `sV`; +bP SUBSTRING(`bP` FROM 6) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,1,0) FROM `sV`; +bP SUBSTRING(`bP`,1,0) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,1,1) FROM `sV`; +bP SUBSTRING(`bP`,1,1) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,1,2) FROM `sV`; +bP SUBSTRING(`bP`,1,2) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,1,3) FROM `sV`; +bP SUBSTRING(`bP`,1,3) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,1,4) FROM `sV`; +bP SUBSTRING(`bP`,1,4) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,1,5) FROM `sV`; +bP SUBSTRING(`bP`,1,5) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,1,6) FROM `sV`; +bP SUBSTRING(`bP`,1,6) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 0) FROM `sV`; +bP SUBSTRING(`bP` FROM 1 FOR 0) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 1) FROM `sV`; +bP SUBSTRING(`bP` FROM 1 FOR 1) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 2) FROM `sV`; +bP SUBSTRING(`bP` FROM 1 FOR 2) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 3) FROM `sV`; +bP SUBSTRING(`bP` FROM 1 FOR 3) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 4) FROM `sV`; +bP SUBSTRING(`bP` FROM 1 FOR 4) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 5) FROM `sV`; +bP SUBSTRING(`bP` FROM 1 FOR 5) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 6) FROM `sV`; +bP SUBSTRING(`bP` FROM 1 FOR 6) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,0) FROM `sW`; +bP SUBSTRING(`bP`,0) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,1) FROM `sW`; +bP SUBSTRING(`bP`,1) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,2) FROM `sW`; +bP SUBSTRING(`bP`,2) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,3) FROM `sW`; +bP SUBSTRING(`bP`,3) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,4) FROM `sW`; +bP SUBSTRING(`bP`,4) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,5) FROM `sW`; +bP SUBSTRING(`bP`,5) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,6) FROM `sW`; +bP SUBSTRING(`bP`,6) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 0) FROM `sW`; +bP SUBSTRING(`bP` FROM 0) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 1) FROM `sW`; +bP SUBSTRING(`bP` FROM 1) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 2) FROM `sW`; +bP SUBSTRING(`bP` FROM 2) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 3) FROM `sW`; +bP SUBSTRING(`bP` FROM 3) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 4) FROM `sW`; +bP SUBSTRING(`bP` FROM 4) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 5) FROM `sW`; +bP SUBSTRING(`bP` FROM 5) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 6) FROM `sW`; +bP SUBSTRING(`bP` FROM 6) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,1,0) FROM `sW`; +bP SUBSTRING(`bP`,1,0) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,1,1) FROM `sW`; +bP SUBSTRING(`bP`,1,1) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,1,2) FROM `sW`; +bP SUBSTRING(`bP`,1,2) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,1,3) FROM `sW`; +bP SUBSTRING(`bP`,1,3) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,1,4) FROM `sW`; +bP SUBSTRING(`bP`,1,4) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,1,5) FROM `sW`; +bP SUBSTRING(`bP`,1,5) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,1,6) FROM `sW`; +bP SUBSTRING(`bP`,1,6) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 0) FROM `sW`; +bP SUBSTRING(`bP` FROM 1 FOR 0) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 1) FROM `sW`; +bP SUBSTRING(`bP` FROM 1 FOR 1) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 2) FROM `sW`; +bP SUBSTRING(`bP` FROM 1 FOR 2) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 3) FROM `sW`; +bP SUBSTRING(`bP` FROM 1 FOR 3) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 4) FROM `sW`; +bP SUBSTRING(`bP` FROM 1 FOR 4) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 5) FROM `sW`; +bP SUBSTRING(`bP` FROM 1 FOR 5) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 6) FROM `sW`; +bP SUBSTRING(`bP` FROM 1 FOR 6) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,0) FROM `sX`; +bP SUBSTRING(`bP`,0) +\\\\\ +\\\\ +\\\ +\\ +\ + +SELECT `bP`, SUBSTRING(`bP`,1) FROM `sX`; +bP SUBSTRING(`bP`,1) +\\\\\ \\\\\ +\\\\ \\\\ +\\\ \\\ +\\ \\ +\ \ + +SELECT `bP`, SUBSTRING(`bP`,2) FROM `sX`; +bP SUBSTRING(`bP`,2) +\\\\\ \\\\ +\\\\ \\\ +\\\ \\ +\\ \ +\ + +SELECT `bP`, SUBSTRING(`bP`,3) FROM `sX`; +bP SUBSTRING(`bP`,3) +\\\\\ \\\ +\\\\ \\ +\\\ \ +\\ +\ + +SELECT `bP`, SUBSTRING(`bP`,4) FROM `sX`; +bP SUBSTRING(`bP`,4) +\\\\\ \\ +\\\\ \ +\\\ +\\ +\ + +SELECT `bP`, SUBSTRING(`bP`,5) FROM `sX`; +bP SUBSTRING(`bP`,5) +\\\\\ \ +\\\\ +\\\ +\\ +\ + +SELECT `bP`, SUBSTRING(`bP`,6) FROM `sX`; +bP SUBSTRING(`bP`,6) +\\\\\ +\\\\ +\\\ +\\ +\ + +SELECT `bP`, SUBSTRING(`bP` FROM 0) FROM `sX`; +bP SUBSTRING(`bP` FROM 0) +\\\\\ +\\\\ +\\\ +\\ +\ + +SELECT `bP`, SUBSTRING(`bP` FROM 1) FROM `sX`; +bP SUBSTRING(`bP` FROM 1) +\\\\\ \\\\\ +\\\\ \\\\ +\\\ \\\ +\\ \\ +\ \ + +SELECT `bP`, SUBSTRING(`bP` FROM 2) FROM `sX`; +bP SUBSTRING(`bP` FROM 2) +\\\\\ \\\\ +\\\\ \\\ +\\\ \\ +\\ \ +\ + +SELECT `bP`, SUBSTRING(`bP` FROM 3) FROM `sX`; +bP SUBSTRING(`bP` FROM 3) +\\\\\ \\\ +\\\\ \\ +\\\ \ +\\ +\ + +SELECT `bP`, SUBSTRING(`bP` FROM 4) FROM `sX`; +bP SUBSTRING(`bP` FROM 4) +\\\\\ \\ +\\\\ \ +\\\ +\\ +\ + +SELECT `bP`, SUBSTRING(`bP` FROM 5) FROM `sX`; +bP SUBSTRING(`bP` FROM 5) +\\\\\ \ +\\\\ +\\\ +\\ +\ + +SELECT `bP`, SUBSTRING(`bP` FROM 6) FROM `sX`; +bP SUBSTRING(`bP` FROM 6) +\\\\\ +\\\\ +\\\ +\\ +\ + +SELECT `bP`, SUBSTRING(`bP`,1,0) FROM `sX`; +bP SUBSTRING(`bP`,1,0) +\\\\\ +\\\\ +\\\ +\\ +\ + +SELECT `bP`, SUBSTRING(`bP`,1,1) FROM `sX`; +bP SUBSTRING(`bP`,1,1) +\\\\\ \ +\\\\ \ +\\\ \ +\\ \ +\ \ + +SELECT `bP`, SUBSTRING(`bP`,1,2) FROM `sX`; +bP SUBSTRING(`bP`,1,2) +\\\\\ \\ +\\\\ \\ +\\\ \\ +\\ \\ +\ \ + +SELECT `bP`, SUBSTRING(`bP`,1,3) FROM `sX`; +bP SUBSTRING(`bP`,1,3) +\\\\\ \\\ +\\\\ \\\ +\\\ \\\ +\\ \\ +\ \ + +SELECT `bP`, SUBSTRING(`bP`,1,4) FROM `sX`; +bP SUBSTRING(`bP`,1,4) +\\\\\ \\\\ +\\\\ \\\\ +\\\ \\\ +\\ \\ +\ \ + +SELECT `bP`, SUBSTRING(`bP`,1,5) FROM `sX`; +bP SUBSTRING(`bP`,1,5) +\\\\\ \\\\\ +\\\\ \\\\ +\\\ \\\ +\\ \\ +\ \ + +SELECT `bP`, SUBSTRING(`bP`,1,6) FROM `sX`; +bP SUBSTRING(`bP`,1,6) +\\\\\ \\\\\ +\\\\ \\\\ +\\\ \\\ +\\ \\ +\ \ + +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 0) FROM `sX`; +bP SUBSTRING(`bP` FROM 1 FOR 0) +\\\\\ +\\\\ +\\\ +\\ +\ + +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 1) FROM `sX`; +bP SUBSTRING(`bP` FROM 1 FOR 1) +\\\\\ \ +\\\\ \ +\\\ \ +\\ \ +\ \ + +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 2) FROM `sX`; +bP SUBSTRING(`bP` FROM 1 FOR 2) +\\\\\ \\ +\\\\ \\ +\\\ \\ +\\ \\ +\ \ + +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 3) FROM `sX`; +bP SUBSTRING(`bP` FROM 1 FOR 3) +\\\\\ \\\ +\\\\ \\\ +\\\ \\\ +\\ \\ +\ \ + +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 4) FROM `sX`; +bP SUBSTRING(`bP` FROM 1 FOR 4) +\\\\\ \\\\ +\\\\ \\\\ +\\\ \\\ +\\ \\ +\ \ + +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 5) FROM `sX`; +bP SUBSTRING(`bP` FROM 1 FOR 5) +\\\\\ \\\\\ +\\\\ \\\\ +\\\ \\\ +\\ \\ +\ \ + +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 6) FROM `sX`; +bP SUBSTRING(`bP` FROM 1 FOR 6) +\\\\\ \\\\\ +\\\\ \\\\ +\\\ \\\ +\\ \\ +\ \ + +SELECT `bP`, SUBSTRING(`bP`,0) FROM `sPO`; +bP SUBSTRING(`bP`,0) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,1) FROM `sPO`; +bP SUBSTRING(`bP`,1) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,2) FROM `sPO`; +bP SUBSTRING(`bP`,2) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,3) FROM `sPO`; +bP SUBSTRING(`bP`,3) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,4) FROM `sPO`; +bP SUBSTRING(`bP`,4) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,5) FROM `sPO`; +bP SUBSTRING(`bP`,5) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,6) FROM `sPO`; +bP SUBSTRING(`bP`,6) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 0) FROM `sPO`; +bP SUBSTRING(`bP` FROM 0) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 1) FROM `sPO`; +bP SUBSTRING(`bP` FROM 1) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 2) FROM `sPO`; +bP SUBSTRING(`bP` FROM 2) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 3) FROM `sPO`; +bP SUBSTRING(`bP` FROM 3) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 4) FROM `sPO`; +bP SUBSTRING(`bP` FROM 4) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 5) FROM `sPO`; +bP SUBSTRING(`bP` FROM 5) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 6) FROM `sPO`; +bP SUBSTRING(`bP` FROM 6) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,1,0) FROM `sPO`; +bP SUBSTRING(`bP`,1,0) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,1,1) FROM `sPO`; +bP SUBSTRING(`bP`,1,1) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,1,2) FROM `sPO`; +bP SUBSTRING(`bP`,1,2) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,1,3) FROM `sPO`; +bP SUBSTRING(`bP`,1,3) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,1,4) FROM `sPO`; +bP SUBSTRING(`bP`,1,4) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,1,5) FROM `sPO`; +bP SUBSTRING(`bP`,1,5) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,1,6) FROM `sPO`; +bP SUBSTRING(`bP`,1,6) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 0) FROM `sPO`; +bP SUBSTRING(`bP` FROM 1 FOR 0) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 1) FROM `sPO`; +bP SUBSTRING(`bP` FROM 1 FOR 1) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 2) FROM `sPO`; +bP SUBSTRING(`bP` FROM 1 FOR 2) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 3) FROM `sPO`; +bP SUBSTRING(`bP` FROM 1 FOR 3) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 4) FROM `sPO`; +bP SUBSTRING(`bP` FROM 1 FOR 4) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 5) FROM `sPO`; +bP SUBSTRING(`bP` FROM 1 FOR 5) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 6) FROM `sPO`; +bP SUBSTRING(`bP` FROM 1 FOR 6) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,0) FROM `sPP`; +bP SUBSTRING(`bP`,0) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,1) FROM `sPP`; +bP SUBSTRING(`bP`,1) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,2) FROM `sPP`; +bP SUBSTRING(`bP`,2) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,3) FROM `sPP`; +bP SUBSTRING(`bP`,3) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,4) FROM `sPP`; +bP SUBSTRING(`bP`,4) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,5) FROM `sPP`; +bP SUBSTRING(`bP`,5) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,6) FROM `sPP`; +bP SUBSTRING(`bP`,6) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 0) FROM `sPP`; +bP SUBSTRING(`bP` FROM 0) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 1) FROM `sPP`; +bP SUBSTRING(`bP` FROM 1) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 2) FROM `sPP`; +bP SUBSTRING(`bP` FROM 2) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 3) FROM `sPP`; +bP SUBSTRING(`bP` FROM 3) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 4) FROM `sPP`; +bP SUBSTRING(`bP` FROM 4) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 5) FROM `sPP`; +bP SUBSTRING(`bP` FROM 5) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 6) FROM `sPP`; +bP SUBSTRING(`bP` FROM 6) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,1,0) FROM `sPP`; +bP SUBSTRING(`bP`,1,0) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,1,1) FROM `sPP`; +bP SUBSTRING(`bP`,1,1) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,1,2) FROM `sPP`; +bP SUBSTRING(`bP`,1,2) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,1,3) FROM `sPP`; +bP SUBSTRING(`bP`,1,3) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,1,4) FROM `sPP`; +bP SUBSTRING(`bP`,1,4) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,1,5) FROM `sPP`; +bP SUBSTRING(`bP`,1,5) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,1,6) FROM `sPP`; +bP SUBSTRING(`bP`,1,6) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 0) FROM `sPP`; +bP SUBSTRING(`bP` FROM 1 FOR 0) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 1) FROM `sPP`; +bP SUBSTRING(`bP` FROM 1 FOR 1) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 2) FROM `sPP`; +bP SUBSTRING(`bP` FROM 1 FOR 2) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 3) FROM `sPP`; +bP SUBSTRING(`bP` FROM 1 FOR 3) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 4) FROM `sPP`; +bP SUBSTRING(`bP` FROM 1 FOR 4) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 5) FROM `sPP`; +bP SUBSTRING(`bP` FROM 1 FOR 5) + + + + + + +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 6) FROM `sPP`; +bP SUBSTRING(`bP` FROM 1 FOR 6) + + + + + + +SELECT `bP`, SUBSTRING(`bP`,0) FROM `sPQ`; +bP SUBSTRING(`bP`,0) +\\\\\ +\\\\ +\\\ +\\ +\ + +SELECT `bP`, SUBSTRING(`bP`,1) FROM `sPQ`; +bP SUBSTRING(`bP`,1) +\\\\\ \\\\\ +\\\\ \\\\ +\\\ \\\ +\\ \\ +\ \ + +SELECT `bP`, SUBSTRING(`bP`,2) FROM `sPQ`; +bP SUBSTRING(`bP`,2) +\\\\\ \\\\ +\\\\ \\\ +\\\ \\ +\\ \ +\ + +SELECT `bP`, SUBSTRING(`bP`,3) FROM `sPQ`; +bP SUBSTRING(`bP`,3) +\\\\\ \\\ +\\\\ \\ +\\\ \ +\\ +\ + +SELECT `bP`, SUBSTRING(`bP`,4) FROM `sPQ`; +bP SUBSTRING(`bP`,4) +\\\\\ \\ +\\\\ \ +\\\ +\\ +\ + +SELECT `bP`, SUBSTRING(`bP`,5) FROM `sPQ`; +bP SUBSTRING(`bP`,5) +\\\\\ \ +\\\\ +\\\ +\\ +\ + +SELECT `bP`, SUBSTRING(`bP`,6) FROM `sPQ`; +bP SUBSTRING(`bP`,6) +\\\\\ +\\\\ +\\\ +\\ +\ + +SELECT `bP`, SUBSTRING(`bP` FROM 0) FROM `sPQ`; +bP SUBSTRING(`bP` FROM 0) +\\\\\ +\\\\ +\\\ +\\ +\ + +SELECT `bP`, SUBSTRING(`bP` FROM 1) FROM `sPQ`; +bP SUBSTRING(`bP` FROM 1) +\\\\\ \\\\\ +\\\\ \\\\ +\\\ \\\ +\\ \\ +\ \ + +SELECT `bP`, SUBSTRING(`bP` FROM 2) FROM `sPQ`; +bP SUBSTRING(`bP` FROM 2) +\\\\\ \\\\ +\\\\ \\\ +\\\ \\ +\\ \ +\ + +SELECT `bP`, SUBSTRING(`bP` FROM 3) FROM `sPQ`; +bP SUBSTRING(`bP` FROM 3) +\\\\\ \\\ +\\\\ \\ +\\\ \ +\\ +\ + +SELECT `bP`, SUBSTRING(`bP` FROM 4) FROM `sPQ`; +bP SUBSTRING(`bP` FROM 4) +\\\\\ \\ +\\\\ \ +\\\ +\\ +\ + +SELECT `bP`, SUBSTRING(`bP` FROM 5) FROM `sPQ`; +bP SUBSTRING(`bP` FROM 5) +\\\\\ \ +\\\\ +\\\ +\\ +\ + +SELECT `bP`, SUBSTRING(`bP` FROM 6) FROM `sPQ`; +bP SUBSTRING(`bP` FROM 6) +\\\\\ +\\\\ +\\\ +\\ +\ + +SELECT `bP`, SUBSTRING(`bP`,1,0) FROM `sPQ`; +bP SUBSTRING(`bP`,1,0) +\\\\\ +\\\\ +\\\ +\\ +\ + +SELECT `bP`, SUBSTRING(`bP`,1,1) FROM `sPQ`; +bP SUBSTRING(`bP`,1,1) +\\\\\ \ +\\\\ \ +\\\ \ +\\ \ +\ \ + +SELECT `bP`, SUBSTRING(`bP`,1,2) FROM `sPQ`; +bP SUBSTRING(`bP`,1,2) +\\\\\ \\ +\\\\ \\ +\\\ \\ +\\ \\ +\ \ + +SELECT `bP`, SUBSTRING(`bP`,1,3) FROM `sPQ`; +bP SUBSTRING(`bP`,1,3) +\\\\\ \\\ +\\\\ \\\ +\\\ \\\ +\\ \\ +\ \ + +SELECT `bP`, SUBSTRING(`bP`,1,4) FROM `sPQ`; +bP SUBSTRING(`bP`,1,4) +\\\\\ \\\\ +\\\\ \\\\ +\\\ \\\ +\\ \\ +\ \ + +SELECT `bP`, SUBSTRING(`bP`,1,5) FROM `sPQ`; +bP SUBSTRING(`bP`,1,5) +\\\\\ \\\\\ +\\\\ \\\\ +\\\ \\\ +\\ \\ +\ \ + +SELECT `bP`, SUBSTRING(`bP`,1,6) FROM `sPQ`; +bP SUBSTRING(`bP`,1,6) +\\\\\ \\\\\ +\\\\ \\\\ +\\\ \\\ +\\ \\ +\ \ + +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 0) FROM `sPQ`; +bP SUBSTRING(`bP` FROM 1 FOR 0) +\\\\\ +\\\\ +\\\ +\\ +\ + +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 1) FROM `sPQ`; +bP SUBSTRING(`bP` FROM 1 FOR 1) +\\\\\ \ +\\\\ \ +\\\ \ +\\ \ +\ \ + +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 2) FROM `sPQ`; +bP SUBSTRING(`bP` FROM 1 FOR 2) +\\\\\ \\ +\\\\ \\ +\\\ \\ +\\ \\ +\ \ + +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 3) FROM `sPQ`; +bP SUBSTRING(`bP` FROM 1 FOR 3) +\\\\\ \\\ +\\\\ \\\ +\\\ \\\ +\\ \\ +\ \ + +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 4) FROM `sPQ`; +bP SUBSTRING(`bP` FROM 1 FOR 4) +\\\\\ \\\\ +\\\\ \\\\ +\\\ \\\ +\\ \\ +\ \ + +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 5) FROM `sPQ`; +bP SUBSTRING(`bP` FROM 1 FOR 5) +\\\\\ \\\\\ +\\\\ \\\\ +\\\ \\\ +\\ \\ +\ \ + +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 6) FROM `sPQ`; +bP SUBSTRING(`bP` FROM 1 FOR 6) +\\\\\ \\\\\ +\\\\ \\\\ +\\\ \\\ +\\ \\ +\ \ + +DROP TABLE `sP`; +DROP TABLE `sQ`; +DROP TABLE `sR`; +DROP TABLE `sS`; +DROP TABLE `sT`; +DROP TABLE `sU`; +DROP TABLE `sV`; +DROP TABLE `sW`; +DROP TABLE `sX`; +DROP TABLE `sPO`; +DROP TABLE `sPP`; +DROP TABLE `sPQ`; diff --git a/mysql-test/suite/jp/r/jp_substring_ucs2.result b/mysql-test/suite/jp/r/jp_substring_ucs2.result new file mode 100755 index 00000000000..cb2a5b5b946 --- /dev/null +++ b/mysql-test/suite/jp/r/jp_substring_ucs2.result @@ -0,0 +1,1395 @@ +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +SET NAMES ujis; +SET character_set_database = ucs2; +SET collation_connection = ucs2_general_ci; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +SELECT `ã`, SUBSTRING(`ã`,1,0) FROM `ԣ`; +ã SUBSTRING(`ã`,1,0) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,1) FROM `ԣ`; +ã SUBSTRING(`ã`,1,1) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,2) FROM `ԣ`; +ã SUBSTRING(`ã`,1,2) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,3) FROM `ԣ`; +ã SUBSTRING(`ã`,1,3) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,4) FROM `ԣ`; +ã SUBSTRING(`ã`,1,4) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,5) FROM `ԣ`; +ã SUBSTRING(`ã`,1,5) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,6) FROM `ԣ`; +ã SUBSTRING(`ã`,1,6) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 0) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 0) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 1) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 1) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 2) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 2) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 3) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 3) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 4) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 4) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 5) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 5) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 6) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 6) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,0) FROM `ԣ`; +ã SUBSTRING(`ã`,1,0) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,1) FROM `ԣ`; +ã SUBSTRING(`ã`,1,1) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,2) FROM `ԣ`; +ã SUBSTRING(`ã`,1,2) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,3) FROM `ԣ`; +ã SUBSTRING(`ã`,1,3) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,4) FROM `ԣ`; +ã SUBSTRING(`ã`,1,4) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,5) FROM `ԣ`; +ã SUBSTRING(`ã`,1,5) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,6) FROM `ԣ`; +ã SUBSTRING(`ã`,1,6) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 0) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 0) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 1) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 1) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 2) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 2) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 3) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 3) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 4) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 4) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 5) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 5) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 6) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 6) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,0) FROM `ԣ`; +ã SUBSTRING(`ã`,1,0) + + +܏ +܏ݏ +܏ݏޏ +܏ݏޏߏ +SELECT `ã`, SUBSTRING(`ã`,1,1) FROM `ԣ`; +ã SUBSTRING(`ã`,1,1) + + +܏ +܏ݏ +܏ݏޏ +܏ݏޏߏ +SELECT `ã`, SUBSTRING(`ã`,1,2) FROM `ԣ`; +ã SUBSTRING(`ã`,1,2) + + +܏ ܏ +܏ݏ ܏ +܏ݏޏ ܏ +܏ݏޏߏ ܏ +SELECT `ã`, SUBSTRING(`ã`,1,3) FROM `ԣ`; +ã SUBSTRING(`ã`,1,3) + + +܏ ܏ +܏ݏ ܏ݏ +܏ݏޏ ܏ݏ +܏ݏޏߏ ܏ݏ +SELECT `ã`, SUBSTRING(`ã`,1,4) FROM `ԣ`; +ã SUBSTRING(`ã`,1,4) + + +܏ ܏ +܏ݏ ܏ݏ +܏ݏޏ ܏ݏޏ +܏ݏޏߏ ܏ݏޏ +SELECT `ã`, SUBSTRING(`ã`,1,5) FROM `ԣ`; +ã SUBSTRING(`ã`,1,5) + + +܏ ܏ +܏ݏ ܏ݏ +܏ݏޏ ܏ݏޏ +܏ݏޏߏ ܏ݏޏߏ +SELECT `ã`, SUBSTRING(`ã`,1,6) FROM `ԣ`; +ã SUBSTRING(`ã`,1,6) + + +܏ ܏ +܏ݏ ܏ݏ +܏ݏޏ ܏ݏޏ +܏ݏޏߏ ܏ݏޏߏ +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 0) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 0) + + +܏ +܏ݏ +܏ݏޏ +܏ݏޏߏ +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 1) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 1) + + +܏ +܏ݏ +܏ݏޏ +܏ݏޏߏ +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 2) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 2) + + +܏ ܏ +܏ݏ ܏ +܏ݏޏ ܏ +܏ݏޏߏ ܏ +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 3) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 3) + + +܏ ܏ +܏ݏ ܏ݏ +܏ݏޏ ܏ݏ +܏ݏޏߏ ܏ݏ +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 4) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 4) + + +܏ ܏ +܏ݏ ܏ݏ +܏ݏޏ ܏ݏޏ +܏ݏޏߏ ܏ݏޏ +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 5) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 5) + + +܏ ܏ +܏ݏ ܏ݏ +܏ݏޏ ܏ݏޏ +܏ݏޏߏ ܏ݏޏߏ +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 6) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 6) + + +܏ ܏ +܏ݏ ܏ݏ +܏ݏޏ ܏ݏޏ +܏ݏޏߏ ܏ݏޏߏ +SELECT `ã`, SUBSTRING(`ã`,1,0) FROM `ԣ`; +ã SUBSTRING(`ã`,1,0) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,1) FROM `ԣ`; +ã SUBSTRING(`ã`,1,1) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,2) FROM `ԣ`; +ã SUBSTRING(`ã`,1,2) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,3) FROM `ԣ`; +ã SUBSTRING(`ã`,1,3) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,4) FROM `ԣ`; +ã SUBSTRING(`ã`,1,4) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,5) FROM `ԣ`; +ã SUBSTRING(`ã`,1,5) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,6) FROM `ԣ`; +ã SUBSTRING(`ã`,1,6) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 0) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 0) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 1) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 1) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 2) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 2) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 3) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 3) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 4) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 4) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 5) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 5) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 6) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 6) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,0) FROM `ԣ`; +ã SUBSTRING(`ã`,1,0) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,1) FROM `ԣ`; +ã SUBSTRING(`ã`,1,1) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,2) FROM `ԣ`; +ã SUBSTRING(`ã`,1,2) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,3) FROM `ԣ`; +ã SUBSTRING(`ã`,1,3) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,4) FROM `ԣ`; +ã SUBSTRING(`ã`,1,4) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,5) FROM `ԣ`; +ã SUBSTRING(`ã`,1,5) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,6) FROM `ԣ`; +ã SUBSTRING(`ã`,1,6) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 0) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 0) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 1) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 1) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 2) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 2) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 3) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 3) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 4) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 4) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 5) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 5) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 6) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 6) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,0) FROM `ԣ`; +ã SUBSTRING(`ã`,1,0) + + +܏ +܏ݏ +܏ݏޏ +܏ݏޏߏ +SELECT `ã`, SUBSTRING(`ã`,1,1) FROM `ԣ`; +ã SUBSTRING(`ã`,1,1) + + +܏ +܏ݏ +܏ݏޏ +܏ݏޏߏ +SELECT `ã`, SUBSTRING(`ã`,1,2) FROM `ԣ`; +ã SUBSTRING(`ã`,1,2) + + +܏ ܏ +܏ݏ ܏ +܏ݏޏ ܏ +܏ݏޏߏ ܏ +SELECT `ã`, SUBSTRING(`ã`,1,3) FROM `ԣ`; +ã SUBSTRING(`ã`,1,3) + + +܏ ܏ +܏ݏ ܏ݏ +܏ݏޏ ܏ݏ +܏ݏޏߏ ܏ݏ +SELECT `ã`, SUBSTRING(`ã`,1,4) FROM `ԣ`; +ã SUBSTRING(`ã`,1,4) + + +܏ ܏ +܏ݏ ܏ݏ +܏ݏޏ ܏ݏޏ +܏ݏޏߏ ܏ݏޏ +SELECT `ã`, SUBSTRING(`ã`,1,5) FROM `ԣ`; +ã SUBSTRING(`ã`,1,5) + + +܏ ܏ +܏ݏ ܏ݏ +܏ݏޏ ܏ݏޏ +܏ݏޏߏ ܏ݏޏߏ +SELECT `ã`, SUBSTRING(`ã`,1,6) FROM `ԣ`; +ã SUBSTRING(`ã`,1,6) + + +܏ ܏ +܏ݏ ܏ݏ +܏ݏޏ ܏ݏޏ +܏ݏޏߏ ܏ݏޏߏ +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 0) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 0) + + +܏ +܏ݏ +܏ݏޏ +܏ݏޏߏ +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 1) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 1) + + +܏ +܏ݏ +܏ݏޏ +܏ݏޏߏ +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 2) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 2) + + +܏ ܏ +܏ݏ ܏ +܏ݏޏ ܏ +܏ݏޏߏ ܏ +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 3) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 3) + + +܏ ܏ +܏ݏ ܏ݏ +܏ݏޏ ܏ݏ +܏ݏޏߏ ܏ݏ +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 4) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 4) + + +܏ ܏ +܏ݏ ܏ݏ +܏ݏޏ ܏ݏޏ +܏ݏޏߏ ܏ݏޏ +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 5) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 5) + + +܏ ܏ +܏ݏ ܏ݏ +܏ݏޏ ܏ݏޏ +܏ݏޏߏ ܏ݏޏߏ +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 6) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 6) + + +܏ ܏ +܏ݏ ܏ݏ +܏ݏޏ ܏ݏޏ +܏ݏޏߏ ܏ݏޏߏ +SELECT `ã`, SUBSTRING(`ã`,1,0) FROM `ԣ`; +ã SUBSTRING(`ã`,1,0) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,1) FROM `ԣ`; +ã SUBSTRING(`ã`,1,1) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,2) FROM `ԣ`; +ã SUBSTRING(`ã`,1,2) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,3) FROM `ԣ`; +ã SUBSTRING(`ã`,1,3) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,4) FROM `ԣ`; +ã SUBSTRING(`ã`,1,4) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,5) FROM `ԣ`; +ã SUBSTRING(`ã`,1,5) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,6) FROM `ԣ`; +ã SUBSTRING(`ã`,1,6) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 0) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 0) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 1) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 1) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 2) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 2) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 3) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 3) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 4) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 4) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 5) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 5) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 6) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 6) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,0) FROM `ԣ`; +ã SUBSTRING(`ã`,1,0) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,1) FROM `ԣ`; +ã SUBSTRING(`ã`,1,1) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,2) FROM `ԣ`; +ã SUBSTRING(`ã`,1,2) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,3) FROM `ԣ`; +ã SUBSTRING(`ã`,1,3) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,4) FROM `ԣ`; +ã SUBSTRING(`ã`,1,4) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,5) FROM `ԣ`; +ã SUBSTRING(`ã`,1,5) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,6) FROM `ԣ`; +ã SUBSTRING(`ã`,1,6) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 0) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 0) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 1) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 1) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 2) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 2) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 3) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 3) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 4) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 4) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 5) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 5) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 6) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 6) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,0) FROM `ԣ`; +ã SUBSTRING(`ã`,1,0) +܏ݏޏߏ +܏ݏޏ +܏ݏ +܏ + + +SELECT `ã`, SUBSTRING(`ã`,1,1) FROM `ԣ`; +ã SUBSTRING(`ã`,1,1) +܏ݏޏߏ +܏ݏޏ +܏ݏ +܏ + + +SELECT `ã`, SUBSTRING(`ã`,1,2) FROM `ԣ`; +ã SUBSTRING(`ã`,1,2) +܏ݏޏߏ ܏ +܏ݏޏ ܏ +܏ݏ ܏ +܏ ܏ + + +SELECT `ã`, SUBSTRING(`ã`,1,3) FROM `ԣ`; +ã SUBSTRING(`ã`,1,3) +܏ݏޏߏ ܏ݏ +܏ݏޏ ܏ݏ +܏ݏ ܏ݏ +܏ ܏ + + +SELECT `ã`, SUBSTRING(`ã`,1,4) FROM `ԣ`; +ã SUBSTRING(`ã`,1,4) +܏ݏޏߏ ܏ݏޏ +܏ݏޏ ܏ݏޏ +܏ݏ ܏ݏ +܏ ܏ + + +SELECT `ã`, SUBSTRING(`ã`,1,5) FROM `ԣ`; +ã SUBSTRING(`ã`,1,5) +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏ ܏ݏޏ +܏ݏ ܏ݏ +܏ ܏ + + +SELECT `ã`, SUBSTRING(`ã`,1,6) FROM `ԣ`; +ã SUBSTRING(`ã`,1,6) +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏ ܏ݏޏ +܏ݏ ܏ݏ +܏ ܏ + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 0) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 0) +܏ݏޏߏ +܏ݏޏ +܏ݏ +܏ + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 1) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 1) +܏ݏޏߏ +܏ݏޏ +܏ݏ +܏ + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 2) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 2) +܏ݏޏߏ ܏ +܏ݏޏ ܏ +܏ݏ ܏ +܏ ܏ + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 3) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 3) +܏ݏޏߏ ܏ݏ +܏ݏޏ ܏ݏ +܏ݏ ܏ݏ +܏ ܏ + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 4) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 4) +܏ݏޏߏ ܏ݏޏ +܏ݏޏ ܏ݏޏ +܏ݏ ܏ݏ +܏ ܏ + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 5) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 5) +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏ ܏ݏޏ +܏ݏ ܏ݏ +܏ ܏ + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 6) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 6) +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏ ܏ݏޏ +܏ݏ ܏ݏ +܏ ܏ + + +SELECT `ã`, SUBSTRING(`ã`,1,0) FROM `ԣ`; +ã SUBSTRING(`ã`,1,0) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,1) FROM `ԣ`; +ã SUBSTRING(`ã`,1,1) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,2) FROM `ԣ`; +ã SUBSTRING(`ã`,1,2) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,3) FROM `ԣ`; +ã SUBSTRING(`ã`,1,3) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,4) FROM `ԣ`; +ã SUBSTRING(`ã`,1,4) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,5) FROM `ԣ`; +ã SUBSTRING(`ã`,1,5) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,6) FROM `ԣ`; +ã SUBSTRING(`ã`,1,6) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 0) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 0) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 1) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 1) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 2) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 2) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 3) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 3) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 4) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 4) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 5) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 5) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 6) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 6) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,0) FROM `ԣ`; +ã SUBSTRING(`ã`,1,0) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,1) FROM `ԣ`; +ã SUBSTRING(`ã`,1,1) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,2) FROM `ԣ`; +ã SUBSTRING(`ã`,1,2) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,3) FROM `ԣ`; +ã SUBSTRING(`ã`,1,3) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,4) FROM `ԣ`; +ã SUBSTRING(`ã`,1,4) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,5) FROM `ԣ`; +ã SUBSTRING(`ã`,1,5) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,6) FROM `ԣ`; +ã SUBSTRING(`ã`,1,6) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 0) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 0) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 1) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 1) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 2) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 2) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 3) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 3) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 4) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 4) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 5) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 5) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 6) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 6) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,0) FROM `ԣ`; +ã SUBSTRING(`ã`,1,0) +܏ݏޏߏ +܏ݏޏ +܏ݏ +܏ + + +SELECT `ã`, SUBSTRING(`ã`,1,1) FROM `ԣ`; +ã SUBSTRING(`ã`,1,1) +܏ݏޏߏ +܏ݏޏ +܏ݏ +܏ + + +SELECT `ã`, SUBSTRING(`ã`,1,2) FROM `ԣ`; +ã SUBSTRING(`ã`,1,2) +܏ݏޏߏ ܏ +܏ݏޏ ܏ +܏ݏ ܏ +܏ ܏ + + +SELECT `ã`, SUBSTRING(`ã`,1,3) FROM `ԣ`; +ã SUBSTRING(`ã`,1,3) +܏ݏޏߏ ܏ݏ +܏ݏޏ ܏ݏ +܏ݏ ܏ݏ +܏ ܏ + + +SELECT `ã`, SUBSTRING(`ã`,1,4) FROM `ԣ`; +ã SUBSTRING(`ã`,1,4) +܏ݏޏߏ ܏ݏޏ +܏ݏޏ ܏ݏޏ +܏ݏ ܏ݏ +܏ ܏ + + +SELECT `ã`, SUBSTRING(`ã`,1,5) FROM `ԣ`; +ã SUBSTRING(`ã`,1,5) +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏ ܏ݏޏ +܏ݏ ܏ݏ +܏ ܏ + + +SELECT `ã`, SUBSTRING(`ã`,1,6) FROM `ԣ`; +ã SUBSTRING(`ã`,1,6) +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏ ܏ݏޏ +܏ݏ ܏ݏ +܏ ܏ + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 0) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 0) +܏ݏޏߏ +܏ݏޏ +܏ݏ +܏ + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 1) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 1) +܏ݏޏߏ +܏ݏޏ +܏ݏ +܏ + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 2) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 2) +܏ݏޏߏ ܏ +܏ݏޏ ܏ +܏ݏ ܏ +܏ ܏ + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 3) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 3) +܏ݏޏߏ ܏ݏ +܏ݏޏ ܏ݏ +܏ݏ ܏ݏ +܏ ܏ + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 4) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 4) +܏ݏޏߏ ܏ݏޏ +܏ݏޏ ܏ݏޏ +܏ݏ ܏ݏ +܏ ܏ + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 5) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 5) +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏ ܏ݏޏ +܏ݏ ܏ݏ +܏ ܏ + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 6) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 6) +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏ ܏ݏޏ +܏ݏ ܏ݏ +܏ ܏ + + +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; diff --git a/mysql-test/suite/jp/r/jp_substring_ujis.result b/mysql-test/suite/jp/r/jp_substring_ujis.result new file mode 100755 index 00000000000..229de0c0236 --- /dev/null +++ b/mysql-test/suite/jp/r/jp_substring_ujis.result @@ -0,0 +1,2738 @@ +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +SET NAMES ujis; +SET character_set_database = ujis; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +SELECT `ã`, SUBSTRING(`ã`,0) FROM `ԣ`; +ã SUBSTRING(`ã`,0) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1) FROM `ԣ`; +ã SUBSTRING(`ã`,1) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,2) FROM `ԣ`; +ã SUBSTRING(`ã`,2) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,3) FROM `ԣ`; +ã SUBSTRING(`ã`,3) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,4) FROM `ԣ`; +ã SUBSTRING(`ã`,4) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,5) FROM `ԣ`; +ã SUBSTRING(`ã`,5) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,6) FROM `ԣ`; +ã SUBSTRING(`ã`,6) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 0) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 0) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 2) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 2) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 3) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 3) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 4) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 4) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 5) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 5) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 6) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 6) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,0) FROM `ԣ`; +ã SUBSTRING(`ã`,1,0) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,1) FROM `ԣ`; +ã SUBSTRING(`ã`,1,1) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,2) FROM `ԣ`; +ã SUBSTRING(`ã`,1,2) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,3) FROM `ԣ`; +ã SUBSTRING(`ã`,1,3) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,4) FROM `ԣ`; +ã SUBSTRING(`ã`,1,4) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,5) FROM `ԣ`; +ã SUBSTRING(`ã`,1,5) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,6) FROM `ԣ`; +ã SUBSTRING(`ã`,1,6) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 0) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 0) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 1) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 1) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 2) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 2) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 3) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 3) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 4) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 4) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 5) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 5) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 6) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 6) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,0) FROM `ԣ`; +ã SUBSTRING(`ã`,0) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1) FROM `ԣ`; +ã SUBSTRING(`ã`,1) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,2) FROM `ԣ`; +ã SUBSTRING(`ã`,2) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,3) FROM `ԣ`; +ã SUBSTRING(`ã`,3) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,4) FROM `ԣ`; +ã SUBSTRING(`ã`,4) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,5) FROM `ԣ`; +ã SUBSTRING(`ã`,5) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,6) FROM `ԣ`; +ã SUBSTRING(`ã`,6) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 0) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 0) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 2) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 2) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 3) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 3) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 4) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 4) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 5) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 5) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 6) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 6) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,0) FROM `ԣ`; +ã SUBSTRING(`ã`,1,0) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,1) FROM `ԣ`; +ã SUBSTRING(`ã`,1,1) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,2) FROM `ԣ`; +ã SUBSTRING(`ã`,1,2) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,3) FROM `ԣ`; +ã SUBSTRING(`ã`,1,3) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,4) FROM `ԣ`; +ã SUBSTRING(`ã`,1,4) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,5) FROM `ԣ`; +ã SUBSTRING(`ã`,1,5) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,6) FROM `ԣ`; +ã SUBSTRING(`ã`,1,6) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 0) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 0) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 1) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 1) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 2) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 2) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 3) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 3) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 4) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 4) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 5) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 5) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 6) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 6) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,0) FROM `ԣ`; +ã SUBSTRING(`ã`,0) + + +܏ +܏ݏ +܏ݏޏ +܏ݏޏߏ +SELECT `ã`, SUBSTRING(`ã`,1) FROM `ԣ`; +ã SUBSTRING(`ã`,1) + + +܏ ܏ +܏ݏ ܏ݏ +܏ݏޏ ܏ݏޏ +܏ݏޏߏ ܏ݏޏߏ +SELECT `ã`, SUBSTRING(`ã`,2) FROM `ԣ`; +ã SUBSTRING(`ã`,2) + + +܏ +܏ݏ ݏ +܏ݏޏ ݏޏ +܏ݏޏߏ ݏޏߏ +SELECT `ã`, SUBSTRING(`ã`,3) FROM `ԣ`; +ã SUBSTRING(`ã`,3) + + +܏ +܏ݏ +܏ݏޏ ޏ +܏ݏޏߏ ޏߏ +SELECT `ã`, SUBSTRING(`ã`,4) FROM `ԣ`; +ã SUBSTRING(`ã`,4) + + +܏ +܏ݏ +܏ݏޏ +܏ݏޏߏ ߏ +SELECT `ã`, SUBSTRING(`ã`,5) FROM `ԣ`; +ã SUBSTRING(`ã`,5) + + +܏ +܏ݏ +܏ݏޏ +܏ݏޏߏ +SELECT `ã`, SUBSTRING(`ã`,6) FROM `ԣ`; +ã SUBSTRING(`ã`,6) + + +܏ +܏ݏ +܏ݏޏ +܏ݏޏߏ +SELECT `ã`, SUBSTRING(`ã` FROM 0) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 0) + + +܏ +܏ݏ +܏ݏޏ +܏ݏޏߏ +SELECT `ã`, SUBSTRING(`ã` FROM 1) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1) + + +܏ ܏ +܏ݏ ܏ݏ +܏ݏޏ ܏ݏޏ +܏ݏޏߏ ܏ݏޏߏ +SELECT `ã`, SUBSTRING(`ã` FROM 2) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 2) + + +܏ +܏ݏ ݏ +܏ݏޏ ݏޏ +܏ݏޏߏ ݏޏߏ +SELECT `ã`, SUBSTRING(`ã` FROM 3) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 3) + + +܏ +܏ݏ +܏ݏޏ ޏ +܏ݏޏߏ ޏߏ +SELECT `ã`, SUBSTRING(`ã` FROM 4) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 4) + + +܏ +܏ݏ +܏ݏޏ +܏ݏޏߏ ߏ +SELECT `ã`, SUBSTRING(`ã` FROM 5) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 5) + + +܏ +܏ݏ +܏ݏޏ +܏ݏޏߏ +SELECT `ã`, SUBSTRING(`ã` FROM 6) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 6) + + +܏ +܏ݏ +܏ݏޏ +܏ݏޏߏ +SELECT `ã`, SUBSTRING(`ã`,1,0) FROM `ԣ`; +ã SUBSTRING(`ã`,1,0) + + +܏ +܏ݏ +܏ݏޏ +܏ݏޏߏ +SELECT `ã`, SUBSTRING(`ã`,1,1) FROM `ԣ`; +ã SUBSTRING(`ã`,1,1) + + +܏ +܏ݏ +܏ݏޏ +܏ݏޏߏ +SELECT `ã`, SUBSTRING(`ã`,1,2) FROM `ԣ`; +ã SUBSTRING(`ã`,1,2) + + +܏ ܏ +܏ݏ ܏ +܏ݏޏ ܏ +܏ݏޏߏ ܏ +SELECT `ã`, SUBSTRING(`ã`,1,3) FROM `ԣ`; +ã SUBSTRING(`ã`,1,3) + + +܏ ܏ +܏ݏ ܏ݏ +܏ݏޏ ܏ݏ +܏ݏޏߏ ܏ݏ +SELECT `ã`, SUBSTRING(`ã`,1,4) FROM `ԣ`; +ã SUBSTRING(`ã`,1,4) + + +܏ ܏ +܏ݏ ܏ݏ +܏ݏޏ ܏ݏޏ +܏ݏޏߏ ܏ݏޏ +SELECT `ã`, SUBSTRING(`ã`,1,5) FROM `ԣ`; +ã SUBSTRING(`ã`,1,5) + + +܏ ܏ +܏ݏ ܏ݏ +܏ݏޏ ܏ݏޏ +܏ݏޏߏ ܏ݏޏߏ +SELECT `ã`, SUBSTRING(`ã`,1,6) FROM `ԣ`; +ã SUBSTRING(`ã`,1,6) + + +܏ ܏ +܏ݏ ܏ݏ +܏ݏޏ ܏ݏޏ +܏ݏޏߏ ܏ݏޏߏ +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 0) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 0) + + +܏ +܏ݏ +܏ݏޏ +܏ݏޏߏ +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 1) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 1) + + +܏ +܏ݏ +܏ݏޏ +܏ݏޏߏ +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 2) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 2) + + +܏ ܏ +܏ݏ ܏ +܏ݏޏ ܏ +܏ݏޏߏ ܏ +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 3) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 3) + + +܏ ܏ +܏ݏ ܏ݏ +܏ݏޏ ܏ݏ +܏ݏޏߏ ܏ݏ +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 4) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 4) + + +܏ ܏ +܏ݏ ܏ݏ +܏ݏޏ ܏ݏޏ +܏ݏޏߏ ܏ݏޏ +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 5) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 5) + + +܏ ܏ +܏ݏ ܏ݏ +܏ݏޏ ܏ݏޏ +܏ݏޏߏ ܏ݏޏߏ +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 6) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 6) + + +܏ ܏ +܏ݏ ܏ݏ +܏ݏޏ ܏ݏޏ +܏ݏޏߏ ܏ݏޏߏ +SELECT `ã`, SUBSTRING(`ã`,0) FROM `ԣ`; +ã SUBSTRING(`ã`,0) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1) FROM `ԣ`; +ã SUBSTRING(`ã`,1) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,2) FROM `ԣ`; +ã SUBSTRING(`ã`,2) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,3) FROM `ԣ`; +ã SUBSTRING(`ã`,3) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,4) FROM `ԣ`; +ã SUBSTRING(`ã`,4) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,5) FROM `ԣ`; +ã SUBSTRING(`ã`,5) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,6) FROM `ԣ`; +ã SUBSTRING(`ã`,6) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 0) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 0) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 2) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 2) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 3) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 3) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 4) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 4) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 5) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 5) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 6) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 6) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,0) FROM `ԣ`; +ã SUBSTRING(`ã`,1,0) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,1) FROM `ԣ`; +ã SUBSTRING(`ã`,1,1) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,2) FROM `ԣ`; +ã SUBSTRING(`ã`,1,2) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,3) FROM `ԣ`; +ã SUBSTRING(`ã`,1,3) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,4) FROM `ԣ`; +ã SUBSTRING(`ã`,1,4) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,5) FROM `ԣ`; +ã SUBSTRING(`ã`,1,5) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,6) FROM `ԣ`; +ã SUBSTRING(`ã`,1,6) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 0) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 0) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 1) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 1) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 2) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 2) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 3) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 3) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 4) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 4) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 5) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 5) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 6) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 6) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,0) FROM `ԣ`; +ã SUBSTRING(`ã`,0) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1) FROM `ԣ`; +ã SUBSTRING(`ã`,1) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,2) FROM `ԣ`; +ã SUBSTRING(`ã`,2) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,3) FROM `ԣ`; +ã SUBSTRING(`ã`,3) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,4) FROM `ԣ`; +ã SUBSTRING(`ã`,4) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,5) FROM `ԣ`; +ã SUBSTRING(`ã`,5) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,6) FROM `ԣ`; +ã SUBSTRING(`ã`,6) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 0) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 0) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 2) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 2) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 3) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 3) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 4) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 4) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 5) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 5) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 6) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 6) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,0) FROM `ԣ`; +ã SUBSTRING(`ã`,1,0) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,1) FROM `ԣ`; +ã SUBSTRING(`ã`,1,1) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,2) FROM `ԣ`; +ã SUBSTRING(`ã`,1,2) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,3) FROM `ԣ`; +ã SUBSTRING(`ã`,1,3) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,4) FROM `ԣ`; +ã SUBSTRING(`ã`,1,4) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,5) FROM `ԣ`; +ã SUBSTRING(`ã`,1,5) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,6) FROM `ԣ`; +ã SUBSTRING(`ã`,1,6) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 0) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 0) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 1) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 1) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 2) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 2) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 3) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 3) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 4) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 4) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 5) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 5) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 6) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 6) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,0) FROM `ԣ`; +ã SUBSTRING(`ã`,0) + + +܏ +܏ݏ +܏ݏޏ +܏ݏޏߏ +SELECT `ã`, SUBSTRING(`ã`,1) FROM `ԣ`; +ã SUBSTRING(`ã`,1) + + +܏ ܏ +܏ݏ ܏ݏ +܏ݏޏ ܏ݏޏ +܏ݏޏߏ ܏ݏޏߏ +SELECT `ã`, SUBSTRING(`ã`,2) FROM `ԣ`; +ã SUBSTRING(`ã`,2) + + +܏ +܏ݏ ݏ +܏ݏޏ ݏޏ +܏ݏޏߏ ݏޏߏ +SELECT `ã`, SUBSTRING(`ã`,3) FROM `ԣ`; +ã SUBSTRING(`ã`,3) + + +܏ +܏ݏ +܏ݏޏ ޏ +܏ݏޏߏ ޏߏ +SELECT `ã`, SUBSTRING(`ã`,4) FROM `ԣ`; +ã SUBSTRING(`ã`,4) + + +܏ +܏ݏ +܏ݏޏ +܏ݏޏߏ ߏ +SELECT `ã`, SUBSTRING(`ã`,5) FROM `ԣ`; +ã SUBSTRING(`ã`,5) + + +܏ +܏ݏ +܏ݏޏ +܏ݏޏߏ +SELECT `ã`, SUBSTRING(`ã`,6) FROM `ԣ`; +ã SUBSTRING(`ã`,6) + + +܏ +܏ݏ +܏ݏޏ +܏ݏޏߏ +SELECT `ã`, SUBSTRING(`ã` FROM 0) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 0) + + +܏ +܏ݏ +܏ݏޏ +܏ݏޏߏ +SELECT `ã`, SUBSTRING(`ã` FROM 1) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1) + + +܏ ܏ +܏ݏ ܏ݏ +܏ݏޏ ܏ݏޏ +܏ݏޏߏ ܏ݏޏߏ +SELECT `ã`, SUBSTRING(`ã` FROM 2) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 2) + + +܏ +܏ݏ ݏ +܏ݏޏ ݏޏ +܏ݏޏߏ ݏޏߏ +SELECT `ã`, SUBSTRING(`ã` FROM 3) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 3) + + +܏ +܏ݏ +܏ݏޏ ޏ +܏ݏޏߏ ޏߏ +SELECT `ã`, SUBSTRING(`ã` FROM 4) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 4) + + +܏ +܏ݏ +܏ݏޏ +܏ݏޏߏ ߏ +SELECT `ã`, SUBSTRING(`ã` FROM 5) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 5) + + +܏ +܏ݏ +܏ݏޏ +܏ݏޏߏ +SELECT `ã`, SUBSTRING(`ã` FROM 6) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 6) + + +܏ +܏ݏ +܏ݏޏ +܏ݏޏߏ +SELECT `ã`, SUBSTRING(`ã`,1,0) FROM `ԣ`; +ã SUBSTRING(`ã`,1,0) + + +܏ +܏ݏ +܏ݏޏ +܏ݏޏߏ +SELECT `ã`, SUBSTRING(`ã`,1,1) FROM `ԣ`; +ã SUBSTRING(`ã`,1,1) + + +܏ +܏ݏ +܏ݏޏ +܏ݏޏߏ +SELECT `ã`, SUBSTRING(`ã`,1,2) FROM `ԣ`; +ã SUBSTRING(`ã`,1,2) + + +܏ ܏ +܏ݏ ܏ +܏ݏޏ ܏ +܏ݏޏߏ ܏ +SELECT `ã`, SUBSTRING(`ã`,1,3) FROM `ԣ`; +ã SUBSTRING(`ã`,1,3) + + +܏ ܏ +܏ݏ ܏ݏ +܏ݏޏ ܏ݏ +܏ݏޏߏ ܏ݏ +SELECT `ã`, SUBSTRING(`ã`,1,4) FROM `ԣ`; +ã SUBSTRING(`ã`,1,4) + + +܏ ܏ +܏ݏ ܏ݏ +܏ݏޏ ܏ݏޏ +܏ݏޏߏ ܏ݏޏ +SELECT `ã`, SUBSTRING(`ã`,1,5) FROM `ԣ`; +ã SUBSTRING(`ã`,1,5) + + +܏ ܏ +܏ݏ ܏ݏ +܏ݏޏ ܏ݏޏ +܏ݏޏߏ ܏ݏޏߏ +SELECT `ã`, SUBSTRING(`ã`,1,6) FROM `ԣ`; +ã SUBSTRING(`ã`,1,6) + + +܏ ܏ +܏ݏ ܏ݏ +܏ݏޏ ܏ݏޏ +܏ݏޏߏ ܏ݏޏߏ +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 0) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 0) + + +܏ +܏ݏ +܏ݏޏ +܏ݏޏߏ +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 1) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 1) + + +܏ +܏ݏ +܏ݏޏ +܏ݏޏߏ +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 2) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 2) + + +܏ ܏ +܏ݏ ܏ +܏ݏޏ ܏ +܏ݏޏߏ ܏ +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 3) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 3) + + +܏ ܏ +܏ݏ ܏ݏ +܏ݏޏ ܏ݏ +܏ݏޏߏ ܏ݏ +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 4) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 4) + + +܏ ܏ +܏ݏ ܏ݏ +܏ݏޏ ܏ݏޏ +܏ݏޏߏ ܏ݏޏ +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 5) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 5) + + +܏ ܏ +܏ݏ ܏ݏ +܏ݏޏ ܏ݏޏ +܏ݏޏߏ ܏ݏޏߏ +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 6) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 6) + + +܏ ܏ +܏ݏ ܏ݏ +܏ݏޏ ܏ݏޏ +܏ݏޏߏ ܏ݏޏߏ +SELECT `ã`, SUBSTRING(`ã`,0) FROM `ԣ`; +ã SUBSTRING(`ã`,0) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1) FROM `ԣ`; +ã SUBSTRING(`ã`,1) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,2) FROM `ԣ`; +ã SUBSTRING(`ã`,2) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,3) FROM `ԣ`; +ã SUBSTRING(`ã`,3) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,4) FROM `ԣ`; +ã SUBSTRING(`ã`,4) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,5) FROM `ԣ`; +ã SUBSTRING(`ã`,5) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,6) FROM `ԣ`; +ã SUBSTRING(`ã`,6) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 0) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 0) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 2) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 2) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 3) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 3) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 4) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 4) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 5) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 5) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 6) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 6) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,0) FROM `ԣ`; +ã SUBSTRING(`ã`,1,0) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,1) FROM `ԣ`; +ã SUBSTRING(`ã`,1,1) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,2) FROM `ԣ`; +ã SUBSTRING(`ã`,1,2) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,3) FROM `ԣ`; +ã SUBSTRING(`ã`,1,3) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,4) FROM `ԣ`; +ã SUBSTRING(`ã`,1,4) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,5) FROM `ԣ`; +ã SUBSTRING(`ã`,1,5) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,6) FROM `ԣ`; +ã SUBSTRING(`ã`,1,6) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 0) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 0) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 1) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 1) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 2) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 2) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 3) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 3) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 4) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 4) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 5) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 5) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 6) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 6) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,0) FROM `ԣ`; +ã SUBSTRING(`ã`,0) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1) FROM `ԣ`; +ã SUBSTRING(`ã`,1) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,2) FROM `ԣ`; +ã SUBSTRING(`ã`,2) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,3) FROM `ԣ`; +ã SUBSTRING(`ã`,3) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,4) FROM `ԣ`; +ã SUBSTRING(`ã`,4) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,5) FROM `ԣ`; +ã SUBSTRING(`ã`,5) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,6) FROM `ԣ`; +ã SUBSTRING(`ã`,6) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 0) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 0) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 2) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 2) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 3) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 3) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 4) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 4) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 5) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 5) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 6) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 6) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,0) FROM `ԣ`; +ã SUBSTRING(`ã`,1,0) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,1) FROM `ԣ`; +ã SUBSTRING(`ã`,1,1) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,2) FROM `ԣ`; +ã SUBSTRING(`ã`,1,2) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,3) FROM `ԣ`; +ã SUBSTRING(`ã`,1,3) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,4) FROM `ԣ`; +ã SUBSTRING(`ã`,1,4) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,5) FROM `ԣ`; +ã SUBSTRING(`ã`,1,5) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,6) FROM `ԣ`; +ã SUBSTRING(`ã`,1,6) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 0) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 0) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 1) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 1) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 2) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 2) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 3) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 3) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 4) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 4) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 5) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 5) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 6) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 6) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,0) FROM `ԣ`; +ã SUBSTRING(`ã`,0) +܏ݏޏߏ +܏ݏޏ +܏ݏ +܏ + + +SELECT `ã`, SUBSTRING(`ã`,1) FROM `ԣ`; +ã SUBSTRING(`ã`,1) +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏ ܏ݏޏ +܏ݏ ܏ݏ +܏ ܏ + + +SELECT `ã`, SUBSTRING(`ã`,2) FROM `ԣ`; +ã SUBSTRING(`ã`,2) +܏ݏޏߏ ݏޏߏ +܏ݏޏ ݏޏ +܏ݏ ݏ +܏ + + +SELECT `ã`, SUBSTRING(`ã`,3) FROM `ԣ`; +ã SUBSTRING(`ã`,3) +܏ݏޏߏ ޏߏ +܏ݏޏ ޏ +܏ݏ +܏ + + +SELECT `ã`, SUBSTRING(`ã`,4) FROM `ԣ`; +ã SUBSTRING(`ã`,4) +܏ݏޏߏ ߏ +܏ݏޏ +܏ݏ +܏ + + +SELECT `ã`, SUBSTRING(`ã`,5) FROM `ԣ`; +ã SUBSTRING(`ã`,5) +܏ݏޏߏ +܏ݏޏ +܏ݏ +܏ + + +SELECT `ã`, SUBSTRING(`ã`,6) FROM `ԣ`; +ã SUBSTRING(`ã`,6) +܏ݏޏߏ +܏ݏޏ +܏ݏ +܏ + + +SELECT `ã`, SUBSTRING(`ã` FROM 0) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 0) +܏ݏޏߏ +܏ݏޏ +܏ݏ +܏ + + +SELECT `ã`, SUBSTRING(`ã` FROM 1) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1) +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏ ܏ݏޏ +܏ݏ ܏ݏ +܏ ܏ + + +SELECT `ã`, SUBSTRING(`ã` FROM 2) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 2) +܏ݏޏߏ ݏޏߏ +܏ݏޏ ݏޏ +܏ݏ ݏ +܏ + + +SELECT `ã`, SUBSTRING(`ã` FROM 3) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 3) +܏ݏޏߏ ޏߏ +܏ݏޏ ޏ +܏ݏ +܏ + + +SELECT `ã`, SUBSTRING(`ã` FROM 4) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 4) +܏ݏޏߏ ߏ +܏ݏޏ +܏ݏ +܏ + + +SELECT `ã`, SUBSTRING(`ã` FROM 5) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 5) +܏ݏޏߏ +܏ݏޏ +܏ݏ +܏ + + +SELECT `ã`, SUBSTRING(`ã` FROM 6) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 6) +܏ݏޏߏ +܏ݏޏ +܏ݏ +܏ + + +SELECT `ã`, SUBSTRING(`ã`,1,0) FROM `ԣ`; +ã SUBSTRING(`ã`,1,0) +܏ݏޏߏ +܏ݏޏ +܏ݏ +܏ + + +SELECT `ã`, SUBSTRING(`ã`,1,1) FROM `ԣ`; +ã SUBSTRING(`ã`,1,1) +܏ݏޏߏ +܏ݏޏ +܏ݏ +܏ + + +SELECT `ã`, SUBSTRING(`ã`,1,2) FROM `ԣ`; +ã SUBSTRING(`ã`,1,2) +܏ݏޏߏ ܏ +܏ݏޏ ܏ +܏ݏ ܏ +܏ ܏ + + +SELECT `ã`, SUBSTRING(`ã`,1,3) FROM `ԣ`; +ã SUBSTRING(`ã`,1,3) +܏ݏޏߏ ܏ݏ +܏ݏޏ ܏ݏ +܏ݏ ܏ݏ +܏ ܏ + + +SELECT `ã`, SUBSTRING(`ã`,1,4) FROM `ԣ`; +ã SUBSTRING(`ã`,1,4) +܏ݏޏߏ ܏ݏޏ +܏ݏޏ ܏ݏޏ +܏ݏ ܏ݏ +܏ ܏ + + +SELECT `ã`, SUBSTRING(`ã`,1,5) FROM `ԣ`; +ã SUBSTRING(`ã`,1,5) +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏ ܏ݏޏ +܏ݏ ܏ݏ +܏ ܏ + + +SELECT `ã`, SUBSTRING(`ã`,1,6) FROM `ԣ`; +ã SUBSTRING(`ã`,1,6) +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏ ܏ݏޏ +܏ݏ ܏ݏ +܏ ܏ + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 0) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 0) +܏ݏޏߏ +܏ݏޏ +܏ݏ +܏ + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 1) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 1) +܏ݏޏߏ +܏ݏޏ +܏ݏ +܏ + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 2) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 2) +܏ݏޏߏ ܏ +܏ݏޏ ܏ +܏ݏ ܏ +܏ ܏ + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 3) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 3) +܏ݏޏߏ ܏ݏ +܏ݏޏ ܏ݏ +܏ݏ ܏ݏ +܏ ܏ + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 4) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 4) +܏ݏޏߏ ܏ݏޏ +܏ݏޏ ܏ݏޏ +܏ݏ ܏ݏ +܏ ܏ + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 5) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 5) +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏ ܏ݏޏ +܏ݏ ܏ݏ +܏ ܏ + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 6) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 6) +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏ ܏ݏޏ +܏ݏ ܏ݏ +܏ ܏ + + +SELECT `ã`, SUBSTRING(`ã`,0) FROM `ԣ`; +ã SUBSTRING(`ã`,0) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1) FROM `ԣ`; +ã SUBSTRING(`ã`,1) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,2) FROM `ԣ`; +ã SUBSTRING(`ã`,2) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,3) FROM `ԣ`; +ã SUBSTRING(`ã`,3) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,4) FROM `ԣ`; +ã SUBSTRING(`ã`,4) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,5) FROM `ԣ`; +ã SUBSTRING(`ã`,5) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,6) FROM `ԣ`; +ã SUBSTRING(`ã`,6) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 0) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 0) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 2) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 2) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 3) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 3) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 4) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 4) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 5) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 5) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 6) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 6) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,0) FROM `ԣ`; +ã SUBSTRING(`ã`,1,0) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,1) FROM `ԣ`; +ã SUBSTRING(`ã`,1,1) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,2) FROM `ԣ`; +ã SUBSTRING(`ã`,1,2) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,3) FROM `ԣ`; +ã SUBSTRING(`ã`,1,3) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,4) FROM `ԣ`; +ã SUBSTRING(`ã`,1,4) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,5) FROM `ԣ`; +ã SUBSTRING(`ã`,1,5) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,6) FROM `ԣ`; +ã SUBSTRING(`ã`,1,6) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 0) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 0) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 1) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 1) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 2) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 2) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 3) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 3) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 4) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 4) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 5) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 5) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 6) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 6) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,0) FROM `ԣ`; +ã SUBSTRING(`ã`,0) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1) FROM `ԣ`; +ã SUBSTRING(`ã`,1) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,2) FROM `ԣ`; +ã SUBSTRING(`ã`,2) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,3) FROM `ԣ`; +ã SUBSTRING(`ã`,3) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,4) FROM `ԣ`; +ã SUBSTRING(`ã`,4) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,5) FROM `ԣ`; +ã SUBSTRING(`ã`,5) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,6) FROM `ԣ`; +ã SUBSTRING(`ã`,6) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 0) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 0) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 2) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 2) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 3) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 3) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 4) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 4) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 5) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 5) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 6) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 6) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,0) FROM `ԣ`; +ã SUBSTRING(`ã`,1,0) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,1) FROM `ԣ`; +ã SUBSTRING(`ã`,1,1) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,2) FROM `ԣ`; +ã SUBSTRING(`ã`,1,2) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,3) FROM `ԣ`; +ã SUBSTRING(`ã`,1,3) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,4) FROM `ԣ`; +ã SUBSTRING(`ã`,1,4) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,5) FROM `ԣ`; +ã SUBSTRING(`ã`,1,5) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,1,6) FROM `ԣ`; +ã SUBSTRING(`ã`,1,6) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 0) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 0) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 1) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 1) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 2) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 2) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 3) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 3) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 4) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 4) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 5) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 5) + + + + + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 6) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 6) + + + + + + +SELECT `ã`, SUBSTRING(`ã`,0) FROM `ԣ`; +ã SUBSTRING(`ã`,0) +܏ݏޏߏ +܏ݏޏ +܏ݏ +܏ + + +SELECT `ã`, SUBSTRING(`ã`,1) FROM `ԣ`; +ã SUBSTRING(`ã`,1) +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏ ܏ݏޏ +܏ݏ ܏ݏ +܏ ܏ + + +SELECT `ã`, SUBSTRING(`ã`,2) FROM `ԣ`; +ã SUBSTRING(`ã`,2) +܏ݏޏߏ ݏޏߏ +܏ݏޏ ݏޏ +܏ݏ ݏ +܏ + + +SELECT `ã`, SUBSTRING(`ã`,3) FROM `ԣ`; +ã SUBSTRING(`ã`,3) +܏ݏޏߏ ޏߏ +܏ݏޏ ޏ +܏ݏ +܏ + + +SELECT `ã`, SUBSTRING(`ã`,4) FROM `ԣ`; +ã SUBSTRING(`ã`,4) +܏ݏޏߏ ߏ +܏ݏޏ +܏ݏ +܏ + + +SELECT `ã`, SUBSTRING(`ã`,5) FROM `ԣ`; +ã SUBSTRING(`ã`,5) +܏ݏޏߏ +܏ݏޏ +܏ݏ +܏ + + +SELECT `ã`, SUBSTRING(`ã`,6) FROM `ԣ`; +ã SUBSTRING(`ã`,6) +܏ݏޏߏ +܏ݏޏ +܏ݏ +܏ + + +SELECT `ã`, SUBSTRING(`ã` FROM 0) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 0) +܏ݏޏߏ +܏ݏޏ +܏ݏ +܏ + + +SELECT `ã`, SUBSTRING(`ã` FROM 1) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1) +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏ ܏ݏޏ +܏ݏ ܏ݏ +܏ ܏ + + +SELECT `ã`, SUBSTRING(`ã` FROM 2) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 2) +܏ݏޏߏ ݏޏߏ +܏ݏޏ ݏޏ +܏ݏ ݏ +܏ + + +SELECT `ã`, SUBSTRING(`ã` FROM 3) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 3) +܏ݏޏߏ ޏߏ +܏ݏޏ ޏ +܏ݏ +܏ + + +SELECT `ã`, SUBSTRING(`ã` FROM 4) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 4) +܏ݏޏߏ ߏ +܏ݏޏ +܏ݏ +܏ + + +SELECT `ã`, SUBSTRING(`ã` FROM 5) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 5) +܏ݏޏߏ +܏ݏޏ +܏ݏ +܏ + + +SELECT `ã`, SUBSTRING(`ã` FROM 6) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 6) +܏ݏޏߏ +܏ݏޏ +܏ݏ +܏ + + +SELECT `ã`, SUBSTRING(`ã`,1,0) FROM `ԣ`; +ã SUBSTRING(`ã`,1,0) +܏ݏޏߏ +܏ݏޏ +܏ݏ +܏ + + +SELECT `ã`, SUBSTRING(`ã`,1,1) FROM `ԣ`; +ã SUBSTRING(`ã`,1,1) +܏ݏޏߏ +܏ݏޏ +܏ݏ +܏ + + +SELECT `ã`, SUBSTRING(`ã`,1,2) FROM `ԣ`; +ã SUBSTRING(`ã`,1,2) +܏ݏޏߏ ܏ +܏ݏޏ ܏ +܏ݏ ܏ +܏ ܏ + + +SELECT `ã`, SUBSTRING(`ã`,1,3) FROM `ԣ`; +ã SUBSTRING(`ã`,1,3) +܏ݏޏߏ ܏ݏ +܏ݏޏ ܏ݏ +܏ݏ ܏ݏ +܏ ܏ + + +SELECT `ã`, SUBSTRING(`ã`,1,4) FROM `ԣ`; +ã SUBSTRING(`ã`,1,4) +܏ݏޏߏ ܏ݏޏ +܏ݏޏ ܏ݏޏ +܏ݏ ܏ݏ +܏ ܏ + + +SELECT `ã`, SUBSTRING(`ã`,1,5) FROM `ԣ`; +ã SUBSTRING(`ã`,1,5) +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏ ܏ݏޏ +܏ݏ ܏ݏ +܏ ܏ + + +SELECT `ã`, SUBSTRING(`ã`,1,6) FROM `ԣ`; +ã SUBSTRING(`ã`,1,6) +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏ ܏ݏޏ +܏ݏ ܏ݏ +܏ ܏ + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 0) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 0) +܏ݏޏߏ +܏ݏޏ +܏ݏ +܏ + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 1) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 1) +܏ݏޏߏ +܏ݏޏ +܏ݏ +܏ + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 2) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 2) +܏ݏޏߏ ܏ +܏ݏޏ ܏ +܏ݏ ܏ +܏ ܏ + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 3) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 3) +܏ݏޏߏ ܏ݏ +܏ݏޏ ܏ݏ +܏ݏ ܏ݏ +܏ ܏ + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 4) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 4) +܏ݏޏߏ ܏ݏޏ +܏ݏޏ ܏ݏޏ +܏ݏ ܏ݏ +܏ ܏ + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 5) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 5) +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏ ܏ݏޏ +܏ݏ ܏ݏ +܏ ܏ + + +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 6) FROM `ԣ`; +ã SUBSTRING(`ã` FROM 1 FOR 6) +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏ ܏ݏޏ +܏ݏ ܏ݏ +܏ ܏ + + +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; diff --git a/mysql-test/suite/jp/r/jp_substring_utf8.result b/mysql-test/suite/jp/r/jp_substring_utf8.result new file mode 100755 index 00000000000..f838a2e75e2 --- /dev/null +++ b/mysql-test/suite/jp/r/jp_substring_utf8.result @@ -0,0 +1,2738 @@ +drop table if exists `T1`; +drop table if exists `T2`; +drop table if exists `T3`; +drop table if exists `T4`; +drop table if exists `T5`; +drop table if exists `T6`; +drop table if exists `T7`; +drop table if exists `T8`; +drop table if exists `T9`; +drop table if exists `T10`; +drop table if exists `T11`; +drop table if exists `T12`; +SET NAMES utf8; +SET character_set_database = utf8; +CREATE TABLE `T1` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T2` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T3` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T4` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T5` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T6` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T7` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T8` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T9` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T10` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +CREATE TABLE `T11` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +CREATE TABLE `T12` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +INSERT INTO `T1` VALUES ('アイウエオ'),('アイウエ'),('アイウ'),('アイ'),('ア'),(''); +INSERT INTO `T2` VALUES ('あいうえお'),('あいうえ'),('あいう'),('あい'),('あ'),(''); +INSERT INTO `T3` VALUES ('龔龖龗龞龡'),('龔龖龗龞'),('龔龖龗'),('龔龖'),('龔'),(''); +INSERT INTO `T4` VALUES ('アイウエオ'),('アイウエ'),('アイウ'),('アイ'),('ア'),(''); +INSERT INTO `T5` VALUES ('あいうえお'),('あいうえ'),('あいう'),('あい'),('あ'),(''); +INSERT INTO `T6` VALUES ('龔龖龗龞龡'),('龔龖龗龞'),('龔龖龗'),('龔龖'),('龔'),(''); +INSERT INTO `T7` VALUES ('アイウエオ'),('アイウエ'),('アイウ'),('アイ'),('ア'),(''); +INSERT INTO `T8` VALUES ('あいうえお'),('あいうえ'),('あいう'),('あい'),('あ'),(''); +INSERT INTO `T9` VALUES ('龔龖龗龞龡'),('龔龖龗龞'),('龔龖龗'),('龔龖'),('龔'),(''); +INSERT INTO `T10` VALUES ('アイウエオ'),('アイウエ'),('アイウ'),('アイ'),('ア'),(''); +INSERT INTO `T11` VALUES ('あいうえお'),('あいうえ'),('あいう'),('あい'),('あ'),(''); +INSERT INTO `T12` VALUES ('龔龖龗龞龡'),('龔龖龗龞'),('龔龖龗'),('龔龖'),('龔'),(''); +SELECT `C1`, SUBSTRING(`C1`,0) FROM `T1`; +C1 SUBSTRING(`C1`,0) + +ア +アイ +アイウ +アイウエ +アイウエオ +SELECT `C1`, SUBSTRING(`C1`,1) FROM `T1`; +C1 SUBSTRING(`C1`,1) + +ア ア +アイ アイ +アイウ アイウ +アイウエ アイウエ +アイウエオ アイウエオ +SELECT `C1`, SUBSTRING(`C1`,2) FROM `T1`; +C1 SUBSTRING(`C1`,2) + +ア +アイ イ +アイウ イウ +アイウエ イウエ +アイウエオ イウエオ +SELECT `C1`, SUBSTRING(`C1`,3) FROM `T1`; +C1 SUBSTRING(`C1`,3) + +ア +アイ +アイウ ウ +アイウエ ウエ +アイウエオ ウエオ +SELECT `C1`, SUBSTRING(`C1`,4) FROM `T1`; +C1 SUBSTRING(`C1`,4) + +ア +アイ +アイウ +アイウエ エ +アイウエオ エオ +SELECT `C1`, SUBSTRING(`C1`,5) FROM `T1`; +C1 SUBSTRING(`C1`,5) + +ア +アイ +アイウ +アイウエ +アイウエオ オ +SELECT `C1`, SUBSTRING(`C1`,6) FROM `T1`; +C1 SUBSTRING(`C1`,6) + +ア +アイ +アイウ +アイウエ +アイウエオ +SELECT `C1`, SUBSTRING(`C1` FROM 0) FROM `T1`; +C1 SUBSTRING(`C1` FROM 0) + +ア +アイ +アイウ +アイウエ +アイウエオ +SELECT `C1`, SUBSTRING(`C1` FROM 1) FROM `T1`; +C1 SUBSTRING(`C1` FROM 1) + +ア ア +アイ アイ +アイウ アイウ +アイウエ アイウエ +アイウエオ アイウエオ +SELECT `C1`, SUBSTRING(`C1` FROM 2) FROM `T1`; +C1 SUBSTRING(`C1` FROM 2) + +ア +アイ イ +アイウ イウ +アイウエ イウエ +アイウエオ イウエオ +SELECT `C1`, SUBSTRING(`C1` FROM 3) FROM `T1`; +C1 SUBSTRING(`C1` FROM 3) + +ア +アイ +アイウ ウ +アイウエ ウエ +アイウエオ ウエオ +SELECT `C1`, SUBSTRING(`C1` FROM 4) FROM `T1`; +C1 SUBSTRING(`C1` FROM 4) + +ア +アイ +アイウ +アイウエ エ +アイウエオ エオ +SELECT `C1`, SUBSTRING(`C1` FROM 5) FROM `T1`; +C1 SUBSTRING(`C1` FROM 5) + +ア +アイ +アイウ +アイウエ +アイウエオ オ +SELECT `C1`, SUBSTRING(`C1` FROM 6) FROM `T1`; +C1 SUBSTRING(`C1` FROM 6) + +ア +アイ +アイウ +アイウエ +アイウエオ +SELECT `C1`, SUBSTRING(`C1`,1,0) FROM `T1`; +C1 SUBSTRING(`C1`,1,0) + +ア +アイ +アイウ +アイウエ +アイウエオ +SELECT `C1`, SUBSTRING(`C1`,1,1) FROM `T1`; +C1 SUBSTRING(`C1`,1,1) + +ア ア +アイ ア +アイウ ア +アイウエ ア +アイウエオ ア +SELECT `C1`, SUBSTRING(`C1`,1,2) FROM `T1`; +C1 SUBSTRING(`C1`,1,2) + +ア ア +アイ アイ +アイウ アイ +アイウエ アイ +アイウエオ アイ +SELECT `C1`, SUBSTRING(`C1`,1,3) FROM `T1`; +C1 SUBSTRING(`C1`,1,3) + +ア ア +アイ アイ +アイウ アイウ +アイウエ アイウ +アイウエオ アイウ +SELECT `C1`, SUBSTRING(`C1`,1,4) FROM `T1`; +C1 SUBSTRING(`C1`,1,4) + +ア ア +アイ アイ +アイウ アイウ +アイウエ アイウエ +アイウエオ アイウエ +SELECT `C1`, SUBSTRING(`C1`,1,5) FROM `T1`; +C1 SUBSTRING(`C1`,1,5) + +ア ア +アイ アイ +アイウ アイウ +アイウエ アイウエ +アイウエオ アイウエオ +SELECT `C1`, SUBSTRING(`C1`,1,6) FROM `T1`; +C1 SUBSTRING(`C1`,1,6) + +ア ア +アイ アイ +アイウ アイウ +アイウエ アイウエ +アイウエオ アイウエオ +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 0) FROM `T1`; +C1 SUBSTRING(`C1` FROM 1 FOR 0) + +ア +アイ +アイウ +アイウエ +アイウエオ +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 1) FROM `T1`; +C1 SUBSTRING(`C1` FROM 1 FOR 1) + +ア ア +アイ ア +アイウ ア +アイウエ ア +アイウエオ ア +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 2) FROM `T1`; +C1 SUBSTRING(`C1` FROM 1 FOR 2) + +ア ア +アイ アイ +アイウ アイ +アイウエ アイ +アイウエオ アイ +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 3) FROM `T1`; +C1 SUBSTRING(`C1` FROM 1 FOR 3) + +ア ア +アイ アイ +アイウ アイウ +アイウエ アイウ +アイウエオ アイウ +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 4) FROM `T1`; +C1 SUBSTRING(`C1` FROM 1 FOR 4) + +ア ア +アイ アイ +アイウ アイウ +アイウエ アイウエ +アイウエオ アイウエ +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 5) FROM `T1`; +C1 SUBSTRING(`C1` FROM 1 FOR 5) + +ア ア +アイ アイ +アイウ アイウ +アイウエ アイウエ +アイウエオ アイウエオ +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 6) FROM `T1`; +C1 SUBSTRING(`C1` FROM 1 FOR 6) + +ア ア +アイ アイ +アイウ アイウ +アイウエ アイウエ +アイウエオ アイウエオ +SELECT `C1`, SUBSTRING(`C1`,0) FROM `T2`; +C1 SUBSTRING(`C1`,0) + +あ +あい +あいう +あいうえ +あいうえお +SELECT `C1`, SUBSTRING(`C1`,1) FROM `T2`; +C1 SUBSTRING(`C1`,1) + +あ あ +あい あい +あいう あいう +あいうえ あいうえ +あいうえお あいうえお +SELECT `C1`, SUBSTRING(`C1`,2) FROM `T2`; +C1 SUBSTRING(`C1`,2) + +あ +あい い +あいう いう +あいうえ いうえ +あいうえお いうえお +SELECT `C1`, SUBSTRING(`C1`,3) FROM `T2`; +C1 SUBSTRING(`C1`,3) + +あ +あい +あいう う +あいうえ うえ +あいうえお うえお +SELECT `C1`, SUBSTRING(`C1`,4) FROM `T2`; +C1 SUBSTRING(`C1`,4) + +あ +あい +あいう +あいうえ え +あいうえお えお +SELECT `C1`, SUBSTRING(`C1`,5) FROM `T2`; +C1 SUBSTRING(`C1`,5) + +あ +あい +あいう +あいうえ +あいうえお お +SELECT `C1`, SUBSTRING(`C1`,6) FROM `T2`; +C1 SUBSTRING(`C1`,6) + +あ +あい +あいう +あいうえ +あいうえお +SELECT `C1`, SUBSTRING(`C1` FROM 0) FROM `T2`; +C1 SUBSTRING(`C1` FROM 0) + +あ +あい +あいう +あいうえ +あいうえお +SELECT `C1`, SUBSTRING(`C1` FROM 1) FROM `T2`; +C1 SUBSTRING(`C1` FROM 1) + +あ あ +あい あい +あいう あいう +あいうえ あいうえ +あいうえお あいうえお +SELECT `C1`, SUBSTRING(`C1` FROM 2) FROM `T2`; +C1 SUBSTRING(`C1` FROM 2) + +あ +あい い +あいう いう +あいうえ いうえ +あいうえお いうえお +SELECT `C1`, SUBSTRING(`C1` FROM 3) FROM `T2`; +C1 SUBSTRING(`C1` FROM 3) + +あ +あい +あいう う +あいうえ うえ +あいうえお うえお +SELECT `C1`, SUBSTRING(`C1` FROM 4) FROM `T2`; +C1 SUBSTRING(`C1` FROM 4) + +あ +あい +あいう +あいうえ え +あいうえお えお +SELECT `C1`, SUBSTRING(`C1` FROM 5) FROM `T2`; +C1 SUBSTRING(`C1` FROM 5) + +あ +あい +あいう +あいうえ +あいうえお お +SELECT `C1`, SUBSTRING(`C1` FROM 6) FROM `T2`; +C1 SUBSTRING(`C1` FROM 6) + +あ +あい +あいう +あいうえ +あいうえお +SELECT `C1`, SUBSTRING(`C1`,1,0) FROM `T2`; +C1 SUBSTRING(`C1`,1,0) + +あ +あい +あいう +あいうえ +あいうえお +SELECT `C1`, SUBSTRING(`C1`,1,1) FROM `T2`; +C1 SUBSTRING(`C1`,1,1) + +あ あ +あい あ +あいう あ +あいうえ あ +あいうえお あ +SELECT `C1`, SUBSTRING(`C1`,1,2) FROM `T2`; +C1 SUBSTRING(`C1`,1,2) + +あ あ +あい あい +あいう あい +あいうえ あい +あいうえお あい +SELECT `C1`, SUBSTRING(`C1`,1,3) FROM `T2`; +C1 SUBSTRING(`C1`,1,3) + +あ あ +あい あい +あいう あいう +あいうえ あいう +あいうえお あいう +SELECT `C1`, SUBSTRING(`C1`,1,4) FROM `T2`; +C1 SUBSTRING(`C1`,1,4) + +あ あ +あい あい +あいう あいう +あいうえ あいうえ +あいうえお あいうえ +SELECT `C1`, SUBSTRING(`C1`,1,5) FROM `T2`; +C1 SUBSTRING(`C1`,1,5) + +あ あ +あい あい +あいう あいう +あいうえ あいうえ +あいうえお あいうえお +SELECT `C1`, SUBSTRING(`C1`,1,6) FROM `T2`; +C1 SUBSTRING(`C1`,1,6) + +あ あ +あい あい +あいう あいう +あいうえ あいうえ +あいうえお あいうえお +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 0) FROM `T2`; +C1 SUBSTRING(`C1` FROM 1 FOR 0) + +あ +あい +あいう +あいうえ +あいうえお +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 1) FROM `T2`; +C1 SUBSTRING(`C1` FROM 1 FOR 1) + +あ あ +あい あ +あいう あ +あいうえ あ +あいうえお あ +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 2) FROM `T2`; +C1 SUBSTRING(`C1` FROM 1 FOR 2) + +あ あ +あい あい +あいう あい +あいうえ あい +あいうえお あい +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 3) FROM `T2`; +C1 SUBSTRING(`C1` FROM 1 FOR 3) + +あ あ +あい あい +あいう あいう +あいうえ あいう +あいうえお あいう +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 4) FROM `T2`; +C1 SUBSTRING(`C1` FROM 1 FOR 4) + +あ あ +あい あい +あいう あいう +あいうえ あいうえ +あいうえお あいうえ +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 5) FROM `T2`; +C1 SUBSTRING(`C1` FROM 1 FOR 5) + +あ あ +あい あい +あいう あいう +あいうえ あいうえ +あいうえお あいうえお +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 6) FROM `T2`; +C1 SUBSTRING(`C1` FROM 1 FOR 6) + +あ あ +あい あい +あいう あいう +あいうえ あいうえ +あいうえお あいうえお +SELECT `C1`, SUBSTRING(`C1`,0) FROM `T3`; +C1 SUBSTRING(`C1`,0) + +龔 +龔龖 +龔龖龗 +龔龖龗龞 +龔龖龗龞龡 +SELECT `C1`, SUBSTRING(`C1`,1) FROM `T3`; +C1 SUBSTRING(`C1`,1) + +龔 龔 +龔龖 龔龖 +龔龖龗 龔龖龗 +龔龖龗龞 龔龖龗龞 +龔龖龗龞龡 龔龖龗龞龡 +SELECT `C1`, SUBSTRING(`C1`,2) FROM `T3`; +C1 SUBSTRING(`C1`,2) + +龔 +龔龖 龖 +龔龖龗 龖龗 +龔龖龗龞 龖龗龞 +龔龖龗龞龡 龖龗龞龡 +SELECT `C1`, SUBSTRING(`C1`,3) FROM `T3`; +C1 SUBSTRING(`C1`,3) + +龔 +龔龖 +龔龖龗 龗 +龔龖龗龞 龗龞 +龔龖龗龞龡 龗龞龡 +SELECT `C1`, SUBSTRING(`C1`,4) FROM `T3`; +C1 SUBSTRING(`C1`,4) + +龔 +龔龖 +龔龖龗 +龔龖龗龞 龞 +龔龖龗龞龡 龞龡 +SELECT `C1`, SUBSTRING(`C1`,5) FROM `T3`; +C1 SUBSTRING(`C1`,5) + +龔 +龔龖 +龔龖龗 +龔龖龗龞 +龔龖龗龞龡 龡 +SELECT `C1`, SUBSTRING(`C1`,6) FROM `T3`; +C1 SUBSTRING(`C1`,6) + +龔 +龔龖 +龔龖龗 +龔龖龗龞 +龔龖龗龞龡 +SELECT `C1`, SUBSTRING(`C1` FROM 0) FROM `T3`; +C1 SUBSTRING(`C1` FROM 0) + +龔 +龔龖 +龔龖龗 +龔龖龗龞 +龔龖龗龞龡 +SELECT `C1`, SUBSTRING(`C1` FROM 1) FROM `T3`; +C1 SUBSTRING(`C1` FROM 1) + +龔 龔 +龔龖 龔龖 +龔龖龗 龔龖龗 +龔龖龗龞 龔龖龗龞 +龔龖龗龞龡 龔龖龗龞龡 +SELECT `C1`, SUBSTRING(`C1` FROM 2) FROM `T3`; +C1 SUBSTRING(`C1` FROM 2) + +龔 +龔龖 龖 +龔龖龗 龖龗 +龔龖龗龞 龖龗龞 +龔龖龗龞龡 龖龗龞龡 +SELECT `C1`, SUBSTRING(`C1` FROM 3) FROM `T3`; +C1 SUBSTRING(`C1` FROM 3) + +龔 +龔龖 +龔龖龗 龗 +龔龖龗龞 龗龞 +龔龖龗龞龡 龗龞龡 +SELECT `C1`, SUBSTRING(`C1` FROM 4) FROM `T3`; +C1 SUBSTRING(`C1` FROM 4) + +龔 +龔龖 +龔龖龗 +龔龖龗龞 龞 +龔龖龗龞龡 龞龡 +SELECT `C1`, SUBSTRING(`C1` FROM 5) FROM `T3`; +C1 SUBSTRING(`C1` FROM 5) + +龔 +龔龖 +龔龖龗 +龔龖龗龞 +龔龖龗龞龡 龡 +SELECT `C1`, SUBSTRING(`C1` FROM 6) FROM `T3`; +C1 SUBSTRING(`C1` FROM 6) + +龔 +龔龖 +龔龖龗 +龔龖龗龞 +龔龖龗龞龡 +SELECT `C1`, SUBSTRING(`C1`,1,0) FROM `T3`; +C1 SUBSTRING(`C1`,1,0) + +龔 +龔龖 +龔龖龗 +龔龖龗龞 +龔龖龗龞龡 +SELECT `C1`, SUBSTRING(`C1`,1,1) FROM `T3`; +C1 SUBSTRING(`C1`,1,1) + +龔 龔 +龔龖 龔 +龔龖龗 龔 +龔龖龗龞 龔 +龔龖龗龞龡 龔 +SELECT `C1`, SUBSTRING(`C1`,1,2) FROM `T3`; +C1 SUBSTRING(`C1`,1,2) + +龔 龔 +龔龖 龔龖 +龔龖龗 龔龖 +龔龖龗龞 龔龖 +龔龖龗龞龡 龔龖 +SELECT `C1`, SUBSTRING(`C1`,1,3) FROM `T3`; +C1 SUBSTRING(`C1`,1,3) + +龔 龔 +龔龖 龔龖 +龔龖龗 龔龖龗 +龔龖龗龞 龔龖龗 +龔龖龗龞龡 龔龖龗 +SELECT `C1`, SUBSTRING(`C1`,1,4) FROM `T3`; +C1 SUBSTRING(`C1`,1,4) + +龔 龔 +龔龖 龔龖 +龔龖龗 龔龖龗 +龔龖龗龞 龔龖龗龞 +龔龖龗龞龡 龔龖龗龞 +SELECT `C1`, SUBSTRING(`C1`,1,5) FROM `T3`; +C1 SUBSTRING(`C1`,1,5) + +龔 龔 +龔龖 龔龖 +龔龖龗 龔龖龗 +龔龖龗龞 龔龖龗龞 +龔龖龗龞龡 龔龖龗龞龡 +SELECT `C1`, SUBSTRING(`C1`,1,6) FROM `T3`; +C1 SUBSTRING(`C1`,1,6) + +龔 龔 +龔龖 龔龖 +龔龖龗 龔龖龗 +龔龖龗龞 龔龖龗龞 +龔龖龗龞龡 龔龖龗龞龡 +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 0) FROM `T3`; +C1 SUBSTRING(`C1` FROM 1 FOR 0) + +龔 +龔龖 +龔龖龗 +龔龖龗龞 +龔龖龗龞龡 +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 1) FROM `T3`; +C1 SUBSTRING(`C1` FROM 1 FOR 1) + +龔 龔 +龔龖 龔 +龔龖龗 龔 +龔龖龗龞 龔 +龔龖龗龞龡 龔 +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 2) FROM `T3`; +C1 SUBSTRING(`C1` FROM 1 FOR 2) + +龔 龔 +龔龖 龔龖 +龔龖龗 龔龖 +龔龖龗龞 龔龖 +龔龖龗龞龡 龔龖 +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 3) FROM `T3`; +C1 SUBSTRING(`C1` FROM 1 FOR 3) + +龔 龔 +龔龖 龔龖 +龔龖龗 龔龖龗 +龔龖龗龞 龔龖龗 +龔龖龗龞龡 龔龖龗 +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 4) FROM `T3`; +C1 SUBSTRING(`C1` FROM 1 FOR 4) + +龔 龔 +龔龖 龔龖 +龔龖龗 龔龖龗 +龔龖龗龞 龔龖龗龞 +龔龖龗龞龡 龔龖龗龞 +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 5) FROM `T3`; +C1 SUBSTRING(`C1` FROM 1 FOR 5) + +龔 龔 +龔龖 龔龖 +龔龖龗 龔龖龗 +龔龖龗龞 龔龖龗龞 +龔龖龗龞龡 龔龖龗龞龡 +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 6) FROM `T3`; +C1 SUBSTRING(`C1` FROM 1 FOR 6) + +龔 龔 +龔龖 龔龖 +龔龖龗 龔龖龗 +龔龖龗龞 龔龖龗龞 +龔龖龗龞龡 龔龖龗龞龡 +SELECT `C1`, SUBSTRING(`C1`,0) FROM `T4`; +C1 SUBSTRING(`C1`,0) + +ア +アイ +アイウ +アイウエ +アイウエオ +SELECT `C1`, SUBSTRING(`C1`,1) FROM `T4`; +C1 SUBSTRING(`C1`,1) + +ア ア +アイ アイ +アイウ アイウ +アイウエ アイウエ +アイウエオ アイウエオ +SELECT `C1`, SUBSTRING(`C1`,2) FROM `T4`; +C1 SUBSTRING(`C1`,2) + +ア +アイ イ +アイウ イウ +アイウエ イウエ +アイウエオ イウエオ +SELECT `C1`, SUBSTRING(`C1`,3) FROM `T4`; +C1 SUBSTRING(`C1`,3) + +ア +アイ +アイウ ウ +アイウエ ウエ +アイウエオ ウエオ +SELECT `C1`, SUBSTRING(`C1`,4) FROM `T4`; +C1 SUBSTRING(`C1`,4) + +ア +アイ +アイウ +アイウエ エ +アイウエオ エオ +SELECT `C1`, SUBSTRING(`C1`,5) FROM `T4`; +C1 SUBSTRING(`C1`,5) + +ア +アイ +アイウ +アイウエ +アイウエオ オ +SELECT `C1`, SUBSTRING(`C1`,6) FROM `T4`; +C1 SUBSTRING(`C1`,6) + +ア +アイ +アイウ +アイウエ +アイウエオ +SELECT `C1`, SUBSTRING(`C1` FROM 0) FROM `T4`; +C1 SUBSTRING(`C1` FROM 0) + +ア +アイ +アイウ +アイウエ +アイウエオ +SELECT `C1`, SUBSTRING(`C1` FROM 1) FROM `T4`; +C1 SUBSTRING(`C1` FROM 1) + +ア ア +アイ アイ +アイウ アイウ +アイウエ アイウエ +アイウエオ アイウエオ +SELECT `C1`, SUBSTRING(`C1` FROM 2) FROM `T4`; +C1 SUBSTRING(`C1` FROM 2) + +ア +アイ イ +アイウ イウ +アイウエ イウエ +アイウエオ イウエオ +SELECT `C1`, SUBSTRING(`C1` FROM 3) FROM `T4`; +C1 SUBSTRING(`C1` FROM 3) + +ア +アイ +アイウ ウ +アイウエ ウエ +アイウエオ ウエオ +SELECT `C1`, SUBSTRING(`C1` FROM 4) FROM `T4`; +C1 SUBSTRING(`C1` FROM 4) + +ア +アイ +アイウ +アイウエ エ +アイウエオ エオ +SELECT `C1`, SUBSTRING(`C1` FROM 5) FROM `T4`; +C1 SUBSTRING(`C1` FROM 5) + +ア +アイ +アイウ +アイウエ +アイウエオ オ +SELECT `C1`, SUBSTRING(`C1` FROM 6) FROM `T4`; +C1 SUBSTRING(`C1` FROM 6) + +ア +アイ +アイウ +アイウエ +アイウエオ +SELECT `C1`, SUBSTRING(`C1`,1,0) FROM `T4`; +C1 SUBSTRING(`C1`,1,0) + +ア +アイ +アイウ +アイウエ +アイウエオ +SELECT `C1`, SUBSTRING(`C1`,1,1) FROM `T4`; +C1 SUBSTRING(`C1`,1,1) + +ア ア +アイ ア +アイウ ア +アイウエ ア +アイウエオ ア +SELECT `C1`, SUBSTRING(`C1`,1,2) FROM `T4`; +C1 SUBSTRING(`C1`,1,2) + +ア ア +アイ アイ +アイウ アイ +アイウエ アイ +アイウエオ アイ +SELECT `C1`, SUBSTRING(`C1`,1,3) FROM `T4`; +C1 SUBSTRING(`C1`,1,3) + +ア ア +アイ アイ +アイウ アイウ +アイウエ アイウ +アイウエオ アイウ +SELECT `C1`, SUBSTRING(`C1`,1,4) FROM `T4`; +C1 SUBSTRING(`C1`,1,4) + +ア ア +アイ アイ +アイウ アイウ +アイウエ アイウエ +アイウエオ アイウエ +SELECT `C1`, SUBSTRING(`C1`,1,5) FROM `T4`; +C1 SUBSTRING(`C1`,1,5) + +ア ア +アイ アイ +アイウ アイウ +アイウエ アイウエ +アイウエオ アイウエオ +SELECT `C1`, SUBSTRING(`C1`,1,6) FROM `T4`; +C1 SUBSTRING(`C1`,1,6) + +ア ア +アイ アイ +アイウ アイウ +アイウエ アイウエ +アイウエオ アイウエオ +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 0) FROM `T4`; +C1 SUBSTRING(`C1` FROM 1 FOR 0) + +ア +アイ +アイウ +アイウエ +アイウエオ +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 1) FROM `T4`; +C1 SUBSTRING(`C1` FROM 1 FOR 1) + +ア ア +アイ ア +アイウ ア +アイウエ ア +アイウエオ ア +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 2) FROM `T4`; +C1 SUBSTRING(`C1` FROM 1 FOR 2) + +ア ア +アイ アイ +アイウ アイ +アイウエ アイ +アイウエオ アイ +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 3) FROM `T4`; +C1 SUBSTRING(`C1` FROM 1 FOR 3) + +ア ア +アイ アイ +アイウ アイウ +アイウエ アイウ +アイウエオ アイウ +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 4) FROM `T4`; +C1 SUBSTRING(`C1` FROM 1 FOR 4) + +ア ア +アイ アイ +アイウ アイウ +アイウエ アイウエ +アイウエオ アイウエ +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 5) FROM `T4`; +C1 SUBSTRING(`C1` FROM 1 FOR 5) + +ア ア +アイ アイ +アイウ アイウ +アイウエ アイウエ +アイウエオ アイウエオ +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 6) FROM `T4`; +C1 SUBSTRING(`C1` FROM 1 FOR 6) + +ア ア +アイ アイ +アイウ アイウ +アイウエ アイウエ +アイウエオ アイウエオ +SELECT `C1`, SUBSTRING(`C1`,0) FROM `T5`; +C1 SUBSTRING(`C1`,0) + +あ +あい +あいう +あいうえ +あいうえお +SELECT `C1`, SUBSTRING(`C1`,1) FROM `T5`; +C1 SUBSTRING(`C1`,1) + +あ あ +あい あい +あいう あいう +あいうえ あいうえ +あいうえお あいうえお +SELECT `C1`, SUBSTRING(`C1`,2) FROM `T5`; +C1 SUBSTRING(`C1`,2) + +あ +あい い +あいう いう +あいうえ いうえ +あいうえお いうえお +SELECT `C1`, SUBSTRING(`C1`,3) FROM `T5`; +C1 SUBSTRING(`C1`,3) + +あ +あい +あいう う +あいうえ うえ +あいうえお うえお +SELECT `C1`, SUBSTRING(`C1`,4) FROM `T5`; +C1 SUBSTRING(`C1`,4) + +あ +あい +あいう +あいうえ え +あいうえお えお +SELECT `C1`, SUBSTRING(`C1`,5) FROM `T5`; +C1 SUBSTRING(`C1`,5) + +あ +あい +あいう +あいうえ +あいうえお お +SELECT `C1`, SUBSTRING(`C1`,6) FROM `T5`; +C1 SUBSTRING(`C1`,6) + +あ +あい +あいう +あいうえ +あいうえお +SELECT `C1`, SUBSTRING(`C1` FROM 0) FROM `T5`; +C1 SUBSTRING(`C1` FROM 0) + +あ +あい +あいう +あいうえ +あいうえお +SELECT `C1`, SUBSTRING(`C1` FROM 1) FROM `T5`; +C1 SUBSTRING(`C1` FROM 1) + +あ あ +あい あい +あいう あいう +あいうえ あいうえ +あいうえお あいうえお +SELECT `C1`, SUBSTRING(`C1` FROM 2) FROM `T5`; +C1 SUBSTRING(`C1` FROM 2) + +あ +あい い +あいう いう +あいうえ いうえ +あいうえお いうえお +SELECT `C1`, SUBSTRING(`C1` FROM 3) FROM `T5`; +C1 SUBSTRING(`C1` FROM 3) + +あ +あい +あいう う +あいうえ うえ +あいうえお うえお +SELECT `C1`, SUBSTRING(`C1` FROM 4) FROM `T5`; +C1 SUBSTRING(`C1` FROM 4) + +あ +あい +あいう +あいうえ え +あいうえお えお +SELECT `C1`, SUBSTRING(`C1` FROM 5) FROM `T5`; +C1 SUBSTRING(`C1` FROM 5) + +あ +あい +あいう +あいうえ +あいうえお お +SELECT `C1`, SUBSTRING(`C1` FROM 6) FROM `T5`; +C1 SUBSTRING(`C1` FROM 6) + +あ +あい +あいう +あいうえ +あいうえお +SELECT `C1`, SUBSTRING(`C1`,1,0) FROM `T5`; +C1 SUBSTRING(`C1`,1,0) + +あ +あい +あいう +あいうえ +あいうえお +SELECT `C1`, SUBSTRING(`C1`,1,1) FROM `T5`; +C1 SUBSTRING(`C1`,1,1) + +あ あ +あい あ +あいう あ +あいうえ あ +あいうえお あ +SELECT `C1`, SUBSTRING(`C1`,1,2) FROM `T5`; +C1 SUBSTRING(`C1`,1,2) + +あ あ +あい あい +あいう あい +あいうえ あい +あいうえお あい +SELECT `C1`, SUBSTRING(`C1`,1,3) FROM `T5`; +C1 SUBSTRING(`C1`,1,3) + +あ あ +あい あい +あいう あいう +あいうえ あいう +あいうえお あいう +SELECT `C1`, SUBSTRING(`C1`,1,4) FROM `T5`; +C1 SUBSTRING(`C1`,1,4) + +あ あ +あい あい +あいう あいう +あいうえ あいうえ +あいうえお あいうえ +SELECT `C1`, SUBSTRING(`C1`,1,5) FROM `T5`; +C1 SUBSTRING(`C1`,1,5) + +あ あ +あい あい +あいう あいう +あいうえ あいうえ +あいうえお あいうえお +SELECT `C1`, SUBSTRING(`C1`,1,6) FROM `T5`; +C1 SUBSTRING(`C1`,1,6) + +あ あ +あい あい +あいう あいう +あいうえ あいうえ +あいうえお あいうえお +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 0) FROM `T5`; +C1 SUBSTRING(`C1` FROM 1 FOR 0) + +あ +あい +あいう +あいうえ +あいうえお +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 1) FROM `T5`; +C1 SUBSTRING(`C1` FROM 1 FOR 1) + +あ あ +あい あ +あいう あ +あいうえ あ +あいうえお あ +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 2) FROM `T5`; +C1 SUBSTRING(`C1` FROM 1 FOR 2) + +あ あ +あい あい +あいう あい +あいうえ あい +あいうえお あい +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 3) FROM `T5`; +C1 SUBSTRING(`C1` FROM 1 FOR 3) + +あ あ +あい あい +あいう あいう +あいうえ あいう +あいうえお あいう +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 4) FROM `T5`; +C1 SUBSTRING(`C1` FROM 1 FOR 4) + +あ あ +あい あい +あいう あいう +あいうえ あいうえ +あいうえお あいうえ +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 5) FROM `T5`; +C1 SUBSTRING(`C1` FROM 1 FOR 5) + +あ あ +あい あい +あいう あいう +あいうえ あいうえ +あいうえお あいうえお +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 6) FROM `T5`; +C1 SUBSTRING(`C1` FROM 1 FOR 6) + +あ あ +あい あい +あいう あいう +あいうえ あいうえ +あいうえお あいうえお +SELECT `C1`, SUBSTRING(`C1`,0) FROM `T6`; +C1 SUBSTRING(`C1`,0) + +龔 +龔龖 +龔龖龗 +龔龖龗龞 +龔龖龗龞龡 +SELECT `C1`, SUBSTRING(`C1`,1) FROM `T6`; +C1 SUBSTRING(`C1`,1) + +龔 龔 +龔龖 龔龖 +龔龖龗 龔龖龗 +龔龖龗龞 龔龖龗龞 +龔龖龗龞龡 龔龖龗龞龡 +SELECT `C1`, SUBSTRING(`C1`,2) FROM `T6`; +C1 SUBSTRING(`C1`,2) + +龔 +龔龖 龖 +龔龖龗 龖龗 +龔龖龗龞 龖龗龞 +龔龖龗龞龡 龖龗龞龡 +SELECT `C1`, SUBSTRING(`C1`,3) FROM `T6`; +C1 SUBSTRING(`C1`,3) + +龔 +龔龖 +龔龖龗 龗 +龔龖龗龞 龗龞 +龔龖龗龞龡 龗龞龡 +SELECT `C1`, SUBSTRING(`C1`,4) FROM `T6`; +C1 SUBSTRING(`C1`,4) + +龔 +龔龖 +龔龖龗 +龔龖龗龞 龞 +龔龖龗龞龡 龞龡 +SELECT `C1`, SUBSTRING(`C1`,5) FROM `T6`; +C1 SUBSTRING(`C1`,5) + +龔 +龔龖 +龔龖龗 +龔龖龗龞 +龔龖龗龞龡 龡 +SELECT `C1`, SUBSTRING(`C1`,6) FROM `T6`; +C1 SUBSTRING(`C1`,6) + +龔 +龔龖 +龔龖龗 +龔龖龗龞 +龔龖龗龞龡 +SELECT `C1`, SUBSTRING(`C1` FROM 0) FROM `T6`; +C1 SUBSTRING(`C1` FROM 0) + +龔 +龔龖 +龔龖龗 +龔龖龗龞 +龔龖龗龞龡 +SELECT `C1`, SUBSTRING(`C1` FROM 1) FROM `T6`; +C1 SUBSTRING(`C1` FROM 1) + +龔 龔 +龔龖 龔龖 +龔龖龗 龔龖龗 +龔龖龗龞 龔龖龗龞 +龔龖龗龞龡 龔龖龗龞龡 +SELECT `C1`, SUBSTRING(`C1` FROM 2) FROM `T6`; +C1 SUBSTRING(`C1` FROM 2) + +龔 +龔龖 龖 +龔龖龗 龖龗 +龔龖龗龞 龖龗龞 +龔龖龗龞龡 龖龗龞龡 +SELECT `C1`, SUBSTRING(`C1` FROM 3) FROM `T6`; +C1 SUBSTRING(`C1` FROM 3) + +龔 +龔龖 +龔龖龗 龗 +龔龖龗龞 龗龞 +龔龖龗龞龡 龗龞龡 +SELECT `C1`, SUBSTRING(`C1` FROM 4) FROM `T6`; +C1 SUBSTRING(`C1` FROM 4) + +龔 +龔龖 +龔龖龗 +龔龖龗龞 龞 +龔龖龗龞龡 龞龡 +SELECT `C1`, SUBSTRING(`C1` FROM 5) FROM `T6`; +C1 SUBSTRING(`C1` FROM 5) + +龔 +龔龖 +龔龖龗 +龔龖龗龞 +龔龖龗龞龡 龡 +SELECT `C1`, SUBSTRING(`C1` FROM 6) FROM `T6`; +C1 SUBSTRING(`C1` FROM 6) + +龔 +龔龖 +龔龖龗 +龔龖龗龞 +龔龖龗龞龡 +SELECT `C1`, SUBSTRING(`C1`,1,0) FROM `T6`; +C1 SUBSTRING(`C1`,1,0) + +龔 +龔龖 +龔龖龗 +龔龖龗龞 +龔龖龗龞龡 +SELECT `C1`, SUBSTRING(`C1`,1,1) FROM `T6`; +C1 SUBSTRING(`C1`,1,1) + +龔 龔 +龔龖 龔 +龔龖龗 龔 +龔龖龗龞 龔 +龔龖龗龞龡 龔 +SELECT `C1`, SUBSTRING(`C1`,1,2) FROM `T6`; +C1 SUBSTRING(`C1`,1,2) + +龔 龔 +龔龖 龔龖 +龔龖龗 龔龖 +龔龖龗龞 龔龖 +龔龖龗龞龡 龔龖 +SELECT `C1`, SUBSTRING(`C1`,1,3) FROM `T6`; +C1 SUBSTRING(`C1`,1,3) + +龔 龔 +龔龖 龔龖 +龔龖龗 龔龖龗 +龔龖龗龞 龔龖龗 +龔龖龗龞龡 龔龖龗 +SELECT `C1`, SUBSTRING(`C1`,1,4) FROM `T6`; +C1 SUBSTRING(`C1`,1,4) + +龔 龔 +龔龖 龔龖 +龔龖龗 龔龖龗 +龔龖龗龞 龔龖龗龞 +龔龖龗龞龡 龔龖龗龞 +SELECT `C1`, SUBSTRING(`C1`,1,5) FROM `T6`; +C1 SUBSTRING(`C1`,1,5) + +龔 龔 +龔龖 龔龖 +龔龖龗 龔龖龗 +龔龖龗龞 龔龖龗龞 +龔龖龗龞龡 龔龖龗龞龡 +SELECT `C1`, SUBSTRING(`C1`,1,6) FROM `T6`; +C1 SUBSTRING(`C1`,1,6) + +龔 龔 +龔龖 龔龖 +龔龖龗 龔龖龗 +龔龖龗龞 龔龖龗龞 +龔龖龗龞龡 龔龖龗龞龡 +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 0) FROM `T6`; +C1 SUBSTRING(`C1` FROM 1 FOR 0) + +龔 +龔龖 +龔龖龗 +龔龖龗龞 +龔龖龗龞龡 +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 1) FROM `T6`; +C1 SUBSTRING(`C1` FROM 1 FOR 1) + +龔 龔 +龔龖 龔 +龔龖龗 龔 +龔龖龗龞 龔 +龔龖龗龞龡 龔 +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 2) FROM `T6`; +C1 SUBSTRING(`C1` FROM 1 FOR 2) + +龔 龔 +龔龖 龔龖 +龔龖龗 龔龖 +龔龖龗龞 龔龖 +龔龖龗龞龡 龔龖 +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 3) FROM `T6`; +C1 SUBSTRING(`C1` FROM 1 FOR 3) + +龔 龔 +龔龖 龔龖 +龔龖龗 龔龖龗 +龔龖龗龞 龔龖龗 +龔龖龗龞龡 龔龖龗 +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 4) FROM `T6`; +C1 SUBSTRING(`C1` FROM 1 FOR 4) + +龔 龔 +龔龖 龔龖 +龔龖龗 龔龖龗 +龔龖龗龞 龔龖龗龞 +龔龖龗龞龡 龔龖龗龞 +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 5) FROM `T6`; +C1 SUBSTRING(`C1` FROM 1 FOR 5) + +龔 龔 +龔龖 龔龖 +龔龖龗 龔龖龗 +龔龖龗龞 龔龖龗龞 +龔龖龗龞龡 龔龖龗龞龡 +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 6) FROM `T6`; +C1 SUBSTRING(`C1` FROM 1 FOR 6) + +龔 龔 +龔龖 龔龖 +龔龖龗 龔龖龗 +龔龖龗龞 龔龖龗龞 +龔龖龗龞龡 龔龖龗龞龡 +SELECT `C1`, SUBSTRING(`C1`,0) FROM `T7`; +C1 SUBSTRING(`C1`,0) +アイウエオ +アイウエ +アイウ +アイ +ア + +SELECT `C1`, SUBSTRING(`C1`,1) FROM `T7`; +C1 SUBSTRING(`C1`,1) +アイウエオ アイウエオ +アイウエ アイウエ +アイウ アイウ +アイ アイ +ア ア + +SELECT `C1`, SUBSTRING(`C1`,2) FROM `T7`; +C1 SUBSTRING(`C1`,2) +アイウエオ イウエオ +アイウエ イウエ +アイウ イウ +アイ イ +ア + +SELECT `C1`, SUBSTRING(`C1`,3) FROM `T7`; +C1 SUBSTRING(`C1`,3) +アイウエオ ウエオ +アイウエ ウエ +アイウ ウ +アイ +ア + +SELECT `C1`, SUBSTRING(`C1`,4) FROM `T7`; +C1 SUBSTRING(`C1`,4) +アイウエオ エオ +アイウエ エ +アイウ +アイ +ア + +SELECT `C1`, SUBSTRING(`C1`,5) FROM `T7`; +C1 SUBSTRING(`C1`,5) +アイウエオ オ +アイウエ +アイウ +アイ +ア + +SELECT `C1`, SUBSTRING(`C1`,6) FROM `T7`; +C1 SUBSTRING(`C1`,6) +アイウエオ +アイウエ +アイウ +アイ +ア + +SELECT `C1`, SUBSTRING(`C1` FROM 0) FROM `T7`; +C1 SUBSTRING(`C1` FROM 0) +アイウエオ +アイウエ +アイウ +アイ +ア + +SELECT `C1`, SUBSTRING(`C1` FROM 1) FROM `T7`; +C1 SUBSTRING(`C1` FROM 1) +アイウエオ アイウエオ +アイウエ アイウエ +アイウ アイウ +アイ アイ +ア ア + +SELECT `C1`, SUBSTRING(`C1` FROM 2) FROM `T7`; +C1 SUBSTRING(`C1` FROM 2) +アイウエオ イウエオ +アイウエ イウエ +アイウ イウ +アイ イ +ア + +SELECT `C1`, SUBSTRING(`C1` FROM 3) FROM `T7`; +C1 SUBSTRING(`C1` FROM 3) +アイウエオ ウエオ +アイウエ ウエ +アイウ ウ +アイ +ア + +SELECT `C1`, SUBSTRING(`C1` FROM 4) FROM `T7`; +C1 SUBSTRING(`C1` FROM 4) +アイウエオ エオ +アイウエ エ +アイウ +アイ +ア + +SELECT `C1`, SUBSTRING(`C1` FROM 5) FROM `T7`; +C1 SUBSTRING(`C1` FROM 5) +アイウエオ オ +アイウエ +アイウ +アイ +ア + +SELECT `C1`, SUBSTRING(`C1` FROM 6) FROM `T7`; +C1 SUBSTRING(`C1` FROM 6) +アイウエオ +アイウエ +アイウ +アイ +ア + +SELECT `C1`, SUBSTRING(`C1`,1,0) FROM `T7`; +C1 SUBSTRING(`C1`,1,0) +アイウエオ +アイウエ +アイウ +アイ +ア + +SELECT `C1`, SUBSTRING(`C1`,1,1) FROM `T7`; +C1 SUBSTRING(`C1`,1,1) +アイウエオ ア +アイウエ ア +アイウ ア +アイ ア +ア ア + +SELECT `C1`, SUBSTRING(`C1`,1,2) FROM `T7`; +C1 SUBSTRING(`C1`,1,2) +アイウエオ アイ +アイウエ アイ +アイウ アイ +アイ アイ +ア ア + +SELECT `C1`, SUBSTRING(`C1`,1,3) FROM `T7`; +C1 SUBSTRING(`C1`,1,3) +アイウエオ アイウ +アイウエ アイウ +アイウ アイウ +アイ アイ +ア ア + +SELECT `C1`, SUBSTRING(`C1`,1,4) FROM `T7`; +C1 SUBSTRING(`C1`,1,4) +アイウエオ アイウエ +アイウエ アイウエ +アイウ アイウ +アイ アイ +ア ア + +SELECT `C1`, SUBSTRING(`C1`,1,5) FROM `T7`; +C1 SUBSTRING(`C1`,1,5) +アイウエオ アイウエオ +アイウエ アイウエ +アイウ アイウ +アイ アイ +ア ア + +SELECT `C1`, SUBSTRING(`C1`,1,6) FROM `T7`; +C1 SUBSTRING(`C1`,1,6) +アイウエオ アイウエオ +アイウエ アイウエ +アイウ アイウ +アイ アイ +ア ア + +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 0) FROM `T7`; +C1 SUBSTRING(`C1` FROM 1 FOR 0) +アイウエオ +アイウエ +アイウ +アイ +ア + +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 1) FROM `T7`; +C1 SUBSTRING(`C1` FROM 1 FOR 1) +アイウエオ ア +アイウエ ア +アイウ ア +アイ ア +ア ア + +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 2) FROM `T7`; +C1 SUBSTRING(`C1` FROM 1 FOR 2) +アイウエオ アイ +アイウエ アイ +アイウ アイ +アイ アイ +ア ア + +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 3) FROM `T7`; +C1 SUBSTRING(`C1` FROM 1 FOR 3) +アイウエオ アイウ +アイウエ アイウ +アイウ アイウ +アイ アイ +ア ア + +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 4) FROM `T7`; +C1 SUBSTRING(`C1` FROM 1 FOR 4) +アイウエオ アイウエ +アイウエ アイウエ +アイウ アイウ +アイ アイ +ア ア + +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 5) FROM `T7`; +C1 SUBSTRING(`C1` FROM 1 FOR 5) +アイウエオ アイウエオ +アイウエ アイウエ +アイウ アイウ +アイ アイ +ア ア + +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 6) FROM `T7`; +C1 SUBSTRING(`C1` FROM 1 FOR 6) +アイウエオ アイウエオ +アイウエ アイウエ +アイウ アイウ +アイ アイ +ア ア + +SELECT `C1`, SUBSTRING(`C1`,0) FROM `T8`; +C1 SUBSTRING(`C1`,0) +あいうえお +あいうえ +あいう +あい +あ + +SELECT `C1`, SUBSTRING(`C1`,1) FROM `T8`; +C1 SUBSTRING(`C1`,1) +あいうえお あいうえお +あいうえ あいうえ +あいう あいう +あい あい +あ あ + +SELECT `C1`, SUBSTRING(`C1`,2) FROM `T8`; +C1 SUBSTRING(`C1`,2) +あいうえお いうえお +あいうえ いうえ +あいう いう +あい い +あ + +SELECT `C1`, SUBSTRING(`C1`,3) FROM `T8`; +C1 SUBSTRING(`C1`,3) +あいうえお うえお +あいうえ うえ +あいう う +あい +あ + +SELECT `C1`, SUBSTRING(`C1`,4) FROM `T8`; +C1 SUBSTRING(`C1`,4) +あいうえお えお +あいうえ え +あいう +あい +あ + +SELECT `C1`, SUBSTRING(`C1`,5) FROM `T8`; +C1 SUBSTRING(`C1`,5) +あいうえお お +あいうえ +あいう +あい +あ + +SELECT `C1`, SUBSTRING(`C1`,6) FROM `T8`; +C1 SUBSTRING(`C1`,6) +あいうえお +あいうえ +あいう +あい +あ + +SELECT `C1`, SUBSTRING(`C1` FROM 0) FROM `T8`; +C1 SUBSTRING(`C1` FROM 0) +あいうえお +あいうえ +あいう +あい +あ + +SELECT `C1`, SUBSTRING(`C1` FROM 1) FROM `T8`; +C1 SUBSTRING(`C1` FROM 1) +あいうえお あいうえお +あいうえ あいうえ +あいう あいう +あい あい +あ あ + +SELECT `C1`, SUBSTRING(`C1` FROM 2) FROM `T8`; +C1 SUBSTRING(`C1` FROM 2) +あいうえお いうえお +あいうえ いうえ +あいう いう +あい い +あ + +SELECT `C1`, SUBSTRING(`C1` FROM 3) FROM `T8`; +C1 SUBSTRING(`C1` FROM 3) +あいうえお うえお +あいうえ うえ +あいう う +あい +あ + +SELECT `C1`, SUBSTRING(`C1` FROM 4) FROM `T8`; +C1 SUBSTRING(`C1` FROM 4) +あいうえお えお +あいうえ え +あいう +あい +あ + +SELECT `C1`, SUBSTRING(`C1` FROM 5) FROM `T8`; +C1 SUBSTRING(`C1` FROM 5) +あいうえお お +あいうえ +あいう +あい +あ + +SELECT `C1`, SUBSTRING(`C1` FROM 6) FROM `T8`; +C1 SUBSTRING(`C1` FROM 6) +あいうえお +あいうえ +あいう +あい +あ + +SELECT `C1`, SUBSTRING(`C1`,1,0) FROM `T8`; +C1 SUBSTRING(`C1`,1,0) +あいうえお +あいうえ +あいう +あい +あ + +SELECT `C1`, SUBSTRING(`C1`,1,1) FROM `T8`; +C1 SUBSTRING(`C1`,1,1) +あいうえお あ +あいうえ あ +あいう あ +あい あ +あ あ + +SELECT `C1`, SUBSTRING(`C1`,1,2) FROM `T8`; +C1 SUBSTRING(`C1`,1,2) +あいうえお あい +あいうえ あい +あいう あい +あい あい +あ あ + +SELECT `C1`, SUBSTRING(`C1`,1,3) FROM `T8`; +C1 SUBSTRING(`C1`,1,3) +あいうえお あいう +あいうえ あいう +あいう あいう +あい あい +あ あ + +SELECT `C1`, SUBSTRING(`C1`,1,4) FROM `T8`; +C1 SUBSTRING(`C1`,1,4) +あいうえお あいうえ +あいうえ あいうえ +あいう あいう +あい あい +あ あ + +SELECT `C1`, SUBSTRING(`C1`,1,5) FROM `T8`; +C1 SUBSTRING(`C1`,1,5) +あいうえお あいうえお +あいうえ あいうえ +あいう あいう +あい あい +あ あ + +SELECT `C1`, SUBSTRING(`C1`,1,6) FROM `T8`; +C1 SUBSTRING(`C1`,1,6) +あいうえお あいうえお +あいうえ あいうえ +あいう あいう +あい あい +あ あ + +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 0) FROM `T8`; +C1 SUBSTRING(`C1` FROM 1 FOR 0) +あいうえお +あいうえ +あいう +あい +あ + +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 1) FROM `T8`; +C1 SUBSTRING(`C1` FROM 1 FOR 1) +あいうえお あ +あいうえ あ +あいう あ +あい あ +あ あ + +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 2) FROM `T8`; +C1 SUBSTRING(`C1` FROM 1 FOR 2) +あいうえお あい +あいうえ あい +あいう あい +あい あい +あ あ + +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 3) FROM `T8`; +C1 SUBSTRING(`C1` FROM 1 FOR 3) +あいうえお あいう +あいうえ あいう +あいう あいう +あい あい +あ あ + +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 4) FROM `T8`; +C1 SUBSTRING(`C1` FROM 1 FOR 4) +あいうえお あいうえ +あいうえ あいうえ +あいう あいう +あい あい +あ あ + +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 5) FROM `T8`; +C1 SUBSTRING(`C1` FROM 1 FOR 5) +あいうえお あいうえお +あいうえ あいうえ +あいう あいう +あい あい +あ あ + +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 6) FROM `T8`; +C1 SUBSTRING(`C1` FROM 1 FOR 6) +あいうえお あいうえお +あいうえ あいうえ +あいう あいう +あい あい +あ あ + +SELECT `C1`, SUBSTRING(`C1`,0) FROM `T9`; +C1 SUBSTRING(`C1`,0) +龔龖龗龞龡 +龔龖龗龞 +龔龖龗 +龔龖 +龔 + +SELECT `C1`, SUBSTRING(`C1`,1) FROM `T9`; +C1 SUBSTRING(`C1`,1) +龔龖龗龞龡 龔龖龗龞龡 +龔龖龗龞 龔龖龗龞 +龔龖龗 龔龖龗 +龔龖 龔龖 +龔 龔 + +SELECT `C1`, SUBSTRING(`C1`,2) FROM `T9`; +C1 SUBSTRING(`C1`,2) +龔龖龗龞龡 龖龗龞龡 +龔龖龗龞 龖龗龞 +龔龖龗 龖龗 +龔龖 龖 +龔 + +SELECT `C1`, SUBSTRING(`C1`,3) FROM `T9`; +C1 SUBSTRING(`C1`,3) +龔龖龗龞龡 龗龞龡 +龔龖龗龞 龗龞 +龔龖龗 龗 +龔龖 +龔 + +SELECT `C1`, SUBSTRING(`C1`,4) FROM `T9`; +C1 SUBSTRING(`C1`,4) +龔龖龗龞龡 龞龡 +龔龖龗龞 龞 +龔龖龗 +龔龖 +龔 + +SELECT `C1`, SUBSTRING(`C1`,5) FROM `T9`; +C1 SUBSTRING(`C1`,5) +龔龖龗龞龡 龡 +龔龖龗龞 +龔龖龗 +龔龖 +龔 + +SELECT `C1`, SUBSTRING(`C1`,6) FROM `T9`; +C1 SUBSTRING(`C1`,6) +龔龖龗龞龡 +龔龖龗龞 +龔龖龗 +龔龖 +龔 + +SELECT `C1`, SUBSTRING(`C1` FROM 0) FROM `T9`; +C1 SUBSTRING(`C1` FROM 0) +龔龖龗龞龡 +龔龖龗龞 +龔龖龗 +龔龖 +龔 + +SELECT `C1`, SUBSTRING(`C1` FROM 1) FROM `T9`; +C1 SUBSTRING(`C1` FROM 1) +龔龖龗龞龡 龔龖龗龞龡 +龔龖龗龞 龔龖龗龞 +龔龖龗 龔龖龗 +龔龖 龔龖 +龔 龔 + +SELECT `C1`, SUBSTRING(`C1` FROM 2) FROM `T9`; +C1 SUBSTRING(`C1` FROM 2) +龔龖龗龞龡 龖龗龞龡 +龔龖龗龞 龖龗龞 +龔龖龗 龖龗 +龔龖 龖 +龔 + +SELECT `C1`, SUBSTRING(`C1` FROM 3) FROM `T9`; +C1 SUBSTRING(`C1` FROM 3) +龔龖龗龞龡 龗龞龡 +龔龖龗龞 龗龞 +龔龖龗 龗 +龔龖 +龔 + +SELECT `C1`, SUBSTRING(`C1` FROM 4) FROM `T9`; +C1 SUBSTRING(`C1` FROM 4) +龔龖龗龞龡 龞龡 +龔龖龗龞 龞 +龔龖龗 +龔龖 +龔 + +SELECT `C1`, SUBSTRING(`C1` FROM 5) FROM `T9`; +C1 SUBSTRING(`C1` FROM 5) +龔龖龗龞龡 龡 +龔龖龗龞 +龔龖龗 +龔龖 +龔 + +SELECT `C1`, SUBSTRING(`C1` FROM 6) FROM `T9`; +C1 SUBSTRING(`C1` FROM 6) +龔龖龗龞龡 +龔龖龗龞 +龔龖龗 +龔龖 +龔 + +SELECT `C1`, SUBSTRING(`C1`,1,0) FROM `T9`; +C1 SUBSTRING(`C1`,1,0) +龔龖龗龞龡 +龔龖龗龞 +龔龖龗 +龔龖 +龔 + +SELECT `C1`, SUBSTRING(`C1`,1,1) FROM `T9`; +C1 SUBSTRING(`C1`,1,1) +龔龖龗龞龡 龔 +龔龖龗龞 龔 +龔龖龗 龔 +龔龖 龔 +龔 龔 + +SELECT `C1`, SUBSTRING(`C1`,1,2) FROM `T9`; +C1 SUBSTRING(`C1`,1,2) +龔龖龗龞龡 龔龖 +龔龖龗龞 龔龖 +龔龖龗 龔龖 +龔龖 龔龖 +龔 龔 + +SELECT `C1`, SUBSTRING(`C1`,1,3) FROM `T9`; +C1 SUBSTRING(`C1`,1,3) +龔龖龗龞龡 龔龖龗 +龔龖龗龞 龔龖龗 +龔龖龗 龔龖龗 +龔龖 龔龖 +龔 龔 + +SELECT `C1`, SUBSTRING(`C1`,1,4) FROM `T9`; +C1 SUBSTRING(`C1`,1,4) +龔龖龗龞龡 龔龖龗龞 +龔龖龗龞 龔龖龗龞 +龔龖龗 龔龖龗 +龔龖 龔龖 +龔 龔 + +SELECT `C1`, SUBSTRING(`C1`,1,5) FROM `T9`; +C1 SUBSTRING(`C1`,1,5) +龔龖龗龞龡 龔龖龗龞龡 +龔龖龗龞 龔龖龗龞 +龔龖龗 龔龖龗 +龔龖 龔龖 +龔 龔 + +SELECT `C1`, SUBSTRING(`C1`,1,6) FROM `T9`; +C1 SUBSTRING(`C1`,1,6) +龔龖龗龞龡 龔龖龗龞龡 +龔龖龗龞 龔龖龗龞 +龔龖龗 龔龖龗 +龔龖 龔龖 +龔 龔 + +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 0) FROM `T9`; +C1 SUBSTRING(`C1` FROM 1 FOR 0) +龔龖龗龞龡 +龔龖龗龞 +龔龖龗 +龔龖 +龔 + +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 1) FROM `T9`; +C1 SUBSTRING(`C1` FROM 1 FOR 1) +龔龖龗龞龡 龔 +龔龖龗龞 龔 +龔龖龗 龔 +龔龖 龔 +龔 龔 + +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 2) FROM `T9`; +C1 SUBSTRING(`C1` FROM 1 FOR 2) +龔龖龗龞龡 龔龖 +龔龖龗龞 龔龖 +龔龖龗 龔龖 +龔龖 龔龖 +龔 龔 + +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 3) FROM `T9`; +C1 SUBSTRING(`C1` FROM 1 FOR 3) +龔龖龗龞龡 龔龖龗 +龔龖龗龞 龔龖龗 +龔龖龗 龔龖龗 +龔龖 龔龖 +龔 龔 + +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 4) FROM `T9`; +C1 SUBSTRING(`C1` FROM 1 FOR 4) +龔龖龗龞龡 龔龖龗龞 +龔龖龗龞 龔龖龗龞 +龔龖龗 龔龖龗 +龔龖 龔龖 +龔 龔 + +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 5) FROM `T9`; +C1 SUBSTRING(`C1` FROM 1 FOR 5) +龔龖龗龞龡 龔龖龗龞龡 +龔龖龗龞 龔龖龗龞 +龔龖龗 龔龖龗 +龔龖 龔龖 +龔 龔 + +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 6) FROM `T9`; +C1 SUBSTRING(`C1` FROM 1 FOR 6) +龔龖龗龞龡 龔龖龗龞龡 +龔龖龗龞 龔龖龗龞 +龔龖龗 龔龖龗 +龔龖 龔龖 +龔 龔 + +SELECT `C1`, SUBSTRING(`C1`,0) FROM `T10`; +C1 SUBSTRING(`C1`,0) +アイウエオ +アイウエ +アイウ +アイ +ア + +SELECT `C1`, SUBSTRING(`C1`,1) FROM `T10`; +C1 SUBSTRING(`C1`,1) +アイウエオ アイウエオ +アイウエ アイウエ +アイウ アイウ +アイ アイ +ア ア + +SELECT `C1`, SUBSTRING(`C1`,2) FROM `T10`; +C1 SUBSTRING(`C1`,2) +アイウエオ イウエオ +アイウエ イウエ +アイウ イウ +アイ イ +ア + +SELECT `C1`, SUBSTRING(`C1`,3) FROM `T10`; +C1 SUBSTRING(`C1`,3) +アイウエオ ウエオ +アイウエ ウエ +アイウ ウ +アイ +ア + +SELECT `C1`, SUBSTRING(`C1`,4) FROM `T10`; +C1 SUBSTRING(`C1`,4) +アイウエオ エオ +アイウエ エ +アイウ +アイ +ア + +SELECT `C1`, SUBSTRING(`C1`,5) FROM `T10`; +C1 SUBSTRING(`C1`,5) +アイウエオ オ +アイウエ +アイウ +アイ +ア + +SELECT `C1`, SUBSTRING(`C1`,6) FROM `T10`; +C1 SUBSTRING(`C1`,6) +アイウエオ +アイウエ +アイウ +アイ +ア + +SELECT `C1`, SUBSTRING(`C1` FROM 0) FROM `T10`; +C1 SUBSTRING(`C1` FROM 0) +アイウエオ +アイウエ +アイウ +アイ +ア + +SELECT `C1`, SUBSTRING(`C1` FROM 1) FROM `T10`; +C1 SUBSTRING(`C1` FROM 1) +アイウエオ アイウエオ +アイウエ アイウエ +アイウ アイウ +アイ アイ +ア ア + +SELECT `C1`, SUBSTRING(`C1` FROM 2) FROM `T10`; +C1 SUBSTRING(`C1` FROM 2) +アイウエオ イウエオ +アイウエ イウエ +アイウ イウ +アイ イ +ア + +SELECT `C1`, SUBSTRING(`C1` FROM 3) FROM `T10`; +C1 SUBSTRING(`C1` FROM 3) +アイウエオ ウエオ +アイウエ ウエ +アイウ ウ +アイ +ア + +SELECT `C1`, SUBSTRING(`C1` FROM 4) FROM `T10`; +C1 SUBSTRING(`C1` FROM 4) +アイウエオ エオ +アイウエ エ +アイウ +アイ +ア + +SELECT `C1`, SUBSTRING(`C1` FROM 5) FROM `T10`; +C1 SUBSTRING(`C1` FROM 5) +アイウエオ オ +アイウエ +アイウ +アイ +ア + +SELECT `C1`, SUBSTRING(`C1` FROM 6) FROM `T10`; +C1 SUBSTRING(`C1` FROM 6) +アイウエオ +アイウエ +アイウ +アイ +ア + +SELECT `C1`, SUBSTRING(`C1`,1,0) FROM `T10`; +C1 SUBSTRING(`C1`,1,0) +アイウエオ +アイウエ +アイウ +アイ +ア + +SELECT `C1`, SUBSTRING(`C1`,1,1) FROM `T10`; +C1 SUBSTRING(`C1`,1,1) +アイウエオ ア +アイウエ ア +アイウ ア +アイ ア +ア ア + +SELECT `C1`, SUBSTRING(`C1`,1,2) FROM `T10`; +C1 SUBSTRING(`C1`,1,2) +アイウエオ アイ +アイウエ アイ +アイウ アイ +アイ アイ +ア ア + +SELECT `C1`, SUBSTRING(`C1`,1,3) FROM `T10`; +C1 SUBSTRING(`C1`,1,3) +アイウエオ アイウ +アイウエ アイウ +アイウ アイウ +アイ アイ +ア ア + +SELECT `C1`, SUBSTRING(`C1`,1,4) FROM `T10`; +C1 SUBSTRING(`C1`,1,4) +アイウエオ アイウエ +アイウエ アイウエ +アイウ アイウ +アイ アイ +ア ア + +SELECT `C1`, SUBSTRING(`C1`,1,5) FROM `T10`; +C1 SUBSTRING(`C1`,1,5) +アイウエオ アイウエオ +アイウエ アイウエ +アイウ アイウ +アイ アイ +ア ア + +SELECT `C1`, SUBSTRING(`C1`,1,6) FROM `T10`; +C1 SUBSTRING(`C1`,1,6) +アイウエオ アイウエオ +アイウエ アイウエ +アイウ アイウ +アイ アイ +ア ア + +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 0) FROM `T10`; +C1 SUBSTRING(`C1` FROM 1 FOR 0) +アイウエオ +アイウエ +アイウ +アイ +ア + +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 1) FROM `T10`; +C1 SUBSTRING(`C1` FROM 1 FOR 1) +アイウエオ ア +アイウエ ア +アイウ ア +アイ ア +ア ア + +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 2) FROM `T10`; +C1 SUBSTRING(`C1` FROM 1 FOR 2) +アイウエオ アイ +アイウエ アイ +アイウ アイ +アイ アイ +ア ア + +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 3) FROM `T10`; +C1 SUBSTRING(`C1` FROM 1 FOR 3) +アイウエオ アイウ +アイウエ アイウ +アイウ アイウ +アイ アイ +ア ア + +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 4) FROM `T10`; +C1 SUBSTRING(`C1` FROM 1 FOR 4) +アイウエオ アイウエ +アイウエ アイウエ +アイウ アイウ +アイ アイ +ア ア + +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 5) FROM `T10`; +C1 SUBSTRING(`C1` FROM 1 FOR 5) +アイウエオ アイウエオ +アイウエ アイウエ +アイウ アイウ +アイ アイ +ア ア + +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 6) FROM `T10`; +C1 SUBSTRING(`C1` FROM 1 FOR 6) +アイウエオ アイウエオ +アイウエ アイウエ +アイウ アイウ +アイ アイ +ア ア + +SELECT `C1`, SUBSTRING(`C1`,0) FROM `T11`; +C1 SUBSTRING(`C1`,0) +あいうえお +あいうえ +あいう +あい +あ + +SELECT `C1`, SUBSTRING(`C1`,1) FROM `T11`; +C1 SUBSTRING(`C1`,1) +あいうえお あいうえお +あいうえ あいうえ +あいう あいう +あい あい +あ あ + +SELECT `C1`, SUBSTRING(`C1`,2) FROM `T11`; +C1 SUBSTRING(`C1`,2) +あいうえお いうえお +あいうえ いうえ +あいう いう +あい い +あ + +SELECT `C1`, SUBSTRING(`C1`,3) FROM `T11`; +C1 SUBSTRING(`C1`,3) +あいうえお うえお +あいうえ うえ +あいう う +あい +あ + +SELECT `C1`, SUBSTRING(`C1`,4) FROM `T11`; +C1 SUBSTRING(`C1`,4) +あいうえお えお +あいうえ え +あいう +あい +あ + +SELECT `C1`, SUBSTRING(`C1`,5) FROM `T11`; +C1 SUBSTRING(`C1`,5) +あいうえお お +あいうえ +あいう +あい +あ + +SELECT `C1`, SUBSTRING(`C1`,6) FROM `T11`; +C1 SUBSTRING(`C1`,6) +あいうえお +あいうえ +あいう +あい +あ + +SELECT `C1`, SUBSTRING(`C1` FROM 0) FROM `T11`; +C1 SUBSTRING(`C1` FROM 0) +あいうえお +あいうえ +あいう +あい +あ + +SELECT `C1`, SUBSTRING(`C1` FROM 1) FROM `T11`; +C1 SUBSTRING(`C1` FROM 1) +あいうえお あいうえお +あいうえ あいうえ +あいう あいう +あい あい +あ あ + +SELECT `C1`, SUBSTRING(`C1` FROM 2) FROM `T11`; +C1 SUBSTRING(`C1` FROM 2) +あいうえお いうえお +あいうえ いうえ +あいう いう +あい い +あ + +SELECT `C1`, SUBSTRING(`C1` FROM 3) FROM `T11`; +C1 SUBSTRING(`C1` FROM 3) +あいうえお うえお +あいうえ うえ +あいう う +あい +あ + +SELECT `C1`, SUBSTRING(`C1` FROM 4) FROM `T11`; +C1 SUBSTRING(`C1` FROM 4) +あいうえお えお +あいうえ え +あいう +あい +あ + +SELECT `C1`, SUBSTRING(`C1` FROM 5) FROM `T11`; +C1 SUBSTRING(`C1` FROM 5) +あいうえお お +あいうえ +あいう +あい +あ + +SELECT `C1`, SUBSTRING(`C1` FROM 6) FROM `T11`; +C1 SUBSTRING(`C1` FROM 6) +あいうえお +あいうえ +あいう +あい +あ + +SELECT `C1`, SUBSTRING(`C1`,1,0) FROM `T11`; +C1 SUBSTRING(`C1`,1,0) +あいうえお +あいうえ +あいう +あい +あ + +SELECT `C1`, SUBSTRING(`C1`,1,1) FROM `T11`; +C1 SUBSTRING(`C1`,1,1) +あいうえお あ +あいうえ あ +あいう あ +あい あ +あ あ + +SELECT `C1`, SUBSTRING(`C1`,1,2) FROM `T11`; +C1 SUBSTRING(`C1`,1,2) +あいうえお あい +あいうえ あい +あいう あい +あい あい +あ あ + +SELECT `C1`, SUBSTRING(`C1`,1,3) FROM `T11`; +C1 SUBSTRING(`C1`,1,3) +あいうえお あいう +あいうえ あいう +あいう あいう +あい あい +あ あ + +SELECT `C1`, SUBSTRING(`C1`,1,4) FROM `T11`; +C1 SUBSTRING(`C1`,1,4) +あいうえお あいうえ +あいうえ あいうえ +あいう あいう +あい あい +あ あ + +SELECT `C1`, SUBSTRING(`C1`,1,5) FROM `T11`; +C1 SUBSTRING(`C1`,1,5) +あいうえお あいうえお +あいうえ あいうえ +あいう あいう +あい あい +あ あ + +SELECT `C1`, SUBSTRING(`C1`,1,6) FROM `T11`; +C1 SUBSTRING(`C1`,1,6) +あいうえお あいうえお +あいうえ あいうえ +あいう あいう +あい あい +あ あ + +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 0) FROM `T11`; +C1 SUBSTRING(`C1` FROM 1 FOR 0) +あいうえお +あいうえ +あいう +あい +あ + +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 1) FROM `T11`; +C1 SUBSTRING(`C1` FROM 1 FOR 1) +あいうえお あ +あいうえ あ +あいう あ +あい あ +あ あ + +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 2) FROM `T11`; +C1 SUBSTRING(`C1` FROM 1 FOR 2) +あいうえお あい +あいうえ あい +あいう あい +あい あい +あ あ + +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 3) FROM `T11`; +C1 SUBSTRING(`C1` FROM 1 FOR 3) +あいうえお あいう +あいうえ あいう +あいう あいう +あい あい +あ あ + +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 4) FROM `T11`; +C1 SUBSTRING(`C1` FROM 1 FOR 4) +あいうえお あいうえ +あいうえ あいうえ +あいう あいう +あい あい +あ あ + +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 5) FROM `T11`; +C1 SUBSTRING(`C1` FROM 1 FOR 5) +あいうえお あいうえお +あいうえ あいうえ +あいう あいう +あい あい +あ あ + +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 6) FROM `T11`; +C1 SUBSTRING(`C1` FROM 1 FOR 6) +あいうえお あいうえお +あいうえ あいうえ +あいう あいう +あい あい +あ あ + +SELECT `C1`, SUBSTRING(`C1`,0) FROM `T12`; +C1 SUBSTRING(`C1`,0) +龔龖龗龞龡 +龔龖龗龞 +龔龖龗 +龔龖 +龔 + +SELECT `C1`, SUBSTRING(`C1`,1) FROM `T12`; +C1 SUBSTRING(`C1`,1) +龔龖龗龞龡 龔龖龗龞龡 +龔龖龗龞 龔龖龗龞 +龔龖龗 龔龖龗 +龔龖 龔龖 +龔 龔 + +SELECT `C1`, SUBSTRING(`C1`,2) FROM `T12`; +C1 SUBSTRING(`C1`,2) +龔龖龗龞龡 龖龗龞龡 +龔龖龗龞 龖龗龞 +龔龖龗 龖龗 +龔龖 龖 +龔 + +SELECT `C1`, SUBSTRING(`C1`,3) FROM `T12`; +C1 SUBSTRING(`C1`,3) +龔龖龗龞龡 龗龞龡 +龔龖龗龞 龗龞 +龔龖龗 龗 +龔龖 +龔 + +SELECT `C1`, SUBSTRING(`C1`,4) FROM `T12`; +C1 SUBSTRING(`C1`,4) +龔龖龗龞龡 龞龡 +龔龖龗龞 龞 +龔龖龗 +龔龖 +龔 + +SELECT `C1`, SUBSTRING(`C1`,5) FROM `T12`; +C1 SUBSTRING(`C1`,5) +龔龖龗龞龡 龡 +龔龖龗龞 +龔龖龗 +龔龖 +龔 + +SELECT `C1`, SUBSTRING(`C1`,6) FROM `T12`; +C1 SUBSTRING(`C1`,6) +龔龖龗龞龡 +龔龖龗龞 +龔龖龗 +龔龖 +龔 + +SELECT `C1`, SUBSTRING(`C1` FROM 0) FROM `T12`; +C1 SUBSTRING(`C1` FROM 0) +龔龖龗龞龡 +龔龖龗龞 +龔龖龗 +龔龖 +龔 + +SELECT `C1`, SUBSTRING(`C1` FROM 1) FROM `T12`; +C1 SUBSTRING(`C1` FROM 1) +龔龖龗龞龡 龔龖龗龞龡 +龔龖龗龞 龔龖龗龞 +龔龖龗 龔龖龗 +龔龖 龔龖 +龔 龔 + +SELECT `C1`, SUBSTRING(`C1` FROM 2) FROM `T12`; +C1 SUBSTRING(`C1` FROM 2) +龔龖龗龞龡 龖龗龞龡 +龔龖龗龞 龖龗龞 +龔龖龗 龖龗 +龔龖 龖 +龔 + +SELECT `C1`, SUBSTRING(`C1` FROM 3) FROM `T12`; +C1 SUBSTRING(`C1` FROM 3) +龔龖龗龞龡 龗龞龡 +龔龖龗龞 龗龞 +龔龖龗 龗 +龔龖 +龔 + +SELECT `C1`, SUBSTRING(`C1` FROM 4) FROM `T12`; +C1 SUBSTRING(`C1` FROM 4) +龔龖龗龞龡 龞龡 +龔龖龗龞 龞 +龔龖龗 +龔龖 +龔 + +SELECT `C1`, SUBSTRING(`C1` FROM 5) FROM `T12`; +C1 SUBSTRING(`C1` FROM 5) +龔龖龗龞龡 龡 +龔龖龗龞 +龔龖龗 +龔龖 +龔 + +SELECT `C1`, SUBSTRING(`C1` FROM 6) FROM `T12`; +C1 SUBSTRING(`C1` FROM 6) +龔龖龗龞龡 +龔龖龗龞 +龔龖龗 +龔龖 +龔 + +SELECT `C1`, SUBSTRING(`C1`,1,0) FROM `T12`; +C1 SUBSTRING(`C1`,1,0) +龔龖龗龞龡 +龔龖龗龞 +龔龖龗 +龔龖 +龔 + +SELECT `C1`, SUBSTRING(`C1`,1,1) FROM `T12`; +C1 SUBSTRING(`C1`,1,1) +龔龖龗龞龡 龔 +龔龖龗龞 龔 +龔龖龗 龔 +龔龖 龔 +龔 龔 + +SELECT `C1`, SUBSTRING(`C1`,1,2) FROM `T12`; +C1 SUBSTRING(`C1`,1,2) +龔龖龗龞龡 龔龖 +龔龖龗龞 龔龖 +龔龖龗 龔龖 +龔龖 龔龖 +龔 龔 + +SELECT `C1`, SUBSTRING(`C1`,1,3) FROM `T12`; +C1 SUBSTRING(`C1`,1,3) +龔龖龗龞龡 龔龖龗 +龔龖龗龞 龔龖龗 +龔龖龗 龔龖龗 +龔龖 龔龖 +龔 龔 + +SELECT `C1`, SUBSTRING(`C1`,1,4) FROM `T12`; +C1 SUBSTRING(`C1`,1,4) +龔龖龗龞龡 龔龖龗龞 +龔龖龗龞 龔龖龗龞 +龔龖龗 龔龖龗 +龔龖 龔龖 +龔 龔 + +SELECT `C1`, SUBSTRING(`C1`,1,5) FROM `T12`; +C1 SUBSTRING(`C1`,1,5) +龔龖龗龞龡 龔龖龗龞龡 +龔龖龗龞 龔龖龗龞 +龔龖龗 龔龖龗 +龔龖 龔龖 +龔 龔 + +SELECT `C1`, SUBSTRING(`C1`,1,6) FROM `T12`; +C1 SUBSTRING(`C1`,1,6) +龔龖龗龞龡 龔龖龗龞龡 +龔龖龗龞 龔龖龗龞 +龔龖龗 龔龖龗 +龔龖 龔龖 +龔 龔 + +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 0) FROM `T12`; +C1 SUBSTRING(`C1` FROM 1 FOR 0) +龔龖龗龞龡 +龔龖龗龞 +龔龖龗 +龔龖 +龔 + +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 1) FROM `T12`; +C1 SUBSTRING(`C1` FROM 1 FOR 1) +龔龖龗龞龡 龔 +龔龖龗龞 龔 +龔龖龗 龔 +龔龖 龔 +龔 龔 + +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 2) FROM `T12`; +C1 SUBSTRING(`C1` FROM 1 FOR 2) +龔龖龗龞龡 龔龖 +龔龖龗龞 龔龖 +龔龖龗 龔龖 +龔龖 龔龖 +龔 龔 + +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 3) FROM `T12`; +C1 SUBSTRING(`C1` FROM 1 FOR 3) +龔龖龗龞龡 龔龖龗 +龔龖龗龞 龔龖龗 +龔龖龗 龔龖龗 +龔龖 龔龖 +龔 龔 + +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 4) FROM `T12`; +C1 SUBSTRING(`C1` FROM 1 FOR 4) +龔龖龗龞龡 龔龖龗龞 +龔龖龗龞 龔龖龗龞 +龔龖龗 龔龖龗 +龔龖 龔龖 +龔 龔 + +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 5) FROM `T12`; +C1 SUBSTRING(`C1` FROM 1 FOR 5) +龔龖龗龞龡 龔龖龗龞龡 +龔龖龗龞 龔龖龗龞 +龔龖龗 龔龖龗 +龔龖 龔龖 +龔 龔 + +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 6) FROM `T12`; +C1 SUBSTRING(`C1` FROM 1 FOR 6) +龔龖龗龞龡 龔龖龗龞龡 +龔龖龗龞 龔龖龗龞 +龔龖龗 龔龖龗 +龔龖 龔龖 +龔 龔 + +DROP TABLE `T1`; +DROP TABLE `T2`; +DROP TABLE `T3`; +DROP TABLE `T4`; +DROP TABLE `T5`; +DROP TABLE `T6`; +DROP TABLE `T7`; +DROP TABLE `T8`; +DROP TABLE `T9`; +DROP TABLE `T10`; +DROP TABLE `T11`; +DROP TABLE `T12`; diff --git a/mysql-test/suite/jp/r/jp_trim_sjis.result b/mysql-test/suite/jp/r/jp_trim_sjis.result new file mode 100755 index 00000000000..e6ab86fd20a --- /dev/null +++ b/mysql-test/suite/jp/r/jp_trim_sjis.result @@ -0,0 +1,672 @@ +drop table if exists `sP`; +drop table if exists `sQ`; +drop table if exists `sR`; +drop table if exists `sS`; +drop table if exists `sT`; +drop table if exists `sU`; +drop table if exists `sV`; +drop table if exists `sW`; +drop table if exists `sX`; +drop table if exists `sPO`; +SET NAMES sjis; +SET character_set_database = sjis; +CREATE TABLE `sP` (`bP` char(12), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sQ` (`bP` char(12), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sR` (`bP` char(12), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sS` (`bP` char(12), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sT` (`bP` char(12), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sU` (`bP` char(12), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sV` (`bP` char(12), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sW` (`bP` char(12), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sX` (`bP` char(12), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sPO` (`bP` char(12), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +CREATE TABLE `sPP` (`bP` char(12), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +CREATE TABLE `sPQ` (`bP` char(12), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +INSERT INTO `sP` VALUES (''); +INSERT INTO `sP` VALUES (''); +INSERT INTO `sP` VALUES (''); +INSERT INTO `sP` VALUES (''); +INSERT INTO `sP` VALUES (''); +INSERT INTO `sP` VALUES (''); +INSERT INTO `sP` VALUES (''); +INSERT INTO `sP` VALUES (''); +INSERT INTO `sP` VALUES (' '); +INSERT INTO `sQ` VALUES (''); +INSERT INTO `sQ` VALUES (''); +INSERT INTO `sQ` VALUES (''); +INSERT INTO `sQ` VALUES (''); +INSERT INTO `sQ` VALUES (''); +INSERT INTO `sQ` VALUES (''); +INSERT INTO `sQ` VALUES (''); +INSERT INTO `sQ` VALUES (''); +INSERT INTO `sQ` VALUES (' '); +INSERT INTO `sR` VALUES ('\\\\\'); +INSERT INTO `sR` VALUES ('\\\\\\'); +INSERT INTO `sR` VALUES ('\\\\\\\'); +INSERT INTO `sR` VALUES ('\\\\\\\\'); +INSERT INTO `sR` VALUES ('\\\\\\'); +INSERT INTO `sR` VALUES ('\\\\\\\'); +INSERT INTO `sR` VALUES ('\\\\\\\\'); +INSERT INTO `sR` VALUES ('\\\\\\\\\\\'); +INSERT INTO `sR` VALUES (' \\\\\ '); +INSERT INTO `sS` VALUES (''); +INSERT INTO `sS` VALUES (''); +INSERT INTO `sS` VALUES (''); +INSERT INTO `sS` VALUES (''); +INSERT INTO `sS` VALUES (''); +INSERT INTO `sS` VALUES (''); +INSERT INTO `sS` VALUES (''); +INSERT INTO `sS` VALUES (''); +INSERT INTO `sS` VALUES (' '); +INSERT INTO `sT` VALUES (''); +INSERT INTO `sT` VALUES (''); +INSERT INTO `sT` VALUES (''); +INSERT INTO `sT` VALUES (''); +INSERT INTO `sT` VALUES (''); +INSERT INTO `sT` VALUES (''); +INSERT INTO `sT` VALUES (''); +INSERT INTO `sT` VALUES (''); +INSERT INTO `sT` VALUES (' '); +INSERT INTO `sU` VALUES ('\\\\\'); +INSERT INTO `sU` VALUES ('\\\\\\'); +INSERT INTO `sU` VALUES ('\\\\\\\'); +INSERT INTO `sU` VALUES ('\\\\\\\\'); +INSERT INTO `sU` VALUES ('\\\\\\'); +INSERT INTO `sU` VALUES ('\\\\\\\'); +INSERT INTO `sU` VALUES ('\\\\\\\\'); +INSERT INTO `sU` VALUES ('\\\\\\\\\\\'); +INSERT INTO `sU` VALUES (' \\\\\ '); +INSERT INTO `sV` VALUES (''); +INSERT INTO `sV` VALUES (''); +INSERT INTO `sV` VALUES (''); +INSERT INTO `sV` VALUES (''); +INSERT INTO `sV` VALUES (''); +INSERT INTO `sV` VALUES (''); +INSERT INTO `sV` VALUES (''); +INSERT INTO `sV` VALUES (''); +INSERT INTO `sV` VALUES (' '); +INSERT INTO `sW` VALUES (''); +INSERT INTO `sW` VALUES (''); +INSERT INTO `sW` VALUES (''); +INSERT INTO `sW` VALUES (''); +INSERT INTO `sW` VALUES (''); +INSERT INTO `sW` VALUES (''); +INSERT INTO `sW` VALUES (''); +INSERT INTO `sW` VALUES (''); +INSERT INTO `sW` VALUES (' '); +INSERT INTO `sX` VALUES ('\\\\\'); +INSERT INTO `sX` VALUES ('\\\\\\'); +INSERT INTO `sX` VALUES ('\\\\\\\'); +INSERT INTO `sX` VALUES ('\\\\\\\\'); +INSERT INTO `sX` VALUES ('\\\\\\'); +INSERT INTO `sX` VALUES ('\\\\\\\'); +INSERT INTO `sX` VALUES ('\\\\\\\\'); +INSERT INTO `sX` VALUES ('\\\\\\\\\\\'); +INSERT INTO `sX` VALUES (' \\\\\ '); +INSERT INTO `sPO` VALUES (''); +INSERT INTO `sPO` VALUES (''); +INSERT INTO `sPO` VALUES (''); +INSERT INTO `sPO` VALUES (''); +INSERT INTO `sPO` VALUES (''); +INSERT INTO `sPO` VALUES (''); +INSERT INTO `sPO` VALUES (''); +INSERT INTO `sPO` VALUES (''); +INSERT INTO `sPO` VALUES (' '); +INSERT INTO `sPP` VALUES (''); +INSERT INTO `sPP` VALUES (''); +INSERT INTO `sPP` VALUES (''); +INSERT INTO `sPP` VALUES (''); +INSERT INTO `sPP` VALUES (''); +INSERT INTO `sPP` VALUES (''); +INSERT INTO `sPP` VALUES (''); +INSERT INTO `sPP` VALUES (''); +INSERT INTO `sPP` VALUES (' '); +INSERT INTO `sPQ` VALUES ('\\\\\'); +INSERT INTO `sPQ` VALUES ('\\\\\\'); +INSERT INTO `sPQ` VALUES ('\\\\\\\'); +INSERT INTO `sPQ` VALUES ('\\\\\\\\'); +INSERT INTO `sPQ` VALUES ('\\\\\\'); +INSERT INTO `sPQ` VALUES ('\\\\\\\'); +INSERT INTO `sPQ` VALUES ('\\\\\\\\'); +INSERT INTO `sPQ` VALUES ('\\\\\\\\\\\'); +INSERT INTO `sPQ` VALUES (' \\\\\ '); +SELECT `bP`,TRIM(TRAILING '' FROM `bP`) FROM `sP`; +bP TRIM(TRAILING '' FROM `bP`) + + + + + + + + + +SELECT `bP`,TRIM(LEADING '' FROM `bP`) FROM `sP`; +bP TRIM(LEADING '' FROM `bP`) + + + + + + + + + +SELECT `bP`,TRIM(BOTH '' FROM `bP`) FROM `sP`; +bP TRIM(BOTH '' FROM `bP`) + + + + + + + + + +SELECT `bP`,TRIM(`bP`) FROM `sP`; +bP TRIM(`bP`) + + + + + + + + + +SELECT `bP`,TRIM(TRAILING '' FROM `bP`) FROM `sQ`; +bP TRIM(TRAILING '' FROM `bP`) + + + + + + + + + +SELECT `bP`,TRIM(LEADING '' FROM `bP`) FROM `sQ`; +bP TRIM(LEADING '' FROM `bP`) + + + + + + + + + +SELECT `bP`,TRIM(BOTH '' FROM `bP`) FROM `sQ`; +bP TRIM(BOTH '' FROM `bP`) + + + + + + + + + +SELECT `bP`,TRIM(`bP`) FROM `sQ`; +bP TRIM(`bP`) + + + + + + + + + +SELECT `bP`,TRIM(TRAILING '\'FROM `bP`) FROM `sR`; +bP TRIM(TRAILING '\'FROM `bP`) + \\\\\ \\\\\ +\\\\\ \\\\\ +\\\\\\ \\\\\ +\\\\\\\ \\\\\ +\\\\\\\\ \\\\\ +\\\\\\ \\\\\\ +\\\\\\\ \\\\\\\ +\\\\\\\\ \\\\\\\\ +\\\\\\\\\\\ \\\\\\\\ +SELECT `bP`,TRIM(LEADING '\' FROM `bP`) FROM `sR`; +bP TRIM(LEADING '\' FROM `bP`) + \\\\\ \\\\\ +\\\\\ \\\\\ +\\\\\\ \\\\\\ +\\\\\\\ \\\\\\\ +\\\\\\\\ \\\\\\\\ +\\\\\\ \\\\\ +\\\\\\\ \\\\\ +\\\\\\\\ \\\\\ +\\\\\\\\\\\ \\\\\\\\ +SELECT `bP`,TRIM(BOTH '\' FROM `bP`) FROM `sR`; +bP TRIM(BOTH '\' FROM `bP`) + \\\\\ \\\\\ +\\\\\ \\\\\ +\\\\\\ \\\\\ +\\\\\\\ \\\\\ +\\\\\\\\ \\\\\ +\\\\\\ \\\\\ +\\\\\\\ \\\\\ +\\\\\\\\ \\\\\ +\\\\\\\\\\\ \\\\\ +SELECT `bP`,TRIM(`bP`) FROM `sR`; +bP TRIM(`bP`) + \\\\\ \\\\\ +\\\\\ \\\\\ +\\\\\\ \\\\\\ +\\\\\\\ \\\\\\\ +\\\\\\\\ \\\\\\\\ +\\\\\\ \\\\\\ +\\\\\\\ \\\\\\\ +\\\\\\\\ \\\\\\\\ +\\\\\\\\\\\ \\\\\\\\\\\ +SELECT `bP`,TRIM(TRAILING '' FROM `bP`) FROM `sS`; +bP TRIM(TRAILING '' FROM `bP`) + + + + + + + + + +SELECT `bP`,TRIM(LEADING '' FROM `bP`) FROM `sS`; +bP TRIM(LEADING '' FROM `bP`) + + + + + + + + + +SELECT `bP`,TRIM(BOTH '' FROM `bP`) FROM `sS`; +bP TRIM(BOTH '' FROM `bP`) + + + + + + + + + +SELECT `bP`,TRIM(`bP`) FROM `sS`; +bP TRIM(`bP`) + + + + + + + + + +SELECT `bP`,TRIM(TRAILING '' FROM `bP`) FROM `sT`; +bP TRIM(TRAILING '' FROM `bP`) + + + + + + + + + +SELECT `bP`,TRIM(LEADING '' FROM `bP`) FROM `sT`; +bP TRIM(LEADING '' FROM `bP`) + + + + + + + + + +SELECT `bP`,TRIM(BOTH '' FROM `bP`) FROM `sT`; +bP TRIM(BOTH '' FROM `bP`) + + + + + + + + + +SELECT `bP`,TRIM(`bP`) FROM `sT`; +bP TRIM(`bP`) + + + + + + + + + +SELECT `bP`,TRIM(TRAILING '\' FROM `bP`) FROM `sU`; +bP TRIM(TRAILING '\' FROM `bP`) + \\\\\ \\\\\ +\\\\\ \\\\\ +\\\\\\ \\\\\ +\\\\\\\ \\\\\ +\\\\\\\\ \\\\\ +\\\\\\ \\\\\\ +\\\\\\\ \\\\\\\ +\\\\\\\\ \\\\\\\\ +\\\\\\\\\\\ \\\\\\\\ +SELECT `bP`,TRIM(LEADING '\' FROM `bP`) FROM `sU`; +bP TRIM(LEADING '\' FROM `bP`) + \\\\\ \\\\\ +\\\\\ \\\\\ +\\\\\\ \\\\\\ +\\\\\\\ \\\\\\\ +\\\\\\\\ \\\\\\\\ +\\\\\\ \\\\\ +\\\\\\\ \\\\\ +\\\\\\\\ \\\\\ +\\\\\\\\\\\ \\\\\\\\ +SELECT `bP`,TRIM(BOTH '\' FROM `bP`) FROM `sU`; +bP TRIM(BOTH '\' FROM `bP`) + \\\\\ \\\\\ +\\\\\ \\\\\ +\\\\\\ \\\\\ +\\\\\\\ \\\\\ +\\\\\\\\ \\\\\ +\\\\\\ \\\\\ +\\\\\\\ \\\\\ +\\\\\\\\ \\\\\ +\\\\\\\\\\\ \\\\\ +SELECT `bP`,TRIM(`bP`) FROM `sU`; +bP TRIM(`bP`) + \\\\\ \\\\\ +\\\\\ \\\\\ +\\\\\\ \\\\\\ +\\\\\\\ \\\\\\\ +\\\\\\\\ \\\\\\\\ +\\\\\\ \\\\\\ +\\\\\\\ \\\\\\\ +\\\\\\\\ \\\\\\\\ +\\\\\\\\\\\ \\\\\\\\\\\ +SELECT `bP`,TRIM(TRAILING '' FROM `bP`) FROM `sV`; +bP TRIM(TRAILING '' FROM `bP`) + + + + + + + + + +SELECT `bP`,TRIM(LEADING '' FROM `bP`) FROM `sV`; +bP TRIM(LEADING '' FROM `bP`) + + + + + + + + + +SELECT `bP`,TRIM(BOTH '' FROM `bP`) FROM `sV`; +bP TRIM(BOTH '' FROM `bP`) + + + + + + + + + +SELECT `bP`,TRIM(`bP`) FROM `sV`; +bP TRIM(`bP`) + + + + + + + + + +SELECT `bP`,TRIM(TRAILING '' FROM `bP`) FROM `sW`; +bP TRIM(TRAILING '' FROM `bP`) + + + + + + + + + +SELECT `bP`,TRIM(LEADING '' FROM `bP`) FROM `sW`; +bP TRIM(LEADING '' FROM `bP`) + + + + + + + + + +SELECT `bP`,TRIM(BOTH '' FROM `bP`) FROM `sW`; +bP TRIM(BOTH '' FROM `bP`) + + + + + + + + + +SELECT `bP`,TRIM(`bP`) FROM `sW`; +bP TRIM(`bP`) + + + + + + + + + +SELECT `bP`,TRIM(TRAILING '\' FROM `bP`) FROM `sX`; +bP TRIM(TRAILING '\' FROM `bP`) +\\\\\ \\\\\ +\\\\\\ \\\\\ +\\\\\\\ \\\\\ +\\\\\\\\ \\\\\ +\\\\\\ \\\\\\ +\\\\\\\ \\\\\\\ +\\\\\\\\ \\\\\\\\ +\\\\\\\\\\\ \\\\\\\\ + \\\\\ \\\\\ +SELECT `bP`,TRIM(LEADING '\' FROM `bP`) FROM `sX`; +bP TRIM(LEADING '\' FROM `bP`) +\\\\\ \\\\\ +\\\\\\ \\\\\\ +\\\\\\\ \\\\\\\ +\\\\\\\\ \\\\\\\\ +\\\\\\ \\\\\ +\\\\\\\ \\\\\ +\\\\\\\\ \\\\\ +\\\\\\\\\\\ \\\\\\\\ + \\\\\ \\\\\ +SELECT `bP`,TRIM(BOTH '\' FROM `bP`) FROM `sX`; +bP TRIM(BOTH '\' FROM `bP`) +\\\\\ \\\\\ +\\\\\\ \\\\\ +\\\\\\\ \\\\\ +\\\\\\\\ \\\\\ +\\\\\\ \\\\\ +\\\\\\\ \\\\\ +\\\\\\\\ \\\\\ +\\\\\\\\\\\ \\\\\ + \\\\\ \\\\\ +SELECT `bP`,TRIM(`bP`) FROM `sX`; +bP TRIM(`bP`) +\\\\\ \\\\\ +\\\\\\ \\\\\\ +\\\\\\\ \\\\\\\ +\\\\\\\\ \\\\\\\\ +\\\\\\ \\\\\\ +\\\\\\\ \\\\\\\ +\\\\\\\\ \\\\\\\\ +\\\\\\\\\\\ \\\\\\\\\\\ + \\\\\ \\\\\ +SELECT `bP`,TRIM(TRAILING '' FROM `bP`) FROM `sPO`; +bP TRIM(TRAILING '' FROM `bP`) + + + + + + + + + +SELECT `bP`,TRIM(LEADING '' FROM `bP`) FROM `sPO`; +bP TRIM(LEADING '' FROM `bP`) + + + + + + + + + +SELECT `bP`,TRIM(BOTH '' FROM `bP`) FROM `sPO`; +bP TRIM(BOTH '' FROM `bP`) + + + + + + + + + +SELECT `bP`,TRIM(`bP`) FROM `sPO`; +bP TRIM(`bP`) + + + + + + + + + +SELECT `bP`,TRIM(TRAILING '' FROM `bP`) FROM `sPP`; +bP TRIM(TRAILING '' FROM `bP`) + + + + + + + + + +SELECT `bP`,TRIM(LEADING '' FROM `bP`) FROM `sPP`; +bP TRIM(LEADING '' FROM `bP`) + + + + + + + + + +SELECT `bP`,TRIM(BOTH '' FROM `bP`) FROM `sPP`; +bP TRIM(BOTH '' FROM `bP`) + + + + + + + + + +SELECT `bP`,TRIM(`bP`) FROM `sPP`; +bP TRIM(`bP`) + + + + + + + + + +SELECT `bP`,TRIM(TRAILING '\' FROM `bP`) FROM `sPQ`; +bP TRIM(TRAILING '\' FROM `bP`) +\\\\\ \\\\\ +\\\\\\ \\\\\ +\\\\\\\ \\\\\ +\\\\\\\\ \\\\\ +\\\\\\ \\\\\\ +\\\\\\\ \\\\\\\ +\\\\\\\\ \\\\\\\\ +\\\\\\\\\\\ \\\\\\\\ + \\\\\ \\\\\ +SELECT `bP`,TRIM(LEADING '\' FROM `bP`) FROM `sPQ`; +bP TRIM(LEADING '\' FROM `bP`) +\\\\\ \\\\\ +\\\\\\ \\\\\\ +\\\\\\\ \\\\\\\ +\\\\\\\\ \\\\\\\\ +\\\\\\ \\\\\ +\\\\\\\ \\\\\ +\\\\\\\\ \\\\\ +\\\\\\\\\\\ \\\\\\\\ + \\\\\ \\\\\ +SELECT `bP`,TRIM(BOTH '\' FROM `bP`) FROM `sPQ`; +bP TRIM(BOTH '\' FROM `bP`) +\\\\\ \\\\\ +\\\\\\ \\\\\ +\\\\\\\ \\\\\ +\\\\\\\\ \\\\\ +\\\\\\ \\\\\ +\\\\\\\ \\\\\ +\\\\\\\\ \\\\\ +\\\\\\\\\\\ \\\\\ + \\\\\ \\\\\ +SELECT `bP`,TRIM(`bP`) FROM `sPQ`; +bP TRIM(`bP`) +\\\\\ \\\\\ +\\\\\\ \\\\\\ +\\\\\\\ \\\\\\\ +\\\\\\\\ \\\\\\\\ +\\\\\\ \\\\\\ +\\\\\\\ \\\\\\\ +\\\\\\\\ \\\\\\\\ +\\\\\\\\\\\ \\\\\\\\\\\ + \\\\\ \\\\\ +DROP TABLE `sP`; +DROP TABLE `sQ`; +DROP TABLE `sR`; +DROP TABLE `sS`; +DROP TABLE `sT`; +DROP TABLE `sU`; +DROP TABLE `sV`; +DROP TABLE `sW`; +DROP TABLE `sX`; +DROP TABLE `sPO`; +DROP TABLE `sPP`; +DROP TABLE `sPQ`; diff --git a/mysql-test/suite/jp/r/jp_trim_ucs2.result b/mysql-test/suite/jp/r/jp_trim_ucs2.result new file mode 100755 index 00000000000..6ef73301a49 --- /dev/null +++ b/mysql-test/suite/jp/r/jp_trim_ucs2.result @@ -0,0 +1,673 @@ +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +SET NAMES ujis; +SET character_set_database = ucs2; +SET collation_connection = ucs2_general_ci; +CREATE TABLE `ԣ` (`ã` char(12), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(12), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(12), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(12), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(12), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(12), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(12), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(12), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(12), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(12), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +CREATE TABLE `ԣ` (`ã` char(12), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +CREATE TABLE `ԣ` (`ã` char(12), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (' ܏ݏޏߏ '); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (' ܏ݏޏߏ '); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (' ܏ݏޏߏ '); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (' ܏ݏޏߏ '); +SELECT `ã`,TRIM(TRAILING '' FROM `ã`) FROM `ԣ`; +ã TRIM(TRAILING '' FROM `ã`) + + + + + + + + + +SELECT `ã`,TRIM(LEADING '' FROM `ã`) FROM `ԣ`; +ã TRIM(LEADING '' FROM `ã`) + + + + + + + + + +SELECT `ã`,TRIM(BOTH '' FROM `ã`) FROM `ԣ`; +ã TRIM(BOTH '' FROM `ã`) + + + + + + + + + +SELECT `ã`,TRIM(`ã`) FROM `ԣ`; +ã TRIM(`ã`) + + + + + + + + + +SELECT `ã`,TRIM(TRAILING '' FROM `ã`) FROM `ԣ`; +ã TRIM(TRAILING '' FROM `ã`) + + + + + + + + + +SELECT `ã`,TRIM(LEADING '' FROM `ã`) FROM `ԣ`; +ã TRIM(LEADING '' FROM `ã`) + + + + + + + + + +SELECT `ã`,TRIM(BOTH '' FROM `ã`) FROM `ԣ`; +ã TRIM(BOTH '' FROM `ã`) + + + + + + + + + +SELECT `ã`,TRIM(`ã`) FROM `ԣ`; +ã TRIM(`ã`) + + + + + + + + + +SELECT `ã`,TRIM(TRAILING ''FROM `ã`) FROM `ԣ`; +ã TRIM(TRAILING ''FROM `ã`) + ܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +SELECT `ã`,TRIM(LEADING '' FROM `ã`) FROM `ԣ`; +ã TRIM(LEADING '' FROM `ã`) + ܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +SELECT `ã`,TRIM(BOTH '' FROM `ã`) FROM `ԣ`; +ã TRIM(BOTH '' FROM `ã`) + ܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +SELECT `ã`,TRIM(`ã`) FROM `ԣ`; +ã TRIM(`ã`) + ܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +SELECT `ã`,TRIM(TRAILING '' FROM `ã`) FROM `ԣ`; +ã TRIM(TRAILING '' FROM `ã`) + + + + + + + + + +SELECT `ã`,TRIM(LEADING '' FROM `ã`) FROM `ԣ`; +ã TRIM(LEADING '' FROM `ã`) + + + + + + + + + +SELECT `ã`,TRIM(BOTH '' FROM `ã`) FROM `ԣ`; +ã TRIM(BOTH '' FROM `ã`) + + + + + + + + + +SELECT `ã`,TRIM(`ã`) FROM `ԣ`; +ã TRIM(`ã`) + + + + + + + + + +SELECT `ã`,TRIM(TRAILING '' FROM `ã`) FROM `ԣ`; +ã TRIM(TRAILING '' FROM `ã`) + + + + + + + + + +SELECT `ã`,TRIM(LEADING '' FROM `ã`) FROM `ԣ`; +ã TRIM(LEADING '' FROM `ã`) + + + + + + + + + +SELECT `ã`,TRIM(BOTH '' FROM `ã`) FROM `ԣ`; +ã TRIM(BOTH '' FROM `ã`) + + + + + + + + + +SELECT `ã`,TRIM(`ã`) FROM `ԣ`; +ã TRIM(`ã`) + + + + + + + + + +SELECT `ã`,TRIM(TRAILING '' FROM `ã`) FROM `ԣ`; +ã TRIM(TRAILING '' FROM `ã`) + ܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +SELECT `ã`,TRIM(LEADING '' FROM `ã`) FROM `ԣ`; +ã TRIM(LEADING '' FROM `ã`) + ܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +SELECT `ã`,TRIM(BOTH '' FROM `ã`) FROM `ԣ`; +ã TRIM(BOTH '' FROM `ã`) + ܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +SELECT `ã`,TRIM(`ã`) FROM `ԣ`; +ã TRIM(`ã`) + ܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +SELECT `ã`,TRIM(TRAILING '' FROM `ã`) FROM `ԣ`; +ã TRIM(TRAILING '' FROM `ã`) + + + + + + + + + +SELECT `ã`,TRIM(LEADING '' FROM `ã`) FROM `ԣ`; +ã TRIM(LEADING '' FROM `ã`) + + + + + + + + + +SELECT `ã`,TRIM(BOTH '' FROM `ã`) FROM `ԣ`; +ã TRIM(BOTH '' FROM `ã`) + + + + + + + + + +SELECT `ã`,TRIM(`ã`) FROM `ԣ`; +ã TRIM(`ã`) + + + + + + + + + +SELECT `ã`,TRIM(TRAILING '' FROM `ã`) FROM `ԣ`; +ã TRIM(TRAILING '' FROM `ã`) + + + + + + + + + +SELECT `ã`,TRIM(LEADING '' FROM `ã`) FROM `ԣ`; +ã TRIM(LEADING '' FROM `ã`) + + + + + + + + + +SELECT `ã`,TRIM(BOTH '' FROM `ã`) FROM `ԣ`; +ã TRIM(BOTH '' FROM `ã`) + + + + + + + + + +SELECT `ã`,TRIM(`ã`) FROM `ԣ`; +ã TRIM(`ã`) + + + + + + + + + +SELECT `ã`,TRIM(TRAILING '' FROM `ã`) FROM `ԣ`; +ã TRIM(TRAILING '' FROM `ã`) +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ + ܏ݏޏߏ ܏ݏޏߏ +SELECT `ã`,TRIM(LEADING '' FROM `ã`) FROM `ԣ`; +ã TRIM(LEADING '' FROM `ã`) +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ + ܏ݏޏߏ ܏ݏޏߏ +SELECT `ã`,TRIM(BOTH '' FROM `ã`) FROM `ԣ`; +ã TRIM(BOTH '' FROM `ã`) +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ + ܏ݏޏߏ ܏ݏޏߏ +SELECT `ã`,TRIM(`ã`) FROM `ԣ`; +ã TRIM(`ã`) +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ + ܏ݏޏߏ ܏ݏޏߏ +SELECT `ã`,TRIM(TRAILING '' FROM `ã`) FROM `ԣ`; +ã TRIM(TRAILING '' FROM `ã`) + + + + + + + + + +SELECT `ã`,TRIM(LEADING '' FROM `ã`) FROM `ԣ`; +ã TRIM(LEADING '' FROM `ã`) + + + + + + + + + +SELECT `ã`,TRIM(BOTH '' FROM `ã`) FROM `ԣ`; +ã TRIM(BOTH '' FROM `ã`) + + + + + + + + + +SELECT `ã`,TRIM(`ã`) FROM `ԣ`; +ã TRIM(`ã`) + + + + + + + + + +SELECT `ã`,TRIM(TRAILING '' FROM `ã`) FROM `ԣ`; +ã TRIM(TRAILING '' FROM `ã`) + + + + + + + + + +SELECT `ã`,TRIM(LEADING '' FROM `ã`) FROM `ԣ`; +ã TRIM(LEADING '' FROM `ã`) + + + + + + + + + +SELECT `ã`,TRIM(BOTH '' FROM `ã`) FROM `ԣ`; +ã TRIM(BOTH '' FROM `ã`) + + + + + + + + + +SELECT `ã`,TRIM(`ã`) FROM `ԣ`; +ã TRIM(`ã`) + + + + + + + + + +SELECT `ã`,TRIM(TRAILING '' FROM `ã`) FROM `ԣ`; +ã TRIM(TRAILING '' FROM `ã`) +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ + ܏ݏޏߏ ܏ݏޏߏ +SELECT `ã`,TRIM(LEADING '' FROM `ã`) FROM `ԣ`; +ã TRIM(LEADING '' FROM `ã`) +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ + ܏ݏޏߏ ܏ݏޏߏ +SELECT `ã`,TRIM(BOTH '' FROM `ã`) FROM `ԣ`; +ã TRIM(BOTH '' FROM `ã`) +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ + ܏ݏޏߏ ܏ݏޏߏ +SELECT `ã`,TRIM(`ã`) FROM `ԣ`; +ã TRIM(`ã`) +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ + ܏ݏޏߏ ܏ݏޏߏ +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; diff --git a/mysql-test/suite/jp/r/jp_trim_ujis.result b/mysql-test/suite/jp/r/jp_trim_ujis.result new file mode 100755 index 00000000000..b79a1b24a37 --- /dev/null +++ b/mysql-test/suite/jp/r/jp_trim_ujis.result @@ -0,0 +1,672 @@ +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +SET NAMES ujis; +SET character_set_database = ujis; +CREATE TABLE `ԣ` (`ã` char(12), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(12), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(12), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(12), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(12), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(12), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(12), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(12), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(12), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(12), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +CREATE TABLE `ԣ` (`ã` char(12), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +CREATE TABLE `ԣ` (`ã` char(12), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (' ܏ݏޏߏ '); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (' ܏ݏޏߏ '); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (' ܏ݏޏߏ '); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (' ܏ݏޏߏ '); +SELECT `ã`,TRIM(TRAILING '' FROM `ã`) FROM `ԣ`; +ã TRIM(TRAILING '' FROM `ã`) + + + + + + + + + +SELECT `ã`,TRIM(LEADING '' FROM `ã`) FROM `ԣ`; +ã TRIM(LEADING '' FROM `ã`) + + + + + + + + + +SELECT `ã`,TRIM(BOTH '' FROM `ã`) FROM `ԣ`; +ã TRIM(BOTH '' FROM `ã`) + + + + + + + + + +SELECT `ã`,TRIM(`ã`) FROM `ԣ`; +ã TRIM(`ã`) + + + + + + + + + +SELECT `ã`,TRIM(TRAILING '' FROM `ã`) FROM `ԣ`; +ã TRIM(TRAILING '' FROM `ã`) + + + + + + + + + +SELECT `ã`,TRIM(LEADING '' FROM `ã`) FROM `ԣ`; +ã TRIM(LEADING '' FROM `ã`) + + + + + + + + + +SELECT `ã`,TRIM(BOTH '' FROM `ã`) FROM `ԣ`; +ã TRIM(BOTH '' FROM `ã`) + + + + + + + + + +SELECT `ã`,TRIM(`ã`) FROM `ԣ`; +ã TRIM(`ã`) + + + + + + + + + +SELECT `ã`,TRIM(TRAILING ''FROM `ã`) FROM `ԣ`; +ã TRIM(TRAILING ''FROM `ã`) + ܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +SELECT `ã`,TRIM(LEADING '' FROM `ã`) FROM `ԣ`; +ã TRIM(LEADING '' FROM `ã`) + ܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +SELECT `ã`,TRIM(BOTH '' FROM `ã`) FROM `ԣ`; +ã TRIM(BOTH '' FROM `ã`) + ܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +SELECT `ã`,TRIM(`ã`) FROM `ԣ`; +ã TRIM(`ã`) + ܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +SELECT `ã`,TRIM(TRAILING '' FROM `ã`) FROM `ԣ`; +ã TRIM(TRAILING '' FROM `ã`) + + + + + + + + + +SELECT `ã`,TRIM(LEADING '' FROM `ã`) FROM `ԣ`; +ã TRIM(LEADING '' FROM `ã`) + + + + + + + + + +SELECT `ã`,TRIM(BOTH '' FROM `ã`) FROM `ԣ`; +ã TRIM(BOTH '' FROM `ã`) + + + + + + + + + +SELECT `ã`,TRIM(`ã`) FROM `ԣ`; +ã TRIM(`ã`) + + + + + + + + + +SELECT `ã`,TRIM(TRAILING '' FROM `ã`) FROM `ԣ`; +ã TRIM(TRAILING '' FROM `ã`) + + + + + + + + + +SELECT `ã`,TRIM(LEADING '' FROM `ã`) FROM `ԣ`; +ã TRIM(LEADING '' FROM `ã`) + + + + + + + + + +SELECT `ã`,TRIM(BOTH '' FROM `ã`) FROM `ԣ`; +ã TRIM(BOTH '' FROM `ã`) + + + + + + + + + +SELECT `ã`,TRIM(`ã`) FROM `ԣ`; +ã TRIM(`ã`) + + + + + + + + + +SELECT `ã`,TRIM(TRAILING '' FROM `ã`) FROM `ԣ`; +ã TRIM(TRAILING '' FROM `ã`) + ܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +SELECT `ã`,TRIM(LEADING '' FROM `ã`) FROM `ԣ`; +ã TRIM(LEADING '' FROM `ã`) + ܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +SELECT `ã`,TRIM(BOTH '' FROM `ã`) FROM `ԣ`; +ã TRIM(BOTH '' FROM `ã`) + ܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +SELECT `ã`,TRIM(`ã`) FROM `ԣ`; +ã TRIM(`ã`) + ܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +SELECT `ã`,TRIM(TRAILING '' FROM `ã`) FROM `ԣ`; +ã TRIM(TRAILING '' FROM `ã`) + + + + + + + + + +SELECT `ã`,TRIM(LEADING '' FROM `ã`) FROM `ԣ`; +ã TRIM(LEADING '' FROM `ã`) + + + + + + + + + +SELECT `ã`,TRIM(BOTH '' FROM `ã`) FROM `ԣ`; +ã TRIM(BOTH '' FROM `ã`) + + + + + + + + + +SELECT `ã`,TRIM(`ã`) FROM `ԣ`; +ã TRIM(`ã`) + + + + + + + + + +SELECT `ã`,TRIM(TRAILING '' FROM `ã`) FROM `ԣ`; +ã TRIM(TRAILING '' FROM `ã`) + + + + + + + + + +SELECT `ã`,TRIM(LEADING '' FROM `ã`) FROM `ԣ`; +ã TRIM(LEADING '' FROM `ã`) + + + + + + + + + +SELECT `ã`,TRIM(BOTH '' FROM `ã`) FROM `ԣ`; +ã TRIM(BOTH '' FROM `ã`) + + + + + + + + + +SELECT `ã`,TRIM(`ã`) FROM `ԣ`; +ã TRIM(`ã`) + + + + + + + + + +SELECT `ã`,TRIM(TRAILING '' FROM `ã`) FROM `ԣ`; +ã TRIM(TRAILING '' FROM `ã`) +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ + ܏ݏޏߏ ܏ݏޏߏ +SELECT `ã`,TRIM(LEADING '' FROM `ã`) FROM `ԣ`; +ã TRIM(LEADING '' FROM `ã`) +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ + ܏ݏޏߏ ܏ݏޏߏ +SELECT `ã`,TRIM(BOTH '' FROM `ã`) FROM `ԣ`; +ã TRIM(BOTH '' FROM `ã`) +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ + ܏ݏޏߏ ܏ݏޏߏ +SELECT `ã`,TRIM(`ã`) FROM `ԣ`; +ã TRIM(`ã`) +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ + ܏ݏޏߏ ܏ݏޏߏ +SELECT `ã`,TRIM(TRAILING '' FROM `ã`) FROM `ԣ`; +ã TRIM(TRAILING '' FROM `ã`) + + + + + + + + + +SELECT `ã`,TRIM(LEADING '' FROM `ã`) FROM `ԣ`; +ã TRIM(LEADING '' FROM `ã`) + + + + + + + + + +SELECT `ã`,TRIM(BOTH '' FROM `ã`) FROM `ԣ`; +ã TRIM(BOTH '' FROM `ã`) + + + + + + + + + +SELECT `ã`,TRIM(`ã`) FROM `ԣ`; +ã TRIM(`ã`) + + + + + + + + + +SELECT `ã`,TRIM(TRAILING '' FROM `ã`) FROM `ԣ`; +ã TRIM(TRAILING '' FROM `ã`) + + + + + + + + + +SELECT `ã`,TRIM(LEADING '' FROM `ã`) FROM `ԣ`; +ã TRIM(LEADING '' FROM `ã`) + + + + + + + + + +SELECT `ã`,TRIM(BOTH '' FROM `ã`) FROM `ԣ`; +ã TRIM(BOTH '' FROM `ã`) + + + + + + + + + +SELECT `ã`,TRIM(`ã`) FROM `ԣ`; +ã TRIM(`ã`) + + + + + + + + + +SELECT `ã`,TRIM(TRAILING '' FROM `ã`) FROM `ԣ`; +ã TRIM(TRAILING '' FROM `ã`) +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ + ܏ݏޏߏ ܏ݏޏߏ +SELECT `ã`,TRIM(LEADING '' FROM `ã`) FROM `ԣ`; +ã TRIM(LEADING '' FROM `ã`) +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ + ܏ݏޏߏ ܏ݏޏߏ +SELECT `ã`,TRIM(BOTH '' FROM `ã`) FROM `ԣ`; +ã TRIM(BOTH '' FROM `ã`) +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ + ܏ݏޏߏ ܏ݏޏߏ +SELECT `ã`,TRIM(`ã`) FROM `ԣ`; +ã TRIM(`ã`) +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ +܏ݏޏߏ ܏ݏޏߏ + ܏ݏޏߏ ܏ݏޏߏ +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; diff --git a/mysql-test/suite/jp/r/jp_trim_utf8.result b/mysql-test/suite/jp/r/jp_trim_utf8.result new file mode 100755 index 00000000000..99fb785e495 --- /dev/null +++ b/mysql-test/suite/jp/r/jp_trim_utf8.result @@ -0,0 +1,672 @@ +drop table if exists `T1`; +drop table if exists `T2`; +drop table if exists `T3`; +drop table if exists `T4`; +drop table if exists `T5`; +drop table if exists `T6`; +drop table if exists `T7`; +drop table if exists `T8`; +drop table if exists `T9`; +drop table if exists `T10`; +SET NAMES utf8; +SET character_set_database = utf8; +CREATE TABLE `T1` (`C1` char(12), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T2` (`C1` char(12), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T3` (`C1` char(12), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T4` (`C1` char(12), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T5` (`C1` char(12), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T6` (`C1` char(12), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T7` (`C1` char(12), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T8` (`C1` char(12), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T9` (`C1` char(12), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T10` (`C1` char(12), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +CREATE TABLE `T11` (`C1` char(12), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +CREATE TABLE `T12` (`C1` char(12), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +INSERT INTO `T1` VALUES ('アイウエオ'); +INSERT INTO `T1` VALUES ('アイウエオカ'); +INSERT INTO `T1` VALUES ('アイウエオカカ'); +INSERT INTO `T1` VALUES ('アイウエオカカカ'); +INSERT INTO `T1` VALUES ('カアイウエオ'); +INSERT INTO `T1` VALUES ('カカアイウエオ'); +INSERT INTO `T1` VALUES ('カカカアイウエオ'); +INSERT INTO `T1` VALUES ('カカカアイウエオカカカ'); +INSERT INTO `T1` VALUES (' アイウエオ '); +INSERT INTO `T2` VALUES ('あいうえお'); +INSERT INTO `T2` VALUES ('あいうえおか'); +INSERT INTO `T2` VALUES ('あいうえおかか'); +INSERT INTO `T2` VALUES ('あいうえおかかか'); +INSERT INTO `T2` VALUES ('かあいうえお'); +INSERT INTO `T2` VALUES ('かかあいうえお'); +INSERT INTO `T2` VALUES ('かかかあいうえお'); +INSERT INTO `T2` VALUES ('かかかあいうえおかかか'); +INSERT INTO `T2` VALUES (' あいうえお '); +INSERT INTO `T3` VALUES ('龔龖龗龞龡'); +INSERT INTO `T3` VALUES ('龔龖龗龞龡丂'); +INSERT INTO `T3` VALUES ('龔龖龗龞龡丂丂'); +INSERT INTO `T3` VALUES ('龔龖龗龞龡丂丂丂'); +INSERT INTO `T3` VALUES ('丂龔龖龗龞龡'); +INSERT INTO `T3` VALUES ('丂丂龔龖龗龞龡'); +INSERT INTO `T3` VALUES ('丂丂丂龔龖龗龞龡'); +INSERT INTO `T3` VALUES ('丂丂丂龔龖龗龞龡丂丂丂'); +INSERT INTO `T3` VALUES (' 龔龖龗龞龡 '); +INSERT INTO `T4` VALUES ('アイウエオ'); +INSERT INTO `T4` VALUES ('アイウエオカ'); +INSERT INTO `T4` VALUES ('アイウエオカカ'); +INSERT INTO `T4` VALUES ('アイウエオカカカ'); +INSERT INTO `T4` VALUES ('カアイウエオ'); +INSERT INTO `T4` VALUES ('カカアイウエオ'); +INSERT INTO `T4` VALUES ('カカカアイウエオ'); +INSERT INTO `T4` VALUES ('カカカアイウエオカカカ'); +INSERT INTO `T4` VALUES (' アイウエオ '); +INSERT INTO `T5` VALUES ('あいうえお'); +INSERT INTO `T5` VALUES ('あいうえおか'); +INSERT INTO `T5` VALUES ('あいうえおかか'); +INSERT INTO `T5` VALUES ('あいうえおかかか'); +INSERT INTO `T5` VALUES ('かあいうえお'); +INSERT INTO `T5` VALUES ('かかあいうえお'); +INSERT INTO `T5` VALUES ('かかかあいうえお'); +INSERT INTO `T5` VALUES ('かかかあいうえおかかか'); +INSERT INTO `T5` VALUES (' あいうえお '); +INSERT INTO `T6` VALUES ('龔龖龗龞龡'); +INSERT INTO `T6` VALUES ('龔龖龗龞龡丂'); +INSERT INTO `T6` VALUES ('龔龖龗龞龡丂丂'); +INSERT INTO `T6` VALUES ('龔龖龗龞龡丂丂丂'); +INSERT INTO `T6` VALUES ('丂龔龖龗龞龡'); +INSERT INTO `T6` VALUES ('丂丂龔龖龗龞龡'); +INSERT INTO `T6` VALUES ('丂丂丂龔龖龗龞龡'); +INSERT INTO `T6` VALUES ('丂丂丂龔龖龗龞龡丂丂丂'); +INSERT INTO `T6` VALUES (' 龔龖龗龞龡 '); +INSERT INTO `T7` VALUES ('アイウエオ'); +INSERT INTO `T7` VALUES ('アイウエオカ'); +INSERT INTO `T7` VALUES ('アイウエオカカ'); +INSERT INTO `T7` VALUES ('アイウエオカカカ'); +INSERT INTO `T7` VALUES ('カアイウエオ'); +INSERT INTO `T7` VALUES ('カカアイウエオ'); +INSERT INTO `T7` VALUES ('カカカアイウエオ'); +INSERT INTO `T7` VALUES ('カカカアイウエオカカカ'); +INSERT INTO `T7` VALUES (' アイウエオ '); +INSERT INTO `T8` VALUES ('あいうえお'); +INSERT INTO `T8` VALUES ('あいうえおか'); +INSERT INTO `T8` VALUES ('あいうえおかか'); +INSERT INTO `T8` VALUES ('あいうえおかかか'); +INSERT INTO `T8` VALUES ('かあいうえお'); +INSERT INTO `T8` VALUES ('かかあいうえお'); +INSERT INTO `T8` VALUES ('かかかあいうえお'); +INSERT INTO `T8` VALUES ('かかかあいうえおかかか'); +INSERT INTO `T8` VALUES (' あいうえお '); +INSERT INTO `T9` VALUES ('龔龖龗龞龡'); +INSERT INTO `T9` VALUES ('龔龖龗龞龡丂'); +INSERT INTO `T9` VALUES ('龔龖龗龞龡丂丂'); +INSERT INTO `T9` VALUES ('龔龖龗龞龡丂丂丂'); +INSERT INTO `T9` VALUES ('丂龔龖龗龞龡'); +INSERT INTO `T9` VALUES ('丂丂龔龖龗龞龡'); +INSERT INTO `T9` VALUES ('丂丂丂龔龖龗龞龡'); +INSERT INTO `T9` VALUES ('丂丂丂龔龖龗龞龡丂丂丂'); +INSERT INTO `T9` VALUES (' 龔龖龗龞龡 '); +INSERT INTO `T10` VALUES ('アイウエオ'); +INSERT INTO `T10` VALUES ('アイウエオカ'); +INSERT INTO `T10` VALUES ('アイウエオカカ'); +INSERT INTO `T10` VALUES ('アイウエオカカカ'); +INSERT INTO `T10` VALUES ('カアイウエオ'); +INSERT INTO `T10` VALUES ('カカアイウエオ'); +INSERT INTO `T10` VALUES ('カカカアイウエオ'); +INSERT INTO `T10` VALUES ('カカカアイウエオカカカ'); +INSERT INTO `T10` VALUES (' アイウエオ '); +INSERT INTO `T11` VALUES ('あいうえお'); +INSERT INTO `T11` VALUES ('あいうえおか'); +INSERT INTO `T11` VALUES ('あいうえおかか'); +INSERT INTO `T11` VALUES ('あいうえおかかか'); +INSERT INTO `T11` VALUES ('かあいうえお'); +INSERT INTO `T11` VALUES ('かかあいうえお'); +INSERT INTO `T11` VALUES ('かかかあいうえお'); +INSERT INTO `T11` VALUES ('かかかあいうえおかかか'); +INSERT INTO `T11` VALUES (' あいうえお '); +INSERT INTO `T12` VALUES ('龔龖龗龞龡'); +INSERT INTO `T12` VALUES ('龔龖龗龞龡丂'); +INSERT INTO `T12` VALUES ('龔龖龗龞龡丂丂'); +INSERT INTO `T12` VALUES ('龔龖龗龞龡丂丂丂'); +INSERT INTO `T12` VALUES ('丂龔龖龗龞龡'); +INSERT INTO `T12` VALUES ('丂丂龔龖龗龞龡'); +INSERT INTO `T12` VALUES ('丂丂丂龔龖龗龞龡'); +INSERT INTO `T12` VALUES ('丂丂丂龔龖龗龞龡丂丂丂'); +INSERT INTO `T12` VALUES (' 龔龖龗龞龡 '); +SELECT `C1`,TRIM(TRAILING 'カ' FROM `C1`) FROM `T1`; +C1 TRIM(TRAILING 'カ' FROM `C1`) + アイウエオ アイウエオ +アイウエオ アイウエオ +アイウエオカ アイウエオ +アイウエオカカ アイウエオ +アイウエオカカカ アイウエオ +カアイウエオ カアイウエオ +カカアイウエオ カカアイウエオ +カカカアイウエオ カカカアイウエオ +カカカアイウエオカカカ カカカアイウエオ +SELECT `C1`,TRIM(LEADING 'カ' FROM `C1`) FROM `T1`; +C1 TRIM(LEADING 'カ' FROM `C1`) + アイウエオ アイウエオ +アイウエオ アイウエオ +アイウエオカ アイウエオカ +アイウエオカカ アイウエオカカ +アイウエオカカカ アイウエオカカカ +カアイウエオ アイウエオ +カカアイウエオ アイウエオ +カカカアイウエオ アイウエオ +カカカアイウエオカカカ アイウエオカカカ +SELECT `C1`,TRIM(BOTH 'カ' FROM `C1`) FROM `T1`; +C1 TRIM(BOTH 'カ' FROM `C1`) + アイウエオ アイウエオ +アイウエオ アイウエオ +アイウエオカ アイウエオ +アイウエオカカ アイウエオ +アイウエオカカカ アイウエオ +カアイウエオ アイウエオ +カカアイウエオ アイウエオ +カカカアイウエオ アイウエオ +カカカアイウエオカカカ アイウエオ +SELECT `C1`,TRIM(`C1`) FROM `T1`; +C1 TRIM(`C1`) + アイウエオ アイウエオ +アイウエオ アイウエオ +アイウエオカ アイウエオカ +アイウエオカカ アイウエオカカ +アイウエオカカカ アイウエオカカカ +カアイウエオ カアイウエオ +カカアイウエオ カカアイウエオ +カカカアイウエオ カカカアイウエオ +カカカアイウエオカカカ カカカアイウエオカカカ +SELECT `C1`,TRIM(TRAILING 'か' FROM `C1`) FROM `T2`; +C1 TRIM(TRAILING 'か' FROM `C1`) + あいうえお あいうえお +あいうえお あいうえお +あいうえおか あいうえお +あいうえおかか あいうえお +あいうえおかかか あいうえお +かあいうえお かあいうえお +かかあいうえお かかあいうえお +かかかあいうえお かかかあいうえお +かかかあいうえおかかか かかかあいうえお +SELECT `C1`,TRIM(LEADING 'か' FROM `C1`) FROM `T2`; +C1 TRIM(LEADING 'か' FROM `C1`) + あいうえお あいうえお +あいうえお あいうえお +あいうえおか あいうえおか +あいうえおかか あいうえおかか +あいうえおかかか あいうえおかかか +かあいうえお あいうえお +かかあいうえお あいうえお +かかかあいうえお あいうえお +かかかあいうえおかかか あいうえおかかか +SELECT `C1`,TRIM(BOTH 'か' FROM `C1`) FROM `T2`; +C1 TRIM(BOTH 'か' FROM `C1`) + あいうえお あいうえお +あいうえお あいうえお +あいうえおか あいうえお +あいうえおかか あいうえお +あいうえおかかか あいうえお +かあいうえお あいうえお +かかあいうえお あいうえお +かかかあいうえお あいうえお +かかかあいうえおかかか あいうえお +SELECT `C1`,TRIM(`C1`) FROM `T2`; +C1 TRIM(`C1`) + あいうえお あいうえお +あいうえお あいうえお +あいうえおか あいうえおか +あいうえおかか あいうえおかか +あいうえおかかか あいうえおかかか +かあいうえお かあいうえお +かかあいうえお かかあいうえお +かかかあいうえお かかかあいうえお +かかかあいうえおかかか かかかあいうえおかかか +SELECT `C1`,TRIM(TRAILING '丂'FROM `C1`) FROM `T3`; +C1 TRIM(TRAILING '丂'FROM `C1`) + 龔龖龗龞龡 龔龖龗龞龡 +丂丂丂龔龖龗龞龡 丂丂丂龔龖龗龞龡 +丂丂丂龔龖龗龞龡丂丂丂 丂丂丂龔龖龗龞龡 +丂丂龔龖龗龞龡 丂丂龔龖龗龞龡 +丂龔龖龗龞龡 丂龔龖龗龞龡 +龔龖龗龞龡 龔龖龗龞龡 +龔龖龗龞龡丂 龔龖龗龞龡 +龔龖龗龞龡丂丂 龔龖龗龞龡 +龔龖龗龞龡丂丂丂 龔龖龗龞龡 +SELECT `C1`,TRIM(LEADING '丂' FROM `C1`) FROM `T3`; +C1 TRIM(LEADING '丂' FROM `C1`) + 龔龖龗龞龡 龔龖龗龞龡 +丂丂丂龔龖龗龞龡 龔龖龗龞龡 +丂丂丂龔龖龗龞龡丂丂丂 龔龖龗龞龡丂丂丂 +丂丂龔龖龗龞龡 龔龖龗龞龡 +丂龔龖龗龞龡 龔龖龗龞龡 +龔龖龗龞龡 龔龖龗龞龡 +龔龖龗龞龡丂 龔龖龗龞龡丂 +龔龖龗龞龡丂丂 龔龖龗龞龡丂丂 +龔龖龗龞龡丂丂丂 龔龖龗龞龡丂丂丂 +SELECT `C1`,TRIM(BOTH '丂' FROM `C1`) FROM `T3`; +C1 TRIM(BOTH '丂' FROM `C1`) + 龔龖龗龞龡 龔龖龗龞龡 +丂丂丂龔龖龗龞龡 龔龖龗龞龡 +丂丂丂龔龖龗龞龡丂丂丂 龔龖龗龞龡 +丂丂龔龖龗龞龡 龔龖龗龞龡 +丂龔龖龗龞龡 龔龖龗龞龡 +龔龖龗龞龡 龔龖龗龞龡 +龔龖龗龞龡丂 龔龖龗龞龡 +龔龖龗龞龡丂丂 龔龖龗龞龡 +龔龖龗龞龡丂丂丂 龔龖龗龞龡 +SELECT `C1`,TRIM(`C1`) FROM `T3`; +C1 TRIM(`C1`) + 龔龖龗龞龡 龔龖龗龞龡 +丂丂丂龔龖龗龞龡 丂丂丂龔龖龗龞龡 +丂丂丂龔龖龗龞龡丂丂丂 丂丂丂龔龖龗龞龡丂丂丂 +丂丂龔龖龗龞龡 丂丂龔龖龗龞龡 +丂龔龖龗龞龡 丂龔龖龗龞龡 +龔龖龗龞龡 龔龖龗龞龡 +龔龖龗龞龡丂 龔龖龗龞龡丂 +龔龖龗龞龡丂丂 龔龖龗龞龡丂丂 +龔龖龗龞龡丂丂丂 龔龖龗龞龡丂丂丂 +SELECT `C1`,TRIM(TRAILING 'カ' FROM `C1`) FROM `T4`; +C1 TRIM(TRAILING 'カ' FROM `C1`) + アイウエオ アイウエオ +アイウエオ アイウエオ +アイウエオカ アイウエオ +アイウエオカカ アイウエオ +アイウエオカカカ アイウエオ +カアイウエオ カアイウエオ +カカアイウエオ カカアイウエオ +カカカアイウエオ カカカアイウエオ +カカカアイウエオカカカ カカカアイウエオ +SELECT `C1`,TRIM(LEADING 'カ' FROM `C1`) FROM `T4`; +C1 TRIM(LEADING 'カ' FROM `C1`) + アイウエオ アイウエオ +アイウエオ アイウエオ +アイウエオカ アイウエオカ +アイウエオカカ アイウエオカカ +アイウエオカカカ アイウエオカカカ +カアイウエオ アイウエオ +カカアイウエオ アイウエオ +カカカアイウエオ アイウエオ +カカカアイウエオカカカ アイウエオカカカ +SELECT `C1`,TRIM(BOTH 'カ' FROM `C1`) FROM `T4`; +C1 TRIM(BOTH 'カ' FROM `C1`) + アイウエオ アイウエオ +アイウエオ アイウエオ +アイウエオカ アイウエオ +アイウエオカカ アイウエオ +アイウエオカカカ アイウエオ +カアイウエオ アイウエオ +カカアイウエオ アイウエオ +カカカアイウエオ アイウエオ +カカカアイウエオカカカ アイウエオ +SELECT `C1`,TRIM(`C1`) FROM `T4`; +C1 TRIM(`C1`) + アイウエオ アイウエオ +アイウエオ アイウエオ +アイウエオカ アイウエオカ +アイウエオカカ アイウエオカカ +アイウエオカカカ アイウエオカカカ +カアイウエオ カアイウエオ +カカアイウエオ カカアイウエオ +カカカアイウエオ カカカアイウエオ +カカカアイウエオカカカ カカカアイウエオカカカ +SELECT `C1`,TRIM(TRAILING 'か' FROM `C1`) FROM `T5`; +C1 TRIM(TRAILING 'か' FROM `C1`) + あいうえお あいうえお +あいうえお あいうえお +あいうえおか あいうえお +あいうえおかか あいうえお +あいうえおかかか あいうえお +かあいうえお かあいうえお +かかあいうえお かかあいうえお +かかかあいうえお かかかあいうえお +かかかあいうえおかかか かかかあいうえお +SELECT `C1`,TRIM(LEADING 'か' FROM `C1`) FROM `T5`; +C1 TRIM(LEADING 'か' FROM `C1`) + あいうえお あいうえお +あいうえお あいうえお +あいうえおか あいうえおか +あいうえおかか あいうえおかか +あいうえおかかか あいうえおかかか +かあいうえお あいうえお +かかあいうえお あいうえお +かかかあいうえお あいうえお +かかかあいうえおかかか あいうえおかかか +SELECT `C1`,TRIM(BOTH 'か' FROM `C1`) FROM `T5`; +C1 TRIM(BOTH 'か' FROM `C1`) + あいうえお あいうえお +あいうえお あいうえお +あいうえおか あいうえお +あいうえおかか あいうえお +あいうえおかかか あいうえお +かあいうえお あいうえお +かかあいうえお あいうえお +かかかあいうえお あいうえお +かかかあいうえおかかか あいうえお +SELECT `C1`,TRIM(`C1`) FROM `T5`; +C1 TRIM(`C1`) + あいうえお あいうえお +あいうえお あいうえお +あいうえおか あいうえおか +あいうえおかか あいうえおかか +あいうえおかかか あいうえおかかか +かあいうえお かあいうえお +かかあいうえお かかあいうえお +かかかあいうえお かかかあいうえお +かかかあいうえおかかか かかかあいうえおかかか +SELECT `C1`,TRIM(TRAILING '丂' FROM `C1`) FROM `T6`; +C1 TRIM(TRAILING '丂' FROM `C1`) + 龔龖龗龞龡 龔龖龗龞龡 +丂丂丂龔龖龗龞龡 丂丂丂龔龖龗龞龡 +丂丂丂龔龖龗龞龡丂丂丂 丂丂丂龔龖龗龞龡 +丂丂龔龖龗龞龡 丂丂龔龖龗龞龡 +丂龔龖龗龞龡 丂龔龖龗龞龡 +龔龖龗龞龡 龔龖龗龞龡 +龔龖龗龞龡丂 龔龖龗龞龡 +龔龖龗龞龡丂丂 龔龖龗龞龡 +龔龖龗龞龡丂丂丂 龔龖龗龞龡 +SELECT `C1`,TRIM(LEADING '丂' FROM `C1`) FROM `T6`; +C1 TRIM(LEADING '丂' FROM `C1`) + 龔龖龗龞龡 龔龖龗龞龡 +丂丂丂龔龖龗龞龡 龔龖龗龞龡 +丂丂丂龔龖龗龞龡丂丂丂 龔龖龗龞龡丂丂丂 +丂丂龔龖龗龞龡 龔龖龗龞龡 +丂龔龖龗龞龡 龔龖龗龞龡 +龔龖龗龞龡 龔龖龗龞龡 +龔龖龗龞龡丂 龔龖龗龞龡丂 +龔龖龗龞龡丂丂 龔龖龗龞龡丂丂 +龔龖龗龞龡丂丂丂 龔龖龗龞龡丂丂丂 +SELECT `C1`,TRIM(BOTH '丂' FROM `C1`) FROM `T6`; +C1 TRIM(BOTH '丂' FROM `C1`) + 龔龖龗龞龡 龔龖龗龞龡 +丂丂丂龔龖龗龞龡 龔龖龗龞龡 +丂丂丂龔龖龗龞龡丂丂丂 龔龖龗龞龡 +丂丂龔龖龗龞龡 龔龖龗龞龡 +丂龔龖龗龞龡 龔龖龗龞龡 +龔龖龗龞龡 龔龖龗龞龡 +龔龖龗龞龡丂 龔龖龗龞龡 +龔龖龗龞龡丂丂 龔龖龗龞龡 +龔龖龗龞龡丂丂丂 龔龖龗龞龡 +SELECT `C1`,TRIM(`C1`) FROM `T6`; +C1 TRIM(`C1`) + 龔龖龗龞龡 龔龖龗龞龡 +丂丂丂龔龖龗龞龡 丂丂丂龔龖龗龞龡 +丂丂丂龔龖龗龞龡丂丂丂 丂丂丂龔龖龗龞龡丂丂丂 +丂丂龔龖龗龞龡 丂丂龔龖龗龞龡 +丂龔龖龗龞龡 丂龔龖龗龞龡 +龔龖龗龞龡 龔龖龗龞龡 +龔龖龗龞龡丂 龔龖龗龞龡丂 +龔龖龗龞龡丂丂 龔龖龗龞龡丂丂 +龔龖龗龞龡丂丂丂 龔龖龗龞龡丂丂丂 +SELECT `C1`,TRIM(TRAILING 'カ' FROM `C1`) FROM `T7`; +C1 TRIM(TRAILING 'カ' FROM `C1`) +アイウエオ アイウエオ +アイウエオカ アイウエオ +アイウエオカカ アイウエオ +アイウエオカカカ アイウエオ +カアイウエオ カアイウエオ +カカアイウエオ カカアイウエオ +カカカアイウエオ カカカアイウエオ +カカカアイウエオカカカ カカカアイウエオ + アイウエオ アイウエオ +SELECT `C1`,TRIM(LEADING 'カ' FROM `C1`) FROM `T7`; +C1 TRIM(LEADING 'カ' FROM `C1`) +アイウエオ アイウエオ +アイウエオカ アイウエオカ +アイウエオカカ アイウエオカカ +アイウエオカカカ アイウエオカカカ +カアイウエオ アイウエオ +カカアイウエオ アイウエオ +カカカアイウエオ アイウエオ +カカカアイウエオカカカ アイウエオカカカ + アイウエオ アイウエオ +SELECT `C1`,TRIM(BOTH 'カ' FROM `C1`) FROM `T7`; +C1 TRIM(BOTH 'カ' FROM `C1`) +アイウエオ アイウエオ +アイウエオカ アイウエオ +アイウエオカカ アイウエオ +アイウエオカカカ アイウエオ +カアイウエオ アイウエオ +カカアイウエオ アイウエオ +カカカアイウエオ アイウエオ +カカカアイウエオカカカ アイウエオ + アイウエオ アイウエオ +SELECT `C1`,TRIM(`C1`) FROM `T7`; +C1 TRIM(`C1`) +アイウエオ アイウエオ +アイウエオカ アイウエオカ +アイウエオカカ アイウエオカカ +アイウエオカカカ アイウエオカカカ +カアイウエオ カアイウエオ +カカアイウエオ カカアイウエオ +カカカアイウエオ カカカアイウエオ +カカカアイウエオカカカ カカカアイウエオカカカ + アイウエオ アイウエオ +SELECT `C1`,TRIM(TRAILING 'か' FROM `C1`) FROM `T8`; +C1 TRIM(TRAILING 'か' FROM `C1`) +あいうえお あいうえお +あいうえおか あいうえお +あいうえおかか あいうえお +あいうえおかかか あいうえお +かあいうえお かあいうえお +かかあいうえお かかあいうえお +かかかあいうえお かかかあいうえお +かかかあいうえおかかか かかかあいうえお + あいうえお あいうえお +SELECT `C1`,TRIM(LEADING 'か' FROM `C1`) FROM `T8`; +C1 TRIM(LEADING 'か' FROM `C1`) +あいうえお あいうえお +あいうえおか あいうえおか +あいうえおかか あいうえおかか +あいうえおかかか あいうえおかかか +かあいうえお あいうえお +かかあいうえお あいうえお +かかかあいうえお あいうえお +かかかあいうえおかかか あいうえおかかか + あいうえお あいうえお +SELECT `C1`,TRIM(BOTH 'か' FROM `C1`) FROM `T8`; +C1 TRIM(BOTH 'か' FROM `C1`) +あいうえお あいうえお +あいうえおか あいうえお +あいうえおかか あいうえお +あいうえおかかか あいうえお +かあいうえお あいうえお +かかあいうえお あいうえお +かかかあいうえお あいうえお +かかかあいうえおかかか あいうえお + あいうえお あいうえお +SELECT `C1`,TRIM(`C1`) FROM `T8`; +C1 TRIM(`C1`) +あいうえお あいうえお +あいうえおか あいうえおか +あいうえおかか あいうえおかか +あいうえおかかか あいうえおかかか +かあいうえお かあいうえお +かかあいうえお かかあいうえお +かかかあいうえお かかかあいうえお +かかかあいうえおかかか かかかあいうえおかかか + あいうえお あいうえお +SELECT `C1`,TRIM(TRAILING '丂' FROM `C1`) FROM `T9`; +C1 TRIM(TRAILING '丂' FROM `C1`) +龔龖龗龞龡 龔龖龗龞龡 +龔龖龗龞龡丂 龔龖龗龞龡 +龔龖龗龞龡丂丂 龔龖龗龞龡 +龔龖龗龞龡丂丂丂 龔龖龗龞龡 +丂龔龖龗龞龡 丂龔龖龗龞龡 +丂丂龔龖龗龞龡 丂丂龔龖龗龞龡 +丂丂丂龔龖龗龞龡 丂丂丂龔龖龗龞龡 +丂丂丂龔龖龗龞龡丂丂丂 丂丂丂龔龖龗龞龡 + 龔龖龗龞龡 龔龖龗龞龡 +SELECT `C1`,TRIM(LEADING '丂' FROM `C1`) FROM `T9`; +C1 TRIM(LEADING '丂' FROM `C1`) +龔龖龗龞龡 龔龖龗龞龡 +龔龖龗龞龡丂 龔龖龗龞龡丂 +龔龖龗龞龡丂丂 龔龖龗龞龡丂丂 +龔龖龗龞龡丂丂丂 龔龖龗龞龡丂丂丂 +丂龔龖龗龞龡 龔龖龗龞龡 +丂丂龔龖龗龞龡 龔龖龗龞龡 +丂丂丂龔龖龗龞龡 龔龖龗龞龡 +丂丂丂龔龖龗龞龡丂丂丂 龔龖龗龞龡丂丂丂 + 龔龖龗龞龡 龔龖龗龞龡 +SELECT `C1`,TRIM(BOTH '丂' FROM `C1`) FROM `T9`; +C1 TRIM(BOTH '丂' FROM `C1`) +龔龖龗龞龡 龔龖龗龞龡 +龔龖龗龞龡丂 龔龖龗龞龡 +龔龖龗龞龡丂丂 龔龖龗龞龡 +龔龖龗龞龡丂丂丂 龔龖龗龞龡 +丂龔龖龗龞龡 龔龖龗龞龡 +丂丂龔龖龗龞龡 龔龖龗龞龡 +丂丂丂龔龖龗龞龡 龔龖龗龞龡 +丂丂丂龔龖龗龞龡丂丂丂 龔龖龗龞龡 + 龔龖龗龞龡 龔龖龗龞龡 +SELECT `C1`,TRIM(`C1`) FROM `T9`; +C1 TRIM(`C1`) +龔龖龗龞龡 龔龖龗龞龡 +龔龖龗龞龡丂 龔龖龗龞龡丂 +龔龖龗龞龡丂丂 龔龖龗龞龡丂丂 +龔龖龗龞龡丂丂丂 龔龖龗龞龡丂丂丂 +丂龔龖龗龞龡 丂龔龖龗龞龡 +丂丂龔龖龗龞龡 丂丂龔龖龗龞龡 +丂丂丂龔龖龗龞龡 丂丂丂龔龖龗龞龡 +丂丂丂龔龖龗龞龡丂丂丂 丂丂丂龔龖龗龞龡丂丂丂 + 龔龖龗龞龡 龔龖龗龞龡 +SELECT `C1`,TRIM(TRAILING 'カ' FROM `C1`) FROM `T10`; +C1 TRIM(TRAILING 'カ' FROM `C1`) +アイウエオ アイウエオ +アイウエオカ アイウエオ +アイウエオカカ アイウエオ +アイウエオカカカ アイウエオ +カアイウエオ カアイウエオ +カカアイウエオ カカアイウエオ +カカカアイウエオ カカカアイウエオ +カカカアイウエオカカカ カカカアイウエオ + アイウエオ アイウエオ +SELECT `C1`,TRIM(LEADING 'カ' FROM `C1`) FROM `T10`; +C1 TRIM(LEADING 'カ' FROM `C1`) +アイウエオ アイウエオ +アイウエオカ アイウエオカ +アイウエオカカ アイウエオカカ +アイウエオカカカ アイウエオカカカ +カアイウエオ アイウエオ +カカアイウエオ アイウエオ +カカカアイウエオ アイウエオ +カカカアイウエオカカカ アイウエオカカカ + アイウエオ アイウエオ +SELECT `C1`,TRIM(BOTH 'カ' FROM `C1`) FROM `T10`; +C1 TRIM(BOTH 'カ' FROM `C1`) +アイウエオ アイウエオ +アイウエオカ アイウエオ +アイウエオカカ アイウエオ +アイウエオカカカ アイウエオ +カアイウエオ アイウエオ +カカアイウエオ アイウエオ +カカカアイウエオ アイウエオ +カカカアイウエオカカカ アイウエオ + アイウエオ アイウエオ +SELECT `C1`,TRIM(`C1`) FROM `T10`; +C1 TRIM(`C1`) +アイウエオ アイウエオ +アイウエオカ アイウエオカ +アイウエオカカ アイウエオカカ +アイウエオカカカ アイウエオカカカ +カアイウエオ カアイウエオ +カカアイウエオ カカアイウエオ +カカカアイウエオ カカカアイウエオ +カカカアイウエオカカカ カカカアイウエオカカカ + アイウエオ アイウエオ +SELECT `C1`,TRIM(TRAILING 'か' FROM `C1`) FROM `T11`; +C1 TRIM(TRAILING 'か' FROM `C1`) +あいうえお あいうえお +あいうえおか あいうえお +あいうえおかか あいうえお +あいうえおかかか あいうえお +かあいうえお かあいうえお +かかあいうえお かかあいうえお +かかかあいうえお かかかあいうえお +かかかあいうえおかかか かかかあいうえお + あいうえお あいうえお +SELECT `C1`,TRIM(LEADING 'か' FROM `C1`) FROM `T11`; +C1 TRIM(LEADING 'か' FROM `C1`) +あいうえお あいうえお +あいうえおか あいうえおか +あいうえおかか あいうえおかか +あいうえおかかか あいうえおかかか +かあいうえお あいうえお +かかあいうえお あいうえお +かかかあいうえお あいうえお +かかかあいうえおかかか あいうえおかかか + あいうえお あいうえお +SELECT `C1`,TRIM(BOTH 'か' FROM `C1`) FROM `T11`; +C1 TRIM(BOTH 'か' FROM `C1`) +あいうえお あいうえお +あいうえおか あいうえお +あいうえおかか あいうえお +あいうえおかかか あいうえお +かあいうえお あいうえお +かかあいうえお あいうえお +かかかあいうえお あいうえお +かかかあいうえおかかか あいうえお + あいうえお あいうえお +SELECT `C1`,TRIM(`C1`) FROM `T11`; +C1 TRIM(`C1`) +あいうえお あいうえお +あいうえおか あいうえおか +あいうえおかか あいうえおかか +あいうえおかかか あいうえおかかか +かあいうえお かあいうえお +かかあいうえお かかあいうえお +かかかあいうえお かかかあいうえお +かかかあいうえおかかか かかかあいうえおかかか + あいうえお あいうえお +SELECT `C1`,TRIM(TRAILING '丂' FROM `C1`) FROM `T12`; +C1 TRIM(TRAILING '丂' FROM `C1`) +龔龖龗龞龡 龔龖龗龞龡 +龔龖龗龞龡丂 龔龖龗龞龡 +龔龖龗龞龡丂丂 龔龖龗龞龡 +龔龖龗龞龡丂丂丂 龔龖龗龞龡 +丂龔龖龗龞龡 丂龔龖龗龞龡 +丂丂龔龖龗龞龡 丂丂龔龖龗龞龡 +丂丂丂龔龖龗龞龡 丂丂丂龔龖龗龞龡 +丂丂丂龔龖龗龞龡丂丂丂 丂丂丂龔龖龗龞龡 + 龔龖龗龞龡 龔龖龗龞龡 +SELECT `C1`,TRIM(LEADING '丂' FROM `C1`) FROM `T12`; +C1 TRIM(LEADING '丂' FROM `C1`) +龔龖龗龞龡 龔龖龗龞龡 +龔龖龗龞龡丂 龔龖龗龞龡丂 +龔龖龗龞龡丂丂 龔龖龗龞龡丂丂 +龔龖龗龞龡丂丂丂 龔龖龗龞龡丂丂丂 +丂龔龖龗龞龡 龔龖龗龞龡 +丂丂龔龖龗龞龡 龔龖龗龞龡 +丂丂丂龔龖龗龞龡 龔龖龗龞龡 +丂丂丂龔龖龗龞龡丂丂丂 龔龖龗龞龡丂丂丂 + 龔龖龗龞龡 龔龖龗龞龡 +SELECT `C1`,TRIM(BOTH '丂' FROM `C1`) FROM `T12`; +C1 TRIM(BOTH '丂' FROM `C1`) +龔龖龗龞龡 龔龖龗龞龡 +龔龖龗龞龡丂 龔龖龗龞龡 +龔龖龗龞龡丂丂 龔龖龗龞龡 +龔龖龗龞龡丂丂丂 龔龖龗龞龡 +丂龔龖龗龞龡 龔龖龗龞龡 +丂丂龔龖龗龞龡 龔龖龗龞龡 +丂丂丂龔龖龗龞龡 龔龖龗龞龡 +丂丂丂龔龖龗龞龡丂丂丂 龔龖龗龞龡 + 龔龖龗龞龡 龔龖龗龞龡 +SELECT `C1`,TRIM(`C1`) FROM `T12`; +C1 TRIM(`C1`) +龔龖龗龞龡 龔龖龗龞龡 +龔龖龗龞龡丂 龔龖龗龞龡丂 +龔龖龗龞龡丂丂 龔龖龗龞龡丂丂 +龔龖龗龞龡丂丂丂 龔龖龗龞龡丂丂丂 +丂龔龖龗龞龡 丂龔龖龗龞龡 +丂丂龔龖龗龞龡 丂丂龔龖龗龞龡 +丂丂丂龔龖龗龞龡 丂丂丂龔龖龗龞龡 +丂丂丂龔龖龗龞龡丂丂丂 丂丂丂龔龖龗龞龡丂丂丂 + 龔龖龗龞龡 龔龖龗龞龡 +DROP TABLE `T1`; +DROP TABLE `T2`; +DROP TABLE `T3`; +DROP TABLE `T4`; +DROP TABLE `T5`; +DROP TABLE `T6`; +DROP TABLE `T7`; +DROP TABLE `T8`; +DROP TABLE `T9`; +DROP TABLE `T10`; +DROP TABLE `T11`; +DROP TABLE `T12`; diff --git a/mysql-test/suite/jp/r/jp_union_ujis.result b/mysql-test/suite/jp/r/jp_union_ujis.result new file mode 100755 index 00000000000..4b74c570ffe --- /dev/null +++ b/mysql-test/suite/jp/r/jp_union_ujis.result @@ -0,0 +1,422 @@ +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +SET NAMES ujis; +SET character_set_database = ujis; +CREATE TABLE `ԣ` (`ã` char(1), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(1), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(1), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +INSERT INTO `ԣ` VALUES(''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES(''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES(''),(''),(''),(''),(''),(''); +SELECT * FROM `ԣ` UNION DISTINCT SELECT * FROM `ԣ` ORDER BY `ã`; +ã + + + + + + +SELECT * FROM `ԣ` UNION ALL SELECT * FROM `ԣ` ORDER BY `ã`; +ã + + + + + + + + + + + + +(SELECT * FROM `ԣ`) UNION (SELECT * FROM `ԣ`) UNION (SELECT '') ORDER BY `ã`; +ã + + + + + + + +(SELECT '' AS `ã`) UNION (SELECT * FROM `ԣ`) UNION (SELECT * FROM `ԣ`) ORDER BY `ã`; +ã + + + + + + + +SELECT `ã`, COUNT(*) FROM `ԣ` GROUP BY `ã` UNION +SELECT `ã`, COUNT(*) FROM `ԣ` GROUP BY `ã` ORDER BY `ã`; +ã COUNT(*) + 2 + 2 + 2 + 2 + 2 + 2 +SELECT * FROM `ԣ` UNION DISTINCT +SELECT * FROM `ԣ` UNION ALL +SELECT * FROM `ԣ` ORDER BY `ã`; +ã + + + + + + + + + + + + +SELECT * FROM `ԣ` UNION ALL +SELECT * FROM `ԣ` UNION DISTINCT +SELECT * FROM `ԣ` ORDER BY `ã`; +ã + + + + + + + + + +SELECT * FROM `ԣ` UNION SELECT REPEAT(`ã`,5) FROM `ԣ` ORDER BY `ã`; +ã + + + +ݏݏݏݏ + + +DROP TABLE `ԣ` ; +DROP TABLE `ԣ` ; +DROP TABLE `ԣ` ; +CREATE TABLE `ԣ` (`ã` char(1), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = MYISAM; +CREATE TABLE `ԣ` (`ã` char(1), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = MYISAM; +CREATE TABLE `ԣ` (`ã` char(1), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = MYISAM; +INSERT INTO `ԣ` VALUES(''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES(''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES(''),(''),(''),(''),(''),(''); +SELECT * FROM `ԣ` UNION DISTINCT SELECT * FROM `ԣ` ORDER BY `ã`; +ã + + + + + + +SELECT * FROM `ԣ` UNION ALL SELECT * FROM `ԣ` ORDER BY `ã`; +ã + + + + + + + + + + + + +(SELECT * FROM `ԣ`) UNION (SELECT * FROM `ԣ`) UNION (SELECT '') ORDER BY `ã`; +ã + + + + + + + +(SELECT '' AS `ã`) UNION (SELECT * FROM `ԣ`) UNION (SELECT * FROM `ԣ`) ORDER BY `ã`; +ã + + + + + + + +SELECT `ã`, COUNT(*) FROM `ԣ` GROUP BY `ã` UNION +SELECT `ã`, COUNT(*) FROM `ԣ` GROUP BY `ã` ORDER BY `ã`; +ã COUNT(*) + 2 + 2 + 2 + 2 + 2 + 2 +SELECT * FROM `ԣ` UNION DISTINCT +SELECT * FROM `ԣ` UNION ALL +SELECT * FROM `ԣ` ORDER BY `ã`; +ã + + + + + + + + + + + + +SELECT * FROM `ԣ` UNION ALL +SELECT * FROM `ԣ` UNION DISTINCT +SELECT * FROM `ԣ` ORDER BY `ã`; +ã + + + + + + + + + +SELECT * FROM `ԣ` UNION SELECT REPEAT(`ã`,5) FROM `ԣ` ORDER BY `ã`; +ã + + + +ݏݏݏݏ + + +DROP TABLE `ԣ` ; +DROP TABLE `ԣ` ; +DROP TABLE `ԣ` ; +CREATE TABLE `ԣ` (`ã` char(1), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = HEAP; +CREATE TABLE `ԣ` (`ã` char(1), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = HEAP; +CREATE TABLE `ԣ` (`ã` char(1), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = HEAP; +INSERT INTO `ԣ` VALUES(''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES(''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES(''),(''),(''),(''),(''),(''); +SELECT * FROM `ԣ` UNION DISTINCT SELECT * FROM `ԣ` ORDER BY `ã`; +ã + + + + + + +SELECT * FROM `ԣ` UNION ALL SELECT * FROM `ԣ` ORDER BY `ã`; +ã + + + + + + + + + + + + +(SELECT * FROM `ԣ`) UNION (SELECT * FROM `ԣ`) UNION (SELECT '') ORDER BY `ã`; +ã + + + + + + + +(SELECT '' AS `ã`) UNION (SELECT * FROM `ԣ`) UNION (SELECT * FROM `ԣ`) ORDER BY `ã`; +ã + + + + + + + +SELECT `ã`, COUNT(*) FROM `ԣ` GROUP BY `ã` UNION +SELECT `ã`, COUNT(*) FROM `ԣ` GROUP BY `ã` ORDER BY `ã`; +ã COUNT(*) + 2 + 2 + 2 + 2 + 2 + 2 +SELECT * FROM `ԣ` UNION DISTINCT +SELECT * FROM `ԣ` UNION ALL +SELECT * FROM `ԣ` ORDER BY `ã`; +ã + + + + + + + + + + + + +SELECT * FROM `ԣ` UNION ALL +SELECT * FROM `ԣ` UNION DISTINCT +SELECT * FROM `ԣ` ORDER BY `ã`; +ã + + + + + + + + + +SELECT * FROM `ԣ` UNION SELECT REPEAT(`ã`,5) FROM `ԣ` ORDER BY `ã`; +ã + + + +ݏݏݏݏ + + +DROP TABLE `ԣ` ; +DROP TABLE `ԣ` ; +DROP TABLE `ԣ` ; +CREATE TABLE `ԣ` (`ã` char(1), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = BDB; +CREATE TABLE `ԣ` (`ã` char(1), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = BDB; +CREATE TABLE `ԣ` (`ã` char(1), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = BDB; +INSERT INTO `ԣ` VALUES(''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES(''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES(''),(''),(''),(''),(''),(''); +SELECT * FROM `ԣ` UNION DISTINCT SELECT * FROM `ԣ` ORDER BY `ã`; +ã + + + + + + +SELECT * FROM `ԣ` UNION ALL SELECT * FROM `ԣ` ORDER BY `ã`; +ã + + + + + + + + + + + + +(SELECT * FROM `ԣ`) UNION (SELECT * FROM `ԣ`) UNION (SELECT '') ORDER BY `ã`; +ã + + + + + + + +(SELECT '' AS `ã`) UNION (SELECT * FROM `ԣ`) UNION (SELECT * FROM `ԣ`) ORDER BY `ã`; +ã + + + + + + + +SELECT `ã`, COUNT(*) FROM `ԣ` GROUP BY `ã` UNION +SELECT `ã`, COUNT(*) FROM `ԣ` GROUP BY `ã` ORDER BY `ã`; +ã COUNT(*) + 2 + 2 + 2 + 2 + 2 + 2 +SELECT * FROM `ԣ` UNION DISTINCT +SELECT * FROM `ԣ` UNION ALL +SELECT * FROM `ԣ` ORDER BY `ã`; +ã + + + + + + + + + + + + +SELECT * FROM `ԣ` UNION ALL +SELECT * FROM `ԣ` UNION DISTINCT +SELECT * FROM `ԣ` ORDER BY `ã`; +ã + + + + + + + + + +SELECT * FROM `ԣ` UNION SELECT REPEAT(`ã`,5) FROM `ԣ` ORDER BY `ã`; +ã + + + +ݏݏݏݏ + + +DROP TABLE `ԣ` ; +DROP TABLE `ԣ` ; +DROP TABLE `ԣ` ; +CREATE TABLE `ԣ` (`ã` char(1), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = InnoDB; +CREATE TABLE `ԣ` (`ã` char(1), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = MyISAM; +INSERT INTO `ԣ` VALUES(''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES(''),(''),(''),(''),(''),(''); +SELECT * FROM `ԣ` UNION DISTINCT SELECT * FROM `ԣ` ORDER BY `ã`; +ã + + + + + + +SELECT * FROM `ԣ` UNION ALL SELECT * FROM `ԣ` ORDER BY `ã`; +ã + + + + + + + + + + + + +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; diff --git a/mysql-test/suite/jp/r/jp_update_sjis.result b/mysql-test/suite/jp/r/jp_update_sjis.result new file mode 100755 index 00000000000..65151cc7021 --- /dev/null +++ b/mysql-test/suite/jp/r/jp_update_sjis.result @@ -0,0 +1,98 @@ +drop table if exists `sP`; +drop table if exists `sQ`; +drop table if exists `sR`; +drop table if exists `sS`; +drop table if exists `sT`; +drop table if exists `sU`; +drop table if exists `sV`; +drop table if exists `sW`; +drop table if exists `sX`; +drop table if exists `sPO`; +drop table if exists `sPP`; +drop table if exists `sPQ`; +SET NAMES sjis; +SET character_set_database = sjis; +CREATE TABLE `sP` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sQ` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sR` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sS` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sT` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sU` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sV` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sW` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sX` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sPO` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +CREATE TABLE `sPP` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +CREATE TABLE `sPQ` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +INSERT INTO `sP` VALUES (''); +INSERT INTO `sQ` VALUES (''); +INSERT INTO `sR` VALUES ('\\\\\'); +INSERT INTO `sS` VALUES (''); +INSERT INTO `sT` VALUES (''); +INSERT INTO `sU` VALUES ('\\\\\'); +INSERT INTO `sV` VALUES (''); +INSERT INTO `sW` VALUES (''); +INSERT INTO `sX` VALUES ('\\\\\'); +INSERT INTO `sPO` VALUES (''); +INSERT INTO `sPP` VALUES (''); +INSERT INTO `sPQ` VALUES ('\\\\\'); +UPDATE `sP` SET `bP` = (''); +UPDATE `sQ` SET `bP` = (''); +UPDATE `sR` SET `bP` = ('\\\\\'); +UPDATE `sS` SET `bP` = (''); +UPDATE `sT` SET `bP` = (''); +UPDATE `sU` SET `bP` = ('\\\\\'); +UPDATE `sV` SET `bP` = (''); +UPDATE `sW` SET `bP` = (''); +UPDATE `sX` SET `bP` = ('\\\\\'); +UPDATE `sPO` SET `bP` = (''); +UPDATE `sPP` SET `bP` = (''); +UPDATE `sPQ` SET `bP` = ('\\\\\'); +SELECT * FROM `sP`; +bP + +SELECT * FROM `sQ`; +bP + +SELECT * FROM `sR`; +bP +\\\\\ +SELECT * FROM `sS`; +bP + +SELECT * FROM `sT`; +bP + +SELECT * FROM `sU`; +bP +\\\\\ +SELECT * FROM `sV`; +bP + +SELECT * FROM `sW`; +bP + +SELECT * FROM `sX`; +bP +\\\\\ +SELECT * FROM `sPO`; +bP + +SELECT * FROM `sPP`; +bP + +SELECT * FROM `sPQ`; +bP +\\\\\ +DROP TABLE `sP`; +DROP TABLE `sQ`; +DROP TABLE `sR`; +DROP TABLE `sS`; +DROP TABLE `sT`; +DROP TABLE `sU`; +DROP TABLE `sV`; +DROP TABLE `sW`; +DROP TABLE `sX`; +DROP TABLE `sPO`; +DROP TABLE `sPP`; +DROP TABLE `sPQ`; diff --git a/mysql-test/suite/jp/r/jp_update_ucs2.result b/mysql-test/suite/jp/r/jp_update_ucs2.result new file mode 100755 index 00000000000..2796958ac3e --- /dev/null +++ b/mysql-test/suite/jp/r/jp_update_ucs2.result @@ -0,0 +1,99 @@ +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +SET NAMES ujis; +SET character_set_database = ucs2; +SET collation_connection = ucs2_general_ci; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +UPDATE `ԣ` SET `ã` = (''); +UPDATE `ԣ` SET `ã` = (''); +UPDATE `ԣ` SET `ã` = ('ȏɏʏˏ'); +UPDATE `ԣ` SET `ã` = (''); +UPDATE `ԣ` SET `ã` = (''); +UPDATE `ԣ` SET `ã` = ('ȏɏʏˏ'); +UPDATE `ԣ` SET `ã` = (''); +UPDATE `ԣ` SET `ã` = (''); +UPDATE `ԣ` SET `ã` = ('ȏɏʏˏ'); +UPDATE `ԣ` SET `ã` = (''); +UPDATE `ԣ` SET `ã` = (''); +UPDATE `ԣ` SET `ã` = ('ȏɏʏˏ'); +SELECT * FROM `ԣ`; +ã + +SELECT * FROM `ԣ`; +ã + +SELECT * FROM `ԣ`; +ã +ȏɏʏˏ +SELECT * FROM `ԣ`; +ã + +SELECT * FROM `ԣ`; +ã + +SELECT * FROM `ԣ`; +ã +ȏɏʏˏ +SELECT * FROM `ԣ`; +ã + +SELECT * FROM `ԣ`; +ã + +SELECT * FROM `ԣ`; +ã +ȏɏʏˏ +SELECT * FROM `ԣ`; +ã + +SELECT * FROM `ԣ`; +ã + +SELECT * FROM `ԣ`; +ã +ȏɏʏˏ +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; diff --git a/mysql-test/suite/jp/r/jp_update_ujis.result b/mysql-test/suite/jp/r/jp_update_ujis.result new file mode 100755 index 00000000000..e9633d14f0c --- /dev/null +++ b/mysql-test/suite/jp/r/jp_update_ujis.result @@ -0,0 +1,98 @@ +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +SET NAMES ujis; +SET character_set_database = ujis; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +UPDATE `ԣ` SET `ã` = (''); +UPDATE `ԣ` SET `ã` = (''); +UPDATE `ԣ` SET `ã` = ('ȏɏʏˏ'); +UPDATE `ԣ` SET `ã` = (''); +UPDATE `ԣ` SET `ã` = (''); +UPDATE `ԣ` SET `ã` = ('ȏɏʏˏ'); +UPDATE `ԣ` SET `ã` = (''); +UPDATE `ԣ` SET `ã` = (''); +UPDATE `ԣ` SET `ã` = ('ȏɏʏˏ'); +UPDATE `ԣ` SET `ã` = (''); +UPDATE `ԣ` SET `ã` = (''); +UPDATE `ԣ` SET `ã` = ('ȏɏʏˏ'); +SELECT * FROM `ԣ`; +ã + +SELECT * FROM `ԣ`; +ã + +SELECT * FROM `ԣ`; +ã +ȏɏʏˏ +SELECT * FROM `ԣ`; +ã + +SELECT * FROM `ԣ`; +ã + +SELECT * FROM `ԣ`; +ã +ȏɏʏˏ +SELECT * FROM `ԣ`; +ã + +SELECT * FROM `ԣ`; +ã + +SELECT * FROM `ԣ`; +ã +ȏɏʏˏ +SELECT * FROM `ԣ`; +ã + +SELECT * FROM `ԣ`; +ã + +SELECT * FROM `ԣ`; +ã +ȏɏʏˏ +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; diff --git a/mysql-test/suite/jp/r/jp_update_utf8.result b/mysql-test/suite/jp/r/jp_update_utf8.result new file mode 100755 index 00000000000..f690d2f0247 --- /dev/null +++ b/mysql-test/suite/jp/r/jp_update_utf8.result @@ -0,0 +1,98 @@ +drop table if exists `T1`; +drop table if exists `T2`; +drop table if exists `T3`; +drop table if exists `T4`; +drop table if exists `T5`; +drop table if exists `T6`; +drop table if exists `T7`; +drop table if exists `T8`; +drop table if exists `T9`; +drop table if exists `T10`; +drop table if exists `T11`; +drop table if exists `T12`; +SET NAMES utf8; +SET character_set_database = utf8; +CREATE TABLE `T1` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T2` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T3` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T4` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T5` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T6` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T7` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T8` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T9` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T10` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +CREATE TABLE `T11` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +CREATE TABLE `T12` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +INSERT INTO `T1` VALUES ('アイウエオ'); +INSERT INTO `T2` VALUES ('あいうえお'); +INSERT INTO `T3` VALUES ('龔龖龗龞龡'); +INSERT INTO `T4` VALUES ('アイウエオ'); +INSERT INTO `T5` VALUES ('あいうえお'); +INSERT INTO `T6` VALUES ('龔龖龗龞龡'); +INSERT INTO `T7` VALUES ('アイウエオ'); +INSERT INTO `T8` VALUES ('あいうえお'); +INSERT INTO `T9` VALUES ('龔龖龗龞龡'); +INSERT INTO `T10` VALUES ('アイウエオ'); +INSERT INTO `T11` VALUES ('あいうえお'); +INSERT INTO `T12` VALUES ('龔龖龗龞龡'); +UPDATE `T1` SET `C1` = ('カキクケコ'); +UPDATE `T2` SET `C1` = ('かきくけこ'); +UPDATE `T3` SET `C1` = ('齗齘齚齝齞'); +UPDATE `T4` SET `C1` = ('カキクケコ'); +UPDATE `T5` SET `C1` = ('かきくけこ'); +UPDATE `T6` SET `C1` = ('齗齘齚齝齞'); +UPDATE `T7` SET `C1` = ('カキクケコ'); +UPDATE `T8` SET `C1` = ('かきくけこ'); +UPDATE `T9` SET `C1` = ('齗齘齚齝齞'); +UPDATE `T10` SET `C1` = ('カキクケコ'); +UPDATE `T11` SET `C1` = ('かきくけこ'); +UPDATE `T12` SET `C1` = ('齗齘齚齝齞'); +SELECT * FROM `T1`; +C1 +カキクケコ +SELECT * FROM `T2`; +C1 +かきくけこ +SELECT * FROM `T3`; +C1 +齗齘齚齝齞 +SELECT * FROM `T4`; +C1 +カキクケコ +SELECT * FROM `T5`; +C1 +かきくけこ +SELECT * FROM `T6`; +C1 +齗齘齚齝齞 +SELECT * FROM `T7`; +C1 +カキクケコ +SELECT * FROM `T8`; +C1 +かきくけこ +SELECT * FROM `T9`; +C1 +齗齘齚齝齞 +SELECT * FROM `T10`; +C1 +カキクケコ +SELECT * FROM `T11`; +C1 +かきくけこ +SELECT * FROM `T12`; +C1 +齗齘齚齝齞 +DROP TABLE `T1`; +DROP TABLE `T2`; +DROP TABLE `T3`; +DROP TABLE `T4`; +DROP TABLE `T5`; +DROP TABLE `T6`; +DROP TABLE `T7`; +DROP TABLE `T8`; +DROP TABLE `T9`; +DROP TABLE `T10`; +DROP TABLE `T11`; +DROP TABLE `T12`; diff --git a/mysql-test/suite/jp/r/jp_where_sjis.result b/mysql-test/suite/jp/r/jp_where_sjis.result new file mode 100755 index 00000000000..a3cbc24c113 --- /dev/null +++ b/mysql-test/suite/jp/r/jp_where_sjis.result @@ -0,0 +1,118 @@ +drop table if exists `sP`; +drop table if exists `sQ`; +drop table if exists `sR`; +drop table if exists `sS`; +drop table if exists `sT`; +drop table if exists `sU`; +drop table if exists `sV`; +drop table if exists `sW`; +drop table if exists `sX`; +drop table if exists `sPO`; +drop table if exists `sPP`; +drop table if exists `sPQ`; +SET NAMES sjis; +SET character_set_database = sjis; +CREATE TABLE `sP` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sQ` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sR` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sS` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sT` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sU` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sV` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sW` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sX` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sPO` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +CREATE TABLE `sPP` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +CREATE TABLE `sPQ` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_sjis.dat' INTO TABLE `sP`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_sjis.dat' INTO TABLE `sQ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_sjis2.dat' INTO TABLE `sR`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_sjis.dat' INTO TABLE `sS`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_sjis.dat' INTO TABLE `sT`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_sjis2.dat' INTO TABLE `sU`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_sjis.dat' INTO TABLE `sV`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_sjis.dat' INTO TABLE `sW`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_sjis2.dat' INTO TABLE `sX`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_sjis.dat' INTO TABLE `sPO`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_sjis.dat' INTO TABLE `sPP`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_sjis2.dat' INTO TABLE `sPQ`; +SELECT * FROM `sP` WHERE `bP` = ''; +bP + +SELECT * FROM `sQ` WHERE `bP` = 'E'; +bP +E +SELECT * FROM `sR` WHERE `bP` = '\\\\\\\\\\\\\\\\\\\\'; +bP +\\\\\\\\\\\\\\\\\\\\ +SELECT * FROM `sS` WHERE `bP` = ''; +bP + +SELECT * FROM `sT` WHERE `bP` = 'E'; +bP +E +SELECT * FROM `sU` WHERE `bP` = '\\\\\\\\\\\\\\\\\\\\'; +bP +\\\\\\\\\\\\\\\\\\\\ +SELECT * FROM `sV` WHERE `bP` = ''; +bP + +SELECT * FROM `sW` WHERE `bP` = 'E'; +bP +E +SELECT * FROM `sX` WHERE `bP` = '\\\\\\\\\\\\\\\\\\\\'; +bP +\\\\\\\\\\\\\\\\\\\\ +SELECT * FROM `sPO` WHERE `bP` = ''; +bP + +SELECT * FROM `sPP` WHERE `bP` = 'E'; +bP +E +SELECT * FROM `sPQ` WHERE `bP` = '\\\\\\\\\\\\\\\\\\\\'; +bP +\\\\\\\\\\\\\\\\\\\\ +CREATE TABLE t1(c1 char(1)) default charset = sjis engine=innodb; +CREATE TABLE t2(c1 char(1)) default charset = sjis engine=myisam; +CREATE TABLE t3(c1 char(1)) default charset = sjis engine=heap; +CREATE TABLE t4(c1 char(1)) default charset = sjis engine=bdb; +INSERT INTO t1 VALUES('S'),('s'); +INSERT INTO t2 VALUES('S'),('s'); +INSERT INTO t3 VALUES('S'),('s'); +INSERT INTO t4 VALUES('S'),('s'); +SELECT * FROM t1 WHERE c1 = 'S'; +c1 +S +SELECT * FROM t2 WHERE c1 = 'S'; +c1 +S +SELECT * FROM t3 WHERE c1 = 'S'; +c1 +S +SELECT * FROM t4 WHERE c1 = 'S'; +c1 +S +SELECT * FROM t1 WHERE c1 = 's'; +c1 +s +SELECT * FROM t2 WHERE c1 = 's'; +c1 +s +SELECT * FROM t3 WHERE c1 = 's'; +c1 +s +SELECT * FROM t4 WHERE c1 = 's'; +c1 +s +DROP TABLE `sP`; +DROP TABLE `sQ`; +DROP TABLE `sR`; +DROP TABLE `sS`; +DROP TABLE `sT`; +DROP TABLE `sU`; +DROP TABLE `sV`; +DROP TABLE `sW`; +DROP TABLE `sX`; +DROP TABLE `sPO`; +DROP TABLE `sPP`; +DROP TABLE `sPQ`; diff --git a/mysql-test/suite/jp/r/jp_where_ucs2.result b/mysql-test/suite/jp/r/jp_where_ucs2.result new file mode 100755 index 00000000000..a05b1da9b68 --- /dev/null +++ b/mysql-test/suite/jp/r/jp_where_ucs2.result @@ -0,0 +1,163 @@ +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +SET NAMES ujis; +SET character_set_database = ucs2; +SET collation_connection = ucs2_general_ci; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +INSERT INTO `ԣ` VALUES +('PQRSTUVWXYZ[\\]^_') +,(' ') +,('') +,('ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ') +,('ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ'); +INSERT INTO `ԣ` VALUES +('¡áġšơ') +,('ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ') +,('') +,('') +,('') +,('СТУФХЦЧШЩЪЫЬЭЮЯабвг') +,(''); +INSERT INTO `ԣ` VALUES +('Ïġ') +,('ÏďŏƏ') +,('ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ') +,('܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰') +,('') +,('ÏďŏƏ') +,('ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ'); +INSERT INTO `ԣ` VALUES +('PQRSTUVWXYZ[\\]^_') +,(' ') +,('') +,('ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ') +,('ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ'); +INSERT INTO `ԣ` VALUES +('¡áġšơ') +,('ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ') +,('') +,('') +,('') +,('СТУФХЦЧШЩЪЫЬЭЮЯабвг') +,(''); +INSERT INTO `ԣ` VALUES +('Ïġ') +,('ÏďŏƏ') +,('ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ') +,('܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰') +,('') +,('ÏďŏƏ') +,('ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ'); +INSERT INTO `ԣ` VALUES +('PQRSTUVWXYZ[\\]^_') +,(' ') +,('') +,('ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ') +,('ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ'); +INSERT INTO `ԣ` VALUES +('¡áġšơ') +,('ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ') +,('') +,('') +,('') +,('СТУФХЦЧШЩЪЫЬЭЮЯабвг') +,(''); +INSERT INTO `ԣ` VALUES +('Ïġ') +,('ÏďŏƏ') +,('ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ') +,('܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰') +,('') +,('ÏďŏƏ') +,('ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ'); +INSERT INTO `ԣ` VALUES +('PQRSTUVWXYZ[\\]^_') +,(' ') +,('') +,('ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ') +,('ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ'); +INSERT INTO `ԣ` VALUES +('¡áġšơ') +,('ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ') +,('') +,('') +,('') +,('СТУФХЦЧШЩЪЫЬЭЮЯабвг') +,(''); +INSERT INTO `ԣ` VALUES +('Ïġ') +,('ÏďŏƏ') +,('ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ') +,('܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰') +,('') +,('ÏďŏƏ') +,('ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ'); +SELECT * FROM `ԣ` WHERE `ã` = ''; +ã + +SELECT * FROM `ԣ` WHERE `ã` = ''; +ã + +SELECT * FROM `ԣ` WHERE `ã` = 'ÏďŏƏ'; +ã +ÏďŏƏ +SELECT * FROM `ԣ` WHERE `ã` = ''; +ã + +SELECT * FROM `ԣ` WHERE `ã` = ''; +ã + +SELECT * FROM `ԣ` WHERE `ã` = 'ÏďŏƏ'; +ã +ÏďŏƏ +SELECT * FROM `ԣ` WHERE `ã` = ''; +ã + +SELECT * FROM `ԣ` WHERE `ã` = ''; +ã + +SELECT * FROM `ԣ` WHERE `ã` = 'ÏďŏƏ'; +ã +ÏďŏƏ +SELECT * FROM `ԣ` WHERE `ã` = ''; +ã + +SELECT * FROM `ԣ` WHERE `ã` = ''; +ã + +SELECT * FROM `ԣ` WHERE `ã` = 'ÏďŏƏ'; +ã +ÏďŏƏ +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; diff --git a/mysql-test/suite/jp/r/jp_where_ujis.result b/mysql-test/suite/jp/r/jp_where_ujis.result new file mode 100755 index 00000000000..b13b8a10ef8 --- /dev/null +++ b/mysql-test/suite/jp/r/jp_where_ujis.result @@ -0,0 +1,86 @@ +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +SET NAMES ujis; +SET character_set_database = ujis; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_ujis.dat' INTO TABLE `ԣ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_ujis.dat' INTO TABLE `ԣ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0212_ujis.dat' INTO TABLE `ԣ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_ujis.dat' INTO TABLE `ԣ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_ujis.dat' INTO TABLE `ԣ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0212_ujis.dat' INTO TABLE `ԣ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_ujis.dat' INTO TABLE `ԣ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_ujis.dat' INTO TABLE `ԣ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0212_ujis.dat' INTO TABLE `ԣ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_ujis.dat' INTO TABLE `ԣ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_ujis.dat' INTO TABLE `ԣ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0212_ujis.dat' INTO TABLE `ԣ`; +SELECT * FROM `ԣ` WHERE `ã` = ''; +ã + +SELECT * FROM `ԣ` WHERE `ã` = ''; +ã + +SELECT * FROM `ԣ` WHERE `ã` = 'ÏďŏƏ'; +ã +ÏďŏƏ +SELECT * FROM `ԣ` WHERE `ã` = ''; +ã + +SELECT * FROM `ԣ` WHERE `ã` = ''; +ã + +SELECT * FROM `ԣ` WHERE `ã` = 'ÏďŏƏ'; +ã +ÏďŏƏ +SELECT * FROM `ԣ` WHERE `ã` = ''; +ã + +SELECT * FROM `ԣ` WHERE `ã` = ''; +ã + +SELECT * FROM `ԣ` WHERE `ã` = 'ÏďŏƏ'; +ã +ÏďŏƏ +SELECT * FROM `ԣ` WHERE `ã` = ''; +ã + +SELECT * FROM `ԣ` WHERE `ã` = ''; +ã + +SELECT * FROM `ԣ` WHERE `ã` = 'ÏďŏƏ'; +ã +ÏďŏƏ +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; diff --git a/mysql-test/suite/jp/r/jp_where_utf8.result b/mysql-test/suite/jp/r/jp_where_utf8.result new file mode 100755 index 00000000000..d69aaf8715d --- /dev/null +++ b/mysql-test/suite/jp/r/jp_where_utf8.result @@ -0,0 +1,86 @@ +drop table if exists `T1`; +drop table if exists `T2`; +drop table if exists `T3`; +drop table if exists `T4`; +drop table if exists `T5`; +drop table if exists `T6`; +drop table if exists `T7`; +drop table if exists `T8`; +drop table if exists `T9`; +drop table if exists `T10`; +drop table if exists `T11`; +drop table if exists `T12`; +SET NAMES utf8; +SET character_set_database = utf8; +CREATE TABLE `T1` (`C1` char(20), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T2` (`C1` char(20), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T3` (`C1` char(20), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T4` (`C1` char(20), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T5` (`C1` char(20), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T6` (`C1` char(20), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T7` (`C1` char(20), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T8` (`C1` char(20), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T9` (`C1` char(20), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T10` (`C1` char(20), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +CREATE TABLE `T11` (`C1` char(20), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +CREATE TABLE `T12` (`C1` char(20), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_utf8.dat' INTO TABLE `T1`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_utf8.dat' INTO TABLE `T2`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0212_utf8.dat' INTO TABLE `T3`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_utf8.dat' INTO TABLE `T4`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_utf8.dat' INTO TABLE `T5`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0212_utf8.dat' INTO TABLE `T6`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_utf8.dat' INTO TABLE `T7`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_utf8.dat' INTO TABLE `T8`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0212_utf8.dat' INTO TABLE `T9`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_utf8.dat' INTO TABLE `T10`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_utf8.dat' INTO TABLE `T11`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0212_utf8.dat' INTO TABLE `T12`; +SELECT * FROM `T1` WHERE `C1` = 'ーアイウエオカキクケコサシスセソ'; +C1 +ーアイウエオカキクケコサシスセソ +SELECT * FROM `T2` WHERE `C1` = '・ぁあぃいぅうぇえぉおかがきぎくぐけげこ'; +C1 +・ぁあぃいぅうぇえぉおかがきぎくぐけげこ +SELECT * FROM `T3` WHERE `C1` = '鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃齄齅齆齇齓齕齖'; +C1 +鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃齄齅齆齇齓齕齖 +SELECT * FROM `T4` WHERE `C1` = 'ーアイウエオカキクケコサシスセソ'; +C1 +ーアイウエオカキクケコサシスセソ +SELECT * FROM `T5` WHERE `C1` = '・ぁあぃいぅうぇえぉおかがきぎくぐけげこ'; +C1 +・ぁあぃいぅうぇえぉおかがきぎくぐけげこ +SELECT * FROM `T6` WHERE `C1` = '鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃齄齅齆齇齓齕齖'; +C1 +鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃齄齅齆齇齓齕齖 +SELECT * FROM `T7` WHERE `C1` = 'ーアイウエオカキクケコサシスセソ'; +C1 +ーアイウエオカキクケコサシスセソ +SELECT * FROM `T8` WHERE `C1` = '・ぁあぃいぅうぇえぉおかがきぎくぐけげこ'; +C1 +・ぁあぃいぅうぇえぉおかがきぎくぐけげこ +SELECT * FROM `T9` WHERE `C1` = '鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃齄齅齆齇齓齕齖'; +C1 +鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃齄齅齆齇齓齕齖 +SELECT * FROM `T10` WHERE `C1` = 'ーアイウエオカキクケコサシスセソ'; +C1 +ーアイウエオカキクケコサシスセソ +SELECT * FROM `T11` WHERE `C1` = '・ぁあぃいぅうぇえぉおかがきぎくぐけげこ'; +C1 +・ぁあぃいぅうぇえぉおかがきぎくぐけげこ +SELECT * FROM `T12` WHERE `C1` = '鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃齄齅齆齇齓齕齖'; +C1 +鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃齄齅齆齇齓齕齖 +DROP TABLE `T1`; +DROP TABLE `T2`; +DROP TABLE `T3`; +DROP TABLE `T4`; +DROP TABLE `T5`; +DROP TABLE `T6`; +DROP TABLE `T7`; +DROP TABLE `T8`; +DROP TABLE `T9`; +DROP TABLE `T10`; +DROP TABLE `T11`; +DROP TABLE `T12`; diff --git a/mysql-test/suite/jp/std_data/jisx0201_sjis.dat b/mysql-test/suite/jp/std_data/jisx0201_sjis.dat new file mode 100755 index 00000000000..7556c4d3085 --- /dev/null +++ b/mysql-test/suite/jp/std_data/jisx0201_sjis.dat @@ -0,0 +1,10 @@ + !"#$%&'()*+,-./ +0123456789:;<=>? +@ABCDEFGHIJKLMNO +PQRSTUVWXYZ[\\]^_ +abcdefghijklmno +pqrstuvwxyz{|}~ + + + + diff --git a/mysql-test/suite/jp/std_data/jisx0201_ujis.dat b/mysql-test/suite/jp/std_data/jisx0201_ujis.dat new file mode 100755 index 00000000000..07169ec8ab2 --- /dev/null +++ b/mysql-test/suite/jp/std_data/jisx0201_ujis.dat @@ -0,0 +1,10 @@ + !"#$%&'()*+,-./ +0123456789:;<=>? +@ABCDEFGHIJKLMNO +PQRSTUVWXYZ[\\]^_ +abcdefghijklmno +pqrstuvwxyz{|}~ + + +ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ +ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ diff --git a/mysql-test/suite/jp/std_data/jisx0201_utf8.dat b/mysql-test/suite/jp/std_data/jisx0201_utf8.dat new file mode 100755 index 00000000000..3052e4fcc8b --- /dev/null +++ b/mysql-test/suite/jp/std_data/jisx0201_utf8.dat @@ -0,0 +1,10 @@ + !"#$%&'()*+,-./ +0123456789:;<=>? +@ABCDEFGHIJKLMNO +PQRSTUVWXYZ[\\]^_ +abcdefghijklmno +pqrstuvwxyz{|}~ + 。「」、・ヲァィゥェォャュョッ +ーアイウエオカキクケコサシスセソ +タチツテトナニヌネノハヒフヘホマ +ミムメモヤユヨラリルレロワン゙゚ diff --git a/mysql-test/suite/jp/std_data/jisx0208_sjis.dat b/mysql-test/suite/jp/std_data/jisx0208_sjis.dat new file mode 100755 index 00000000000..767be2090ac --- /dev/null +++ b/mysql-test/suite/jp/std_data/jisx0208_sjis.dat @@ -0,0 +1,66 @@ +@@ABCDEFGHIJKLMNOPQR +STUVWXYZ[\]^_`abcdef +ghijklmnopqrstuvwxyz +{]}~ +EEEEE +EEEEEE +EEEEEEEEEEEE +EEȁɁʁˁ́́΁EEEEEEEEEEE +ځہ܁݁ށ߁EEEEE +EEEEEEEEEE@ +EEEEEEEEEEEEEEEEOPQR +STUVWXEEEEEEE`abcdef +ghijklmnopqrstuvwxyE +EEEEE +EEEEEEEEE +E +‚ÂĂ +ƂǂȂɂʂ˂̂͂΂ςЂт҂ӂԂՂւׂ؂ +ڂۂ܂݂ނ߂ +EEEEEEEEEEEEEEEE +E@ABCDEFGHIJKLMNOPQR +STUVWXYZ[\]^_`abcdef +ghijklmnopqrstuvwxyz +{|}~ +EEEEEEEEEEEEE +E +EEEEEEEEƒÃă +ƃǃȃɃʃ˃̃̓΃σЃу҃ӃԃՃցEEE +EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE +E@ABCDEFGHIJKLMNOPQR +STUVWXYZ[\]^_`EEEEEE +EEEEEEEEEpqrstuvwxyz +{|}~ +EEEEEEEEEEEEEEEEEE +E +EEEEEEE +EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE +E +ˆÈĈ +ƈLjȈɈʈˈ͈̈ΈψЈш҈ӈԈՈֈ׈؈ +ڈۈ܈݈ވ߈ +EEEEE +E@ABCDEFGHIJKLMNOPQR +STUVWXYZ[\]^_`abcdef +ghijklmnopqrEEEEEEEE +EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE +E +˜ØĘ +ƘǘȘɘʘ˘̘͘ΘϘИјҘӘԘ՘֘טؘ +ژۘܘݘޘߘ +EEEEE +E@ABCDEFGHIJKLMNOPQR +STUVWXYZ[\]^_`abcdef +ghijklmnopqrstuvwxyz +{|}~ +ꞁEEEEE +E꤁EEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE +EEEEEEEEEEEEEEEEEEEE diff --git a/mysql-test/suite/jp/std_data/jisx0208_sjis3.dat b/mysql-test/suite/jp/std_data/jisx0208_sjis3.dat new file mode 100755 index 00000000000..b636aacdb62 --- /dev/null +++ b/mysql-test/suite/jp/std_data/jisx0208_sjis3.dat @@ -0,0 +1,5 @@ +\\\\\ +\\\\ +\\\ +\\ +\ diff --git a/mysql-test/suite/jp/std_data/jisx0208_ucs2.dat b/mysql-test/suite/jp/std_data/jisx0208_ucs2.dat new file mode 100755 index 0000000000000000000000000000000000000000..3ac15368c055f30e95781e1d8d5b1638ed179215 GIT binary patch literal 2782 zcmcJQX;ch%1`@S_@GzzT%p=g8Nq8D4^g1h=Sk(I?=e{Ac89zlqf26 zH||T~L~)H<+@e`gqlsBmbfTHeWDFC>=*&UA(;Npuk7rKiho^qj?Nd*^@4dI`RMTSx z3OrB&)u{#*qaih-SIL8Nkc)jvPui|@ryr;XJ%USl3=)d19}~7std=(M7F|RqjmpN_Upq>nT_4xR>rJnX72kw1wItEmd2f zwbWW@<=38&%{4#mJ>^UHWw)ZSXV%MDm!fK0wAxK8XqB~SZK#%@P1G7{-L%G92d$On zUvAeE%~o!xiN2G46MR+GtsZ!qQPIdQorc zLw%_q^``+ekOt9U8bXqEN7JBS8cM?`ghDBdhSLZNr-Q~Va2Dqr@?(60Pw^Q(#}_ETd0fCne2GiAjIZ!D zuHYMdi|_EgLte!-Tt^{p;3oczA8-q|@gx3%pYT`w4L{@WxPxC%)@rTr+K z_pp4nm+fQw*#UOYArG++*kN{r9c9PZarPlQ!A`Q%>dayNG=8gI&*alw6g zbMD7m@Rqz4_vfwoYrG9FpZSa2!Q1ix-j28D9e6PB$UE`Q{B=k34c>)!<=uF9-h=n# zfjo%!;=Oqv-k0~|{rLbskPqU6`4EScTz|%;ykq&e#9a{;M0MdQ>WezUNBE0oqP^%U zJOmRpg_md~>WQYJop33wL>DngsG^PV6P-j4(O5tT(OCpNeVd*rzo??}o@MdNB6DTk zP!`c+&54jk(S9-a!?n!mX+8^#**l|d#)v6*#>b{@P5mv$rDRQLK77OYsbh0SUI?GF z@ZQ?7$;XpdWo;_MdQWwM$u^t;gM#E`5k@>I00sVV%M+hkHa+ z9aR`rGdd~SE4E_%;Us-}(sZYyS-X;pl2519NQ+rqVOePA?9491R?982aCm;o$;_ge ziu`rN#wndMT}r@gzXi)u+vElYCk;Cmax>&cSaG;_8iWzeF6%*nx7 zR@$s(DFInuFKumPgiKwUF!4-A<@pz*TuNTtU2~mWD?M{3E*sve<3AE~>P(fV+`pFTrhtiP?V)#vE(dXm0UPt+IcYxMfT zm-RxuK>tSn-XSmQ-{}|hTl#Iiq2XuLFqUAkqmtoLdKvu; z78hz5Mt>v12s0)bGmR8uy^(J0GxCkHUX^rdv^mBcX9k;w8E#H9mzaypcg;j|wz=Ni zZ0<1g%`@gn^N8uZdFEmBta;u%Wqxa3GXG`%Xx=f4%tvNJtC7{jnr_XqlCAmHV#}p0 zvofqz)@o~|Wm;RT9o8Xhr?tz9&i>pgu+Cc-tjpF_>$-K#A#Yf>t)HwS>z;MrdSLzA zDz+Y4kF3ge75m@}Z`*DA+uiMf_E6jTf7&s2q#b2P+p%_>J;_e6-?FFKGwjuNuAOH; iTTz=4=ipmFJ_Ebwi%_dGYuEkl?+t464tqXz1v^Qd{uY;@gv+>IyAD{fwMws)cIubS7)CbQXWH*3vKv&A%<9p-h@ za+Ww(>3>zHXN|Qs%nq;vtxw@L!umGSM%h6&+MdhRd+l%bJezL|Y@sc(#kR!GwWW5R zEwkme;!in3njg?$bOlDZG1`r6Om_2)Xr(;2-hog0aF)KLA^4H5MHymZA&`P>$PhE83}z4p9d!!agj;LfnlSRN-TEpv{p7upEbJCGJ5z8gZ|y z;h!Vq=qMeb&*>N$v;YXh7xWnoLKhSRXo{Usn=d!0G1LH6W6Oe-$n2wWlihiPB=x5rCIk*X(REW7KcH}(F$1SM9 z?Wn|W^eg>NU9=ecQH#5<3`J zoXjbl$^lO2EY9W}&gD7m`pIQn$yHp<%ejv0`F?(a*YSFOmN)a8yp?xzJ9qFAM;_&4 ze4J14Nj}A$e1^L@$RwT^371HTk{G#EVkJ&|ikB2glLazH(j`MOWxPz1ESVxRWTwoL z*^(y(QY0mgtdL4sD2t>Ka|EPwCT+d`8#ldTr7T`kX$mFKSO^e|_rDjr#+U Cmc1VU literal 0 HcmV?d00001 diff --git a/mysql-test/suite/jp/std_data/jisx0212_ujis.dat b/mysql-test/suite/jp/std_data/jisx0212_ujis.dat new file mode 100755 index 00000000000..40c8645825b --- /dev/null +++ b/mysql-test/suite/jp/std_data/jisx0212_ujis.dat @@ -0,0 +1,40 @@ + +Ïġ + +돢쏢폢 +񡦡 + + + +Ꮶ⏦㏦䏦塦硦鏦ꡦ졦 + + +ÏďŏƏ +ȏɏʏˏ̏͏Ρ + + + +ÏďŏƏ +ȏɏʏˏ̏͏ΏϏС + + + +ÏďŏƏ +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ +܏ݏޏߏᏪ⏪㏪䏪只揪珪菪鏪ꏪ돪쏪폪 + + +áŏƏ +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ +܏ݏޏߏᏫ⏫㏫䏫叫揫珫菫鏫ꏫ돫쏫폫 + + +ÏďŏƏ +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ +܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰 + + +ÏďŏƏ +ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ +܏ݏޏߏ㡦 + diff --git a/mysql-test/suite/jp/std_data/jisx0212_utf8.dat b/mysql-test/suite/jp/std_data/jisx0212_utf8.dat new file mode 100755 index 00000000000..3f9354255d0 --- /dev/null +++ b/mysql-test/suite/jp/std_data/jisx0212_utf8.dat @@ -0,0 +1,40 @@ +・・・・・・・・・・・・・・・˘ˇ¸˙˝ +・˛˚~΄΅・・・・・・・・¡¦¿・・・ +・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・ºª©®™ +¤№・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ +・・・・・ΆΈΉΊΪ・Ό・ΎΫ・Ώ・・・ +・άέήίϊΐόςύϋΰώ・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・ЂЃЄЅІЇ +ЈЉЊЋЌЎЏ・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ +・・ђѓєѕіїјљњћќўџ・・・・・ +・ÆĐ・Ħ・IJ・ŁĿ・ŊØŒ・ŦÞ・・・ +・・・・・・・・・・・・・æđðħıijĸ +łŀʼnŋøœßŧþ・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ +・ÁÀÄÂĂǍĀĄÅÃĆĈČÇĊĎÉÈË +ÊĚĖĒĘ・ĜĞĢĠĤÍÌÏÎǏİĪĮĨ +ĴĶĹĽĻŃŇŅÑÓÒÖÔǑŐŌÕŔŘŖ +ŚŜŠŞŤŢÚÙÜÛŬǓŰŪŲŮŨǗǛǙ +ǕŴÝŸŶŹŽŻ・・・・・・・・・・・・ +・áàäâăǎāąåãćĉčçċďéèë +êěėēęǵĝğ・ġĥíìïîǐ・īįĩ +ĵķĺľļńňņñóòöôǒőōõŕřŗ +śŝšşťţúùüûŭǔűūųůũǘǜǚ +ǖŵýÿŷźžż・・・・・・・・・・・・ +・丂丄丅丌丒丟丣两丨丫丮丯丰丵乀乁乄乇乑 +乚乜乣乨乩乴乵乹乿亍亖亗亝亯亹仃仐仚仛仠 +仡仢仨仯仱仳仵份仾仿伀伂伃伈伋伌伒伕伖众 +伙伮伱你伳伵伷伹伻伾佀佂佈佉佋佌佒佔佖佘 +佟佣佪佬佮佱佷佸佹佺佽佾侁侂侄・・・・・ +・黸黿鼂鼃鼉鼏鼐鼑鼒鼔鼖鼗鼙鼚鼛鼟鼢鼦鼪 +鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃齄齅齆齇齓齕齖 +齗齘齚齝齞齨齩齭齮齯齰齱齳齵齺齽龏龐龑龒 +龔龖龗龞龡龢龣龥・・・・・・・・・・・・ +・・・・・・・・・・・・・・・・・・・・ diff --git a/mysql-test/suite/jp/t/jp_alter_sjis.test b/mysql-test/suite/jp/t/jp_alter_sjis.test new file mode 100755 index 00000000000..b7b31862599 --- /dev/null +++ b/mysql-test/suite/jp/t/jp_alter_sjis.test @@ -0,0 +1,416 @@ +--character_set sjis +SET NAMES sjis; +SET character_set_database = sjis; +--disable_warnings +DROP TABLE IF EXISTS ``; +DROP TABLE IF EXISTS ``; +DROP TABLE IF EXISTS ``; +DROP TABLE IF EXISTS ``; +DROP TABLE IF EXISTS `\\\`; +DROP TABLE IF EXISTS `\\\`; +--enable_warnings + +# +# Test altering table with Japanese characters in sjis encoding +# + +# +# Test InnoDB +# +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = sjis engine=INNODB; +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = sjis engine=INNODB; +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = sjis engine=INNODB; +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = sjis engine=INNODB; +CREATE TABLE `\\\`(`\\\` char(5)) DEFAULT CHARSET = sjis engine=INNODB; +CREATE TABLE `\\\`(`\\\` char(5)) DEFAULT CHARSET = sjis engine=INNODB; + +INSERT INTO `` VALUES (''),(''),(''); +INSERT INTO `` VALUES (''),(''),(''); +INSERT INTO `\\\` VALUES ('\\\\\'),('\\\\\'),('\\\\\'); + +# Test basic alter operation + +ALTER TABLE `` ADD `` char(1) FIRST; +ALTER TABLE `` ADD `` char(1) AFTER ``; +ALTER TABLE `` ADD `` char(1); +ALTER TABLE `` ADD INDEX (``); +ALTER TABLE `` ADD PRIMARY KEY (``); +ALTER TABLE `` ADD UNIQUE (``); +#Multi-byte field name is not allowed for FOREIGN KEY As of 4.1.4 +#ALTER TABLE `` ADD FOREIGN KEY (``) REFERENCES ``(``); +ALTER TABLE `` CHANGE `` `` char(1); +ALTER TABLE `` MODIFY `` char(6); + +SELECT * FROM ``; +DESC ``; +SHOW CREATE TABLE ``; + +ALTER TABLE `` DROP INDEX ``; +ALTER TABLE `` DROP PRIMARY KEY; +ALTER TABLE `` DROP INDEX ``; +#ALTER TABLE `` DROP FOREIGN KEY ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; +SELECT * FROM ``; +DESC ``; +SHOW CREATE TABLE ``; + +ALTER TABLE `` ADD `` char(1) FIRST; +ALTER TABLE `` ADD `` char(1) AFTER ``; +ALTER TABLE `` ADD `` char(1); +ALTER TABLE `` ADD INDEX (``); +ALTER TABLE `` ADD PRIMARY KEY (``); +ALTER TABLE `` ADD UNIQUE (``); +#Multi-byte field name is not allowed for FOREIGN KEY As of 4.1.4 +#ALTER TABLE `` ADD FOREIGN KEY (``) REFERENCES ``(``); +ALTER TABLE `` CHANGE `` `` char(1); +ALTER TABLE `` MODIFY `` char(6); + +SELECT * FROM ``; +DESC ``; +SHOW CREATE TABLE ``; + +ALTER TABLE `` DROP INDEX ``; +ALTER TABLE `` DROP PRIMARY KEY; +ALTER TABLE `` DROP INDEX ``; +#ALTER TABLE `` DROP FOREIGN KEY ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; + +SELECT * FROM ``; +DESC ``; +SHOW CREATE TABLE ``; + +ALTER TABLE `\\\` ADD `\\\` char(1) FIRST; +ALTER TABLE `\\\` ADD `\\\` char(1) AFTER `\\\`; +ALTER TABLE `\\\` ADD `\\\` char(1); +ALTER TABLE `\\\` ADD INDEX (`\\\`); +ALTER TABLE `\\\` ADD PRIMARY KEY (`\\\`); +ALTER TABLE `\\\` ADD UNIQUE (`\\\`); +#Multi-byte field name is not allowed for FOREIGN KEY As of 4.1.4 +#ALTER TABLE `\\\` ADD FOREIGN KEY (`\\\`) REFERENCES `\\\`(`\\\`); +ALTER TABLE `\\\` CHANGE `\\\` `\\` char(1); +ALTER TABLE `\\\` MODIFY `\\\` char(6); + +SELECT * FROM `\\\`; +DESC `\\\`; +SHOW CREATE TABLE `\\\`; + +ALTER TABLE `\\\` DROP INDEX `\\\`; +ALTER TABLE `\\\` DROP PRIMARY KEY; +ALTER TABLE `\\\` DROP INDEX `\\\`; +#ALTER TABLE `\\\` DROP FOREIGN KEY `\\\`; +ALTER TABLE `\\\` DROP `\\`; +ALTER TABLE `\\\` DROP `\\\`; +ALTER TABLE `\\\` DROP `\\\`; + +SELECT * FROM `\\\`; +DESC `\\\`; +SHOW CREATE TABLE `\\\`; + +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE `\\\`; +DROP TABLE `\\\`; + +# +# Test MyISAM +# + +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = sjis engine=MYISAM; +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = sjis engine=MYISAM; +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = sjis engine=MYISAM; +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = sjis engine=MYISAM; +CREATE TABLE `\\\`(`\\\` char(5)) DEFAULT CHARSET = sjis engine=MYISAM; +CREATE TABLE `\\\`(`\\\` char(5)) DEFAULT CHARSET = sjis engine=MYISAM; + +INSERT INTO `` VALUES (''),(''),(''); +INSERT INTO `` VALUES (''),(''),(''); +INSERT INTO `\\\` VALUES ('\\\\\'),('\\\\\'),('\\\\\'); + +ALTER TABLE `` ADD `` char(1) FIRST; +ALTER TABLE `` ADD `` char(1) AFTER ``; +ALTER TABLE `` ADD `` char(1); +ALTER TABLE `` ADD INDEX (``); +ALTER TABLE `` ADD PRIMARY KEY (``); +ALTER TABLE `` ADD UNIQUE (``); +#ALTER TABLE `` ADD FOREIGN KEY (``) REFERENCES ``(``); +ALTER TABLE `` CHANGE `` `` char(1); +ALTER TABLE `` MODIFY `` char(6); + +SELECT * FROM ``; +DESC ``; +SHOW CREATE TABLE ``; + +ALTER TABLE `` DROP INDEX ``; +ALTER TABLE `` DROP PRIMARY KEY; +ALTER TABLE `` DROP INDEX ``; +#ALTER TABLE `` DROP FOREIGN KEY ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; +SELECT * FROM ``; +DESC ``; +SHOW CREATE TABLE ``; + +ALTER TABLE `` ADD `` char(1) FIRST; +ALTER TABLE `` ADD `` char(1) AFTER ``; +ALTER TABLE `` ADD `` char(1); +ALTER TABLE `` ADD INDEX (``); +ALTER TABLE `` ADD PRIMARY KEY (``); +ALTER TABLE `` ADD UNIQUE (``); +#ALTER TABLE `` ADD FOREIGN KEY (``) REFERENCES ``(``); +ALTER TABLE `` CHANGE `` `` char(1); +ALTER TABLE `` MODIFY `` char(6); + +SELECT * FROM ``; +DESC ``; +SHOW CREATE TABLE ``; + +ALTER TABLE `` DROP INDEX ``; +ALTER TABLE `` DROP PRIMARY KEY; +ALTER TABLE `` DROP INDEX ``; +#ALTER TABLE `` DROP FOREIGN KEY ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; + +SELECT * FROM ``; +DESC ``; +SHOW CREATE TABLE ``; + +ALTER TABLE `\\\` ADD `\\\` char(1) FIRST; +ALTER TABLE `\\\` ADD `\\\` char(1) AFTER `\\\`; +ALTER TABLE `\\\` ADD `\\\` char(1); +ALTER TABLE `\\\` ADD INDEX (`\\\`); +ALTER TABLE `\\\` ADD PRIMARY KEY (`\\\`); +ALTER TABLE `\\\` ADD UNIQUE (`\\\`); +#ALTER TABLE `\\\` ADD FOREIGN KEY (`\\\`) REFERENCES `\\\`(`\\\`); +ALTER TABLE `\\\` CHANGE `\\\` `\\` char(1); +ALTER TABLE `\\\` MODIFY `\\\` char(6); + +SELECT * FROM `\\\`; +DESC `\\\`; +SHOW CREATE TABLE `\\\`; + +ALTER TABLE `\\\` DROP INDEX `\\\`; +ALTER TABLE `\\\` DROP PRIMARY KEY; +ALTER TABLE `\\\` DROP INDEX `\\\`; +#ALTER TABLE `\\\` DROP FOREIGN KEY `\\\`; +ALTER TABLE `\\\` DROP `\\`; +ALTER TABLE `\\\` DROP `\\\`; +ALTER TABLE `\\\` DROP `\\\`; + +SELECT * FROM `\\\`; +DESC `\\\`; +SHOW CREATE TABLE `\\\`; + +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE `\\\`; +DROP TABLE `\\\`; + +# +# Test HEAP +# + +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = sjis engine=HEAP; +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = sjis engine=HEAP; +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = sjis engine=HEAP; +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = sjis engine=HEAP; +CREATE TABLE `\\\`(`\\\` char(5)) DEFAULT CHARSET = sjis engine=HEAP; +CREATE TABLE `\\\`(`\\\` char(5)) DEFAULT CHARSET = sjis engine=HEAP; + +INSERT INTO `` VALUES (''),(''),(''); +INSERT INTO `` VALUES (''),(''),(''); +INSERT INTO `\\\` VALUES ('\\\\\'),('\\\\\'),('\\\\\'); + +ALTER TABLE `` ADD `` char(1) FIRST; +ALTER TABLE `` ADD `` char(1) AFTER ``; +ALTER TABLE `` ADD `` char(1); +ALTER TABLE `` ADD INDEX (``); +ALTER TABLE `` ADD PRIMARY KEY (``); +ALTER TABLE `` ADD UNIQUE (``); +#ALTER TABLE `` ADD FOREIGN KEY (``) REFERENCES ``(``); +ALTER TABLE `` CHANGE `` `` char(1); +ALTER TABLE `` MODIFY `` char(6); + +SELECT * FROM ``; +DESC ``; +SHOW CREATE TABLE ``; + +ALTER TABLE `` DROP INDEX ``; +ALTER TABLE `` DROP PRIMARY KEY; +ALTER TABLE `` DROP INDEX ``; +#ALTER TABLE `` DROP FOREIGN KEY ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; +SELECT * FROM ``; +DESC ``; +SHOW CREATE TABLE ``; + +ALTER TABLE `` ADD `` char(1) FIRST; +ALTER TABLE `` ADD `` char(1) AFTER ``; +ALTER TABLE `` ADD `` char(1); +ALTER TABLE `` ADD INDEX (``); +ALTER TABLE `` ADD PRIMARY KEY (``); +ALTER TABLE `` ADD UNIQUE (``); +#ALTER TABLE `` ADD FOREIGN KEY (``) REFERENCES ``(``); +ALTER TABLE `` CHANGE `` `` char(1); +ALTER TABLE `` MODIFY `` char(6); + +SELECT * FROM ``; +DESC ``; +SHOW CREATE TABLE ``; + +ALTER TABLE `` DROP INDEX ``; +ALTER TABLE `` DROP PRIMARY KEY; +ALTER TABLE `` DROP INDEX ``; +#ALTER TABLE `` DROP FOREIGN KEY ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; + +SELECT * FROM ``; +DESC ``; +SHOW CREATE TABLE ``; + +ALTER TABLE `\\\` ADD `\\\` char(1) FIRST; +ALTER TABLE `\\\` ADD `\\\` char(1) AFTER `\\\`; +ALTER TABLE `\\\` ADD `\\\` char(1); +ALTER TABLE `\\\` ADD INDEX (`\\\`); +ALTER TABLE `\\\` ADD PRIMARY KEY (`\\\`); +ALTER TABLE `\\\` ADD UNIQUE (`\\\`); +#ALTER TABLE `\\\` ADD FOREIGN KEY (`\\\`) REFERENCES `\\\`(`\\\`); +ALTER TABLE `\\\` CHANGE `\\\` `\\` char(1); +ALTER TABLE `\\\` MODIFY `\\\` char(6); + +SELECT * FROM `\\\`; +DESC `\\\`; +SHOW CREATE TABLE `\\\`; + +ALTER TABLE `\\\` DROP INDEX `\\\`; +ALTER TABLE `\\\` DROP PRIMARY KEY; +ALTER TABLE `\\\` DROP INDEX `\\\`; +#ALTER TABLE `\\\` DROP FOREIGN KEY `\\\`; +ALTER TABLE `\\\` DROP `\\`; +ALTER TABLE `\\\` DROP `\\\`; +ALTER TABLE `\\\` DROP `\\\`; + +SELECT * FROM `\\\`; +DESC `\\\`; +SHOW CREATE TABLE `\\\`; + +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE `\\\`; +DROP TABLE `\\\`; + +# +# Test BDB +# + +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = sjis engine=BDB; +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = sjis engine=BDB; +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = sjis engine=BDB; +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = sjis engine=BDB; +CREATE TABLE `\\\`(`\\\` char(5)) DEFAULT CHARSET = sjis engine=BDB; +CREATE TABLE `\\\`(`\\\` char(5)) DEFAULT CHARSET = sjis engine=BDB; + +INSERT INTO `` VALUES (''),(''),(''); +INSERT INTO `` VALUES (''),(''),(''); +INSERT INTO `\\\` VALUES ('\\\\\'),('\\\\\'),('\\\\\'); + +ALTER TABLE `` ADD `` char(1) FIRST; +ALTER TABLE `` ADD `` char(1) AFTER ``; +ALTER TABLE `` ADD `` char(1); +ALTER TABLE `` ADD INDEX (``); +ALTER TABLE `` ADD PRIMARY KEY (``); +#Multiple NULL fields are not allowed in BDB +#ALTER TABLE `` ADD UNIQUE (``); +#ALTER TABLE `` ADD FOREIGN KEY (``) REFERENCES ``(``); +ALTER TABLE `` CHANGE `` `` char(1); +ALTER TABLE `` MODIFY `` char(6); + +SELECT * FROM ``; +DESC ``; +SHOW CREATE TABLE ``; + +ALTER TABLE `` DROP INDEX ``; +ALTER TABLE `` DROP PRIMARY KEY; +#ALTER TABLE `` DROP INDEX ``; +#ALTER TABLE `` DROP FOREIGN KEY ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; +SELECT * FROM ``; +DESC ``; +SHOW CREATE TABLE ``; + +ALTER TABLE `` ADD `` char(1) FIRST; +ALTER TABLE `` ADD `` char(1) AFTER ``; +ALTER TABLE `` ADD `` char(1); +ALTER TABLE `` ADD INDEX (``); +ALTER TABLE `` ADD PRIMARY KEY (``); +#ALTER TABLE `` ADD UNIQUE (``); +#ALTER TABLE `` ADD FOREIGN KEY (``) REFERENCES ``(``); +ALTER TABLE `` CHANGE `` `` char(1); +ALTER TABLE `` MODIFY `` char(6); + +SELECT * FROM ``; +DESC ``; +SHOW CREATE TABLE ``; + +ALTER TABLE `` DROP INDEX ``; +ALTER TABLE `` DROP PRIMARY KEY; +#ALTER TABLE `` DROP INDEX ``; +#ALTER TABLE `` DROP FOREIGN KEY ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; + +SELECT * FROM ``; +DESC ``; +SHOW CREATE TABLE ``; + +ALTER TABLE `\\\` ADD `\\\` char(1) FIRST; +ALTER TABLE `\\\` ADD `\\\` char(1) AFTER `\\\`; +ALTER TABLE `\\\` ADD `\\\` char(1); +ALTER TABLE `\\\` ADD INDEX (`\\\`); +ALTER TABLE `\\\` ADD PRIMARY KEY (`\\\`); +#ALTER TABLE `\\\` ADD UNIQUE (`\\\`); +#ALTER TABLE `\\\` ADD FOREIGN KEY (`\\\`) REFERENCES `\\\`(`\\\`); +ALTER TABLE `\\\` CHANGE `\\\` `\\` char(1); +ALTER TABLE `\\\` MODIFY `\\\` char(6); + +SELECT * FROM `\\\`; +DESC `\\\`; +SHOW CREATE TABLE `\\\`; + +ALTER TABLE `\\\` DROP INDEX `\\\`; +ALTER TABLE `\\\` DROP PRIMARY KEY; +#ALTER TABLE `\\\` DROP INDEX `\\\`; +#ALTER TABLE `\\\` DROP FOREIGN KEY `\\\`; +ALTER TABLE `\\\` DROP `\\`; +ALTER TABLE `\\\` DROP `\\\`; +ALTER TABLE `\\\` DROP `\\\`; + +SELECT * FROM `\\\`; +DESC `\\\`; +SHOW CREATE TABLE `\\\`; + +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE `\\\`; +DROP TABLE `\\\`; diff --git a/mysql-test/suite/jp/t/jp_alter_ucs2.test b/mysql-test/suite/jp/t/jp_alter_ucs2.test new file mode 100755 index 00000000000..6c5b3132edf --- /dev/null +++ b/mysql-test/suite/jp/t/jp_alter_ucs2.test @@ -0,0 +1,419 @@ +--source include/have_ucs2.inc + +--disable_warnings +DROP TABLE IF EXISTS ``; +DROP TABLE IF EXISTS ``; +DROP TABLE IF EXISTS ``; +DROP TABLE IF EXISTS ``; +DROP TABLE IF EXISTS `ݏݏ`; +DROP TABLE IF EXISTS `ޏޏ`; +--enable_warnings + +# +# Test altering table with Japanese characters in ucs2 encoding +# + +SET NAMES ujis; +SET character_set_database = ucs2; +SET collation_connection = ucs2_general_ci; + +# +# Test InnoDB +# +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = ucs2 engine=INNODB; +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = ucs2 engine=INNODB; +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = ucs2 engine=INNODB; +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = ucs2 engine=INNODB; +CREATE TABLE `ݏݏ`(`` char(5)) DEFAULT CHARSET = ucs2 engine=INNODB; +CREATE TABLE `ޏޏ`(`` char(5)) DEFAULT CHARSET = ucs2 engine=INNODB; + +INSERT INTO `` VALUES (''),(''),(''); +INSERT INTO `` VALUES (''),(''),(''); +INSERT INTO `ݏݏ` VALUES (''),(''),(''); + +# Test basic alter operation + +ALTER TABLE `` ADD `` char(1) FIRST; +ALTER TABLE `` ADD `` char(1) AFTER ``; +ALTER TABLE `` ADD `` char(1); +ALTER TABLE `` ADD INDEX (``); +ALTER TABLE `` ADD PRIMARY KEY (``); +ALTER TABLE `` ADD UNIQUE (``); +#Multi-byte field name is not allowed for FOREIGN KEY As of 4.1.4 +#ALTER TABLE `` ADD FOREIGN KEY (``) REFERENCES ``(``); +ALTER TABLE `` CHANGE `` `` char(1); +ALTER TABLE `` MODIFY `` char(6); + +SELECT * FROM ``; +DESC ``; +SHOW CREATE TABLE ``; + +ALTER TABLE `` DROP INDEX ``; +ALTER TABLE `` DROP PRIMARY KEY; +ALTER TABLE `` DROP INDEX ``; +#ALTER TABLE `` DROP FOREIGN KEY ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; +SELECT * FROM ``; +DESC ``; +SHOW CREATE TABLE ``; + +ALTER TABLE `` ADD `` char(1) FIRST; +ALTER TABLE `` ADD `` char(1) AFTER ``; +ALTER TABLE `` ADD `` char(1); +ALTER TABLE `` ADD INDEX (``); +ALTER TABLE `` ADD PRIMARY KEY (``); +ALTER TABLE `` ADD UNIQUE (``); +#Multi-byte field name is not allowed for FOREIGN KEY As of 4.1.4 +#ALTER TABLE `` ADD FOREIGN KEY (``) REFERENCES ``(``); +ALTER TABLE `` CHANGE `` `` char(1); +ALTER TABLE `` MODIFY `` char(6); + +SELECT * FROM ``; +DESC ``; +SHOW CREATE TABLE ``; + +ALTER TABLE `` DROP INDEX ``; +ALTER TABLE `` DROP PRIMARY KEY; +ALTER TABLE `` DROP INDEX ``; +#ALTER TABLE `` DROP FOREIGN KEY ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; + +SELECT * FROM ``; +DESC ``; +SHOW CREATE TABLE ``; + +ALTER TABLE `ݏݏ` ADD `` char(1) FIRST; +ALTER TABLE `ݏݏ` ADD `` char(1) AFTER ``; +ALTER TABLE `ݏݏ` ADD `` char(1); +ALTER TABLE `ݏݏ` ADD INDEX (``); +ALTER TABLE `ݏݏ` ADD PRIMARY KEY (``); +ALTER TABLE `ݏݏ` ADD UNIQUE (``); +#Multi-byte field name is not allowed for FOREIGN KEY As of 4.1.4 +#ALTER TABLE `ݏݏ` ADD FOREIGN KEY (``) REFERENCES `ޏޏ`(``); +ALTER TABLE `ݏݏ` CHANGE `` `` char(1); +ALTER TABLE `ݏݏ` MODIFY `` char(6); + +SELECT * FROM `ݏݏ`; +DESC `ݏݏ`; +SHOW CREATE TABLE `ݏݏ`; + +ALTER TABLE `ݏݏ` DROP INDEX ``; +ALTER TABLE `ݏݏ` DROP PRIMARY KEY; +ALTER TABLE `ݏݏ` DROP INDEX ``; +#ALTER TABLE `ݏݏ` DROP FOREIGN KEY ``; +ALTER TABLE `ݏݏ` DROP ``; +ALTER TABLE `ݏݏ` DROP ``; +ALTER TABLE `ݏݏ` DROP ``; + +SELECT * FROM `ݏݏ`; +DESC `ݏݏ`; +SHOW CREATE TABLE `ݏݏ`; + +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE `ݏݏ`; +DROP TABLE `ޏޏ`; + +# +# Test MyISAM +# + +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = ucs2 engine=MYISAM; +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = ucs2 engine=MYISAM; +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = ucs2 engine=MYISAM; +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = ucs2 engine=MYISAM; +CREATE TABLE `ݏݏ`(`` char(5)) DEFAULT CHARSET = ucs2 engine=MYISAM; +CREATE TABLE `ޏޏ`(`` char(5)) DEFAULT CHARSET = ucs2 engine=MYISAM; + +INSERT INTO `` VALUES (''),(''),(''); +INSERT INTO `` VALUES (''),(''),(''); +INSERT INTO `ݏݏ` VALUES (''),(''),(''); + +ALTER TABLE `` ADD `` char(1) FIRST; +ALTER TABLE `` ADD `` char(1) AFTER ``; +ALTER TABLE `` ADD `` char(1); +ALTER TABLE `` ADD INDEX (``); +ALTER TABLE `` ADD PRIMARY KEY (``); +ALTER TABLE `` ADD UNIQUE (``); +#ALTER TABLE `` ADD FOREIGN KEY (``) REFERENCES ``(``); +ALTER TABLE `` CHANGE `` `` char(1); +ALTER TABLE `` MODIFY `` char(6); + +SELECT * FROM ``; +DESC ``; +SHOW CREATE TABLE ``; + +ALTER TABLE `` DROP INDEX ``; +ALTER TABLE `` DROP PRIMARY KEY; +ALTER TABLE `` DROP INDEX ``; +#ALTER TABLE `` DROP FOREIGN KEY ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; +SELECT * FROM ``; +DESC ``; +SHOW CREATE TABLE ``; + +ALTER TABLE `` ADD `` char(1) FIRST; +ALTER TABLE `` ADD `` char(1) AFTER ``; +ALTER TABLE `` ADD `` char(1); +ALTER TABLE `` ADD INDEX (``); +ALTER TABLE `` ADD PRIMARY KEY (``); +ALTER TABLE `` ADD UNIQUE (``); +#ALTER TABLE `` ADD FOREIGN KEY (``) REFERENCES ``(``); +ALTER TABLE `` CHANGE `` `` char(1); +ALTER TABLE `` MODIFY `` char(6); + +SELECT * FROM ``; +DESC ``; +SHOW CREATE TABLE ``; + +ALTER TABLE `` DROP INDEX ``; +ALTER TABLE `` DROP PRIMARY KEY; +ALTER TABLE `` DROP INDEX ``; +#ALTER TABLE `` DROP FOREIGN KEY ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; + +SELECT * FROM ``; +DESC ``; +SHOW CREATE TABLE ``; + +ALTER TABLE `ݏݏ` ADD `` char(1) FIRST; +ALTER TABLE `ݏݏ` ADD `` char(1) AFTER ``; +ALTER TABLE `ݏݏ` ADD `` char(1); +ALTER TABLE `ݏݏ` ADD INDEX (``); +ALTER TABLE `ݏݏ` ADD PRIMARY KEY (``); +ALTER TABLE `ݏݏ` ADD UNIQUE (``); +#ALTER TABLE `ݏݏ` ADD FOREIGN KEY (``) REFERENCES `ޏޏ`(``); +ALTER TABLE `ݏݏ` CHANGE `` `` char(1); +ALTER TABLE `ݏݏ` MODIFY `` char(6); + +SELECT * FROM `ݏݏ`; +DESC `ݏݏ`; +SHOW CREATE TABLE `ݏݏ`; + +ALTER TABLE `ݏݏ` DROP INDEX ``; +ALTER TABLE `ݏݏ` DROP PRIMARY KEY; +ALTER TABLE `ݏݏ` DROP INDEX ``; +#ALTER TABLE `ݏݏ` DROP FOREIGN KEY ``; +ALTER TABLE `ݏݏ` DROP ``; +ALTER TABLE `ݏݏ` DROP ``; +ALTER TABLE `ݏݏ` DROP ``; + +SELECT * FROM `ݏݏ`; +DESC `ݏݏ`; +SHOW CREATE TABLE `ݏݏ`; + +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE `ݏݏ`; +DROP TABLE `ޏޏ`; + +# +# Test HEAP +# + +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = ucs2 engine=HEAP; +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = ucs2 engine=HEAP; +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = ucs2 engine=HEAP; +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = ucs2 engine=HEAP; +CREATE TABLE `ݏݏ`(`` char(5)) DEFAULT CHARSET = ucs2 engine=HEAP; +CREATE TABLE `ޏޏ`(`` char(5)) DEFAULT CHARSET = ucs2 engine=HEAP; + +INSERT INTO `` VALUES (''),(''),(''); +INSERT INTO `` VALUES (''),(''),(''); +INSERT INTO `ݏݏ` VALUES (''),(''),(''); + +ALTER TABLE `` ADD `` char(1) FIRST; +ALTER TABLE `` ADD `` char(1) AFTER ``; +ALTER TABLE `` ADD `` char(1); +ALTER TABLE `` ADD INDEX (``); +ALTER TABLE `` ADD PRIMARY KEY (``); +ALTER TABLE `` ADD UNIQUE (``); +#ALTER TABLE `` ADD FOREIGN KEY (``) REFERENCES ``(``); +ALTER TABLE `` CHANGE `` `` char(1); +ALTER TABLE `` MODIFY `` char(6); + +SELECT * FROM ``; +DESC ``; +SHOW CREATE TABLE ``; + +ALTER TABLE `` DROP INDEX ``; +ALTER TABLE `` DROP PRIMARY KEY; +ALTER TABLE `` DROP INDEX ``; +#ALTER TABLE `` DROP FOREIGN KEY ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; +SELECT * FROM ``; +DESC ``; +SHOW CREATE TABLE ``; + +ALTER TABLE `` ADD `` char(1) FIRST; +ALTER TABLE `` ADD `` char(1) AFTER ``; +ALTER TABLE `` ADD `` char(1); +ALTER TABLE `` ADD INDEX (``); +ALTER TABLE `` ADD PRIMARY KEY (``); +ALTER TABLE `` ADD UNIQUE (``); +#ALTER TABLE `` ADD FOREIGN KEY (``) REFERENCES ``(``); +ALTER TABLE `` CHANGE `` `` char(1); +ALTER TABLE `` MODIFY `` char(6); + +SELECT * FROM ``; +DESC ``; +SHOW CREATE TABLE ``; + +ALTER TABLE `` DROP INDEX ``; +ALTER TABLE `` DROP PRIMARY KEY; +ALTER TABLE `` DROP INDEX ``; +#ALTER TABLE `` DROP FOREIGN KEY ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; + +SELECT * FROM ``; +DESC ``; +SHOW CREATE TABLE ``; + +ALTER TABLE `ݏݏ` ADD `` char(1) FIRST; +ALTER TABLE `ݏݏ` ADD `` char(1) AFTER ``; +ALTER TABLE `ݏݏ` ADD `` char(1); +ALTER TABLE `ݏݏ` ADD INDEX (``); +ALTER TABLE `ݏݏ` ADD PRIMARY KEY (``); +ALTER TABLE `ݏݏ` ADD UNIQUE (``); +#ALTER TABLE `ݏݏ` ADD FOREIGN KEY (``) REFERENCES `ޏޏ`(``); +ALTER TABLE `ݏݏ` CHANGE `` `` char(1); +ALTER TABLE `ݏݏ` MODIFY `` char(6); + +SELECT * FROM `ݏݏ`; +DESC `ݏݏ`; +SHOW CREATE TABLE `ݏݏ`; + +ALTER TABLE `ݏݏ` DROP INDEX ``; +ALTER TABLE `ݏݏ` DROP PRIMARY KEY; +ALTER TABLE `ݏݏ` DROP INDEX ``; +#ALTER TABLE `ݏݏ` DROP FOREIGN KEY ``; +ALTER TABLE `ݏݏ` DROP ``; +ALTER TABLE `ݏݏ` DROP ``; +ALTER TABLE `ݏݏ` DROP ``; + +SELECT * FROM `ݏݏ`; +DESC `ݏݏ`; +SHOW CREATE TABLE `ݏݏ`; + +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE `ݏݏ`; +DROP TABLE `ޏޏ`; + +# +# Test BDB +# + +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = ucs2 engine=BDB; +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = ucs2 engine=BDB; +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = ucs2 engine=BDB; +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = ucs2 engine=BDB; +CREATE TABLE `ݏݏ`(`` char(5)) DEFAULT CHARSET = ucs2 engine=BDB; +CREATE TABLE `ޏޏ`(`` char(5)) DEFAULT CHARSET = ucs2 engine=BDB; + +INSERT INTO `` VALUES (''),(''),(''); +INSERT INTO `` VALUES (''),(''),(''); +INSERT INTO `ݏݏ` VALUES (''),(''),(''); + +ALTER TABLE `` ADD `` char(1) FIRST; +ALTER TABLE `` ADD `` char(1) AFTER ``; +ALTER TABLE `` ADD `` char(1); +ALTER TABLE `` ADD INDEX (``); +ALTER TABLE `` ADD PRIMARY KEY (``); +#Multiple NULL fields are not allowed in BDB +#ALTER TABLE `` ADD UNIQUE (``); +#ALTER TABLE `` ADD FOREIGN KEY (``) REFERENCES ``(``); +ALTER TABLE `` CHANGE `` `` char(1); +ALTER TABLE `` MODIFY `` char(6); + +SELECT * FROM ``; +DESC ``; +SHOW CREATE TABLE ``; + +ALTER TABLE `` DROP INDEX ``; +ALTER TABLE `` DROP PRIMARY KEY; +#ALTER TABLE `` DROP INDEX ``; +#ALTER TABLE `` DROP FOREIGN KEY ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; +SELECT * FROM ``; +DESC ``; +SHOW CREATE TABLE ``; + +ALTER TABLE `` ADD `` char(1) FIRST; +ALTER TABLE `` ADD `` char(1) AFTER ``; +ALTER TABLE `` ADD `` char(1); +ALTER TABLE `` ADD INDEX (``); +ALTER TABLE `` ADD PRIMARY KEY (``); +#ALTER TABLE `` ADD UNIQUE (``); +#ALTER TABLE `` ADD FOREIGN KEY (``) REFERENCES ``(``); +ALTER TABLE `` CHANGE `` `` char(1); +ALTER TABLE `` MODIFY `` char(6); + +SELECT * FROM ``; +DESC ``; +SHOW CREATE TABLE ``; + +ALTER TABLE `` DROP INDEX ``; +ALTER TABLE `` DROP PRIMARY KEY; +#ALTER TABLE `` DROP INDEX ``; +#ALTER TABLE `` DROP FOREIGN KEY ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; + +SELECT * FROM ``; +DESC ``; +SHOW CREATE TABLE ``; + +ALTER TABLE `ݏݏ` ADD `` char(1) FIRST; +ALTER TABLE `ݏݏ` ADD `` char(1) AFTER ``; +ALTER TABLE `ݏݏ` ADD `` char(1); +ALTER TABLE `ݏݏ` ADD INDEX (``); +ALTER TABLE `ݏݏ` ADD PRIMARY KEY (``); +#ALTER TABLE `ݏݏ` ADD UNIQUE (``); +#ALTER TABLE `ݏݏ` ADD FOREIGN KEY (``) REFERENCES `ޏޏ`(``); +ALTER TABLE `ݏݏ` CHANGE `` `` char(1); +ALTER TABLE `ݏݏ` MODIFY `` char(6); + +SELECT * FROM `ݏݏ`; +DESC `ݏݏ`; +SHOW CREATE TABLE `ݏݏ`; + +ALTER TABLE `ݏݏ` DROP INDEX ``; +ALTER TABLE `ݏݏ` DROP PRIMARY KEY; +#ALTER TABLE `ݏݏ` DROP INDEX ``; +#ALTER TABLE `ݏݏ` DROP FOREIGN KEY ``; +ALTER TABLE `ݏݏ` DROP ``; +ALTER TABLE `ݏݏ` DROP ``; +ALTER TABLE `ݏݏ` DROP ``; + +SELECT * FROM `ݏݏ`; +DESC `ݏݏ`; +SHOW CREATE TABLE `ݏݏ`; + +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE `ݏݏ`; +DROP TABLE `ޏޏ`; diff --git a/mysql-test/suite/jp/t/jp_alter_ujis.test b/mysql-test/suite/jp/t/jp_alter_ujis.test new file mode 100755 index 00000000000..d388d20c49b --- /dev/null +++ b/mysql-test/suite/jp/t/jp_alter_ujis.test @@ -0,0 +1,418 @@ +--source include/have_ujis.inc + +--disable_warnings +DROP TABLE IF EXISTS ``; +DROP TABLE IF EXISTS ``; +DROP TABLE IF EXISTS ``; +DROP TABLE IF EXISTS ``; +DROP TABLE IF EXISTS `ݏݏ`; +DROP TABLE IF EXISTS `ޏޏ`; +--enable_warnings + +# +# Test altering table with Japanese characters in ujis encoding +# + +SET NAMES ujis; +SET character_set_database = ujis; + +# +# Test InnoDB +# +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = ujis engine=INNODB; +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = ujis engine=INNODB; +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = ujis engine=INNODB; +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = ujis engine=INNODB; +CREATE TABLE `ݏݏ`(`` char(5)) DEFAULT CHARSET = ujis engine=INNODB; +CREATE TABLE `ޏޏ`(`` char(5)) DEFAULT CHARSET = ujis engine=INNODB; + +INSERT INTO `` VALUES (''),(''),(''); +INSERT INTO `` VALUES (''),(''),(''); +INSERT INTO `ݏݏ` VALUES (''),(''),(''); + +# Test basic alter operation + +ALTER TABLE `` ADD `` char(1) FIRST; +ALTER TABLE `` ADD `` char(1) AFTER ``; +ALTER TABLE `` ADD `` char(1); +ALTER TABLE `` ADD INDEX (``); +ALTER TABLE `` ADD PRIMARY KEY (``); +ALTER TABLE `` ADD UNIQUE (``); +#Multi-byte field name is not allowed for FOREIGN KEY As of 4.1.4 +#ALTER TABLE `` ADD FOREIGN KEY (``) REFERENCES ``(``); +ALTER TABLE `` CHANGE `` `` char(1); +ALTER TABLE `` MODIFY `` char(6); + +SELECT * FROM ``; +DESC ``; +SHOW CREATE TABLE ``; + +ALTER TABLE `` DROP INDEX ``; +ALTER TABLE `` DROP PRIMARY KEY; +ALTER TABLE `` DROP INDEX ``; +#ALTER TABLE `` DROP FOREIGN KEY ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; +SELECT * FROM ``; +DESC ``; +SHOW CREATE TABLE ``; + +ALTER TABLE `` ADD `` char(1) FIRST; +ALTER TABLE `` ADD `` char(1) AFTER ``; +ALTER TABLE `` ADD `` char(1); +ALTER TABLE `` ADD INDEX (``); +ALTER TABLE `` ADD PRIMARY KEY (``); +ALTER TABLE `` ADD UNIQUE (``); +#Multi-byte field name is not allowed for FOREIGN KEY As of 4.1.4 +#ALTER TABLE `` ADD FOREIGN KEY (``) REFERENCES ``(``); +ALTER TABLE `` CHANGE `` `` char(1); +ALTER TABLE `` MODIFY `` char(6); + +SELECT * FROM ``; +DESC ``; +SHOW CREATE TABLE ``; + +ALTER TABLE `` DROP INDEX ``; +ALTER TABLE `` DROP PRIMARY KEY; +ALTER TABLE `` DROP INDEX ``; +#ALTER TABLE `` DROP FOREIGN KEY ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; + +SELECT * FROM ``; +DESC ``; +SHOW CREATE TABLE ``; + +ALTER TABLE `ݏݏ` ADD `` char(1) FIRST; +ALTER TABLE `ݏݏ` ADD `` char(1) AFTER ``; +ALTER TABLE `ݏݏ` ADD `` char(1); +ALTER TABLE `ݏݏ` ADD INDEX (``); +ALTER TABLE `ݏݏ` ADD PRIMARY KEY (``); +ALTER TABLE `ݏݏ` ADD UNIQUE (``); +#Multi-byte field name is not allowed for FOREIGN KEY As of 4.1.4 +#ALTER TABLE `ݏݏ` ADD FOREIGN KEY (``) REFERENCES `ޏޏ`(``); +ALTER TABLE `ݏݏ` CHANGE `` `` char(1); +ALTER TABLE `ݏݏ` MODIFY `` char(6); + +SELECT * FROM `ݏݏ`; +DESC `ݏݏ`; +SHOW CREATE TABLE `ݏݏ`; + +ALTER TABLE `ݏݏ` DROP INDEX ``; +ALTER TABLE `ݏݏ` DROP PRIMARY KEY; +ALTER TABLE `ݏݏ` DROP INDEX ``; +#ALTER TABLE `ݏݏ` DROP FOREIGN KEY ``; +ALTER TABLE `ݏݏ` DROP ``; +ALTER TABLE `ݏݏ` DROP ``; +ALTER TABLE `ݏݏ` DROP ``; + +SELECT * FROM `ݏݏ`; +DESC `ݏݏ`; +SHOW CREATE TABLE `ݏݏ`; + +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE `ݏݏ`; +DROP TABLE `ޏޏ`; + +# +# Test MyISAM +# + +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = ujis engine=MYISAM; +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = ujis engine=MYISAM; +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = ujis engine=MYISAM; +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = ujis engine=MYISAM; +CREATE TABLE `ݏݏ`(`` char(5)) DEFAULT CHARSET = ujis engine=MYISAM; +CREATE TABLE `ޏޏ`(`` char(5)) DEFAULT CHARSET = ujis engine=MYISAM; + +INSERT INTO `` VALUES (''),(''),(''); +INSERT INTO `` VALUES (''),(''),(''); +INSERT INTO `ݏݏ` VALUES (''),(''),(''); + +ALTER TABLE `` ADD `` char(1) FIRST; +ALTER TABLE `` ADD `` char(1) AFTER ``; +ALTER TABLE `` ADD `` char(1); +ALTER TABLE `` ADD INDEX (``); +ALTER TABLE `` ADD PRIMARY KEY (``); +ALTER TABLE `` ADD UNIQUE (``); +#ALTER TABLE `` ADD FOREIGN KEY (``) REFERENCES ``(``); +ALTER TABLE `` CHANGE `` `` char(1); +ALTER TABLE `` MODIFY `` char(6); + +SELECT * FROM ``; +DESC ``; +SHOW CREATE TABLE ``; + +ALTER TABLE `` DROP INDEX ``; +ALTER TABLE `` DROP PRIMARY KEY; +ALTER TABLE `` DROP INDEX ``; +#ALTER TABLE `` DROP FOREIGN KEY ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; +SELECT * FROM ``; +DESC ``; +SHOW CREATE TABLE ``; + +ALTER TABLE `` ADD `` char(1) FIRST; +ALTER TABLE `` ADD `` char(1) AFTER ``; +ALTER TABLE `` ADD `` char(1); +ALTER TABLE `` ADD INDEX (``); +ALTER TABLE `` ADD PRIMARY KEY (``); +ALTER TABLE `` ADD UNIQUE (``); +#ALTER TABLE `` ADD FOREIGN KEY (``) REFERENCES ``(``); +ALTER TABLE `` CHANGE `` `` char(1); +ALTER TABLE `` MODIFY `` char(6); + +SELECT * FROM ``; +DESC ``; +SHOW CREATE TABLE ``; + +ALTER TABLE `` DROP INDEX ``; +ALTER TABLE `` DROP PRIMARY KEY; +ALTER TABLE `` DROP INDEX ``; +#ALTER TABLE `` DROP FOREIGN KEY ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; + +SELECT * FROM ``; +DESC ``; +SHOW CREATE TABLE ``; + +ALTER TABLE `ݏݏ` ADD `` char(1) FIRST; +ALTER TABLE `ݏݏ` ADD `` char(1) AFTER ``; +ALTER TABLE `ݏݏ` ADD `` char(1); +ALTER TABLE `ݏݏ` ADD INDEX (``); +ALTER TABLE `ݏݏ` ADD PRIMARY KEY (``); +ALTER TABLE `ݏݏ` ADD UNIQUE (``); +#ALTER TABLE `ݏݏ` ADD FOREIGN KEY (``) REFERENCES `ޏޏ`(``); +ALTER TABLE `ݏݏ` CHANGE `` `` char(1); +ALTER TABLE `ݏݏ` MODIFY `` char(6); + +SELECT * FROM `ݏݏ`; +DESC `ݏݏ`; +SHOW CREATE TABLE `ݏݏ`; + +ALTER TABLE `ݏݏ` DROP INDEX ``; +ALTER TABLE `ݏݏ` DROP PRIMARY KEY; +ALTER TABLE `ݏݏ` DROP INDEX ``; +#ALTER TABLE `ݏݏ` DROP FOREIGN KEY ``; +ALTER TABLE `ݏݏ` DROP ``; +ALTER TABLE `ݏݏ` DROP ``; +ALTER TABLE `ݏݏ` DROP ``; + +SELECT * FROM `ݏݏ`; +DESC `ݏݏ`; +SHOW CREATE TABLE `ݏݏ`; + +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE `ݏݏ`; +DROP TABLE `ޏޏ`; + +# +# Test HEAP +# + +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = ujis engine=HEAP; +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = ujis engine=HEAP; +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = ujis engine=HEAP; +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = ujis engine=HEAP; +CREATE TABLE `ݏݏ`(`` char(5)) DEFAULT CHARSET = ujis engine=HEAP; +CREATE TABLE `ޏޏ`(`` char(5)) DEFAULT CHARSET = ujis engine=HEAP; + +INSERT INTO `` VALUES (''),(''),(''); +INSERT INTO `` VALUES (''),(''),(''); +INSERT INTO `ݏݏ` VALUES (''),(''),(''); + +ALTER TABLE `` ADD `` char(1) FIRST; +ALTER TABLE `` ADD `` char(1) AFTER ``; +ALTER TABLE `` ADD `` char(1); +ALTER TABLE `` ADD INDEX (``); +ALTER TABLE `` ADD PRIMARY KEY (``); +ALTER TABLE `` ADD UNIQUE (``); +#ALTER TABLE `` ADD FOREIGN KEY (``) REFERENCES ``(``); +ALTER TABLE `` CHANGE `` `` char(1); +ALTER TABLE `` MODIFY `` char(6); + +SELECT * FROM ``; +DESC ``; +SHOW CREATE TABLE ``; + +ALTER TABLE `` DROP INDEX ``; +ALTER TABLE `` DROP PRIMARY KEY; +ALTER TABLE `` DROP INDEX ``; +#ALTER TABLE `` DROP FOREIGN KEY ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; +SELECT * FROM ``; +DESC ``; +SHOW CREATE TABLE ``; + +ALTER TABLE `` ADD `` char(1) FIRST; +ALTER TABLE `` ADD `` char(1) AFTER ``; +ALTER TABLE `` ADD `` char(1); +ALTER TABLE `` ADD INDEX (``); +ALTER TABLE `` ADD PRIMARY KEY (``); +ALTER TABLE `` ADD UNIQUE (``); +#ALTER TABLE `` ADD FOREIGN KEY (``) REFERENCES ``(``); +ALTER TABLE `` CHANGE `` `` char(1); +ALTER TABLE `` MODIFY `` char(6); + +SELECT * FROM ``; +DESC ``; +SHOW CREATE TABLE ``; + +ALTER TABLE `` DROP INDEX ``; +ALTER TABLE `` DROP PRIMARY KEY; +ALTER TABLE `` DROP INDEX ``; +#ALTER TABLE `` DROP FOREIGN KEY ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; + +SELECT * FROM ``; +DESC ``; +SHOW CREATE TABLE ``; + +ALTER TABLE `ݏݏ` ADD `` char(1) FIRST; +ALTER TABLE `ݏݏ` ADD `` char(1) AFTER ``; +ALTER TABLE `ݏݏ` ADD `` char(1); +ALTER TABLE `ݏݏ` ADD INDEX (``); +ALTER TABLE `ݏݏ` ADD PRIMARY KEY (``); +ALTER TABLE `ݏݏ` ADD UNIQUE (``); +#ALTER TABLE `ݏݏ` ADD FOREIGN KEY (``) REFERENCES `ޏޏ`(``); +ALTER TABLE `ݏݏ` CHANGE `` `` char(1); +ALTER TABLE `ݏݏ` MODIFY `` char(6); + +SELECT * FROM `ݏݏ`; +DESC `ݏݏ`; +SHOW CREATE TABLE `ݏݏ`; + +ALTER TABLE `ݏݏ` DROP INDEX ``; +ALTER TABLE `ݏݏ` DROP PRIMARY KEY; +ALTER TABLE `ݏݏ` DROP INDEX ``; +#ALTER TABLE `ݏݏ` DROP FOREIGN KEY ``; +ALTER TABLE `ݏݏ` DROP ``; +ALTER TABLE `ݏݏ` DROP ``; +ALTER TABLE `ݏݏ` DROP ``; + +SELECT * FROM `ݏݏ`; +DESC `ݏݏ`; +SHOW CREATE TABLE `ݏݏ`; + +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE `ݏݏ`; +DROP TABLE `ޏޏ`; + +# +# Test BDB +# + +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = ujis engine=BDB; +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = ujis engine=BDB; +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = ujis engine=BDB; +CREATE TABLE ``(`` char(5)) DEFAULT CHARSET = ujis engine=BDB; +CREATE TABLE `ݏݏ`(`` char(5)) DEFAULT CHARSET = ujis engine=BDB; +CREATE TABLE `ޏޏ`(`` char(5)) DEFAULT CHARSET = ujis engine=BDB; + +INSERT INTO `` VALUES (''),(''),(''); +INSERT INTO `` VALUES (''),(''),(''); +INSERT INTO `ݏݏ` VALUES (''),(''),(''); + +ALTER TABLE `` ADD `` char(1) FIRST; +ALTER TABLE `` ADD `` char(1) AFTER ``; +ALTER TABLE `` ADD `` char(1); +ALTER TABLE `` ADD INDEX (``); +ALTER TABLE `` ADD PRIMARY KEY (``); +#Multiple NULL fields are not allowed in BDB +#ALTER TABLE `` ADD UNIQUE (``); +#ALTER TABLE `` ADD FOREIGN KEY (``) REFERENCES ``(``); +ALTER TABLE `` CHANGE `` `` char(1); +ALTER TABLE `` MODIFY `` char(6); + +SELECT * FROM ``; +DESC ``; +SHOW CREATE TABLE ``; + +ALTER TABLE `` DROP INDEX ``; +ALTER TABLE `` DROP PRIMARY KEY; +#ALTER TABLE `` DROP INDEX ``; +#ALTER TABLE `` DROP FOREIGN KEY ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; +SELECT * FROM ``; +DESC ``; +SHOW CREATE TABLE ``; + +ALTER TABLE `` ADD `` char(1) FIRST; +ALTER TABLE `` ADD `` char(1) AFTER ``; +ALTER TABLE `` ADD `` char(1); +ALTER TABLE `` ADD INDEX (``); +ALTER TABLE `` ADD PRIMARY KEY (``); +#ALTER TABLE `` ADD UNIQUE (``); +#ALTER TABLE `` ADD FOREIGN KEY (``) REFERENCES ``(``); +ALTER TABLE `` CHANGE `` `` char(1); +ALTER TABLE `` MODIFY `` char(6); + +SELECT * FROM ``; +DESC ``; +SHOW CREATE TABLE ``; + +ALTER TABLE `` DROP INDEX ``; +ALTER TABLE `` DROP PRIMARY KEY; +#ALTER TABLE `` DROP INDEX ``; +#ALTER TABLE `` DROP FOREIGN KEY ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; +ALTER TABLE `` DROP ``; + +SELECT * FROM ``; +DESC ``; +SHOW CREATE TABLE ``; + +ALTER TABLE `ݏݏ` ADD `` char(1) FIRST; +ALTER TABLE `ݏݏ` ADD `` char(1) AFTER ``; +ALTER TABLE `ݏݏ` ADD `` char(1); +ALTER TABLE `ݏݏ` ADD INDEX (``); +ALTER TABLE `ݏݏ` ADD PRIMARY KEY (``); +#ALTER TABLE `ݏݏ` ADD UNIQUE (``); +#ALTER TABLE `ݏݏ` ADD FOREIGN KEY (``) REFERENCES `ޏޏ`(``); +ALTER TABLE `ݏݏ` CHANGE `` `` char(1); +ALTER TABLE `ݏݏ` MODIFY `` char(6); + +SELECT * FROM `ݏݏ`; +DESC `ݏݏ`; +SHOW CREATE TABLE `ݏݏ`; + +ALTER TABLE `ݏݏ` DROP INDEX ``; +ALTER TABLE `ݏݏ` DROP PRIMARY KEY; +#ALTER TABLE `ݏݏ` DROP INDEX ``; +#ALTER TABLE `ݏݏ` DROP FOREIGN KEY ``; +ALTER TABLE `ݏݏ` DROP ``; +ALTER TABLE `ݏݏ` DROP ``; +ALTER TABLE `ݏݏ` DROP ``; + +SELECT * FROM `ݏݏ`; +DESC `ݏݏ`; +SHOW CREATE TABLE `ݏݏ`; + +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE `ݏݏ`; +DROP TABLE `ޏޏ`; diff --git a/mysql-test/suite/jp/t/jp_alter_utf8.test b/mysql-test/suite/jp/t/jp_alter_utf8.test new file mode 100755 index 00000000000..6771343f38f --- /dev/null +++ b/mysql-test/suite/jp/t/jp_alter_utf8.test @@ -0,0 +1,416 @@ +--disable_warnings +DROP TABLE IF EXISTS `アアア`; +DROP TABLE IF EXISTS `イイイ`; +DROP TABLE IF EXISTS `あああ`; +DROP TABLE IF EXISTS `いいい`; +DROP TABLE IF EXISTS `龖龖龖`; +DROP TABLE IF EXISTS `龗龗龗`; +--enable_warnings + +# +# Test altering table with Japanese characters in utf8 encoding +# + +SET NAMES utf8; +SET character_set_database = utf8; + +# +# Test InnoDB +# +CREATE TABLE `アアア`(`キキキ` char(5)) DEFAULT CHARSET = utf8 engine=INNODB; +CREATE TABLE `イイイ`(`ケケケ` char(5)) DEFAULT CHARSET = utf8 engine=INNODB; +CREATE TABLE `あああ`(`ききき` char(5)) DEFAULT CHARSET = utf8 engine=INNODB; +CREATE TABLE `いいい`(`けけけ` char(5)) DEFAULT CHARSET = utf8 engine=INNODB; +CREATE TABLE `龖龖龖`(`丂丂丂` char(5)) DEFAULT CHARSET = utf8 engine=INNODB; +CREATE TABLE `龗龗龗`(`乚乚乚` char(5)) DEFAULT CHARSET = utf8 engine=INNODB; + +INSERT INTO `アアア` VALUES ('アアアアア'),('イイイイイ'),('ウウウウウ'); +INSERT INTO `あああ` VALUES ('あああああ'),('いいいいい'),('ううううう'); +INSERT INTO `龖龖龖` VALUES ('丂丂丂丂丂'),('丄丄丄丄丄'),('丅丅丅丅丅'); + +# Test basic alter operation + +ALTER TABLE `アアア` ADD `カカカ` char(1) FIRST; +ALTER TABLE `アアア` ADD `ククク` char(1) AFTER `キキキ`; +ALTER TABLE `アアア` ADD `ケケケ` char(1); +ALTER TABLE `アアア` ADD INDEX (`カカカ`); +ALTER TABLE `アアア` ADD PRIMARY KEY (`キキキ`); +ALTER TABLE `アアア` ADD UNIQUE (`ククク`); +#Multi-byte field name is not allowed for FOREIGN KEY As of 4.1.4 +#ALTER TABLE `アアア` ADD FOREIGN KEY (`ケケケ`) REFERENCES `イイイ`(`ケケケ`); +ALTER TABLE `アアア` CHANGE `カカカ` `カカ` char(1); +ALTER TABLE `アアア` MODIFY `キキキ` char(6); + +SELECT * FROM `アアア`; +DESC `アアア`; +SHOW CREATE TABLE `アアア`; + +ALTER TABLE `アアア` DROP INDEX `カカカ`; +ALTER TABLE `アアア` DROP PRIMARY KEY; +ALTER TABLE `アアア` DROP INDEX `ククク`; +#ALTER TABLE `アアア` DROP FOREIGN KEY `ケケケ`; +ALTER TABLE `アアア` DROP `カカ`; +ALTER TABLE `アアア` DROP `ククク`; +ALTER TABLE `アアア` DROP `ケケケ`; +SELECT * FROM `アアア`; +DESC `アアア`; +SHOW CREATE TABLE `アアア`; + +ALTER TABLE `あああ` ADD `かかか` char(1) FIRST; +ALTER TABLE `あああ` ADD `くくく` char(1) AFTER `ききき`; +ALTER TABLE `あああ` ADD `けけけ` char(1); +ALTER TABLE `あああ` ADD INDEX (`かかか`); +ALTER TABLE `あああ` ADD PRIMARY KEY (`ききき`); +ALTER TABLE `あああ` ADD UNIQUE (`くくく`); +#Multi-byte field name is not allowed for FOREIGN KEY As of 4.1.4 +#ALTER TABLE `あああ` ADD FOREIGN KEY (`けけけ`) REFERENCES `いいい`(`けけけ`); +ALTER TABLE `あああ` CHANGE `かかか` `かか` char(1); +ALTER TABLE `あああ` MODIFY `ききき` char(6); + +SELECT * FROM `あああ`; +DESC `あああ`; +SHOW CREATE TABLE `あああ`; + +ALTER TABLE `あああ` DROP INDEX `かかか`; +ALTER TABLE `あああ` DROP PRIMARY KEY; +ALTER TABLE `あああ` DROP INDEX `くくく`; +#ALTER TABLE `あああ` DROP FOREIGN KEY `けけけ`; +ALTER TABLE `あああ` DROP `かか`; +ALTER TABLE `あああ` DROP `くくく`; +ALTER TABLE `あああ` DROP `けけけ`; + +SELECT * FROM `あああ`; +DESC `あああ`; +SHOW CREATE TABLE `あああ`; + +ALTER TABLE `龖龖龖` ADD `丄丄丄` char(1) FIRST; +ALTER TABLE `龖龖龖` ADD `丅丅丅` char(1) AFTER `丂丂丂`; +ALTER TABLE `龖龖龖` ADD `乚乚乚` char(1); +ALTER TABLE `龖龖龖` ADD INDEX (`丄丄丄`); +ALTER TABLE `龖龖龖` ADD PRIMARY KEY (`丂丂丂`); +ALTER TABLE `龖龖龖` ADD UNIQUE (`丅丅丅`); +#Multi-byte field name is not allowed for FOREIGN KEY As of 4.1.4 +#ALTER TABLE `龖龖龖` ADD FOREIGN KEY (`乚乚乚`) REFERENCES `龗龗龗`(`乚乚乚`); +ALTER TABLE `龖龖龖` CHANGE `丄丄丄` `丄丄` char(1); +ALTER TABLE `龖龖龖` MODIFY `丂丂丂` char(6); + +SELECT * FROM `龖龖龖`; +DESC `龖龖龖`; +SHOW CREATE TABLE `龖龖龖`; + +ALTER TABLE `龖龖龖` DROP INDEX `丄丄丄`; +ALTER TABLE `龖龖龖` DROP PRIMARY KEY; +ALTER TABLE `龖龖龖` DROP INDEX `丅丅丅`; +#ALTER TABLE `龖龖龖` DROP FOREIGN KEY `乚乚乚`; +ALTER TABLE `龖龖龖` DROP `丄丄`; +ALTER TABLE `龖龖龖` DROP `丅丅丅`; +ALTER TABLE `龖龖龖` DROP `乚乚乚`; + +SELECT * FROM `龖龖龖`; +DESC `龖龖龖`; +SHOW CREATE TABLE `龖龖龖`; + +DROP TABLE `アアア`; +DROP TABLE `イイイ`; +DROP TABLE `あああ`; +DROP TABLE `いいい`; +DROP TABLE `龖龖龖`; +DROP TABLE `龗龗龗`; + +# +# Test MyISAM +# + +CREATE TABLE `アアア`(`キキキ` char(5)) DEFAULT CHARSET = utf8 engine=MYISAM; +CREATE TABLE `イイイ`(`ケケケ` char(5)) DEFAULT CHARSET = utf8 engine=MYISAM; +CREATE TABLE `あああ`(`ききき` char(5)) DEFAULT CHARSET = utf8 engine=MYISAM; +CREATE TABLE `いいい`(`けけけ` char(5)) DEFAULT CHARSET = utf8 engine=MYISAM; +CREATE TABLE `龖龖龖`(`丂丂丂` char(5)) DEFAULT CHARSET = utf8 engine=MYISAM; +CREATE TABLE `龗龗龗`(`乚乚乚` char(5)) DEFAULT CHARSET = utf8 engine=MYISAM; + +INSERT INTO `アアア` VALUES ('アアアアア'),('イイイイイ'),('ウウウウウ'); +INSERT INTO `あああ` VALUES ('あああああ'),('いいいいい'),('ううううう'); +INSERT INTO `龖龖龖` VALUES ('丂丂丂丂丂'),('丄丄丄丄丄'),('丅丅丅丅丅'); + +ALTER TABLE `アアア` ADD `カカカ` char(1) FIRST; +ALTER TABLE `アアア` ADD `ククク` char(1) AFTER `キキキ`; +ALTER TABLE `アアア` ADD `ケケケ` char(1); +ALTER TABLE `アアア` ADD INDEX (`カカカ`); +ALTER TABLE `アアア` ADD PRIMARY KEY (`キキキ`); +ALTER TABLE `アアア` ADD UNIQUE (`ククク`); +#ALTER TABLE `アアア` ADD FOREIGN KEY (`ケケケ`) REFERENCES `イイイ`(`ケケケ`); +ALTER TABLE `アアア` CHANGE `カカカ` `カカ` char(1); +ALTER TABLE `アアア` MODIFY `キキキ` char(6); + +SELECT * FROM `アアア`; +DESC `アアア`; +SHOW CREATE TABLE `アアア`; + +ALTER TABLE `アアア` DROP INDEX `カカカ`; +ALTER TABLE `アアア` DROP PRIMARY KEY; +ALTER TABLE `アアア` DROP INDEX `ククク`; +#ALTER TABLE `アアア` DROP FOREIGN KEY `ケケケ`; +ALTER TABLE `アアア` DROP `カカ`; +ALTER TABLE `アアア` DROP `ククク`; +ALTER TABLE `アアア` DROP `ケケケ`; +SELECT * FROM `アアア`; +DESC `アアア`; +SHOW CREATE TABLE `アアア`; + +ALTER TABLE `あああ` ADD `かかか` char(1) FIRST; +ALTER TABLE `あああ` ADD `くくく` char(1) AFTER `ききき`; +ALTER TABLE `あああ` ADD `けけけ` char(1); +ALTER TABLE `あああ` ADD INDEX (`かかか`); +ALTER TABLE `あああ` ADD PRIMARY KEY (`ききき`); +ALTER TABLE `あああ` ADD UNIQUE (`くくく`); +#ALTER TABLE `あああ` ADD FOREIGN KEY (`けけけ`) REFERENCES `いいい`(`けけけ`); +ALTER TABLE `あああ` CHANGE `かかか` `かか` char(1); +ALTER TABLE `あああ` MODIFY `ききき` char(6); + +SELECT * FROM `あああ`; +DESC `あああ`; +SHOW CREATE TABLE `あああ`; + +ALTER TABLE `あああ` DROP INDEX `かかか`; +ALTER TABLE `あああ` DROP PRIMARY KEY; +ALTER TABLE `あああ` DROP INDEX `くくく`; +#ALTER TABLE `あああ` DROP FOREIGN KEY `けけけ`; +ALTER TABLE `あああ` DROP `かか`; +ALTER TABLE `あああ` DROP `くくく`; +ALTER TABLE `あああ` DROP `けけけ`; + +SELECT * FROM `あああ`; +DESC `あああ`; +SHOW CREATE TABLE `あああ`; + +ALTER TABLE `龖龖龖` ADD `丄丄丄` char(1) FIRST; +ALTER TABLE `龖龖龖` ADD `丅丅丅` char(1) AFTER `丂丂丂`; +ALTER TABLE `龖龖龖` ADD `乚乚乚` char(1); +ALTER TABLE `龖龖龖` ADD INDEX (`丄丄丄`); +ALTER TABLE `龖龖龖` ADD PRIMARY KEY (`丂丂丂`); +ALTER TABLE `龖龖龖` ADD UNIQUE (`丅丅丅`); +#ALTER TABLE `龖龖龖` ADD FOREIGN KEY (`乚乚乚`) REFERENCES `龗龗龗`(`乚乚乚`); +ALTER TABLE `龖龖龖` CHANGE `丄丄丄` `丄丄` char(1); +ALTER TABLE `龖龖龖` MODIFY `丂丂丂` char(6); + +SELECT * FROM `龖龖龖`; +DESC `龖龖龖`; +SHOW CREATE TABLE `龖龖龖`; + +ALTER TABLE `龖龖龖` DROP INDEX `丄丄丄`; +ALTER TABLE `龖龖龖` DROP PRIMARY KEY; +ALTER TABLE `龖龖龖` DROP INDEX `丅丅丅`; +#ALTER TABLE `龖龖龖` DROP FOREIGN KEY `乚乚乚`; +ALTER TABLE `龖龖龖` DROP `丄丄`; +ALTER TABLE `龖龖龖` DROP `丅丅丅`; +ALTER TABLE `龖龖龖` DROP `乚乚乚`; + +SELECT * FROM `龖龖龖`; +DESC `龖龖龖`; +SHOW CREATE TABLE `龖龖龖`; + +DROP TABLE `アアア`; +DROP TABLE `イイイ`; +DROP TABLE `あああ`; +DROP TABLE `いいい`; +DROP TABLE `龖龖龖`; +DROP TABLE `龗龗龗`; + +# +# Test HEAP +# + +CREATE TABLE `アアア`(`キキキ` char(5)) DEFAULT CHARSET = utf8 engine=HEAP; +CREATE TABLE `イイイ`(`ケケケ` char(5)) DEFAULT CHARSET = utf8 engine=HEAP; +CREATE TABLE `あああ`(`ききき` char(5)) DEFAULT CHARSET = utf8 engine=HEAP; +CREATE TABLE `いいい`(`けけけ` char(5)) DEFAULT CHARSET = utf8 engine=HEAP; +CREATE TABLE `龖龖龖`(`丂丂丂` char(5)) DEFAULT CHARSET = utf8 engine=HEAP; +CREATE TABLE `龗龗龗`(`乚乚乚` char(5)) DEFAULT CHARSET = utf8 engine=HEAP; + +INSERT INTO `アアア` VALUES ('アアアアア'),('イイイイイ'),('ウウウウウ'); +INSERT INTO `あああ` VALUES ('あああああ'),('いいいいい'),('ううううう'); +INSERT INTO `龖龖龖` VALUES ('丂丂丂丂丂'),('丄丄丄丄丄'),('丅丅丅丅丅'); + +ALTER TABLE `アアア` ADD `カカカ` char(1) FIRST; +ALTER TABLE `アアア` ADD `ククク` char(1) AFTER `キキキ`; +ALTER TABLE `アアア` ADD `ケケケ` char(1); +ALTER TABLE `アアア` ADD INDEX (`カカカ`); +ALTER TABLE `アアア` ADD PRIMARY KEY (`キキキ`); +ALTER TABLE `アアア` ADD UNIQUE (`ククク`); +#ALTER TABLE `アアア` ADD FOREIGN KEY (`ケケケ`) REFERENCES `イイイ`(`ケケケ`); +ALTER TABLE `アアア` CHANGE `カカカ` `カカ` char(1); +ALTER TABLE `アアア` MODIFY `キキキ` char(6); + +SELECT * FROM `アアア`; +DESC `アアア`; +SHOW CREATE TABLE `アアア`; + +ALTER TABLE `アアア` DROP INDEX `カカカ`; +ALTER TABLE `アアア` DROP PRIMARY KEY; +ALTER TABLE `アアア` DROP INDEX `ククク`; +#ALTER TABLE `アアア` DROP FOREIGN KEY `ケケケ`; +ALTER TABLE `アアア` DROP `カカ`; +ALTER TABLE `アアア` DROP `ククク`; +ALTER TABLE `アアア` DROP `ケケケ`; +SELECT * FROM `アアア`; +DESC `アアア`; +SHOW CREATE TABLE `アアア`; + +ALTER TABLE `あああ` ADD `かかか` char(1) FIRST; +ALTER TABLE `あああ` ADD `くくく` char(1) AFTER `ききき`; +ALTER TABLE `あああ` ADD `けけけ` char(1); +ALTER TABLE `あああ` ADD INDEX (`かかか`); +ALTER TABLE `あああ` ADD PRIMARY KEY (`ききき`); +ALTER TABLE `あああ` ADD UNIQUE (`くくく`); +#ALTER TABLE `あああ` ADD FOREIGN KEY (`けけけ`) REFERENCES `いいい`(`けけけ`); +ALTER TABLE `あああ` CHANGE `かかか` `かか` char(1); +ALTER TABLE `あああ` MODIFY `ききき` char(6); + +SELECT * FROM `あああ`; +DESC `あああ`; +SHOW CREATE TABLE `あああ`; + +ALTER TABLE `あああ` DROP INDEX `かかか`; +ALTER TABLE `あああ` DROP PRIMARY KEY; +ALTER TABLE `あああ` DROP INDEX `くくく`; +#ALTER TABLE `あああ` DROP FOREIGN KEY `けけけ`; +ALTER TABLE `あああ` DROP `かか`; +ALTER TABLE `あああ` DROP `くくく`; +ALTER TABLE `あああ` DROP `けけけ`; + +SELECT * FROM `あああ`; +DESC `あああ`; +SHOW CREATE TABLE `あああ`; + +ALTER TABLE `龖龖龖` ADD `丄丄丄` char(1) FIRST; +ALTER TABLE `龖龖龖` ADD `丅丅丅` char(1) AFTER `丂丂丂`; +ALTER TABLE `龖龖龖` ADD `乚乚乚` char(1); +ALTER TABLE `龖龖龖` ADD INDEX (`丄丄丄`); +ALTER TABLE `龖龖龖` ADD PRIMARY KEY (`丂丂丂`); +ALTER TABLE `龖龖龖` ADD UNIQUE (`丅丅丅`); +#ALTER TABLE `龖龖龖` ADD FOREIGN KEY (`乚乚乚`) REFERENCES `龗龗龗`(`乚乚乚`); +ALTER TABLE `龖龖龖` CHANGE `丄丄丄` `丄丄` char(1); +ALTER TABLE `龖龖龖` MODIFY `丂丂丂` char(6); + +SELECT * FROM `龖龖龖`; +DESC `龖龖龖`; +SHOW CREATE TABLE `龖龖龖`; + +ALTER TABLE `龖龖龖` DROP INDEX `丄丄丄`; +ALTER TABLE `龖龖龖` DROP PRIMARY KEY; +ALTER TABLE `龖龖龖` DROP INDEX `丅丅丅`; +#ALTER TABLE `龖龖龖` DROP FOREIGN KEY `乚乚乚`; +ALTER TABLE `龖龖龖` DROP `丄丄`; +ALTER TABLE `龖龖龖` DROP `丅丅丅`; +ALTER TABLE `龖龖龖` DROP `乚乚乚`; + +SELECT * FROM `龖龖龖`; +DESC `龖龖龖`; +SHOW CREATE TABLE `龖龖龖`; + +DROP TABLE `アアア`; +DROP TABLE `イイイ`; +DROP TABLE `あああ`; +DROP TABLE `いいい`; +DROP TABLE `龖龖龖`; +DROP TABLE `龗龗龗`; + +# +# Test BDB +# + +CREATE TABLE `アアア`(`キキキ` char(5)) DEFAULT CHARSET = utf8 engine=BDB; +CREATE TABLE `イイイ`(`ケケケ` char(5)) DEFAULT CHARSET = utf8 engine=BDB; +CREATE TABLE `あああ`(`ききき` char(5)) DEFAULT CHARSET = utf8 engine=BDB; +CREATE TABLE `いいい`(`けけけ` char(5)) DEFAULT CHARSET = utf8 engine=BDB; +CREATE TABLE `龖龖龖`(`丂丂丂` char(5)) DEFAULT CHARSET = utf8 engine=BDB; +CREATE TABLE `龗龗龗`(`乚乚乚` char(5)) DEFAULT CHARSET = utf8 engine=BDB; + +INSERT INTO `アアア` VALUES ('アアアアア'),('イイイイイ'),('ウウウウウ'); +INSERT INTO `あああ` VALUES ('あああああ'),('いいいいい'),('ううううう'); +INSERT INTO `龖龖龖` VALUES ('丂丂丂丂丂'),('丄丄丄丄丄'),('丅丅丅丅丅'); + +ALTER TABLE `アアア` ADD `カカカ` char(1) FIRST; +ALTER TABLE `アアア` ADD `ククク` char(1) AFTER `キキキ`; +ALTER TABLE `アアア` ADD `ケケケ` char(1); +ALTER TABLE `アアア` ADD INDEX (`カカカ`); +ALTER TABLE `アアア` ADD PRIMARY KEY (`キキキ`); +#Multiple NULL fields are not allowed in BDB +#ALTER TABLE `アアア` ADD UNIQUE (`ククク`); +#ALTER TABLE `アアア` ADD FOREIGN KEY (`ケケケ`) REFERENCES `イイイ`(`ケケケ`); +ALTER TABLE `アアア` CHANGE `カカカ` `カカ` char(1); +ALTER TABLE `アアア` MODIFY `キキキ` char(6); + +SELECT * FROM `アアア`; +DESC `アアア`; +SHOW CREATE TABLE `アアア`; + +ALTER TABLE `アアア` DROP INDEX `カカカ`; +ALTER TABLE `アアア` DROP PRIMARY KEY; +#ALTER TABLE `アアア` DROP INDEX `ククク`; +#ALTER TABLE `アアア` DROP FOREIGN KEY `ケケケ`; +ALTER TABLE `アアア` DROP `カカ`; +ALTER TABLE `アアア` DROP `ククク`; +ALTER TABLE `アアア` DROP `ケケケ`; +SELECT * FROM `アアア`; +DESC `アアア`; +SHOW CREATE TABLE `アアア`; + +ALTER TABLE `あああ` ADD `かかか` char(1) FIRST; +ALTER TABLE `あああ` ADD `くくく` char(1) AFTER `ききき`; +ALTER TABLE `あああ` ADD `けけけ` char(1); +ALTER TABLE `あああ` ADD INDEX (`かかか`); +ALTER TABLE `あああ` ADD PRIMARY KEY (`ききき`); +#ALTER TABLE `あああ` ADD UNIQUE (`くくく`); +#ALTER TABLE `あああ` ADD FOREIGN KEY (`けけけ`) REFERENCES `いいい`(`けけけ`); +ALTER TABLE `あああ` CHANGE `かかか` `かか` char(1); +ALTER TABLE `あああ` MODIFY `ききき` char(6); + +SELECT * FROM `あああ`; +DESC `あああ`; +SHOW CREATE TABLE `あああ`; + +ALTER TABLE `あああ` DROP INDEX `かかか`; +ALTER TABLE `あああ` DROP PRIMARY KEY; +#ALTER TABLE `あああ` DROP INDEX `くくく`; +#ALTER TABLE `あああ` DROP FOREIGN KEY `けけけ`; +ALTER TABLE `あああ` DROP `かか`; +ALTER TABLE `あああ` DROP `くくく`; +ALTER TABLE `あああ` DROP `けけけ`; + +SELECT * FROM `あああ`; +DESC `あああ`; +SHOW CREATE TABLE `あああ`; + +ALTER TABLE `龖龖龖` ADD `丄丄丄` char(1) FIRST; +ALTER TABLE `龖龖龖` ADD `丅丅丅` char(1) AFTER `丂丂丂`; +ALTER TABLE `龖龖龖` ADD `乚乚乚` char(1); +ALTER TABLE `龖龖龖` ADD INDEX (`丄丄丄`); +ALTER TABLE `龖龖龖` ADD PRIMARY KEY (`丂丂丂`); +#ALTER TABLE `龖龖龖` ADD UNIQUE (`丅丅丅`); +#ALTER TABLE `龖龖龖` ADD FOREIGN KEY (`乚乚乚`) REFERENCES `龗龗龗`(`乚乚乚`); +ALTER TABLE `龖龖龖` CHANGE `丄丄丄` `丄丄` char(1); +ALTER TABLE `龖龖龖` MODIFY `丂丂丂` char(6); + +SELECT * FROM `龖龖龖`; +DESC `龖龖龖`; +SHOW CREATE TABLE `龖龖龖`; + +ALTER TABLE `龖龖龖` DROP INDEX `丄丄丄`; +ALTER TABLE `龖龖龖` DROP PRIMARY KEY; +#ALTER TABLE `龖龖龖` DROP INDEX `丅丅丅`; +#ALTER TABLE `龖龖龖` DROP FOREIGN KEY `乚乚乚`; +ALTER TABLE `龖龖龖` DROP `丄丄`; +ALTER TABLE `龖龖龖` DROP `丅丅丅`; +ALTER TABLE `龖龖龖` DROP `乚乚乚`; + +SELECT * FROM `龖龖龖`; +DESC `龖龖龖`; +SHOW CREATE TABLE `龖龖龖`; + +DROP TABLE `アアア`; +DROP TABLE `イイイ`; +DROP TABLE `あああ`; +DROP TABLE `いいい`; +DROP TABLE `龖龖龖`; +DROP TABLE `龗龗龗`; diff --git a/mysql-test/suite/jp/t/jp_charlength_sjis.test b/mysql-test/suite/jp/t/jp_charlength_sjis.test new file mode 100755 index 00000000000..5f3543bb7a6 --- /dev/null +++ b/mysql-test/suite/jp/t/jp_charlength_sjis.test @@ -0,0 +1,81 @@ +--character_set sjis +--disable_warnings +drop table if exists `sP`; +drop table if exists `sQ`; +drop table if exists `sR`; +drop table if exists `sS`; +drop table if exists `sT`; +drop table if exists `sU`; +drop table if exists `sV`; +drop table if exists `sW`; +drop table if exists `sX`; +drop table if exists `sPO`; +drop table if exists `sPP`; +drop table if exists `sPQ`; +--enable_warnings + +# +# Test CHAR_LENGTH() function with Japanese character in sjis encoding +# + +SET NAMES sjis; +SET character_set_database = sjis; + +CREATE TABLE `sP` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sQ` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sR` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sS` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sT` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sU` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sV` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sW` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sX` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sPO` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +CREATE TABLE `sPP` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +CREATE TABLE `sPQ` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; + +INSERT INTO `sP` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sQ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sR` VALUES ('\\\\\'),('\\\\'),('\\\'),('\\'),('\'),(''); +INSERT INTO `sS` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sT` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sU` VALUES ('\\\\\'),('\\\\'),('\\\'),('\\'),('\'),(''); +INSERT INTO `sV` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sW` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sX` VALUES ('\\\\\'),('\\\\'),('\\\'),('\\'),('\'),(''); +INSERT INTO `sPO` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sPP` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sPQ` VALUES ('\\\\\'),('\\\\'),('\\\'),('\\'),('\'),(''); + +#InnoDB +SELECT `bP`, CHAR_LENGTH(`bP`) FROM `sP`; +SELECT `bP`, CHAR_LENGTH(`bP`) FROM `sQ`; +SELECT `bP`, CHAR_LENGTH(`bP`) FROM `sR`; + +#MyISAM +SELECT `bP`, CHAR_LENGTH(`bP`) FROM `sS`; +SELECT `bP`, CHAR_LENGTH(`bP`) FROM `sT`; +SELECT `bP`, CHAR_LENGTH(`bP`) FROM `sU`; + +#HEAP +SELECT `bP`, CHAR_LENGTH(`bP`) FROM `sV`; +SELECT `bP`, CHAR_LENGTH(`bP`) FROM `sW`; +SELECT `bP`, CHAR_LENGTH(`bP`) FROM `sX`; + +#BDB +SELECT `bP`, CHAR_LENGTH(`bP`) FROM `sPO`; +SELECT `bP`, CHAR_LENGTH(`bP`) FROM `sPP`; +SELECT `bP`, CHAR_LENGTH(`bP`) FROM `sPQ`; + +DROP TABLE `sP`; +DROP TABLE `sQ`; +DROP TABLE `sR`; +DROP TABLE `sS`; +DROP TABLE `sT`; +DROP TABLE `sU`; +DROP TABLE `sV`; +DROP TABLE `sW`; +DROP TABLE `sX`; +DROP TABLE `sPO`; +DROP TABLE `sPP`; +DROP TABLE `sPQ`; diff --git a/mysql-test/suite/jp/t/jp_charlength_ucs2.test b/mysql-test/suite/jp/t/jp_charlength_ucs2.test new file mode 100755 index 00000000000..2db9db7cfc6 --- /dev/null +++ b/mysql-test/suite/jp/t/jp_charlength_ucs2.test @@ -0,0 +1,83 @@ +--source include/have_ucs2.inc + +--disable_warnings +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +--enable_warnings + +# +# Test CHAR_LENGTH() function with Japanese character in ucs2 encoding +# + +SET NAMES ujis; +SET character_set_database = ucs2; +SET collation_connection = ucs2_general_ci; + +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; + +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); + +#InnoDB +SELECT `ã`, CHAR_LENGTH(`ã`) FROM `ԣ`; +SELECT `ã`, CHAR_LENGTH(`ã`) FROM `ԣ`; +SELECT `ã`, CHAR_LENGTH(`ã`) FROM `ԣ`; + +#MyISAM +SELECT `ã`, CHAR_LENGTH(`ã`) FROM `ԣ`; +SELECT `ã`, CHAR_LENGTH(`ã`) FROM `ԣ`; +SELECT `ã`, CHAR_LENGTH(`ã`) FROM `ԣ`; + +#HEAP +SELECT `ã`, CHAR_LENGTH(`ã`) FROM `ԣ`; +SELECT `ã`, CHAR_LENGTH(`ã`) FROM `ԣ`; +SELECT `ã`, CHAR_LENGTH(`ã`) FROM `ԣ`; + +#BDB +SELECT `ã`, CHAR_LENGTH(`ã`) FROM `ԣ`; +SELECT `ã`, CHAR_LENGTH(`ã`) FROM `ԣ`; +SELECT `ã`, CHAR_LENGTH(`ã`) FROM `ԣ`; + +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; diff --git a/mysql-test/suite/jp/t/jp_charlength_ujis.test b/mysql-test/suite/jp/t/jp_charlength_ujis.test new file mode 100755 index 00000000000..08973231f27 --- /dev/null +++ b/mysql-test/suite/jp/t/jp_charlength_ujis.test @@ -0,0 +1,82 @@ +--source include/have_ujis.inc + +--disable_warnings +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +--enable_warnings + +# +# Test CHAR_LENGTH() function with Japanese character in ujis encoding +# + +SET NAMES ujis; +SET character_set_database = ujis; + +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; + +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); + +#InnoDB +SELECT `ã`, CHAR_LENGTH(`ã`) FROM `ԣ`; +SELECT `ã`, CHAR_LENGTH(`ã`) FROM `ԣ`; +SELECT `ã`, CHAR_LENGTH(`ã`) FROM `ԣ`; + +#MyISAM +SELECT `ã`, CHAR_LENGTH(`ã`) FROM `ԣ`; +SELECT `ã`, CHAR_LENGTH(`ã`) FROM `ԣ`; +SELECT `ã`, CHAR_LENGTH(`ã`) FROM `ԣ`; + +#HEAP +SELECT `ã`, CHAR_LENGTH(`ã`) FROM `ԣ`; +SELECT `ã`, CHAR_LENGTH(`ã`) FROM `ԣ`; +SELECT `ã`, CHAR_LENGTH(`ã`) FROM `ԣ`; + +#BDB +SELECT `ã`, CHAR_LENGTH(`ã`) FROM `ԣ`; +SELECT `ã`, CHAR_LENGTH(`ã`) FROM `ԣ`; +SELECT `ã`, CHAR_LENGTH(`ã`) FROM `ԣ`; + +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; diff --git a/mysql-test/suite/jp/t/jp_charlength_utf8.test b/mysql-test/suite/jp/t/jp_charlength_utf8.test new file mode 100755 index 00000000000..a3f74db27ee --- /dev/null +++ b/mysql-test/suite/jp/t/jp_charlength_utf8.test @@ -0,0 +1,80 @@ +--disable_warnings +drop table if exists `T1`; +drop table if exists `T2`; +drop table if exists `T3`; +drop table if exists `T4`; +drop table if exists `T5`; +drop table if exists `T6`; +drop table if exists `T7`; +drop table if exists `T8`; +drop table if exists `T9`; +drop table if exists `T10`; +drop table if exists `T11`; +drop table if exists `T12`; +--enable_warnings + +# +# Test CHAR_LENGTH() function with Japanese character in utf8 encoding +# + +SET NAMES utf8; +SET character_set_database = utf8; + +CREATE TABLE `T1` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T2` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T3` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T4` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T5` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T6` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T7` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T8` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T9` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T10` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +CREATE TABLE `T11` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +CREATE TABLE `T12` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; + +INSERT INTO `T1` VALUES ('アイウエオ'),('アイウエ'),('アイウ'),('アイ'),('ア'),(''); +INSERT INTO `T2` VALUES ('あいうえお'),('あいうえ'),('あいう'),('あい'),('あ'),(''); +INSERT INTO `T3` VALUES ('龔龖龗龞龡'),('龔龖龗龞'),('龔龖龗'),('龔龖'),('龔'),(''); +INSERT INTO `T4` VALUES ('アイウエオ'),('アイウエ'),('アイウ'),('アイ'),('ア'),(''); +INSERT INTO `T5` VALUES ('あいうえお'),('あいうえ'),('あいう'),('あい'),('あ'),(''); +INSERT INTO `T6` VALUES ('龔龖龗龞龡'),('龔龖龗龞'),('龔龖龗'),('龔龖'),('龔'),(''); +INSERT INTO `T7` VALUES ('アイウエオ'),('アイウエ'),('アイウ'),('アイ'),('ア'),(''); +INSERT INTO `T8` VALUES ('あいうえお'),('あいうえ'),('あいう'),('あい'),('あ'),(''); +INSERT INTO `T9` VALUES ('龔龖龗龞龡'),('龔龖龗龞'),('龔龖龗'),('龔龖'),('龔'),(''); +INSERT INTO `T10` VALUES ('アイウエオ'),('アイウエ'),('アイウ'),('アイ'),('ア'),(''); +INSERT INTO `T11` VALUES ('あいうえお'),('あいうえ'),('あいう'),('あい'),('あ'),(''); +INSERT INTO `T12` VALUES ('龔龖龗龞龡'),('龔龖龗龞'),('龔龖龗'),('龔龖'),('龔'),(''); + +#InnoDB +SELECT `C1`, CHAR_LENGTH(`C1`) FROM `T1`; +SELECT `C1`, CHAR_LENGTH(`C1`) FROM `T2`; +SELECT `C1`, CHAR_LENGTH(`C1`) FROM `T3`; + +#MyISAM +SELECT `C1`, CHAR_LENGTH(`C1`) FROM `T4`; +SELECT `C1`, CHAR_LENGTH(`C1`) FROM `T5`; +SELECT `C1`, CHAR_LENGTH(`C1`) FROM `T6`; + +#HEAP +SELECT `C1`, CHAR_LENGTH(`C1`) FROM `T7`; +SELECT `C1`, CHAR_LENGTH(`C1`) FROM `T8`; +SELECT `C1`, CHAR_LENGTH(`C1`) FROM `T9`; + +#BDB +SELECT `C1`, CHAR_LENGTH(`C1`) FROM `T10`; +SELECT `C1`, CHAR_LENGTH(`C1`) FROM `T11`; +SELECT `C1`, CHAR_LENGTH(`C1`) FROM `T12`; + +DROP TABLE `T1`; +DROP TABLE `T2`; +DROP TABLE `T3`; +DROP TABLE `T4`; +DROP TABLE `T5`; +DROP TABLE `T6`; +DROP TABLE `T7`; +DROP TABLE `T8`; +DROP TABLE `T9`; +DROP TABLE `T10`; +DROP TABLE `T11`; +DROP TABLE `T12`; diff --git a/mysql-test/suite/jp/t/jp_charset_sjis.test b/mysql-test/suite/jp/t/jp_charset_sjis.test new file mode 100755 index 00000000000..3a9f264bdfe --- /dev/null +++ b/mysql-test/suite/jp/t/jp_charset_sjis.test @@ -0,0 +1,133 @@ +--character_set sjis +--disable_warnings +drop table if exists `sP`; +drop table if exists `sQ`; +drop table if exists `sR`; +drop table if exists `sS`; +drop table if exists `sT`; +drop table if exists `sU`; +drop table if exists `sV`; +drop table if exists `sW`; +drop table if exists `sX`; +drop table if exists `sPO`; +drop table if exists `sPP`; +drop table if exists `sPQ`; +--enable_warnings + +# +# Test CHARSET() function with Japanese characters in sjis encoding +# + +SET NAMES sjis; +SET character_set_database = sjis; + +CREATE TABLE `sP` (`bP` char(20)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sQ` (`bP` char(20)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sR` (`bP` char(20)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sS` (`bP` char(20)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sT` (`bP` char(20)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sU` (`bP` char(20)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sV` (`bP` char(20)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sW` (`bP` char(20)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sX` (`bP` char(20)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sPO` (`bP` char(20)) DEFAULT CHARSET = sjis engine = bdb; +CREATE TABLE `sPP` (`bP` char(20)) DEFAULT CHARSET = sjis engine = bdb; +CREATE TABLE `sPQ` (`bP` char(20)) DEFAULT CHARSET = sjis engine = bdb; + +#Load the following data in each table +# jisx0201 hankaku-katakana data +# jisx0208 data + + LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_sjis.dat' INTO TABLE `sP`; + LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_sjis.dat' INTO TABLE `sQ`; + LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_sjis2.dat' INTO TABLE `sR`; + LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_sjis.dat' INTO TABLE `sS`; + LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_sjis.dat' INTO TABLE `sT`; + LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_sjis2.dat' INTO TABLE `sU`; + LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_sjis.dat' INTO TABLE `sV`; + LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_sjis.dat' INTO TABLE `sW`; + LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_sjis2.dat' INTO TABLE `sX`; + LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_sjis.dat' INTO TABLE `sPO`; + LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_sjis.dat' INTO TABLE `sPP`; + LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_sjis2.dat' INTO TABLE `sPQ`; + +#InnoDB +SELECT DISTINCT CHARSET(`bP`) FROM `sP`; +SELECT DISTINCT CHARSET(`bP`) FROM `sQ`; +SELECT DISTINCT CHARSET(`bP`) FROM `sR`; +SELECT DISTINCT CHARSET(CONVERT(`bP` USING utf8)) FROM `sP`; +SELECT DISTINCT CHARSET(CONVERT(`bP` USING ucs2)) FROM `sP`; +SELECT DISTINCT CHARSET(CONVERT(`bP` USING sjis)) FROM `sP`; +SELECT DISTINCT CHARSET(CONVERT(`bP` USING ujis)) FROM `sP`; +SELECT DISTINCT CHARSET(CONVERT(`bP` USING utf8)) FROM `sQ`; +SELECT DISTINCT CHARSET(CONVERT(`bP` USING ucs2)) FROM `sQ`; +SELECT DISTINCT CHARSET(CONVERT(`bP` USING sjis)) FROM `sQ`; +SELECT DISTINCT CHARSET(CONVERT(`bP` USING ujis)) FROM `sQ`; +SELECT DISTINCT CHARSET(CONVERT(`bP` USING utf8)) FROM `sR`; +SELECT DISTINCT CHARSET(CONVERT(`bP` USING ucs2)) FROM `sR`; +SELECT DISTINCT CHARSET(CONVERT(`bP` USING sjis)) FROM `sR`; +SELECT DISTINCT CHARSET(CONVERT(`bP` USING ujis)) FROM `sR`; + +#MyISAM +SELECT DISTINCT CHARSET(`bP`) FROM `sS`; +SELECT DISTINCT CHARSET(`bP`) FROM `sT`; +SELECT DISTINCT CHARSET(`bP`) FROM `sU`; +SELECT DISTINCT CHARSET(CONVERT(`bP` USING utf8)) FROM `sS`; +SELECT DISTINCT CHARSET(CONVERT(`bP` USING ucs2)) FROM `sS`; +SELECT DISTINCT CHARSET(CONVERT(`bP` USING sjis)) FROM `sS`; +SELECT DISTINCT CHARSET(CONVERT(`bP` USING ujis)) FROM `sS`; +SELECT DISTINCT CHARSET(CONVERT(`bP` USING utf8)) FROM `sT`; +SELECT DISTINCT CHARSET(CONVERT(`bP` USING ucs2)) FROM `sT`; +SELECT DISTINCT CHARSET(CONVERT(`bP` USING sjis)) FROM `sT`; +SELECT DISTINCT CHARSET(CONVERT(`bP` USING ujis)) FROM `sT`; +SELECT DISTINCT CHARSET(CONVERT(`bP` USING utf8)) FROM `sU`; +SELECT DISTINCT CHARSET(CONVERT(`bP` USING ucs2)) FROM `sU`; +SELECT DISTINCT CHARSET(CONVERT(`bP` USING sjis)) FROM `sU`; +SELECT DISTINCT CHARSET(CONVERT(`bP` USING ujis)) FROM `sU`; + +#Heap +SELECT DISTINCT CHARSET(`bP`) FROM `sV`; +SELECT DISTINCT CHARSET(`bP`) FROM `sW`; +SELECT DISTINCT CHARSET(`bP`) FROM `sX`; +SELECT DISTINCT CHARSET(CONVERT(`bP` USING utf8)) FROM `sV`; +SELECT DISTINCT CHARSET(CONVERT(`bP` USING ucs2)) FROM `sV`; +SELECT DISTINCT CHARSET(CONVERT(`bP` USING sjis)) FROM `sV`; +SELECT DISTINCT CHARSET(CONVERT(`bP` USING ujis)) FROM `sV`; +SELECT DISTINCT CHARSET(CONVERT(`bP` USING utf8)) FROM `sW`; +SELECT DISTINCT CHARSET(CONVERT(`bP` USING ucs2)) FROM `sW`; +SELECT DISTINCT CHARSET(CONVERT(`bP` USING sjis)) FROM `sW`; +SELECT DISTINCT CHARSET(CONVERT(`bP` USING ujis)) FROM `sW`; +SELECT DISTINCT CHARSET(CONVERT(`bP` USING utf8)) FROM `sX`; +SELECT DISTINCT CHARSET(CONVERT(`bP` USING ucs2)) FROM `sX`; +SELECT DISTINCT CHARSET(CONVERT(`bP` USING sjis)) FROM `sX`; +SELECT DISTINCT CHARSET(CONVERT(`bP` USING ujis)) FROM `sX`; + +#BDB +SELECT DISTINCT CHARSET(`bP`) FROM `sPO`; +SELECT DISTINCT CHARSET(`bP`) FROM `sPP`; +SELECT DISTINCT CHARSET(`bP`) FROM `sPQ`; +SELECT DISTINCT CHARSET(CONVERT(`bP` USING utf8)) FROM `sPO`; +SELECT DISTINCT CHARSET(CONVERT(`bP` USING ucs2)) FROM `sPO`; +SELECT DISTINCT CHARSET(CONVERT(`bP` USING sjis)) FROM `sPO`; +SELECT DISTINCT CHARSET(CONVERT(`bP` USING ujis)) FROM `sPO`; +SELECT DISTINCT CHARSET(CONVERT(`bP` USING utf8)) FROM `sPP`; +SELECT DISTINCT CHARSET(CONVERT(`bP` USING ucs2)) FROM `sPP`; +SELECT DISTINCT CHARSET(CONVERT(`bP` USING sjis)) FROM `sPP`; +SELECT DISTINCT CHARSET(CONVERT(`bP` USING ujis)) FROM `sPP`; +SELECT DISTINCT CHARSET(CONVERT(`bP` USING utf8)) FROM `sPQ`; +SELECT DISTINCT CHARSET(CONVERT(`bP` USING ucs2)) FROM `sPQ`; +SELECT DISTINCT CHARSET(CONVERT(`bP` USING sjis)) FROM `sPQ`; +SELECT DISTINCT CHARSET(CONVERT(`bP` USING ujis)) FROM `sPQ`; + +drop table `sP`; +drop table `sQ`; +drop table `sR`; +drop table `sS`; +drop table `sT`; +drop table `sU`; +drop table `sV`; +drop table `sW`; +drop table `sX`; +drop table `sPO`; +drop table `sPP`; +drop table `sPQ`; diff --git a/mysql-test/suite/jp/t/jp_charset_ucs2.test b/mysql-test/suite/jp/t/jp_charset_ucs2.test new file mode 100755 index 00000000000..5183071033b --- /dev/null +++ b/mysql-test/suite/jp/t/jp_charset_ucs2.test @@ -0,0 +1,221 @@ +--source include/have_ucs2.inc + +--disable_warnings +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +--enable_warnings + +# +# Test CHARSET() function with Japanese characters in ucs2 encoding +# + +SET NAMES ujis; +SET character_set_database = ucs2; +CREATE TABLE `ԣ` (`ã` char(20)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(20)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(20)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(20)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(20)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(20)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(20)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(20)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(20)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(20)) DEFAULT CHARSET = ucs2 engine = bdb; +CREATE TABLE `ԣ` (`ã` char(20)) DEFAULT CHARSET = ucs2 engine = bdb; +CREATE TABLE `ԣ` (`ã` char(20)) DEFAULT CHARSET = ucs2 engine = bdb; + +#Insert the following data in each table +# jisx0201 hankaku-katakana data +# jisx0208 data +# jisx0212 supplemental character data + +INSERT INTO `ԣ` VALUES + ('PQRSTUVWXYZ[\\]^_') +,(' ') +,('') +,('ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ') +,('ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ'); + +INSERT INTO `ԣ` VALUES + ('¡áġšơ') +,('ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ') +,('') +,('') +,('') +,('СТУФХЦЧШЩЪЫЬЭЮЯабвг') +,(''); + +INSERT INTO `ԣ` VALUES + ('Ïġ') +,('ÏďŏƏ') +,('ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ') +,('܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰') +,('') +,('ÏďŏƏ') +,('ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ'); + +INSERT INTO `ԣ` VALUES + ('PQRSTUVWXYZ[\\]^_') +,(' ') +,('') +,('ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ') +,('ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ'); + +INSERT INTO `ԣ` VALUES + ('¡áġšơ') +,('ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ') +,('') +,('') +,('') +,('СТУФХЦЧШЩЪЫЬЭЮЯабвг') +,(''); + +INSERT INTO `ԣ` VALUES + ('Ïġ') +,('ÏďŏƏ') +,('ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ') +,('܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰') +,('') +,('ÏďŏƏ') +,('ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ'); + +INSERT INTO `ԣ` VALUES + ('PQRSTUVWXYZ[\\]^_') +,(' ') +,('') +,('ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ') +,('ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ'); + +INSERT INTO `ԣ` VALUES + ('¡áġšơ') +,('ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ') +,('') +,('') +,('') +,('СТУФХЦЧШЩЪЫЬЭЮЯабвг') +,(''); + +INSERT INTO `ԣ` VALUES + ('Ïġ') +,('ÏďŏƏ') +,('ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ') +,('܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰') +,('') +,('ÏďŏƏ') +,('ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ'); + +INSERT INTO `ԣ` VALUES + ('PQRSTUVWXYZ[\\]^_') +,(' ') +,('') +,('ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ') +,('ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ'); + +INSERT INTO `ԣ` VALUES + ('¡áġšơ') +,('ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ') +,('') +,('') +,('') +,('СТУФХЦЧШЩЪЫЬЭЮЯабвг') +,(''); + +INSERT INTO `ԣ` VALUES + ('Ïġ') +,('ÏďŏƏ') +,('ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ') +,('܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰') +,('') +,('ÏďŏƏ') +,('ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ'); + +#InnoDB +SELECT DISTINCT CHARSET(`ã`) FROM `ԣ`; +SELECT DISTINCT CHARSET(`ã`) FROM `ԣ`; +SELECT DISTINCT CHARSET(`ã`) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING utf8)) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ucs2)) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING sjis)) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ujis)) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING utf8)) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ucs2)) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING sjis)) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ujis)) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING utf8)) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ucs2)) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING sjis)) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ujis)) FROM `ԣ`; + +#MyISAM +SELECT DISTINCT CHARSET(`ã`) FROM `ԣ`; +SELECT DISTINCT CHARSET(`ã`) FROM `ԣ`; +SELECT DISTINCT CHARSET(`ã`) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING utf8)) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ucs2)) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING sjis)) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ujis)) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING utf8)) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ucs2)) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING sjis)) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ujis)) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING utf8)) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ucs2)) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING sjis)) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ujis)) FROM `ԣ`; + +#Heap +SELECT DISTINCT CHARSET(`ã`) FROM `ԣ`; +SELECT DISTINCT CHARSET(`ã`) FROM `ԣ`; +SELECT DISTINCT CHARSET(`ã`) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING utf8)) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ucs2)) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING sjis)) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ujis)) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING utf8)) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ucs2)) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING sjis)) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ujis)) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING utf8)) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ucs2)) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING sjis)) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ujis)) FROM `ԣ`; + +#BDB +SELECT DISTINCT CHARSET(`ã`) FROM `ԣ`; +SELECT DISTINCT CHARSET(`ã`) FROM `ԣ`; +SELECT DISTINCT CHARSET(`ã`) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING utf8)) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ucs2)) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING sjis)) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ujis)) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING utf8)) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ucs2)) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING sjis)) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ujis)) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING utf8)) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ucs2)) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING sjis)) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ujis)) FROM `ԣ`; + +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; diff --git a/mysql-test/suite/jp/t/jp_charset_ujis.test b/mysql-test/suite/jp/t/jp_charset_ujis.test new file mode 100755 index 00000000000..de9ef318530 --- /dev/null +++ b/mysql-test/suite/jp/t/jp_charset_ujis.test @@ -0,0 +1,135 @@ +--source include/have_ujis.inc + +--disable_warnings +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +--enable_warnings + +# +# Test CHARSET() function with Japanese characters in ujis encoding +# + +SET NAMES ujis; +SET character_set_database = ujis; + +CREATE TABLE `ԣ` (`ã` char(20)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(20)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(20)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(20)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(20)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(20)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(20)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(20)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(20)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(20)) DEFAULT CHARSET = ujis engine = bdb; +CREATE TABLE `ԣ` (`ã` char(20)) DEFAULT CHARSET = ujis engine = bdb; +CREATE TABLE `ԣ` (`ã` char(20)) DEFAULT CHARSET = ujis engine = bdb; + +#Load the following data in each table +# jisx0201 hankaku-katakana data +# jisx0208 data +# jisx0212 supplemental character data + + LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_ujis.dat' INTO TABLE `ԣ`; + LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_ujis.dat' INTO TABLE `ԣ`; + LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0212_ujis.dat' INTO TABLE `ԣ`; + LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_ujis.dat' INTO TABLE `ԣ`; + LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_ujis.dat' INTO TABLE `ԣ`; + LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0212_ujis.dat' INTO TABLE `ԣ`; + LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_ujis.dat' INTO TABLE `ԣ`; + LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_ujis.dat' INTO TABLE `ԣ`; + LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0212_ujis.dat' INTO TABLE `ԣ`; + LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_ujis.dat' INTO TABLE `ԣ`; + LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_ujis.dat' INTO TABLE `ԣ`; + LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0212_ujis.dat' INTO TABLE `ԣ`; + +#InnoDB +SELECT DISTINCT CHARSET(`ã`) FROM `ԣ`; +SELECT DISTINCT CHARSET(`ã`) FROM `ԣ`; +SELECT DISTINCT CHARSET(`ã`) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING utf8)) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ucs2)) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING sjis)) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ujis)) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING utf8)) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ucs2)) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING sjis)) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ujis)) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING utf8)) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ucs2)) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING sjis)) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ujis)) FROM `ԣ`; + +#MyISAM +SELECT DISTINCT CHARSET(`ã`) FROM `ԣ`; +SELECT DISTINCT CHARSET(`ã`) FROM `ԣ`; +SELECT DISTINCT CHARSET(`ã`) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING utf8)) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ucs2)) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING sjis)) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ujis)) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING utf8)) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ucs2)) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING sjis)) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ujis)) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING utf8)) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ucs2)) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING sjis)) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ujis)) FROM `ԣ`; + +#Heap +SELECT DISTINCT CHARSET(`ã`) FROM `ԣ`; +SELECT DISTINCT CHARSET(`ã`) FROM `ԣ`; +SELECT DISTINCT CHARSET(`ã`) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING utf8)) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ucs2)) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING sjis)) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ujis)) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING utf8)) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ucs2)) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING sjis)) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ujis)) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING utf8)) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ucs2)) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING sjis)) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ujis)) FROM `ԣ`; + +#BDB +SELECT DISTINCT CHARSET(`ã`) FROM `ԣ`; +SELECT DISTINCT CHARSET(`ã`) FROM `ԣ`; +SELECT DISTINCT CHARSET(`ã`) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING utf8)) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ucs2)) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING sjis)) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ujis)) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING utf8)) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ucs2)) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING sjis)) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ujis)) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING utf8)) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ucs2)) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING sjis)) FROM `ԣ`; +SELECT DISTINCT CHARSET(CONVERT(`ã` USING ujis)) FROM `ԣ`; + +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; diff --git a/mysql-test/suite/jp/t/jp_charset_utf8.test b/mysql-test/suite/jp/t/jp_charset_utf8.test new file mode 100755 index 00000000000..2d73daba42a --- /dev/null +++ b/mysql-test/suite/jp/t/jp_charset_utf8.test @@ -0,0 +1,133 @@ +--disable_warnings +drop table if exists `T1`; +drop table if exists `T2`; +drop table if exists `T3`; +drop table if exists `T4`; +drop table if exists `T5`; +drop table if exists `T6`; +drop table if exists `T7`; +drop table if exists `T8`; +drop table if exists `T9`; +drop table if exists `T10`; +drop table if exists `T11`; +drop table if exists `T12`; +--enable_warnings + +# +# Test CHARSET() function with Japanese characters in utf8 encoding +# + +SET NAMES utf8; +SET character_set_database = utf8; + +CREATE TABLE `T1` (`C1` char(20)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T2` (`C1` char(20)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T3` (`C1` char(20)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T4` (`C1` char(20)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T5` (`C1` char(20)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T6` (`C1` char(20)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T7` (`C1` char(20)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T8` (`C1` char(20)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T9` (`C1` char(20)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T10` (`C1` char(20)) DEFAULT CHARSET = utf8 engine = bdb; +CREATE TABLE `T11` (`C1` char(20)) DEFAULT CHARSET = utf8 engine = bdb; +CREATE TABLE `T12` (`C1` char(20)) DEFAULT CHARSET = utf8 engine = bdb; + +#Load the following data in each table +# jisx0201 hankaku-katakana data +# jisx0208 data +# jisx0212 supplemental character data + + LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_utf8.dat' INTO TABLE `T1`; + LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_utf8.dat' INTO TABLE `T2`; + LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0212_utf8.dat' INTO TABLE `T3`; + LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_utf8.dat' INTO TABLE `T4`; + LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_utf8.dat' INTO TABLE `T5`; + LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0212_utf8.dat' INTO TABLE `T6`; + LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_utf8.dat' INTO TABLE `T7`; + LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_utf8.dat' INTO TABLE `T8`; + LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0212_utf8.dat' INTO TABLE `T9`; + LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_utf8.dat' INTO TABLE `T10`; + LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_utf8.dat' INTO TABLE `T11`; + LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0212_utf8.dat' INTO TABLE `T12`; + +#InnoDB +SELECT DISTINCT CHARSET(`C1`) FROM `T1`; +SELECT DISTINCT CHARSET(`C1`) FROM `T2`; +SELECT DISTINCT CHARSET(`C1`) FROM `T3`; +SELECT DISTINCT CHARSET(CONVERT(`C1` USING utf8)) FROM `T1`; +SELECT DISTINCT CHARSET(CONVERT(`C1` USING ucs2)) FROM `T1`; +SELECT DISTINCT CHARSET(CONVERT(`C1` USING sjis)) FROM `T1`; +SELECT DISTINCT CHARSET(CONVERT(`C1` USING ujis)) FROM `T1`; +SELECT DISTINCT CHARSET(CONVERT(`C1` USING utf8)) FROM `T2`; +SELECT DISTINCT CHARSET(CONVERT(`C1` USING ucs2)) FROM `T2`; +SELECT DISTINCT CHARSET(CONVERT(`C1` USING sjis)) FROM `T2`; +SELECT DISTINCT CHARSET(CONVERT(`C1` USING ujis)) FROM `T2`; +SELECT DISTINCT CHARSET(CONVERT(`C1` USING utf8)) FROM `T3`; +SELECT DISTINCT CHARSET(CONVERT(`C1` USING ucs2)) FROM `T3`; +SELECT DISTINCT CHARSET(CONVERT(`C1` USING sjis)) FROM `T3`; +SELECT DISTINCT CHARSET(CONVERT(`C1` USING ujis)) FROM `T3`; + +#MyISAM +SELECT DISTINCT CHARSET(`C1`) FROM `T4`; +SELECT DISTINCT CHARSET(`C1`) FROM `T5`; +SELECT DISTINCT CHARSET(`C1`) FROM `T6`; +SELECT DISTINCT CHARSET(CONVERT(`C1` USING utf8)) FROM `T4`; +SELECT DISTINCT CHARSET(CONVERT(`C1` USING ucs2)) FROM `T4`; +SELECT DISTINCT CHARSET(CONVERT(`C1` USING sjis)) FROM `T4`; +SELECT DISTINCT CHARSET(CONVERT(`C1` USING ujis)) FROM `T4`; +SELECT DISTINCT CHARSET(CONVERT(`C1` USING utf8)) FROM `T5`; +SELECT DISTINCT CHARSET(CONVERT(`C1` USING ucs2)) FROM `T5`; +SELECT DISTINCT CHARSET(CONVERT(`C1` USING sjis)) FROM `T5`; +SELECT DISTINCT CHARSET(CONVERT(`C1` USING ujis)) FROM `T5`; +SELECT DISTINCT CHARSET(CONVERT(`C1` USING utf8)) FROM `T6`; +SELECT DISTINCT CHARSET(CONVERT(`C1` USING ucs2)) FROM `T6`; +SELECT DISTINCT CHARSET(CONVERT(`C1` USING sjis)) FROM `T6`; +SELECT DISTINCT CHARSET(CONVERT(`C1` USING ujis)) FROM `T6`; + +#Heap +SELECT DISTINCT CHARSET(`C1`) FROM `T7`; +SELECT DISTINCT CHARSET(`C1`) FROM `T8`; +SELECT DISTINCT CHARSET(`C1`) FROM `T9`; +SELECT DISTINCT CHARSET(CONVERT(`C1` USING utf8)) FROM `T7`; +SELECT DISTINCT CHARSET(CONVERT(`C1` USING ucs2)) FROM `T7`; +SELECT DISTINCT CHARSET(CONVERT(`C1` USING sjis)) FROM `T7`; +SELECT DISTINCT CHARSET(CONVERT(`C1` USING ujis)) FROM `T7`; +SELECT DISTINCT CHARSET(CONVERT(`C1` USING utf8)) FROM `T8`; +SELECT DISTINCT CHARSET(CONVERT(`C1` USING ucs2)) FROM `T8`; +SELECT DISTINCT CHARSET(CONVERT(`C1` USING sjis)) FROM `T8`; +SELECT DISTINCT CHARSET(CONVERT(`C1` USING ujis)) FROM `T8`; +SELECT DISTINCT CHARSET(CONVERT(`C1` USING utf8)) FROM `T9`; +SELECT DISTINCT CHARSET(CONVERT(`C1` USING ucs2)) FROM `T9`; +SELECT DISTINCT CHARSET(CONVERT(`C1` USING sjis)) FROM `T9`; +SELECT DISTINCT CHARSET(CONVERT(`C1` USING ujis)) FROM `T9`; + +#BDB +SELECT DISTINCT CHARSET(`C1`) FROM `T10`; +SELECT DISTINCT CHARSET(`C1`) FROM `T11`; +SELECT DISTINCT CHARSET(`C1`) FROM `T12`; +SELECT DISTINCT CHARSET(CONVERT(`C1` USING utf8)) FROM `T10`; +SELECT DISTINCT CHARSET(CONVERT(`C1` USING ucs2)) FROM `T10`; +SELECT DISTINCT CHARSET(CONVERT(`C1` USING sjis)) FROM `T10`; +SELECT DISTINCT CHARSET(CONVERT(`C1` USING ujis)) FROM `T10`; +SELECT DISTINCT CHARSET(CONVERT(`C1` USING utf8)) FROM `T11`; +SELECT DISTINCT CHARSET(CONVERT(`C1` USING ucs2)) FROM `T11`; +SELECT DISTINCT CHARSET(CONVERT(`C1` USING sjis)) FROM `T11`; +SELECT DISTINCT CHARSET(CONVERT(`C1` USING ujis)) FROM `T11`; +SELECT DISTINCT CHARSET(CONVERT(`C1` USING utf8)) FROM `T12`; +SELECT DISTINCT CHARSET(CONVERT(`C1` USING ucs2)) FROM `T12`; +SELECT DISTINCT CHARSET(CONVERT(`C1` USING sjis)) FROM `T12`; +SELECT DISTINCT CHARSET(CONVERT(`C1` USING ujis)) FROM `T12`; + +drop table `T1`; +drop table `T2`; +drop table `T3`; +drop table `T4`; +drop table `T5`; +drop table `T6`; +drop table `T7`; +drop table `T8`; +drop table `T9`; +drop table `T10`; +drop table `T11`; +drop table `T12`; diff --git a/mysql-test/suite/jp/t/jp_convert_sjis.test b/mysql-test/suite/jp/t/jp_convert_sjis.test new file mode 100755 index 00000000000..93fa33029bf --- /dev/null +++ b/mysql-test/suite/jp/t/jp_convert_sjis.test @@ -0,0 +1,110 @@ +--character_set sjis +SET NAMES sjis; +SET character_set_database = sjis; + +--disable_warnings +drop table if exists `sP`; +drop table if exists `sQ`; +drop table if exists `sR`; +drop table if exists `sS`; +drop table if exists `sT`; +drop table if exists `sU`; +drop table if exists `sV`; +drop table if exists `sW`; +drop table if exists `sX`; +drop table if exists `sPO`; +drop table if exists `sPP`; +drop table if exists `sPQ`; +--enable_warnings + +# +# Test CONVERT() function with Japanese character in sjis encoding +# + +CREATE TABLE `sP` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sQ` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sR` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sS` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sT` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sU` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sV` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sW` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sX` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sPO` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +CREATE TABLE `sPP` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +CREATE TABLE `sPQ` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; + +#Load the following data in each table +# jisx0201 hankaku-katakana data +# jisx0208 data +# jisx0212 supplemental character data + + LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_sjis.dat' INTO TABLE `sP`; + LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_sjis.dat' INTO TABLE `sQ`; + LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_sjis2.dat' INTO TABLE `sR`; + LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_sjis.dat' INTO TABLE `sS`; + LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_sjis.dat' INTO TABLE `sT`; + LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_sjis2.dat' INTO TABLE `sU`; + LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_sjis.dat' INTO TABLE `sV`; + LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_sjis.dat' INTO TABLE `sW`; + LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_sjis2.dat' INTO TABLE `sX`; + LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_sjis.dat' INTO TABLE `sPO`; + LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_sjis.dat' INTO TABLE `sPP`; + LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_sjis2.dat' INTO TABLE `sPQ`; + +#InnoDB +SELECT `bP`, CONVERT(`bP` using utf8) FROM `sP`; +SELECT `bP`, CONVERT(`bP` using ucs2) FROM `sP`; +SELECT `bP`, CONVERT(`bP` using ujis) FROM `sP`; +SELECT `bP`, CONVERT(`bP` using utf8) FROM `sQ`; +SELECT `bP`, CONVERT(`bP` using ucs2) FROM `sQ`; +SELECT `bP`, CONVERT(`bP` using ujis) FROM `sQ`; +SELECT `bP`, CONVERT(`bP` using utf8) FROM `sR`; +SELECT `bP`, CONVERT(`bP` using ucs2) FROM `sR`; +SELECT `bP`, CONVERT(`bP` using ujis) FROM `sR`; + +#MyISAM +SELECT `bP`, CONVERT(`bP` using utf8) FROM `sS`; +SELECT `bP`, CONVERT(`bP` using ucs2) FROM `sS`; +SELECT `bP`, CONVERT(`bP` using ujis) FROM `sS`; +SELECT `bP`, CONVERT(`bP` using utf8) FROM `sT`; +SELECT `bP`, CONVERT(`bP` using ucs2) FROM `sT`; +SELECT `bP`, CONVERT(`bP` using ujis) FROM `sT`; +SELECT `bP`, CONVERT(`bP` using utf8) FROM `sU`; +SELECT `bP`, CONVERT(`bP` using ucs2) FROM `sU`; +SELECT `bP`, CONVERT(`bP` using ujis) FROM `sU`; + +#Heap +SELECT `bP`, CONVERT(`bP` using utf8) FROM `sV`; +SELECT `bP`, CONVERT(`bP` using ucs2) FROM `sV`; +SELECT `bP`, CONVERT(`bP` using ujis) FROM `sV`; +SELECT `bP`, CONVERT(`bP` using utf8) FROM `sW`; +SELECT `bP`, CONVERT(`bP` using ucs2) FROM `sW`; +SELECT `bP`, CONVERT(`bP` using ujis) FROM `sW`; +SELECT `bP`, CONVERT(`bP` using utf8) FROM `sX`; +SELECT `bP`, CONVERT(`bP` using ucs2) FROM `sX`; +SELECT `bP`, CONVERT(`bP` using ujis) FROM `sX`; + +#BDB +SELECT `bP`, CONVERT(`bP` using utf8) FROM `sPO`; +SELECT `bP`, CONVERT(`bP` using ucs2) FROM `sPO`; +SELECT `bP`, CONVERT(`bP` using ujis) FROM `sPO`; +SELECT `bP`, CONVERT(`bP` using utf8) FROM `sPP`; +SELECT `bP`, CONVERT(`bP` using ucs2) FROM `sPP`; +SELECT `bP`, CONVERT(`bP` using ujis) FROM `sPP`; +SELECT `bP`, CONVERT(`bP` using utf8) FROM `sPQ`; +SELECT `bP`, CONVERT(`bP` using ucs2) FROM `sPQ`; +SELECT `bP`, CONVERT(`bP` using ujis) FROM `sPQ`; + +drop table `sP`; +drop table `sQ`; +drop table `sR`; +drop table `sS`; +drop table `sT`; +drop table `sU`; +drop table `sV`; +drop table `sW`; +drop table `sX`; +drop table `sPO`; +drop table `sPP`; +drop table `sPQ`; diff --git a/mysql-test/suite/jp/t/jp_convert_ucs2.test b/mysql-test/suite/jp/t/jp_convert_ucs2.test new file mode 100755 index 00000000000..88b0d0c9cba --- /dev/null +++ b/mysql-test/suite/jp/t/jp_convert_ucs2.test @@ -0,0 +1,203 @@ +--source include/have_ucs2.inc + +--disable_warnings +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +--enable_warnings + +# +# Test CONVERT() function with Japanese character in ucs2 encoding +# + +SET NAMES ujis; +SET character_set_database = ucs2; +SET collation_connection = ucs2_general_ci; + +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; + +#Insert the following data in each table +# jisx0201 hankaku-katakana data +# jisx0208 data +# jisx0212 supplemental character data + +INSERT INTO `ԣ` VALUES + ('PQRSTUVWXYZ[\\]^_') +,(' ') +,('') +,('ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ') +,('ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ'); + +INSERT INTO `ԣ` VALUES + ('¡áġšơ') +,('ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ') +,('') +,('') +,('') +,('СТУФХЦЧШЩЪЫЬЭЮЯабвг') +,(''); + +INSERT INTO `ԣ` VALUES + ('Ïġ') +,('ÏďŏƏ') +,('ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ') +,('܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰') +,('') +,('ÏďŏƏ') +,('ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ'); + +INSERT INTO `ԣ` VALUES + ('PQRSTUVWXYZ[\\]^_') +,(' ') +,('') +,('ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ') +,('ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ'); + +INSERT INTO `ԣ` VALUES + ('¡áġšơ') +,('ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ') +,('') +,('') +,('') +,('СТУФХЦЧШЩЪЫЬЭЮЯабвг') +,(''); + +INSERT INTO `ԣ` VALUES + ('Ïġ') +,('ÏďŏƏ') +,('ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ') +,('܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰') +,('') +,('ÏďŏƏ') +,('ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ'); + +INSERT INTO `ԣ` VALUES + ('PQRSTUVWXYZ[\\]^_') +,(' ') +,('') +,('ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ') +,('ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ'); + +INSERT INTO `ԣ` VALUES + ('¡áġšơ') +,('ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ') +,('') +,('') +,('') +,('СТУФХЦЧШЩЪЫЬЭЮЯабвг') +,(''); + +INSERT INTO `ԣ` VALUES + ('Ïġ') +,('ÏďŏƏ') +,('ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ') +,('܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰') +,('') +,('ÏďŏƏ') +,('ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ'); + +INSERT INTO `ԣ` VALUES + ('PQRSTUVWXYZ[\\]^_') +,(' ') +,('') +,('ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ') +,('ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ'); + +INSERT INTO `ԣ` VALUES + ('¡áġšơ') +,('ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ') +,('') +,('') +,('') +,('СТУФХЦЧШЩЪЫЬЭЮЯабвг') +,(''); + +INSERT INTO `ԣ` VALUES + ('Ïġ') +,('ÏďŏƏ') +,('ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ') +,('܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰') +,('') +,('ÏďŏƏ') +,('ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ'); + +#InnoDB +SELECT `ã`, CONVERT(`ã` using utf8) FROM `ԣ`; +SELECT `ã`, CONVERT(`ã` using ucs2) FROM `ԣ`; +SELECT `ã`, CONVERT(`ã` using sjis) FROM `ԣ`; +SELECT `ã`, CONVERT(`ã` using utf8) FROM `ԣ`; +SELECT `ã`, CONVERT(`ã` using ucs2) FROM `ԣ`; +SELECT `ã`, CONVERT(`ã` using sjis) FROM `ԣ`; +SELECT `ã`, CONVERT(`ã` using utf8) FROM `ԣ`; +SELECT `ã`, CONVERT(`ã` using ucs2) FROM `ԣ`; +# The result will get garbled because jisx0212 is not included in sjis +SELECT `ã`, CONVERT(`ã` using sjis) FROM `ԣ`; + +#MyISAM +SELECT `ã`, CONVERT(`ã` using utf8) FROM `ԣ`; +SELECT `ã`, CONVERT(`ã` using ucs2) FROM `ԣ`; +SELECT `ã`, CONVERT(`ã` using sjis) FROM `ԣ`; +SELECT `ã`, CONVERT(`ã` using utf8) FROM `ԣ`; +SELECT `ã`, CONVERT(`ã` using ucs2) FROM `ԣ`; +SELECT `ã`, CONVERT(`ã` using sjis) FROM `ԣ`; +SELECT `ã`, CONVERT(`ã` using utf8) FROM `ԣ`; +SELECT `ã`, CONVERT(`ã` using ucs2) FROM `ԣ`; +# The result will get garbled because jisx0212 is not included in sjis +SELECT `ã`, CONVERT(`ã` using sjis) FROM `ԣ`; + +#Heap +SELECT `ã`, CONVERT(`ã` using utf8) FROM `ԣ`; +SELECT `ã`, CONVERT(`ã` using ucs2) FROM `ԣ`; +SELECT `ã`, CONVERT(`ã` using sjis) FROM `ԣ`; +SELECT `ã`, CONVERT(`ã` using utf8) FROM `ԣ`; +SELECT `ã`, CONVERT(`ã` using ucs2) FROM `ԣ`; +SELECT `ã`, CONVERT(`ã` using sjis) FROM `ԣ`; +SELECT `ã`, CONVERT(`ã` using utf8) FROM `ԣ`; +SELECT `ã`, CONVERT(`ã` using ucs2) FROM `ԣ`; +# The result will get garbled because jisx0212 is not included in sjis +SELECT `ã`, CONVERT(`ã` using sjis) FROM `ԣ`; + +#BDB +SELECT `ã`, CONVERT(`ã` using utf8) FROM `ԣ`; +SELECT `ã`, CONVERT(`ã` using ucs2) FROM `ԣ`; +SELECT `ã`, CONVERT(`ã` using sjis) FROM `ԣ`; +SELECT `ã`, CONVERT(`ã` using utf8) FROM `ԣ`; +SELECT `ã`, CONVERT(`ã` using ucs2) FROM `ԣ`; +SELECT `ã`, CONVERT(`ã` using sjis) FROM `ԣ`; +SELECT `ã`, CONVERT(`ã` using utf8) FROM `ԣ`; +SELECT `ã`, CONVERT(`ã` using ucs2) FROM `ԣ`; +# The result will get garbled because jisx0212 is not included in sjis +SELECT `ã`, CONVERT(`ã` using sjis) FROM `ԣ`; + +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; diff --git a/mysql-test/suite/jp/t/jp_convert_ujis.test b/mysql-test/suite/jp/t/jp_convert_ujis.test new file mode 100755 index 00000000000..d6303b66f34 --- /dev/null +++ b/mysql-test/suite/jp/t/jp_convert_ujis.test @@ -0,0 +1,115 @@ +--source include/have_ujis.inc + +--disable_warnings +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +--enable_warnings + +# +# Test CONVERT() function with Japanese character in ujis encoding +# + +SET NAMES ujis; +SET character_set_database = ujis; + +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; + +#Load the following data in each table +# jisx0201 hankaku-katakana data +# jisx0208 data +# jisx0212 supplemental character data + + LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_ujis.dat' INTO TABLE `ԣ`; + LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_ujis.dat' INTO TABLE `ԣ`; + LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0212_ujis.dat' INTO TABLE `ԣ`; + LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_ujis.dat' INTO TABLE `ԣ`; + LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_ujis.dat' INTO TABLE `ԣ`; + LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0212_ujis.dat' INTO TABLE `ԣ`; + LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_ujis.dat' INTO TABLE `ԣ`; + LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_ujis.dat' INTO TABLE `ԣ`; + LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0212_ujis.dat' INTO TABLE `ԣ`; + LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_ujis.dat' INTO TABLE `ԣ`; + LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_ujis.dat' INTO TABLE `ԣ`; + LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0212_ujis.dat' INTO TABLE `ԣ`; + +#InnoDB +SELECT `ã`, CONVERT(`ã` using utf8) FROM `ԣ`; +SELECT `ã`, CONVERT(`ã` using ucs2) FROM `ԣ`; +SELECT `ã`, CONVERT(`ã` using sjis) FROM `ԣ`; +SELECT `ã`, CONVERT(`ã` using utf8) FROM `ԣ`; +SELECT `ã`, CONVERT(`ã` using ucs2) FROM `ԣ`; +SELECT `ã`, CONVERT(`ã` using sjis) FROM `ԣ`; +SELECT `ã`, CONVERT(`ã` using utf8) FROM `ԣ`; +SELECT `ã`, CONVERT(`ã` using ucs2) FROM `ԣ`; +# The result will get garbled because jisx0212 is not included in sjis +SELECT `ã`, CONVERT(`ã` using sjis) FROM `ԣ`; + +#MyISAM +SELECT `ã`, CONVERT(`ã` using utf8) FROM `ԣ`; +SELECT `ã`, CONVERT(`ã` using ucs2) FROM `ԣ`; +SELECT `ã`, CONVERT(`ã` using sjis) FROM `ԣ`; +SELECT `ã`, CONVERT(`ã` using utf8) FROM `ԣ`; +SELECT `ã`, CONVERT(`ã` using ucs2) FROM `ԣ`; +SELECT `ã`, CONVERT(`ã` using sjis) FROM `ԣ`; +SELECT `ã`, CONVERT(`ã` using utf8) FROM `ԣ`; +SELECT `ã`, CONVERT(`ã` using ucs2) FROM `ԣ`; +# The result will get garbled because jisx0212 is not included in sjis +SELECT `ã`, CONVERT(`ã` using sjis) FROM `ԣ`; + +#Heap +SELECT `ã`, CONVERT(`ã` using utf8) FROM `ԣ`; +SELECT `ã`, CONVERT(`ã` using ucs2) FROM `ԣ`; +SELECT `ã`, CONVERT(`ã` using sjis) FROM `ԣ`; +SELECT `ã`, CONVERT(`ã` using utf8) FROM `ԣ`; +SELECT `ã`, CONVERT(`ã` using ucs2) FROM `ԣ`; +SELECT `ã`, CONVERT(`ã` using sjis) FROM `ԣ`; +SELECT `ã`, CONVERT(`ã` using utf8) FROM `ԣ`; +SELECT `ã`, CONVERT(`ã` using ucs2) FROM `ԣ`; +# The result will get garbled because jisx0212 is not included in sjis +SELECT `ã`, CONVERT(`ã` using sjis) FROM `ԣ`; + +#BDB +SELECT `ã`, CONVERT(`ã` using utf8) FROM `ԣ`; +SELECT `ã`, CONVERT(`ã` using ucs2) FROM `ԣ`; +SELECT `ã`, CONVERT(`ã` using sjis) FROM `ԣ`; +SELECT `ã`, CONVERT(`ã` using utf8) FROM `ԣ`; +SELECT `ã`, CONVERT(`ã` using ucs2) FROM `ԣ`; +SELECT `ã`, CONVERT(`ã` using sjis) FROM `ԣ`; +SELECT `ã`, CONVERT(`ã` using utf8) FROM `ԣ`; +SELECT `ã`, CONVERT(`ã` using ucs2) FROM `ԣ`; +# The result will get garbled because jisx0212 is not included in sjis +SELECT `ã`, CONVERT(`ã` using sjis) FROM `ԣ`; + +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; diff --git a/mysql-test/suite/jp/t/jp_convert_utf8.test b/mysql-test/suite/jp/t/jp_convert_utf8.test new file mode 100755 index 00000000000..a687b0f06cb --- /dev/null +++ b/mysql-test/suite/jp/t/jp_convert_utf8.test @@ -0,0 +1,113 @@ +--disable_warnings +drop table if exists `T1`; +drop table if exists `T2`; +drop table if exists `T3`; +drop table if exists `T4`; +drop table if exists `T5`; +drop table if exists `T6`; +drop table if exists `T7`; +drop table if exists `T8`; +drop table if exists `T9`; +drop table if exists `T10`; +drop table if exists `T11`; +drop table if exists `T12`; +--enable_warnings + +# +# Test CONVERT() function with Japanese character in utf8 encoding +# + +SET NAMES utf8; +SET character_set_database = utf8; + +CREATE TABLE `T1` (`C1` char(20), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T2` (`C1` char(20), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T3` (`C1` char(20), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T4` (`C1` char(20), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T5` (`C1` char(20), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T6` (`C1` char(20), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T7` (`C1` char(20), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T8` (`C1` char(20), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T9` (`C1` char(20), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T10` (`C1` char(20), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +CREATE TABLE `T11` (`C1` char(20), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +CREATE TABLE `T12` (`C1` char(20), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; + +#Load the following data in each table +# jisx0201 hankaku-katakana data +# jisx0208 data +# jisx0212 supplemental character data + + LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_utf8.dat' INTO TABLE `T1`; + LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_utf8.dat' INTO TABLE `T2`; + LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0212_utf8.dat' INTO TABLE `T3`; + LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_utf8.dat' INTO TABLE `T4`; + LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_utf8.dat' INTO TABLE `T5`; + LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0212_utf8.dat' INTO TABLE `T6`; + LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_utf8.dat' INTO TABLE `T7`; + LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_utf8.dat' INTO TABLE `T8`; + LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0212_utf8.dat' INTO TABLE `T9`; + LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_utf8.dat' INTO TABLE `T10`; + LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_utf8.dat' INTO TABLE `T11`; + LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0212_utf8.dat' INTO TABLE `T12`; + +#InnoDB +SELECT `C1`, CONVERT(`C1` using ujis) FROM `T1`; +SELECT `C1`, CONVERT(`C1` using ucs2) FROM `T1`; +SELECT `C1`, CONVERT(`C1` using sjis) FROM `T1`; +SELECT `C1`, CONVERT(`C1` using ujis) FROM `T2`; +SELECT `C1`, CONVERT(`C1` using ucs2) FROM `T2`; +SELECT `C1`, CONVERT(`C1` using sjis) FROM `T2`; +SELECT `C1`, CONVERT(`C1` using ujis) FROM `T3`; +SELECT `C1`, CONVERT(`C1` using ucs2) FROM `T3`; +# The result will get garbled because jisx0212 is not included in sjis +SELECT `C1`, CONVERT(`C1` using sjis) FROM `T3`; + +#MyISAM +SELECT `C1`, CONVERT(`C1` using ujis) FROM `T4`; +SELECT `C1`, CONVERT(`C1` using ucs2) FROM `T4`; +SELECT `C1`, CONVERT(`C1` using sjis) FROM `T4`; +SELECT `C1`, CONVERT(`C1` using ujis) FROM `T5`; +SELECT `C1`, CONVERT(`C1` using ucs2) FROM `T5`; +SELECT `C1`, CONVERT(`C1` using sjis) FROM `T5`; +SELECT `C1`, CONVERT(`C1` using ujis) FROM `T6`; +SELECT `C1`, CONVERT(`C1` using ucs2) FROM `T6`; +# The result will get garbled because jisx0212 is not included in sjis +SELECT `C1`, CONVERT(`C1` using sjis) FROM `T6`; + +#Heap +SELECT `C1`, CONVERT(`C1` using ujis) FROM `T7`; +SELECT `C1`, CONVERT(`C1` using ucs2) FROM `T7`; +SELECT `C1`, CONVERT(`C1` using sjis) FROM `T7`; +SELECT `C1`, CONVERT(`C1` using ujis) FROM `T8`; +SELECT `C1`, CONVERT(`C1` using ucs2) FROM `T8`; +SELECT `C1`, CONVERT(`C1` using sjis) FROM `T8`; +SELECT `C1`, CONVERT(`C1` using ujis) FROM `T9`; +SELECT `C1`, CONVERT(`C1` using ucs2) FROM `T9`; +# The result will get garbled because jisx0212 is not included in sjis +SELECT `C1`, CONVERT(`C1` using sjis) FROM `T9`; + +#BDB +SELECT `C1`, CONVERT(`C1` using ujis) FROM `T10`; +SELECT `C1`, CONVERT(`C1` using ucs2) FROM `T10`; +SELECT `C1`, CONVERT(`C1` using sjis) FROM `T10`; +SELECT `C1`, CONVERT(`C1` using ujis) FROM `T11`; +SELECT `C1`, CONVERT(`C1` using ucs2) FROM `T11`; +SELECT `C1`, CONVERT(`C1` using sjis) FROM `T11`; +SELECT `C1`, CONVERT(`C1` using ujis) FROM `T12`; +SELECT `C1`, CONVERT(`C1` using ucs2) FROM `T12`; +# The result will get garbled because jisx0212 is not included in sjis +SELECT `C1`, CONVERT(`C1` using sjis) FROM `T12`; + +drop table `T1`; +drop table `T2`; +drop table `T3`; +drop table `T4`; +drop table `T5`; +drop table `T6`; +drop table `T7`; +drop table `T8`; +drop table `T9`; +drop table `T10`; +drop table `T11`; +drop table `T12`; diff --git a/mysql-test/suite/jp/t/jp_create_db_sjis.test b/mysql-test/suite/jp/t/jp_create_db_sjis.test new file mode 100755 index 00000000000..ef66d338fce --- /dev/null +++ b/mysql-test/suite/jp/t/jp_create_db_sjis.test @@ -0,0 +1,26 @@ +--character_set sjis +SET NAMES sjis; +SET character_set_database = sjis; +--disable_warnings +drop database if exists `ݺ`; +drop database if exists `{`; +drop database if exists `\\\`; +--enable_warnings + +# +# Test Creating databases using Japanese charact for DB name in ujis encoding +# + +CREATE DATABASE `ݺ`; +CREATE DATABASE `{`; +CREATE DATABASE `\\\`; + +SHOW DATABASES; + +USE `ݺ`; +USE `{`; +USE `\\\`; + +DROP DATABASE `ݺ`; +DROP DATABASE `{`; +DROP DATABASE `\\\`; diff --git a/mysql-test/suite/jp/t/jp_create_db_ucs2.test b/mysql-test/suite/jp/t/jp_create_db_ucs2.test new file mode 100755 index 00000000000..9e8ca7d2a0f --- /dev/null +++ b/mysql-test/suite/jp/t/jp_create_db_ucs2.test @@ -0,0 +1,29 @@ +--source include/have_ucs2.inc + +--disable_warnings +drop database if exists `ƎΎݎ`; +drop database if exists `ܸ`; +drop database if exists `܏ݏ`; +--enable_warnings + +# +# Test Creating databases using Japanese charact for DB name in ucs2 encoding +# + +SET NAMES ujis; +SET character_set_database = ucs2; +SET character_set_server = ucs2; + +CREATE DATABASE `ƎΎݎ`; +CREATE DATABASE `ܸ`; +CREATE DATABASE `܏ݏ`; + +SHOW DATABASES; + +USE `ƎΎݎ`; +USE `ܸ`; +USE `܏ݏ`; + +DROP DATABASE `ƎΎݎ`; +DROP DATABASE `ܸ`; +DROP DATABASE `܏ݏ`; diff --git a/mysql-test/suite/jp/t/jp_create_db_ujis.test b/mysql-test/suite/jp/t/jp_create_db_ujis.test new file mode 100755 index 00000000000..0095f864836 --- /dev/null +++ b/mysql-test/suite/jp/t/jp_create_db_ujis.test @@ -0,0 +1,28 @@ +--source include/have_ujis.inc + +--disable_warnings +drop database if exists `ƎΎݎ`; +drop database if exists `ܸ`; +drop database if exists `܏ݏ`; +--enable_warnings + +# +# Test Creating databases using Japanese charact for DB name in ujis encoding +# + +SET NAMES ujis; +SET character_set_database = ujis; + +CREATE DATABASE `ƎΎݎ`; +CREATE DATABASE `ܸ`; +CREATE DATABASE `܏ݏ`; + +SHOW DATABASES; + +USE `ƎΎݎ`; +USE `ܸ`; +USE `܏ݏ`; + +DROP DATABASE `ƎΎݎ`; +DROP DATABASE `ܸ`; +DROP DATABASE `܏ݏ`; diff --git a/mysql-test/suite/jp/t/jp_create_db_utf8.test b/mysql-test/suite/jp/t/jp_create_db_utf8.test new file mode 100755 index 00000000000..4f8eb24cbe3 --- /dev/null +++ b/mysql-test/suite/jp/t/jp_create_db_utf8.test @@ -0,0 +1,26 @@ +--disable_warnings +drop database if exists `ニホンゴ`; +drop database if exists `日本語`; +drop database if exists `龔龖龗`; +--enable_warnings + +# +# Test Creating databases using Japanese charact for DB name in utf8 encoding +# + +SET NAMES utf8; +SET character_set_database = utf8; + +CREATE DATABASE `ニホンゴ`; +CREATE DATABASE `日本語`; +CREATE DATABASE `龔龖龗`; + +SHOW DATABASES; + +USE `ニホンゴ`; +USE `日本語`; +USE `龔龖龗`; + +DROP DATABASE `ニホンゴ`; +DROP DATABASE `日本語`; +DROP DATABASE `龔龖龗`; diff --git a/mysql-test/suite/jp/t/jp_create_tbl_sjis.test b/mysql-test/suite/jp/t/jp_create_tbl_sjis.test new file mode 100755 index 00000000000..45c0b24388b --- /dev/null +++ b/mysql-test/suite/jp/t/jp_create_tbl_sjis.test @@ -0,0 +1,308 @@ +--character_set sjis +SET NAMES sjis; +SET character_set_database = sjis; +--disable_warnings +DROP TABLE IF EXISTS ``; +DROP TABLE IF EXISTS ``; +DROP TABLE IF EXISTS ``; +DROP TABLE IF EXISTS ``; +DROP TABLE IF EXISTS ``; +DROP TABLE IF EXISTS ``; +DROP TABLE IF EXISTS ``; +DROP TABLE IF EXISTS ``; +DROP TABLE IF EXISTS ``; +DROP TABLE IF EXISTS ``; +DROP TABLE IF EXISTS `\\\`; +DROP TABLE IF EXISTS `\\\`; +DROP TABLE IF EXISTS `\\\`; +DROP TABLE IF EXISTS `\\\`; +DROP TABLE IF EXISTS `\\\`; +--enable_warnings + +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = ujis engine=INNODB; +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = ujis engine=INNODB; +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = sjis engine=INNODB; +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = sjis engine=INNODB; +CREATE TABLE `\\\`(`\\\` char(1)) DEFAULT CHARSET = sjis engine=INNODB; +CREATE TABLE `\\\`(`\\\` char(1)) DEFAULT CHARSET = sjis engine=INNODB; +# Tables should not be created because table names exist +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = sjis engine=INNODB; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = sjis engine=INNODB; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = sjis engine=INNODB; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = sjis engine=INNODB; +CREATE TABLE IF NOT EXISTS `\\\`(`\\\` char(1)) DEFAULT CHARSET = sjis engine=INNODB; +CREATE TABLE IF NOT EXISTS `\\\`(`\\\` char(1)) DEFAULT CHARSET = sjis engine=INNODB; +# Tables should be created +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = sjis engine=INNODB; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = sjis engine=INNODB; +CREATE TABLE IF NOT EXISTS `\\\`(`\\\`char(1)) DEFAULT CHARSET = sjis engine=INNODB; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = sjis engine=INNODB; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = sjis engine=INNODB; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = sjis engine=INNODB; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = sjis engine=INNODB; +CREATE TEMPORARY TABLE `\\\`(`\\\` char(1)) DEFAULT CHARSET = sjis engine=INNODB; +CREATE TEMPORARY TABLE `\\\`(`\\\` char(1)) DEFAULT CHARSET = sjis engine=INNODB; + +DESC ``; +DESC ``; +DESC ``; +DESC ``; +DESC ``; +DESC ``; +DESC ``; +DESC ``; +DESC ``; +DESC ``; +DESC `\\\`; +DESC `\\\`; +DESC `\\\`; +DESC `\\\`; +DESC `\\\`; + +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE `\\\`; +SHOW CREATE TABLE `\\\`; +SHOW CREATE TABLE `\\\`; +SHOW CREATE TABLE `\\\`; +SHOW CREATE TABLE `\\\`; + +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE `\\\`; +DROP TABLE `\\\`; +DROP TABLE `\\\`; +DROP TABLE `\\\`; +DROP TABLE `\\\`; + +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = sjis engine=MyISAM; +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = sjis engine=MyISAM; +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = sjis engine=MyISAM; +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = sjis engine=MyISAM; +CREATE TABLE `\\\`(`\\\` char(1)) DEFAULT CHARSET = sjis engine=MyISAM; +CREATE TABLE `\\\`(`\\\` char(1)) DEFAULT CHARSET = sjis engine=MyISAM; +# Tables should not be created because table names exist +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = sjis engine=MyISAM; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = sjis engine=MyISAM; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = sjis engine=MyISAM; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = sjis engine=MyISAM; +CREATE TABLE IF NOT EXISTS `\\\`(`\\\` char(1)) DEFAULT CHARSET = sjis engine=MyISAM; +CREATE TABLE IF NOT EXISTS `\\\`(`\\\` char(1)) DEFAULT CHARSET = sjis engine=MyISAM; +# Tables should be created +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = sjis engine=MyISAM; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = sjis engine=MyISAM; +CREATE TABLE IF NOT EXISTS `\\\`(`\\\`char(1)) DEFAULT CHARSET = sjis engine=MyISAM; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = sjis engine=MyISAM; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = sjis engine=MyISAM; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = sjis engine=MyISAM; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = sjis engine=MyISAM; +CREATE TEMPORARY TABLE `\\\`(`\\\` char(1)) DEFAULT CHARSET = sjis engine=MyISAM; +CREATE TEMPORARY TABLE `\\\`(`\\\` char(1)) DEFAULT CHARSET = sjis engine=MyISAM; + +DESC ``; +DESC ``; +DESC ``; +DESC ``; +DESC ``; +DESC ``; +DESC ``; +DESC ``; +DESC ``; +DESC ``; +DESC `\\\`; +DESC `\\\`; +DESC `\\\`; +DESC `\\\`; +DESC `\\\`; + +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE `\\\`; +SHOW CREATE TABLE `\\\`; +SHOW CREATE TABLE `\\\`; +SHOW CREATE TABLE `\\\`; +SHOW CREATE TABLE `\\\`; + +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE `\\\`; +DROP TABLE `\\\`; +DROP TABLE `\\\`; +DROP TABLE `\\\`; +DROP TABLE `\\\`; + +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = sjis engine=HEAP; +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = sjis engine=HEAP; +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = sjis engine=HEAP; +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = sjis engine=HEAP; +CREATE TABLE `\\\`(`\\\` char(1)) DEFAULT CHARSET = sjis engine=HEAP; +CREATE TABLE `\\\`(`\\\` char(1)) DEFAULT CHARSET = sjis engine=HEAP; +# Tables should not be created because table names exist +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = sjis engine=HEAP; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = sjis engine=HEAP; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = sjis engine=HEAP; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = sjis engine=HEAP; +CREATE TABLE IF NOT EXISTS `\\\`(`\\\` char(1)) DEFAULT CHARSET = sjis engine=HEAP; +CREATE TABLE IF NOT EXISTS `\\\`(`\\\` char(1)) DEFAULT CHARSET = sjis engine=HEAP; +# Tables should be created +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = sjis engine=HEAP; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = sjis engine=HEAP; +CREATE TABLE IF NOT EXISTS `\\\`(`\\\`char(1)) DEFAULT CHARSET = sjis engine=HEAP; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = sjis engine=HEAP; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = sjis engine=HEAP; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = sjis engine=HEAP; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = sjis engine=HEAP; +CREATE TEMPORARY TABLE `\\\`(`\\\` char(1)) DEFAULT CHARSET = sjis engine=HEAP; +CREATE TEMPORARY TABLE `\\\`(`\\\` char(1)) DEFAULT CHARSET = sjis engine=HEAP; + +DESC ``; +DESC ``; +DESC ``; +DESC ``; +DESC ``; +DESC ``; +DESC ``; +DESC ``; +DESC ``; +DESC ``; +DESC `\\\`; +DESC `\\\`; +DESC `\\\`; +DESC `\\\`; +DESC `\\\`; + +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE `\\\`; +SHOW CREATE TABLE `\\\`; +SHOW CREATE TABLE `\\\`; +SHOW CREATE TABLE `\\\`; +SHOW CREATE TABLE `\\\`; + +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE `\\\`; +DROP TABLE `\\\`; +DROP TABLE `\\\`; +DROP TABLE `\\\`; +DROP TABLE `\\\`; + +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = sjis engine=BDB; +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = sjis engine=BDB; +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = sjis engine=BDB; +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = sjis engine=BDB; +CREATE TABLE `\\\`(`\\\` char(1)) DEFAULT CHARSET = sjis engine=BDB; +CREATE TABLE `\\\`(`\\\` char(1)) DEFAULT CHARSET = sjis engine=BDB; +# Tables should not be created because table names exist +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = sjis engine=BDB; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = sjis engine=BDB; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = sjis engine=BDB; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = sjis engine=BDB; +CREATE TABLE IF NOT EXISTS `\\\`(`\\\` char(1)) DEFAULT CHARSET = sjis engine=BDB; +CREATE TABLE IF NOT EXISTS `\\\`(`\\\` char(1)) DEFAULT CHARSET = sjis engine=BDB; +# Tables should be created +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = sjis engine=BDB; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = sjis engine=BDB; +CREATE TABLE IF NOT EXISTS `\\\`(`\\\`char(1)) DEFAULT CHARSET = sjis engine=BDB; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = sjis engine=BDB; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = sjis engine=BDB; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = sjis engine=BDB; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = sjis engine=BDB; +CREATE TEMPORARY TABLE `\\\`(`\\\` char(1)) DEFAULT CHARSET = sjis engine=BDB; +CREATE TEMPORARY TABLE `\\\`(`\\\` char(1)) DEFAULT CHARSET = sjis engine=BDB; + +DESC ``; +DESC ``; +DESC ``; +DESC ``; +DESC ``; +DESC ``; +DESC ``; +DESC ``; +DESC ``; +DESC ``; +DESC `\\\`; +DESC `\\\`; +DESC `\\\`; +DESC `\\\`; +DESC `\\\`; + +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE `\\\`; +SHOW CREATE TABLE `\\\`; +SHOW CREATE TABLE `\\\`; +SHOW CREATE TABLE `\\\`; +SHOW CREATE TABLE `\\\`; + +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE `\\\`; +DROP TABLE `\\\`; +DROP TABLE `\\\`; +DROP TABLE `\\\`; +DROP TABLE `\\\`; diff --git a/mysql-test/suite/jp/t/jp_create_tbl_ucs2.test b/mysql-test/suite/jp/t/jp_create_tbl_ucs2.test new file mode 100755 index 00000000000..519697e3530 --- /dev/null +++ b/mysql-test/suite/jp/t/jp_create_tbl_ucs2.test @@ -0,0 +1,314 @@ +--source include/have_ucs2.inc + +--disable_warnings +DROP TABLE IF EXISTS ``; +DROP TABLE IF EXISTS ``; +DROP TABLE IF EXISTS ``; +DROP TABLE IF EXISTS ``; +DROP TABLE IF EXISTS ``; +DROP TABLE IF EXISTS ``; +DROP TABLE IF EXISTS ``; +DROP TABLE IF EXISTS ``; +DROP TABLE IF EXISTS ``; +DROP TABLE IF EXISTS ``; +DROP TABLE IF EXISTS `ݏݏ`; +DROP TABLE IF EXISTS `ޏޏ`; +DROP TABLE IF EXISTS `ߏߏ`; +DROP TABLE IF EXISTS ``; +DROP TABLE IF EXISTS ``; +--enable_warnings + +# +# Test creating table with Japanese characters in ucs2 encoding +# + +SET NAMES ujis; +SET character_set_database = ucs2; + +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=INNODB; +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=INNODB; +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=INNODB; +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=INNODB; +CREATE TABLE `ݏݏ`(`` char(1)) DEFAULT CHARSET = ucs2 engine=INNODB; +CREATE TABLE `ޏޏ`(`` char(1)) DEFAULT CHARSET = ucs2 engine=INNODB; +# Tables should not be created because table names exist +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=INNODB; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=INNODB; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=INNODB; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=INNODB; +CREATE TABLE IF NOT EXISTS `ݏݏ`(`` char(1)) DEFAULT CHARSET = ucs2 engine=INNODB; +CREATE TABLE IF NOT EXISTS `ޏޏ`(`` char(1)) DEFAULT CHARSET = ucs2 engine=INNODB; +# Tables should be created +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=INNODB; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=INNODB; +CREATE TABLE IF NOT EXISTS `ߏߏ`(``char(1)) DEFAULT CHARSET = ucs2 engine=INNODB; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=INNODB; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=INNODB; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=INNODB; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=INNODB; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=INNODB; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=INNODB; + +DESC ``; +DESC ``; +DESC ``; +DESC ``; +DESC ``; +DESC ``; +DESC ``; +DESC ``; +DESC ``; +DESC ``; +DESC `ݏݏ`; +DESC `ޏޏ`; +DESC `ߏߏ`; +DESC ``; +DESC ``; + +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE `ݏݏ`; +SHOW CREATE TABLE `ޏޏ`; +SHOW CREATE TABLE `ߏߏ`; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; + +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE `ݏݏ`; +DROP TABLE `ޏޏ`; +DROP TABLE `ߏߏ`; +DROP TABLE ``; +DROP TABLE ``; + +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=MyISAM; +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=MyISAM; +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=MyISAM; +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=MyISAM; +CREATE TABLE `ݏݏ`(`` char(1)) DEFAULT CHARSET = ucs2 engine=MyISAM; +CREATE TABLE `ޏޏ`(`` char(1)) DEFAULT CHARSET = ucs2 engine=MyISAM; +# Tables should not be created because table names exist +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=MyISAM; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=MyISAM; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=MyISAM; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=MyISAM; +CREATE TABLE IF NOT EXISTS `ݏݏ`(`` char(1)) DEFAULT CHARSET = ucs2 engine=MyISAM; +CREATE TABLE IF NOT EXISTS `ޏޏ`(`` char(1)) DEFAULT CHARSET = ucs2 engine=MyISAM; +# Tables should be created +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=MyISAM; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=MyISAM; +CREATE TABLE IF NOT EXISTS `ߏߏ`(``char(1)) DEFAULT CHARSET = ucs2 engine=MyISAM; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=MyISAM; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=MyISAM; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=MyISAM; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=MyISAM; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=MyISAM; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=MyISAM; + +DESC ``; +DESC ``; +DESC ``; +DESC ``; +DESC ``; +DESC ``; +DESC ``; +DESC ``; +DESC ``; +DESC ``; +DESC `ݏݏ`; +DESC `ޏޏ`; +DESC `ߏߏ`; +DESC ``; +DESC ``; + +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE `ݏݏ`; +SHOW CREATE TABLE `ޏޏ`; +SHOW CREATE TABLE `ߏߏ`; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; + +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE `ݏݏ`; +DROP TABLE `ޏޏ`; +DROP TABLE `ߏߏ`; +DROP TABLE ``; +DROP TABLE ``; + +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=HEAP; +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=HEAP; +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=HEAP; +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=HEAP; +CREATE TABLE `ݏݏ`(`` char(1)) DEFAULT CHARSET = ucs2 engine=HEAP; +CREATE TABLE `ޏޏ`(`` char(1)) DEFAULT CHARSET = ucs2 engine=HEAP; +# Tables should not be created because table names exist +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=HEAP; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=HEAP; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=HEAP; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=HEAP; +CREATE TABLE IF NOT EXISTS `ݏݏ`(`` char(1)) DEFAULT CHARSET = ucs2 engine=HEAP; +CREATE TABLE IF NOT EXISTS `ޏޏ`(`` char(1)) DEFAULT CHARSET = ucs2 engine=HEAP; +# Tables should be created +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=HEAP; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=HEAP; +CREATE TABLE IF NOT EXISTS `ߏߏ`(``char(1)) DEFAULT CHARSET = ucs2 engine=HEAP; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=HEAP; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=HEAP; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=HEAP; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=HEAP; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=HEAP; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=HEAP; + +DESC ``; +DESC ``; +DESC ``; +DESC ``; +DESC ``; +DESC ``; +DESC ``; +DESC ``; +DESC ``; +DESC ``; +DESC `ݏݏ`; +DESC `ޏޏ`; +DESC `ߏߏ`; +DESC ``; +DESC ``; + +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE `ݏݏ`; +SHOW CREATE TABLE `ޏޏ`; +SHOW CREATE TABLE `ߏߏ`; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; + +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE `ݏݏ`; +DROP TABLE `ޏޏ`; +DROP TABLE `ߏߏ`; +DROP TABLE ``; +DROP TABLE ``; + +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=BDB; +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=BDB; +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=BDB; +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=BDB; +CREATE TABLE `ݏݏ`(`` char(1)) DEFAULT CHARSET = ucs2 engine=BDB; +CREATE TABLE `ޏޏ`(`` char(1)) DEFAULT CHARSET = ucs2 engine=BDB; +# Tables should not be created because table names exist +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=BDB; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=BDB; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=BDB; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=BDB; +CREATE TABLE IF NOT EXISTS `ݏݏ`(`` char(1)) DEFAULT CHARSET = ucs2 engine=BDB; +CREATE TABLE IF NOT EXISTS `ޏޏ`(`` char(1)) DEFAULT CHARSET = ucs2 engine=BDB; +# Tables should be created +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=BDB; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=BDB; +CREATE TABLE IF NOT EXISTS `ߏߏ`(``char(1)) DEFAULT CHARSET = ucs2 engine=BDB; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=BDB; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=BDB; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=BDB; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=BDB; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=BDB; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ucs2 engine=BDB; + +DESC ``; +DESC ``; +DESC ``; +DESC ``; +DESC ``; +DESC ``; +DESC ``; +DESC ``; +DESC ``; +DESC ``; +DESC `ݏݏ`; +DESC `ޏޏ`; +DESC `ߏߏ`; +DESC ``; +DESC ``; + +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE `ݏݏ`; +SHOW CREATE TABLE `ޏޏ`; +SHOW CREATE TABLE `ߏߏ`; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; + +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE `ݏݏ`; +DROP TABLE `ޏޏ`; +DROP TABLE `ߏߏ`; +DROP TABLE ``; +DROP TABLE ``; diff --git a/mysql-test/suite/jp/t/jp_create_tbl_ujis.test b/mysql-test/suite/jp/t/jp_create_tbl_ujis.test new file mode 100755 index 00000000000..ac70facdce9 --- /dev/null +++ b/mysql-test/suite/jp/t/jp_create_tbl_ujis.test @@ -0,0 +1,314 @@ +--source include/have_ujis.inc + +--disable_warnings +DROP TABLE IF EXISTS ``; +DROP TABLE IF EXISTS ``; +DROP TABLE IF EXISTS ``; +DROP TABLE IF EXISTS ``; +DROP TABLE IF EXISTS ``; +DROP TABLE IF EXISTS ``; +DROP TABLE IF EXISTS ``; +DROP TABLE IF EXISTS ``; +DROP TABLE IF EXISTS ``; +DROP TABLE IF EXISTS ``; +DROP TABLE IF EXISTS `ݏݏ`; +DROP TABLE IF EXISTS `ޏޏ`; +DROP TABLE IF EXISTS `ߏߏ`; +DROP TABLE IF EXISTS ``; +DROP TABLE IF EXISTS ``; +--enable_warnings + +# +# Test creating table with Japanese characters in ujis encoding +# + +SET NAMES ujis; +SET character_set_database = ujis; + +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = ujis engine=INNODB; +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = ujis engine=INNODB; +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = ujis engine=INNODB; +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = ujis engine=INNODB; +CREATE TABLE `ݏݏ`(`` char(1)) DEFAULT CHARSET = ujis engine=INNODB; +CREATE TABLE `ޏޏ`(`` char(1)) DEFAULT CHARSET = ujis engine=INNODB; +# Tables should not be created because table names exist +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ujis engine=INNODB; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ujis engine=INNODB; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ujis engine=INNODB; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ujis engine=INNODB; +CREATE TABLE IF NOT EXISTS `ݏݏ`(`` char(1)) DEFAULT CHARSET = ujis engine=INNODB; +CREATE TABLE IF NOT EXISTS `ޏޏ`(`` char(1)) DEFAULT CHARSET = ujis engine=INNODB; +# Tables should be created +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ujis engine=INNODB; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ujis engine=INNODB; +CREATE TABLE IF NOT EXISTS `ߏߏ`(``char(1)) DEFAULT CHARSET = ujis engine=INNODB; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ujis engine=INNODB; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ujis engine=INNODB; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ujis engine=INNODB; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ujis engine=INNODB; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ujis engine=INNODB; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ujis engine=INNODB; + +DESC ``; +DESC ``; +DESC ``; +DESC ``; +DESC ``; +DESC ``; +DESC ``; +DESC ``; +DESC ``; +DESC ``; +DESC `ݏݏ`; +DESC `ޏޏ`; +DESC `ߏߏ`; +DESC ``; +DESC ``; + +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE `ݏݏ`; +SHOW CREATE TABLE `ޏޏ`; +SHOW CREATE TABLE `ߏߏ`; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; + +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE `ݏݏ`; +DROP TABLE `ޏޏ`; +DROP TABLE `ߏߏ`; +DROP TABLE ``; +DROP TABLE ``; + +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = ujis engine=MyISAM; +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = ujis engine=MyISAM; +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = ujis engine=MyISAM; +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = ujis engine=MyISAM; +CREATE TABLE `ݏݏ`(`` char(1)) DEFAULT CHARSET = ujis engine=MyISAM; +CREATE TABLE `ޏޏ`(`` char(1)) DEFAULT CHARSET = ujis engine=MyISAM; +# Tables should not be created because table names exist +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ujis engine=MyISAM; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ujis engine=MyISAM; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ujis engine=MyISAM; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ujis engine=MyISAM; +CREATE TABLE IF NOT EXISTS `ݏݏ`(`` char(1)) DEFAULT CHARSET = ujis engine=MyISAM; +CREATE TABLE IF NOT EXISTS `ޏޏ`(`` char(1)) DEFAULT CHARSET = ujis engine=MyISAM; +# Tables should be created +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ujis engine=MyISAM; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ujis engine=MyISAM; +CREATE TABLE IF NOT EXISTS `ߏߏ`(``char(1)) DEFAULT CHARSET = ujis engine=MyISAM; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ujis engine=MyISAM; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ujis engine=MyISAM; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ujis engine=MyISAM; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ujis engine=MyISAM; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ujis engine=MyISAM; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ujis engine=MyISAM; + +DESC ``; +DESC ``; +DESC ``; +DESC ``; +DESC ``; +DESC ``; +DESC ``; +DESC ``; +DESC ``; +DESC ``; +DESC `ݏݏ`; +DESC `ޏޏ`; +DESC `ߏߏ`; +DESC ``; +DESC ``; + +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE `ݏݏ`; +SHOW CREATE TABLE `ޏޏ`; +SHOW CREATE TABLE `ߏߏ`; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; + +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE `ݏݏ`; +DROP TABLE `ޏޏ`; +DROP TABLE `ߏߏ`; +DROP TABLE ``; +DROP TABLE ``; + +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = ujis engine=HEAP; +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = ujis engine=HEAP; +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = ujis engine=HEAP; +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = ujis engine=HEAP; +CREATE TABLE `ݏݏ`(`` char(1)) DEFAULT CHARSET = ujis engine=HEAP; +CREATE TABLE `ޏޏ`(`` char(1)) DEFAULT CHARSET = ujis engine=HEAP; +# Tables should not be created because table names exist +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ujis engine=HEAP; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ujis engine=HEAP; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ujis engine=HEAP; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ujis engine=HEAP; +CREATE TABLE IF NOT EXISTS `ݏݏ`(`` char(1)) DEFAULT CHARSET = ujis engine=HEAP; +CREATE TABLE IF NOT EXISTS `ޏޏ`(`` char(1)) DEFAULT CHARSET = ujis engine=HEAP; +# Tables should be created +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ujis engine=HEAP; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ujis engine=HEAP; +CREATE TABLE IF NOT EXISTS `ߏߏ`(``char(1)) DEFAULT CHARSET = ujis engine=HEAP; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ujis engine=HEAP; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ujis engine=HEAP; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ujis engine=HEAP; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ujis engine=HEAP; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ujis engine=HEAP; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ujis engine=HEAP; + +DESC ``; +DESC ``; +DESC ``; +DESC ``; +DESC ``; +DESC ``; +DESC ``; +DESC ``; +DESC ``; +DESC ``; +DESC `ݏݏ`; +DESC `ޏޏ`; +DESC `ߏߏ`; +DESC ``; +DESC ``; + +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE `ݏݏ`; +SHOW CREATE TABLE `ޏޏ`; +SHOW CREATE TABLE `ߏߏ`; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; + +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE `ݏݏ`; +DROP TABLE `ޏޏ`; +DROP TABLE `ߏߏ`; +DROP TABLE ``; +DROP TABLE ``; + +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = ujis engine=BDB; +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = ujis engine=BDB; +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = ujis engine=BDB; +CREATE TABLE ``(`` char(1)) DEFAULT CHARSET = ujis engine=BDB; +CREATE TABLE `ݏݏ`(`` char(1)) DEFAULT CHARSET = ujis engine=BDB; +CREATE TABLE `ޏޏ`(`` char(1)) DEFAULT CHARSET = ujis engine=BDB; +# Tables should not be created because table names exist +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ujis engine=BDB; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ujis engine=BDB; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ujis engine=BDB; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ujis engine=BDB; +CREATE TABLE IF NOT EXISTS `ݏݏ`(`` char(1)) DEFAULT CHARSET = ujis engine=BDB; +CREATE TABLE IF NOT EXISTS `ޏޏ`(`` char(1)) DEFAULT CHARSET = ujis engine=BDB; +# Tables should be created +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ujis engine=BDB; +CREATE TABLE IF NOT EXISTS ``(`` char(1)) DEFAULT CHARSET = ujis engine=BDB; +CREATE TABLE IF NOT EXISTS `ߏߏ`(``char(1)) DEFAULT CHARSET = ujis engine=BDB; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ujis engine=BDB; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ujis engine=BDB; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ujis engine=BDB; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ujis engine=BDB; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ujis engine=BDB; +CREATE TEMPORARY TABLE ``(`` char(1)) DEFAULT CHARSET = ujis engine=BDB; + +DESC ``; +DESC ``; +DESC ``; +DESC ``; +DESC ``; +DESC ``; +DESC ``; +DESC ``; +DESC ``; +DESC ``; +DESC `ݏݏ`; +DESC `ޏޏ`; +DESC `ߏߏ`; +DESC ``; +DESC ``; + +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE `ݏݏ`; +SHOW CREATE TABLE `ޏޏ`; +SHOW CREATE TABLE `ߏߏ`; +SHOW CREATE TABLE ``; +SHOW CREATE TABLE ``; + +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE ``; +DROP TABLE `ݏݏ`; +DROP TABLE `ޏޏ`; +DROP TABLE `ߏߏ`; +DROP TABLE ``; +DROP TABLE ``; diff --git a/mysql-test/suite/jp/t/jp_create_tbl_utf8.test b/mysql-test/suite/jp/t/jp_create_tbl_utf8.test new file mode 100755 index 00000000000..5c816eb169a --- /dev/null +++ b/mysql-test/suite/jp/t/jp_create_tbl_utf8.test @@ -0,0 +1,312 @@ +--disable_warnings +DROP TABLE IF EXISTS `アアア`; +DROP TABLE IF EXISTS `イイイ`; +DROP TABLE IF EXISTS `ウウウ`; +DROP TABLE IF EXISTS `エエエ`; +DROP TABLE IF EXISTS `オオオ`; +DROP TABLE IF EXISTS `あああ`; +DROP TABLE IF EXISTS `いいい`; +DROP TABLE IF EXISTS `ううう`; +DROP TABLE IF EXISTS `えええ`; +DROP TABLE IF EXISTS `おおお`; +DROP TABLE IF EXISTS `龖龖龖`; +DROP TABLE IF EXISTS `龗龗龗`; +DROP TABLE IF EXISTS `龞龞龞`; +DROP TABLE IF EXISTS `龡龡龡`; +DROP TABLE IF EXISTS `龢龢龢`; +--enable_warnings + +# +# Test creating table with Japanese characters in utf8 encoding +# + +SET NAMES utf8; +SET character_set_database = utf8; + +CREATE TABLE `アアア`(`カカカ` char(1)) DEFAULT CHARSET = utf8 engine=INNODB; +CREATE TABLE `イイイ`(`キキキ` char(1)) DEFAULT CHARSET = utf8 engine=INNODB; +CREATE TABLE `あああ`(`かかか` char(1)) DEFAULT CHARSET = utf8 engine=INNODB; +CREATE TABLE `いいい`(`ききき` char(1)) DEFAULT CHARSET = utf8 engine=INNODB; +CREATE TABLE `龖龖龖`(`丂丂丂` char(1)) DEFAULT CHARSET = utf8 engine=INNODB; +CREATE TABLE `龗龗龗`(`丄丄丄` char(1)) DEFAULT CHARSET = utf8 engine=INNODB; +# Tables should not be created because table names exist +CREATE TABLE IF NOT EXISTS `アアア`(`カカカ` char(1)) DEFAULT CHARSET = utf8 engine=INNODB; +CREATE TABLE IF NOT EXISTS `イイイ`(`キキキ` char(1)) DEFAULT CHARSET = utf8 engine=INNODB; +CREATE TABLE IF NOT EXISTS `あああ`(`かかか` char(1)) DEFAULT CHARSET = utf8 engine=INNODB; +CREATE TABLE IF NOT EXISTS `いいい`(`ききき` char(1)) DEFAULT CHARSET = utf8 engine=INNODB; +CREATE TABLE IF NOT EXISTS `龖龖龖`(`丂丂丂` char(1)) DEFAULT CHARSET = utf8 engine=INNODB; +CREATE TABLE IF NOT EXISTS `龗龗龗`(`丄丄丄` char(1)) DEFAULT CHARSET = utf8 engine=INNODB; +# Tables should be created +CREATE TABLE IF NOT EXISTS `ウウウ`(`ククク` char(1)) DEFAULT CHARSET = utf8 engine=INNODB; +CREATE TABLE IF NOT EXISTS `ううう`(`くくく` char(1)) DEFAULT CHARSET = utf8 engine=INNODB; +CREATE TABLE IF NOT EXISTS `龞龞龞`(`丅丅丅`char(1)) DEFAULT CHARSET = utf8 engine=INNODB; +CREATE TEMPORARY TABLE `エエエ`(`ケケケ` char(1)) DEFAULT CHARSET = utf8 engine=INNODB; +CREATE TEMPORARY TABLE `オオオ`(`コココ` char(1)) DEFAULT CHARSET = utf8 engine=INNODB; +CREATE TEMPORARY TABLE `えええ`(`けけけ` char(1)) DEFAULT CHARSET = utf8 engine=INNODB; +CREATE TEMPORARY TABLE `おおお`(`こここ` char(1)) DEFAULT CHARSET = utf8 engine=INNODB; +CREATE TEMPORARY TABLE `龡龡龡`(`丌丌丌` char(1)) DEFAULT CHARSET = utf8 engine=INNODB; +CREATE TEMPORARY TABLE `龢龢龢`(`丒丒丒` char(1)) DEFAULT CHARSET = utf8 engine=INNODB; + +DESC `アアア`; +DESC `イイイ`; +DESC `ウウウ`; +DESC `エエエ`; +DESC `オオオ`; +DESC `あああ`; +DESC `いいい`; +DESC `ううう`; +DESC `えええ`; +DESC `おおお`; +DESC `龖龖龖`; +DESC `龗龗龗`; +DESC `龞龞龞`; +DESC `龡龡龡`; +DESC `龢龢龢`; + +SHOW CREATE TABLE `アアア`; +SHOW CREATE TABLE `イイイ`; +SHOW CREATE TABLE `ウウウ`; +SHOW CREATE TABLE `エエエ`; +SHOW CREATE TABLE `オオオ`; +SHOW CREATE TABLE `あああ`; +SHOW CREATE TABLE `いいい`; +SHOW CREATE TABLE `ううう`; +SHOW CREATE TABLE `えええ`; +SHOW CREATE TABLE `おおお`; +SHOW CREATE TABLE `龖龖龖`; +SHOW CREATE TABLE `龗龗龗`; +SHOW CREATE TABLE `龞龞龞`; +SHOW CREATE TABLE `龡龡龡`; +SHOW CREATE TABLE `龢龢龢`; + +DROP TABLE `アアア`; +DROP TABLE `イイイ`; +DROP TABLE `ウウウ`; +DROP TABLE `エエエ`; +DROP TABLE `オオオ`; +DROP TABLE `あああ`; +DROP TABLE `いいい`; +DROP TABLE `ううう`; +DROP TABLE `えええ`; +DROP TABLE `おおお`; +DROP TABLE `龖龖龖`; +DROP TABLE `龗龗龗`; +DROP TABLE `龞龞龞`; +DROP TABLE `龡龡龡`; +DROP TABLE `龢龢龢`; + +CREATE TABLE `アアア`(`カカカ` char(1)) DEFAULT CHARSET = utf8 engine=MyISAM; +CREATE TABLE `イイイ`(`キキキ` char(1)) DEFAULT CHARSET = utf8 engine=MyISAM; +CREATE TABLE `あああ`(`かかか` char(1)) DEFAULT CHARSET = utf8 engine=MyISAM; +CREATE TABLE `いいい`(`ききき` char(1)) DEFAULT CHARSET = utf8 engine=MyISAM; +CREATE TABLE `龖龖龖`(`丂丂丂` char(1)) DEFAULT CHARSET = utf8 engine=MyISAM; +CREATE TABLE `龗龗龗`(`丄丄丄` char(1)) DEFAULT CHARSET = utf8 engine=MyISAM; +# Tables should not be created because table names exist +CREATE TABLE IF NOT EXISTS `アアア`(`カカカ` char(1)) DEFAULT CHARSET = utf8 engine=MyISAM; +CREATE TABLE IF NOT EXISTS `イイイ`(`キキキ` char(1)) DEFAULT CHARSET = utf8 engine=MyISAM; +CREATE TABLE IF NOT EXISTS `あああ`(`かかか` char(1)) DEFAULT CHARSET = utf8 engine=MyISAM; +CREATE TABLE IF NOT EXISTS `いいい`(`ききき` char(1)) DEFAULT CHARSET = utf8 engine=MyISAM; +CREATE TABLE IF NOT EXISTS `龖龖龖`(`丂丂丂` char(1)) DEFAULT CHARSET = utf8 engine=MyISAM; +CREATE TABLE IF NOT EXISTS `龗龗龗`(`丄丄丄` char(1)) DEFAULT CHARSET = utf8 engine=MyISAM; +# Tables should be created +CREATE TABLE IF NOT EXISTS `ウウウ`(`ククク` char(1)) DEFAULT CHARSET = utf8 engine=MyISAM; +CREATE TABLE IF NOT EXISTS `ううう`(`くくく` char(1)) DEFAULT CHARSET = utf8 engine=MyISAM; +CREATE TABLE IF NOT EXISTS `龞龞龞`(`丅丅丅`char(1)) DEFAULT CHARSET = utf8 engine=MyISAM; +CREATE TEMPORARY TABLE `エエエ`(`ケケケ` char(1)) DEFAULT CHARSET = utf8 engine=MyISAM; +CREATE TEMPORARY TABLE `オオオ`(`コココ` char(1)) DEFAULT CHARSET = utf8 engine=MyISAM; +CREATE TEMPORARY TABLE `えええ`(`けけけ` char(1)) DEFAULT CHARSET = utf8 engine=MyISAM; +CREATE TEMPORARY TABLE `おおお`(`こここ` char(1)) DEFAULT CHARSET = utf8 engine=MyISAM; +CREATE TEMPORARY TABLE `龡龡龡`(`丌丌丌` char(1)) DEFAULT CHARSET = utf8 engine=MyISAM; +CREATE TEMPORARY TABLE `龢龢龢`(`丒丒丒` char(1)) DEFAULT CHARSET = utf8 engine=MyISAM; + +DESC `アアア`; +DESC `イイイ`; +DESC `ウウウ`; +DESC `エエエ`; +DESC `オオオ`; +DESC `あああ`; +DESC `いいい`; +DESC `ううう`; +DESC `えええ`; +DESC `おおお`; +DESC `龖龖龖`; +DESC `龗龗龗`; +DESC `龞龞龞`; +DESC `龡龡龡`; +DESC `龢龢龢`; + +SHOW CREATE TABLE `アアア`; +SHOW CREATE TABLE `イイイ`; +SHOW CREATE TABLE `ウウウ`; +SHOW CREATE TABLE `エエエ`; +SHOW CREATE TABLE `オオオ`; +SHOW CREATE TABLE `あああ`; +SHOW CREATE TABLE `いいい`; +SHOW CREATE TABLE `ううう`; +SHOW CREATE TABLE `えええ`; +SHOW CREATE TABLE `おおお`; +SHOW CREATE TABLE `龖龖龖`; +SHOW CREATE TABLE `龗龗龗`; +SHOW CREATE TABLE `龞龞龞`; +SHOW CREATE TABLE `龡龡龡`; +SHOW CREATE TABLE `龢龢龢`; + +DROP TABLE `アアア`; +DROP TABLE `イイイ`; +DROP TABLE `ウウウ`; +DROP TABLE `エエエ`; +DROP TABLE `オオオ`; +DROP TABLE `あああ`; +DROP TABLE `いいい`; +DROP TABLE `ううう`; +DROP TABLE `えええ`; +DROP TABLE `おおお`; +DROP TABLE `龖龖龖`; +DROP TABLE `龗龗龗`; +DROP TABLE `龞龞龞`; +DROP TABLE `龡龡龡`; +DROP TABLE `龢龢龢`; + +CREATE TABLE `アアア`(`カカカ` char(1)) DEFAULT CHARSET = utf8 engine=HEAP; +CREATE TABLE `イイイ`(`キキキ` char(1)) DEFAULT CHARSET = utf8 engine=HEAP; +CREATE TABLE `あああ`(`かかか` char(1)) DEFAULT CHARSET = utf8 engine=HEAP; +CREATE TABLE `いいい`(`ききき` char(1)) DEFAULT CHARSET = utf8 engine=HEAP; +CREATE TABLE `龖龖龖`(`丂丂丂` char(1)) DEFAULT CHARSET = utf8 engine=HEAP; +CREATE TABLE `龗龗龗`(`丄丄丄` char(1)) DEFAULT CHARSET = utf8 engine=HEAP; +# Tables should not be created because table names exist +CREATE TABLE IF NOT EXISTS `アアア`(`カカカ` char(1)) DEFAULT CHARSET = utf8 engine=HEAP; +CREATE TABLE IF NOT EXISTS `イイイ`(`キキキ` char(1)) DEFAULT CHARSET = utf8 engine=HEAP; +CREATE TABLE IF NOT EXISTS `あああ`(`かかか` char(1)) DEFAULT CHARSET = utf8 engine=HEAP; +CREATE TABLE IF NOT EXISTS `いいい`(`ききき` char(1)) DEFAULT CHARSET = utf8 engine=HEAP; +CREATE TABLE IF NOT EXISTS `龖龖龖`(`丂丂丂` char(1)) DEFAULT CHARSET = utf8 engine=HEAP; +CREATE TABLE IF NOT EXISTS `龗龗龗`(`丄丄丄` char(1)) DEFAULT CHARSET = utf8 engine=HEAP; +# Tables should be created +CREATE TABLE IF NOT EXISTS `ウウウ`(`ククク` char(1)) DEFAULT CHARSET = utf8 engine=HEAP; +CREATE TABLE IF NOT EXISTS `ううう`(`くくく` char(1)) DEFAULT CHARSET = utf8 engine=HEAP; +CREATE TABLE IF NOT EXISTS `龞龞龞`(`丅丅丅`char(1)) DEFAULT CHARSET = utf8 engine=HEAP; +CREATE TEMPORARY TABLE `エエエ`(`ケケケ` char(1)) DEFAULT CHARSET = utf8 engine=HEAP; +CREATE TEMPORARY TABLE `オオオ`(`コココ` char(1)) DEFAULT CHARSET = utf8 engine=HEAP; +CREATE TEMPORARY TABLE `えええ`(`けけけ` char(1)) DEFAULT CHARSET = utf8 engine=HEAP; +CREATE TEMPORARY TABLE `おおお`(`こここ` char(1)) DEFAULT CHARSET = utf8 engine=HEAP; +CREATE TEMPORARY TABLE `龡龡龡`(`丌丌丌` char(1)) DEFAULT CHARSET = utf8 engine=HEAP; +CREATE TEMPORARY TABLE `龢龢龢`(`丒丒丒` char(1)) DEFAULT CHARSET = utf8 engine=HEAP; + +DESC `アアア`; +DESC `イイイ`; +DESC `ウウウ`; +DESC `エエエ`; +DESC `オオオ`; +DESC `あああ`; +DESC `いいい`; +DESC `ううう`; +DESC `えええ`; +DESC `おおお`; +DESC `龖龖龖`; +DESC `龗龗龗`; +DESC `龞龞龞`; +DESC `龡龡龡`; +DESC `龢龢龢`; + +SHOW CREATE TABLE `アアア`; +SHOW CREATE TABLE `イイイ`; +SHOW CREATE TABLE `ウウウ`; +SHOW CREATE TABLE `エエエ`; +SHOW CREATE TABLE `オオオ`; +SHOW CREATE TABLE `あああ`; +SHOW CREATE TABLE `いいい`; +SHOW CREATE TABLE `ううう`; +SHOW CREATE TABLE `えええ`; +SHOW CREATE TABLE `おおお`; +SHOW CREATE TABLE `龖龖龖`; +SHOW CREATE TABLE `龗龗龗`; +SHOW CREATE TABLE `龞龞龞`; +SHOW CREATE TABLE `龡龡龡`; +SHOW CREATE TABLE `龢龢龢`; + +DROP TABLE `アアア`; +DROP TABLE `イイイ`; +DROP TABLE `ウウウ`; +DROP TABLE `エエエ`; +DROP TABLE `オオオ`; +DROP TABLE `あああ`; +DROP TABLE `いいい`; +DROP TABLE `ううう`; +DROP TABLE `えええ`; +DROP TABLE `おおお`; +DROP TABLE `龖龖龖`; +DROP TABLE `龗龗龗`; +DROP TABLE `龞龞龞`; +DROP TABLE `龡龡龡`; +DROP TABLE `龢龢龢`; + +CREATE TABLE `アアア`(`カカカ` char(1)) DEFAULT CHARSET = utf8 engine=BDB; +CREATE TABLE `イイイ`(`キキキ` char(1)) DEFAULT CHARSET = utf8 engine=BDB; +CREATE TABLE `あああ`(`かかか` char(1)) DEFAULT CHARSET = utf8 engine=BDB; +CREATE TABLE `いいい`(`ききき` char(1)) DEFAULT CHARSET = utf8 engine=BDB; +CREATE TABLE `龖龖龖`(`丂丂丂` char(1)) DEFAULT CHARSET = utf8 engine=BDB; +CREATE TABLE `龗龗龗`(`丄丄丄` char(1)) DEFAULT CHARSET = utf8 engine=BDB; +# Tables should not be created because table names exist +CREATE TABLE IF NOT EXISTS `アアア`(`カカカ` char(1)) DEFAULT CHARSET = utf8 engine=BDB; +CREATE TABLE IF NOT EXISTS `イイイ`(`キキキ` char(1)) DEFAULT CHARSET = utf8 engine=BDB; +CREATE TABLE IF NOT EXISTS `あああ`(`かかか` char(1)) DEFAULT CHARSET = utf8 engine=BDB; +CREATE TABLE IF NOT EXISTS `いいい`(`ききき` char(1)) DEFAULT CHARSET = utf8 engine=BDB; +CREATE TABLE IF NOT EXISTS `龖龖龖`(`丂丂丂` char(1)) DEFAULT CHARSET = utf8 engine=BDB; +CREATE TABLE IF NOT EXISTS `龗龗龗`(`丄丄丄` char(1)) DEFAULT CHARSET = utf8 engine=BDB; +# Tables should be created +CREATE TABLE IF NOT EXISTS `ウウウ`(`ククク` char(1)) DEFAULT CHARSET = utf8 engine=BDB; +CREATE TABLE IF NOT EXISTS `ううう`(`くくく` char(1)) DEFAULT CHARSET = utf8 engine=BDB; +CREATE TABLE IF NOT EXISTS `龞龞龞`(`丅丅丅`char(1)) DEFAULT CHARSET = utf8 engine=BDB; +CREATE TEMPORARY TABLE `エエエ`(`ケケケ` char(1)) DEFAULT CHARSET = utf8 engine=BDB; +CREATE TEMPORARY TABLE `オオオ`(`コココ` char(1)) DEFAULT CHARSET = utf8 engine=BDB; +CREATE TEMPORARY TABLE `えええ`(`けけけ` char(1)) DEFAULT CHARSET = utf8 engine=BDB; +CREATE TEMPORARY TABLE `おおお`(`こここ` char(1)) DEFAULT CHARSET = utf8 engine=BDB; +CREATE TEMPORARY TABLE `龡龡龡`(`丌丌丌` char(1)) DEFAULT CHARSET = utf8 engine=BDB; +CREATE TEMPORARY TABLE `龢龢龢`(`丒丒丒` char(1)) DEFAULT CHARSET = utf8 engine=BDB; + +DESC `アアア`; +DESC `イイイ`; +DESC `ウウウ`; +DESC `エエエ`; +DESC `オオオ`; +DESC `あああ`; +DESC `いいい`; +DESC `ううう`; +DESC `えええ`; +DESC `おおお`; +DESC `龖龖龖`; +DESC `龗龗龗`; +DESC `龞龞龞`; +DESC `龡龡龡`; +DESC `龢龢龢`; + +SHOW CREATE TABLE `アアア`; +SHOW CREATE TABLE `イイイ`; +SHOW CREATE TABLE `ウウウ`; +SHOW CREATE TABLE `エエエ`; +SHOW CREATE TABLE `オオオ`; +SHOW CREATE TABLE `あああ`; +SHOW CREATE TABLE `いいい`; +SHOW CREATE TABLE `ううう`; +SHOW CREATE TABLE `えええ`; +SHOW CREATE TABLE `おおお`; +SHOW CREATE TABLE `龖龖龖`; +SHOW CREATE TABLE `龗龗龗`; +SHOW CREATE TABLE `龞龞龞`; +SHOW CREATE TABLE `龡龡龡`; +SHOW CREATE TABLE `龢龢龢`; + +DROP TABLE `アアア`; +DROP TABLE `イイイ`; +DROP TABLE `ウウウ`; +DROP TABLE `エエエ`; +DROP TABLE `オオオ`; +DROP TABLE `あああ`; +DROP TABLE `いいい`; +DROP TABLE `ううう`; +DROP TABLE `えええ`; +DROP TABLE `おおお`; +DROP TABLE `龖龖龖`; +DROP TABLE `龗龗龗`; +DROP TABLE `龞龞龞`; +DROP TABLE `龡龡龡`; +DROP TABLE `龢龢龢`; diff --git a/mysql-test/suite/jp/t/jp_enum_sjis.test b/mysql-test/suite/jp/t/jp_enum_sjis.test new file mode 100755 index 00000000000..2ea1bf320e0 --- /dev/null +++ b/mysql-test/suite/jp/t/jp_enum_sjis.test @@ -0,0 +1,153 @@ +--character_set sjis +--disable_warnings +drop table if exists `sP`; +drop table if exists `sQ`; +drop table if exists `sR`; +drop table if exists `sS`; +drop table if exists `sT`; +drop table if exists `sU`; +drop table if exists `sV`; +drop table if exists `sW`; +drop table if exists `sX`; +drop table if exists `sPO`; +drop table if exists `sPP`; +drop table if exists `sPQ`; +#drop table if exists t1; +--enable_warnings + +# +# Test ENUM values with Japanese characters in sjis encoding +# + +SET NAMES sjis; +SET character_set_database = sjis; + +CREATE TABLE `sP` (`bP` ENUM('','',''), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sQ` (`bP` ENUM('','',''), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sR` (`bP` ENUM('\','\','\'), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sS` (`bP` ENUM('','',''), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sT` (`bP` ENUM('','',''), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sU` (`bP` ENUM('\','\','\'), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sV` (`bP` ENUM('','',''), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sW` (`bP` ENUM('','',''), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sX` (`bP` ENUM('\','\','\'), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sPO` (`bP` ENUM('','',''), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +CREATE TABLE `sPP` (`bP` ENUM('','',''), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +CREATE TABLE `sPQ` (`bP` ENUM('\','\','\'), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; + +INSERT INTO `sP` VALUES (''),(''),(''); +INSERT INTO `sQ` VALUES (''),(''),(''); +INSERT INTO `sR` VALUES ('\'),('\'),('\'); +INSERT INTO `sS` VALUES (''),(''),(''); +INSERT INTO `sT` VALUES (''),(''),(''); +INSERT INTO `sU` VALUES ('\'),('\'),('\'); +INSERT INTO `sV` VALUES (''),(''),(''); +INSERT INTO `sW` VALUES (''),(''),(''); +INSERT INTO `sX` VALUES ('\'),('\'),('\'); +INSERT INTO `sPO` VALUES (''),(''),(''); +INSERT INTO `sPP` VALUES (''),(''),(''); +INSERT INTO `sPQ` VALUES ('\'),('\'),('\'); + +SELECT * FROM `sP`; +SELECT * FROM `sQ`; +SELECT * FROM `sR`; +SELECT * FROM `sS`; +SELECT * FROM `sT`; +SELECT * FROM `sU`; +SELECT * FROM `sV`; +SELECT * FROM `sW`; +SELECT * FROM `sX`; +SELECT * FROM `sPO`; +SELECT * FROM `sPP`; +SELECT * FROM `sPQ`; + +SHOW CREATE TABLE `sP`; +SHOW CREATE TABLE `sQ`; +SHOW CREATE TABLE `sR`; +SHOW CREATE TABLE `sS`; +SHOW CREATE TABLE `sT`; +SHOW CREATE TABLE `sU`; +SHOW CREATE TABLE `sV`; +SHOW CREATE TABLE `sW`; +SHOW CREATE TABLE `sX`; +SHOW CREATE TABLE `sPO`; +SHOW CREATE TABLE `sPP`; +SHOW CREATE TABLE `sPQ`; + +DESC `sP`; +DESC `sQ`; +DESC `sR`; +DESC `sS`; +DESC `sT`; +DESC `sU`; +DESC `sV`; +DESC `sW`; +DESC `sX`; +DESC `sPO`; +DESC `sPP`; +DESC `sPQ`; + +# +# Test problem with enum values after the colum with NOT NULL restriction +# + +ALTER TABLE `sP` ADD `bQ` CHAR(1) NOT NULL FIRST; +ALTER TABLE `sQ` ADD `bQ` CHAR(1) NOT NULL FIRST; +ALTER TABLE `sR` ADD `bQ` CHAR(1) NOT NULL FIRST; +ALTER TABLE `sS` ADD `bQ` CHAR(1) NOT NULL FIRST; +ALTER TABLE `sT` ADD `bQ` CHAR(1) NOT NULL FIRST; +ALTER TABLE `sU` ADD `bQ` CHAR(1) NOT NULL FIRST; +ALTER TABLE `sV` ADD `bQ` CHAR(1) NOT NULL FIRST; +ALTER TABLE `sW` ADD `bQ` CHAR(1) NOT NULL FIRST; +ALTER TABLE `sX` ADD `bQ` CHAR(1) NOT NULL FIRST; +ALTER TABLE `sPO` ADD `bQ` CHAR(1) NOT NULL FIRST; +ALTER TABLE `sPP` ADD `bQ` CHAR(1) NOT NULL FIRST; +ALTER TABLE `sPQ` ADD `bQ` CHAR(1) NOT NULL FIRST; + +SHOW CREATE TABLE `sP`; +SHOW CREATE TABLE `sQ`; +SHOW CREATE TABLE `sR`; +SHOW CREATE TABLE `sS`; +SHOW CREATE TABLE `sT`; +SHOW CREATE TABLE `sU`; +SHOW CREATE TABLE `sV`; +SHOW CREATE TABLE `sW`; +SHOW CREATE TABLE `sX`; +SHOW CREATE TABLE `sPO`; +SHOW CREATE TABLE `sPP`; +SHOW CREATE TABLE `sPQ`; + +# +# Test to distinguish 0x9353 and 0x9373 +# bug #6206 need to be fixed + +#CREATE TABLE t1(c1 enum('S','s')) default character set = sjis; +#INSERT INTO t1 VALUES('S'),('s'); +#SELECT * FROM t1 WHERE c1 LIKE 'S'; +#DROP TABLE t1; + +DESC `sP`; +DESC `sQ`; +DESC `sR`; +DESC `sS`; +DESC `sT`; +DESC `sU`; +DESC `sV`; +DESC `sW`; +DESC `sX`; +DESC `sPO`; +DESC `sPP`; +DESC `sPQ`; + +DROP TABLE `sP`; +DROP TABLE `sQ`; +DROP TABLE `sR`; +DROP TABLE `sS`; +DROP TABLE `sT`; +DROP TABLE `sU`; +DROP TABLE `sV`; +DROP TABLE `sW`; +DROP TABLE `sX`; +DROP TABLE `sPO`; +DROP TABLE `sPP`; +DROP TABLE `sPQ`; diff --git a/mysql-test/suite/jp/t/jp_enum_ucs2.test b/mysql-test/suite/jp/t/jp_enum_ucs2.test new file mode 100755 index 00000000000..2239ebab478 --- /dev/null +++ b/mysql-test/suite/jp/t/jp_enum_ucs2.test @@ -0,0 +1,149 @@ +--source include/have_ucs2.inc + +# half-with kana is not handled correctly in 4.1 +# because of bug #5174 +# It will be fixed in 5.0 + +--disable_warnings +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +--enable_warnings + +# +# Test ENUM values with Japanese characters in ucs2 encoding +# + +SET NAMES ujis; +SET character_set_database = ucs2; +SET collation_connection = ucs2_general_ci; + +CREATE TABLE `ԣ` (`ã` ENUM('','',''), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` ENUM('','',''), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` ENUM('','',''), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` ENUM('','',''), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` ENUM('','',''), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` ENUM('','',''), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` ENUM('','',''), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` ENUM('','',''), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` ENUM('','',''), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` ENUM('','',''), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +CREATE TABLE `ԣ` (`ã` ENUM('','',''), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +CREATE TABLE `ԣ` (`ã` ENUM('','',''), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; + +INSERT INTO `ԣ` VALUES (''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''); + +SELECT * FROM `ԣ`; +SELECT * FROM `ԣ`; +SELECT * FROM `ԣ`; +SELECT * FROM `ԣ`; +SELECT * FROM `ԣ`; +SELECT * FROM `ԣ`; +SELECT * FROM `ԣ`; +SELECT * FROM `ԣ`; +SELECT * FROM `ԣ`; +SELECT * FROM `ԣ`; +SELECT * FROM `ԣ`; +SELECT * FROM `ԣ`; + +SHOW CREATE TABLE `ԣ`; +SHOW CREATE TABLE `ԣ`; +SHOW CREATE TABLE `ԣ`; +SHOW CREATE TABLE `ԣ`; +SHOW CREATE TABLE `ԣ`; +SHOW CREATE TABLE `ԣ`; +SHOW CREATE TABLE `ԣ`; +SHOW CREATE TABLE `ԣ`; +SHOW CREATE TABLE `ԣ`; +SHOW CREATE TABLE `ԣ`; +SHOW CREATE TABLE `ԣ`; +SHOW CREATE TABLE `ԣ`; + +DESC `ԣ`; +DESC `ԣ`; +DESC `ԣ`; +DESC `ԣ`; +DESC `ԣ`; +DESC `ԣ`; +DESC `ԣ`; +DESC `ԣ`; +DESC `ԣ`; +DESC `ԣ`; +DESC `ԣ`; +DESC `ԣ`; + +# +# Test problem with enum values after the colum with NOT NULL restriction +# Cannot test until the bug#7302 is fixed + +#ALTER TABLE `ԣ` ADD `ã` CHAR(1) NOT NULL FIRST; +#ALTER TABLE `ԣ` ADD `ã` CHAR(1) NOT NULL FIRST; +#ALTER TABLE `ԣ` ADD `ã` CHAR(1) NOT NULL FIRST; +#ALTER TABLE `ԣ` ADD `ã` CHAR(1) NOT NULL FIRST; +#ALTER TABLE `ԣ` ADD `ã` CHAR(1) NOT NULL FIRST; +#ALTER TABLE `ԣ` ADD `ã` CHAR(1) NOT NULL FIRST; +#ALTER TABLE `ԣ` ADD `ã` CHAR(1) NOT NULL FIRST; +#ALTER TABLE `ԣ` ADD `ã` CHAR(1) NOT NULL FIRST; +#ALTER TABLE `ԣ` ADD `ã` CHAR(1) NOT NULL FIRST; +#ALTER TABLE `ԣ` ADD `ã` CHAR(1) NOT NULL FIRST; +#ALTER TABLE `ԣ` ADD `ã` CHAR(1) NOT NULL FIRST; +#ALTER TABLE `ԣ` ADD `ã` CHAR(1) NOT NULL FIRST; + +#SHOW CREATE TABLE `ԣ`; +#SHOW CREATE TABLE `ԣ`; +#SHOW CREATE TABLE `ԣ`; +#SHOW CREATE TABLE `ԣ`; +#SHOW CREATE TABLE `ԣ`; +#SHOW CREATE TABLE `ԣ`; +#SHOW CREATE TABLE `ԣ`; +#SHOW CREATE TABLE `ԣ`; +#SHOW CREATE TABLE `ԣ`; +#SHOW CREATE TABLE `ԣ`; +#SHOW CREATE TABLE `ԣ`; +#SHOW CREATE TABLE `ԣ`; + +#DESC `ԣ`; +#DESC `ԣ`; +#DESC `ԣ`; +#DESC `ԣ`; +#DESC `ԣ`; +#DESC `ԣ`; +#DESC `ԣ`; +#DESC `ԣ`; +#DESC `ԣ`; +#DESC `ԣ`; +#DESC `ԣ`; +#DESC `ԣ`; + +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; diff --git a/mysql-test/suite/jp/t/jp_enum_ujis.test b/mysql-test/suite/jp/t/jp_enum_ujis.test new file mode 100755 index 00000000000..da41165aad0 --- /dev/null +++ b/mysql-test/suite/jp/t/jp_enum_ujis.test @@ -0,0 +1,144 @@ +--source include/have_ujis.inc + +--disable_warnings +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +--enable_warnings + +# +# Test ENUM values with Japanese characters in ujis encoding +# + +SET NAMES ujis; +SET character_set_database = ujis; + +CREATE TABLE `ԣ` (`ã` ENUM('','',''), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` ENUM('','',''), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` ENUM('','',''), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` ENUM('','',''), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` ENUM('','',''), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` ENUM('','',''), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` ENUM('','',''), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` ENUM('','',''), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` ENUM('','',''), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` ENUM('','',''), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +CREATE TABLE `ԣ` (`ã` ENUM('','',''), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +CREATE TABLE `ԣ` (`ã` ENUM('','',''), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; + +INSERT INTO `ԣ` VALUES (''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''); + +SELECT * FROM `ԣ`; +SELECT * FROM `ԣ`; +SELECT * FROM `ԣ`; +SELECT * FROM `ԣ`; +SELECT * FROM `ԣ`; +SELECT * FROM `ԣ`; +SELECT * FROM `ԣ`; +SELECT * FROM `ԣ`; +SELECT * FROM `ԣ`; +SELECT * FROM `ԣ`; +SELECT * FROM `ԣ`; +SELECT * FROM `ԣ`; + +SHOW CREATE TABLE `ԣ`; +SHOW CREATE TABLE `ԣ`; +SHOW CREATE TABLE `ԣ`; +SHOW CREATE TABLE `ԣ`; +SHOW CREATE TABLE `ԣ`; +SHOW CREATE TABLE `ԣ`; +SHOW CREATE TABLE `ԣ`; +SHOW CREATE TABLE `ԣ`; +SHOW CREATE TABLE `ԣ`; +SHOW CREATE TABLE `ԣ`; +SHOW CREATE TABLE `ԣ`; +SHOW CREATE TABLE `ԣ`; + +DESC `ԣ`; +DESC `ԣ`; +DESC `ԣ`; +DESC `ԣ`; +DESC `ԣ`; +DESC `ԣ`; +DESC `ԣ`; +DESC `ԣ`; +DESC `ԣ`; +DESC `ԣ`; +DESC `ԣ`; +DESC `ԣ`; + +# +# Test problem with enum values after the colum with NOT NULL restriction +# + +ALTER TABLE `ԣ` ADD `ã` CHAR(1) NOT NULL FIRST; +ALTER TABLE `ԣ` ADD `ã` CHAR(1) NOT NULL FIRST; +ALTER TABLE `ԣ` ADD `ã` CHAR(1) NOT NULL FIRST; +ALTER TABLE `ԣ` ADD `ã` CHAR(1) NOT NULL FIRST; +ALTER TABLE `ԣ` ADD `ã` CHAR(1) NOT NULL FIRST; +ALTER TABLE `ԣ` ADD `ã` CHAR(1) NOT NULL FIRST; +ALTER TABLE `ԣ` ADD `ã` CHAR(1) NOT NULL FIRST; +ALTER TABLE `ԣ` ADD `ã` CHAR(1) NOT NULL FIRST; +ALTER TABLE `ԣ` ADD `ã` CHAR(1) NOT NULL FIRST; +ALTER TABLE `ԣ` ADD `ã` CHAR(1) NOT NULL FIRST; +ALTER TABLE `ԣ` ADD `ã` CHAR(1) NOT NULL FIRST; +ALTER TABLE `ԣ` ADD `ã` CHAR(1) NOT NULL FIRST; + +SHOW CREATE TABLE `ԣ`; +SHOW CREATE TABLE `ԣ`; +SHOW CREATE TABLE `ԣ`; +SHOW CREATE TABLE `ԣ`; +SHOW CREATE TABLE `ԣ`; +SHOW CREATE TABLE `ԣ`; +SHOW CREATE TABLE `ԣ`; +SHOW CREATE TABLE `ԣ`; +SHOW CREATE TABLE `ԣ`; +SHOW CREATE TABLE `ԣ`; +SHOW CREATE TABLE `ԣ`; +SHOW CREATE TABLE `ԣ`; + +DESC `ԣ`; +DESC `ԣ`; +DESC `ԣ`; +DESC `ԣ`; +DESC `ԣ`; +DESC `ԣ`; +DESC `ԣ`; +DESC `ԣ`; +DESC `ԣ`; +DESC `ԣ`; +DESC `ԣ`; +DESC `ԣ`; + +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; diff --git a/mysql-test/suite/jp/t/jp_enum_utf8.test b/mysql-test/suite/jp/t/jp_enum_utf8.test new file mode 100755 index 00000000000..4ce3576b604 --- /dev/null +++ b/mysql-test/suite/jp/t/jp_enum_utf8.test @@ -0,0 +1,142 @@ +--disable_warnings +drop table if exists `T1`; +drop table if exists `T2`; +drop table if exists `T3`; +drop table if exists `T4`; +drop table if exists `T5`; +drop table if exists `T6`; +drop table if exists `T7`; +drop table if exists `T8`; +drop table if exists `T9`; +drop table if exists `T10`; +drop table if exists `T11`; +drop table if exists `T12`; +--enable_warnings + +# +# Test ENUM values with Japanese characters in utf8 encoding +# + +SET NAMES utf8; +SET character_set_database = utf8; + +CREATE TABLE `T1` (`C1` ENUM('ア','イ','ウ'), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T2` (`C1` ENUM('あ','い','う'), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T3` (`C1` ENUM('龔','龖','龗'), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T4` (`C1` ENUM('ア','イ','ウ'), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T5` (`C1` ENUM('あ','い','う'), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T6` (`C1` ENUM('龔','龖','龗'), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T7` (`C1` ENUM('ア','イ','ウ'), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T8` (`C1` ENUM('あ','い','う'), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T9` (`C1` ENUM('龔','龖','龗'), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T10` (`C1` ENUM('ア','イ','ウ'), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +CREATE TABLE `T11` (`C1` ENUM('あ','い','う'), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +CREATE TABLE `T12` (`C1` ENUM('龔','龖','龗'), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; + +INSERT INTO `T1` VALUES ('ア'),('イ'),('ウ'); +INSERT INTO `T2` VALUES ('あ'),('い'),('う'); +INSERT INTO `T3` VALUES ('龔'),('龖'),('龗'); +INSERT INTO `T4` VALUES ('ア'),('イ'),('ウ'); +INSERT INTO `T5` VALUES ('あ'),('い'),('う'); +INSERT INTO `T6` VALUES ('龔'),('龖'),('龗'); +INSERT INTO `T7` VALUES ('ア'),('イ'),('ウ'); +INSERT INTO `T8` VALUES ('あ'),('い'),('う'); +INSERT INTO `T9` VALUES ('龔'),('龖'),('龗'); +INSERT INTO `T10` VALUES ('ア'),('イ'),('ウ'); +INSERT INTO `T11` VALUES ('あ'),('い'),('う'); +INSERT INTO `T12` VALUES ('龔'),('龖'),('龗'); + +SELECT * FROM `T1`; +SELECT * FROM `T2`; +SELECT * FROM `T3`; +SELECT * FROM `T4`; +SELECT * FROM `T5`; +SELECT * FROM `T6`; +SELECT * FROM `T7`; +SELECT * FROM `T8`; +SELECT * FROM `T9`; +SELECT * FROM `T10`; +SELECT * FROM `T11`; +SELECT * FROM `T12`; + +SHOW CREATE TABLE `T1`; +SHOW CREATE TABLE `T2`; +SHOW CREATE TABLE `T3`; +SHOW CREATE TABLE `T4`; +SHOW CREATE TABLE `T5`; +SHOW CREATE TABLE `T6`; +SHOW CREATE TABLE `T7`; +SHOW CREATE TABLE `T8`; +SHOW CREATE TABLE `T9`; +SHOW CREATE TABLE `T10`; +SHOW CREATE TABLE `T11`; +SHOW CREATE TABLE `T12`; + +DESC `T1`; +DESC `T2`; +DESC `T3`; +DESC `T4`; +DESC `T5`; +DESC `T6`; +DESC `T7`; +DESC `T8`; +DESC `T9`; +DESC `T10`; +DESC `T11`; +DESC `T12`; + +# +# Test problem with enum values after the colum with NOT NULL restriction +# + +ALTER TABLE `T1` ADD `C2` CHAR(1) NOT NULL FIRST; +ALTER TABLE `T2` ADD `C2` CHAR(1) NOT NULL FIRST; +ALTER TABLE `T3` ADD `C2` CHAR(1) NOT NULL FIRST; +ALTER TABLE `T4` ADD `C2` CHAR(1) NOT NULL FIRST; +ALTER TABLE `T5` ADD `C2` CHAR(1) NOT NULL FIRST; +ALTER TABLE `T6` ADD `C2` CHAR(1) NOT NULL FIRST; +ALTER TABLE `T7` ADD `C2` CHAR(1) NOT NULL FIRST; +ALTER TABLE `T8` ADD `C2` CHAR(1) NOT NULL FIRST; +ALTER TABLE `T9` ADD `C2` CHAR(1) NOT NULL FIRST; +ALTER TABLE `T10` ADD `C2` CHAR(1) NOT NULL FIRST; +ALTER TABLE `T11` ADD `C2` CHAR(1) NOT NULL FIRST; +ALTER TABLE `T12` ADD `C2` CHAR(1) NOT NULL FIRST; + +SHOW CREATE TABLE `T1`; +SHOW CREATE TABLE `T2`; +SHOW CREATE TABLE `T3`; +SHOW CREATE TABLE `T4`; +SHOW CREATE TABLE `T5`; +SHOW CREATE TABLE `T6`; +SHOW CREATE TABLE `T7`; +SHOW CREATE TABLE `T8`; +SHOW CREATE TABLE `T9`; +SHOW CREATE TABLE `T10`; +SHOW CREATE TABLE `T11`; +SHOW CREATE TABLE `T12`; + +DESC `T1`; +DESC `T2`; +DESC `T3`; +DESC `T4`; +DESC `T5`; +DESC `T6`; +DESC `T7`; +DESC `T8`; +DESC `T9`; +DESC `T10`; +DESC `T11`; +DESC `T12`; + +DROP TABLE `T1`; +DROP TABLE `T2`; +DROP TABLE `T3`; +DROP TABLE `T4`; +DROP TABLE `T5`; +DROP TABLE `T6`; +DROP TABLE `T7`; +DROP TABLE `T8`; +DROP TABLE `T9`; +DROP TABLE `T10`; +DROP TABLE `T11`; +DROP TABLE `T12`; diff --git a/mysql-test/suite/jp/t/jp_insert_sjis.test b/mysql-test/suite/jp/t/jp_insert_sjis.test new file mode 100755 index 00000000000..0266ad1eaca --- /dev/null +++ b/mysql-test/suite/jp/t/jp_insert_sjis.test @@ -0,0 +1,354 @@ +--character_set sjis +--disable_warnings +drop table if exists `sP`; +drop table if exists `sQ`; +drop table if exists `sR`; +drop table if exists `sS`; +drop table if exists `sT`; +drop table if exists `sU`; +drop table if exists `sV`; +drop table if exists `sW`; +drop table if exists `sX`; +drop table if exists `sPO`; +drop table if exists `sPP`; +drop table if exists `sPQ`; +--enable_warnings + +# +# Test INSERT() function with Japanese characters in sjis encoding +# + +SET NAMES sjis; +SET character_set_database = sjis; + +CREATE TABLE `sP` (`bP` char(5)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sQ` (`bP` char(5)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sR` (`bP` char(5)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sS` (`bP` char(5)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sT` (`bP` char(5)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sU` (`bP` char(5)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sV` (`bP` char(5)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sW` (`bP` char(5)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sX` (`bP` char(5)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sPO` (`bP` char(5)) DEFAULT CHARSET = sjis engine = bdb; +CREATE TABLE `sPP` (`bP` char(5)) DEFAULT CHARSET = sjis engine = bdb; +CREATE TABLE `sPQ` (`bP` char(5)) DEFAULT CHARSET = sjis engine = bdb; + +INSERT INTO `sP` VALUES (''); +INSERT INTO `sQ` VALUES (''); +INSERT INTO `sR` VALUES ('\\\\\'); +INSERT INTO `sS` VALUES (''); +INSERT INTO `sT` VALUES (''); +INSERT INTO `sU` VALUES ('\\\\\'); +INSERT INTO `sV` VALUES (''); +INSERT INTO `sW` VALUES (''); +INSERT INTO `sX` VALUES ('\\\\\'); +INSERT INTO `sPO` VALUES (''); +INSERT INTO `sPP` VALUES (''); +INSERT INTO `sPQ` VALUES ('\\\\\'); + +#InnoDB +SELECT INSERT(`bP`,1,1,'') FROM `sP`; +SELECT INSERT(`bP`,1,2,'') FROM `sP`; +SELECT INSERT(`bP`,1,3,'') FROM `sP`; +SELECT INSERT(`bP`,1,4,'') FROM `sP`; +SELECT INSERT(`bP`,1,5,'') FROM `sP`; +SELECT INSERT(`bP`,2,1,'') FROM `sP`; +SELECT INSERT(`bP`,2,2,'') FROM `sP`; +SELECT INSERT(`bP`,2,3,'') FROM `sP`; +SELECT INSERT(`bP`,2,4,'') FROM `sP`; +SELECT INSERT(`bP`,3,1,'') FROM `sP`; +SELECT INSERT(`bP`,3,2,'') FROM `sP`; +SELECT INSERT(`bP`,3,3,'') FROM `sP`; +SELECT INSERT(`bP`,4,1,'') FROM `sP`; +SELECT INSERT(`bP`,4,2,'') FROM `sP`; +SELECT INSERT(`bP`,5,1,'') FROM `sP`; +SELECT INSERT(`bP`,1,1,' ') FROM `sP`; +SELECT INSERT(`bP`,1,2,' ') FROM `sP`; +SELECT INSERT(`bP`,1,3,' ') FROM `sP`; +SELECT INSERT(`bP`,1,4,' ') FROM `sP`; +SELECT INSERT(`bP`,1,5,' ') FROM `sP`; +SELECT INSERT(`bP`,2,1,' ') FROM `sP`; +SELECT INSERT(`bP`,2,2,' ') FROM `sP`; +SELECT INSERT(`bP`,2,3,' ') FROM `sP`; +SELECT INSERT(`bP`,2,4,' ') FROM `sP`; +SELECT INSERT(`bP`,3,1,' ') FROM `sP`; +SELECT INSERT(`bP`,3,2,' ') FROM `sP`; +SELECT INSERT(`bP`,3,3,' ') FROM `sP`; +SELECT INSERT(`bP`,4,1,' ') FROM `sP`; +SELECT INSERT(`bP`,4,2,' ') FROM `sP`; +SELECT INSERT(`bP`,5,1,' ') FROM `sP`; +SELECT INSERT(`bP`,1,1,'') FROM `sQ`; +SELECT INSERT(`bP`,1,2,'') FROM `sQ`; +SELECT INSERT(`bP`,1,3,'') FROM `sQ`; +SELECT INSERT(`bP`,1,4,'') FROM `sQ`; +SELECT INSERT(`bP`,1,5,'') FROM `sQ`; +SELECT INSERT(`bP`,2,1,'') FROM `sQ`; +SELECT INSERT(`bP`,2,2,'') FROM `sQ`; +SELECT INSERT(`bP`,2,3,'') FROM `sQ`; +SELECT INSERT(`bP`,2,4,'') FROM `sQ`; +SELECT INSERT(`bP`,3,1,'') FROM `sQ`; +SELECT INSERT(`bP`,3,2,'') FROM `sQ`; +SELECT INSERT(`bP`,3,3,'') FROM `sQ`; +SELECT INSERT(`bP`,4,1,'') FROM `sQ`; +SELECT INSERT(`bP`,4,2,'') FROM `sQ`; +SELECT INSERT(`bP`,5,1,'') FROM `sQ`; +SELECT INSERT(`bP`,1,1,'@') FROM `sQ`; +SELECT INSERT(`bP`,1,2,'@@') FROM `sQ`; +SELECT INSERT(`bP`,1,3,'@@@') FROM `sQ`; +SELECT INSERT(`bP`,1,4,'@@@@') FROM `sQ`; +SELECT INSERT(`bP`,1,5,'@@@@@') FROM `sQ`; +SELECT INSERT(`bP`,2,1,'@') FROM `sQ`; +SELECT INSERT(`bP`,2,2,'@@') FROM `sQ`; +SELECT INSERT(`bP`,2,3,'@@@') FROM `sQ`; +SELECT INSERT(`bP`,2,4,'@@@@') FROM `sQ`; +SELECT INSERT(`bP`,3,1,'@') FROM `sQ`; +SELECT INSERT(`bP`,3,2,'@@') FROM `sQ`; +SELECT INSERT(`bP`,3,3,'@@@') FROM `sQ`; +SELECT INSERT(`bP`,4,1,'@') FROM `sQ`; +SELECT INSERT(`bP`,4,2,'@@') FROM `sQ`; +SELECT INSERT(`bP`,5,1,'@') FROM `sQ`; +SELECT INSERT(`bP`,1,1,'\') FROM `sR`; +SELECT INSERT(`bP`,1,2,'\\' ) FROM `sR`; +SELECT INSERT(`bP`,1,3,'\\\' ) FROM `sR`; +SELECT INSERT(`bP`,1,4,'\\\\' ) FROM `sR`; +SELECT INSERT(`bP`,1,5,'\\\\\' ) FROM `sR`; +SELECT INSERT(`bP`,2,1,'\') FROM `sR`; +SELECT INSERT(`bP`,2,2,'\\' ) FROM `sR`; +SELECT INSERT(`bP`,2,3,'\\\' ) FROM `sR`; +SELECT INSERT(`bP`,2,4,'\\\\' ) FROM `sR`; +SELECT INSERT(`bP`,3,1,'\') FROM `sR`; +SELECT INSERT(`bP`,3,2,'\\' ) FROM `sR`; +SELECT INSERT(`bP`,3,3,'\\\' ) FROM `sR`; +SELECT INSERT(`bP`,4,1,'\') FROM `sR`; +SELECT INSERT(`bP`,4,2,'\\' ) FROM `sR`; +SELECT INSERT(`bP`,5,1,'\') FROM `sR`; + +#MyISAM +SELECT INSERT(`bP`,1,1,'') FROM `sS`; +SELECT INSERT(`bP`,1,2,'') FROM `sS`; +SELECT INSERT(`bP`,1,3,'') FROM `sS`; +SELECT INSERT(`bP`,1,4,'') FROM `sS`; +SELECT INSERT(`bP`,1,5,'') FROM `sS`; +SELECT INSERT(`bP`,2,1,'') FROM `sS`; +SELECT INSERT(`bP`,2,2,'') FROM `sS`; +SELECT INSERT(`bP`,2,3,'') FROM `sS`; +SELECT INSERT(`bP`,2,4,'') FROM `sS`; +SELECT INSERT(`bP`,3,1,'') FROM `sS`; +SELECT INSERT(`bP`,3,2,'') FROM `sS`; +SELECT INSERT(`bP`,3,3,'') FROM `sS`; +SELECT INSERT(`bP`,4,1,'') FROM `sS`; +SELECT INSERT(`bP`,4,2,'') FROM `sS`; +SELECT INSERT(`bP`,5,1,'') FROM `sS`; +SELECT INSERT(`bP`,1,1,' ') FROM `sS`; +SELECT INSERT(`bP`,1,2,' ') FROM `sS`; +SELECT INSERT(`bP`,1,3,' ') FROM `sS`; +SELECT INSERT(`bP`,1,4,' ') FROM `sS`; +SELECT INSERT(`bP`,1,5,' ') FROM `sS`; +SELECT INSERT(`bP`,2,1,' ') FROM `sS`; +SELECT INSERT(`bP`,2,2,' ') FROM `sS`; +SELECT INSERT(`bP`,2,3,' ') FROM `sS`; +SELECT INSERT(`bP`,2,4,' ') FROM `sS`; +SELECT INSERT(`bP`,3,1,' ') FROM `sS`; +SELECT INSERT(`bP`,3,2,' ') FROM `sS`; +SELECT INSERT(`bP`,3,3,' ') FROM `sS`; +SELECT INSERT(`bP`,4,1,' ') FROM `sS`; +SELECT INSERT(`bP`,4,2,' ') FROM `sS`; +SELECT INSERT(`bP`,5,1,' ') FROM `sS`; +SELECT INSERT(`bP`,1,1,'') FROM `sT`; +SELECT INSERT(`bP`,1,2,'') FROM `sT`; +SELECT INSERT(`bP`,1,3,'') FROM `sT`; +SELECT INSERT(`bP`,1,4,'') FROM `sT`; +SELECT INSERT(`bP`,1,5,'') FROM `sT`; +SELECT INSERT(`bP`,2,1,'') FROM `sT`; +SELECT INSERT(`bP`,2,2,'') FROM `sT`; +SELECT INSERT(`bP`,2,3,'') FROM `sT`; +SELECT INSERT(`bP`,2,4,'') FROM `sT`; +SELECT INSERT(`bP`,3,1,'') FROM `sT`; +SELECT INSERT(`bP`,3,2,'') FROM `sT`; +SELECT INSERT(`bP`,3,3,'') FROM `sT`; +SELECT INSERT(`bP`,4,1,'') FROM `sT`; +SELECT INSERT(`bP`,4,2,'') FROM `sT`; +SELECT INSERT(`bP`,5,1,'') FROM `sT`; +SELECT INSERT(`bP`,1,1,'@') FROM `sT`; +SELECT INSERT(`bP`,1,2,'@@') FROM `sT`; +SELECT INSERT(`bP`,1,3,'@@@') FROM `sT`; +SELECT INSERT(`bP`,1,4,'@@@@') FROM `sT`; +SELECT INSERT(`bP`,1,5,'@@@@@') FROM `sT`; +SELECT INSERT(`bP`,2,1,'@') FROM `sT`; +SELECT INSERT(`bP`,2,2,'@@') FROM `sT`; +SELECT INSERT(`bP`,2,3,'@@@') FROM `sT`; +SELECT INSERT(`bP`,2,4,'@@@@') FROM `sT`; +SELECT INSERT(`bP`,3,1,'@') FROM `sT`; +SELECT INSERT(`bP`,3,2,'@@') FROM `sT`; +SELECT INSERT(`bP`,3,3,'@@@') FROM `sT`; +SELECT INSERT(`bP`,4,1,'@') FROM `sT`; +SELECT INSERT(`bP`,4,2,'@@') FROM `sT`; +SELECT INSERT(`bP`,5,1,'@') FROM `sT`; +SELECT INSERT(`bP`,1,1,'\') FROM `sU`; +SELECT INSERT(`bP`,1,2,'\\' ) FROM `sU`; +SELECT INSERT(`bP`,1,3,'\\\' ) FROM `sU`; +SELECT INSERT(`bP`,1,4,'\\\\' ) FROM `sU`; +SELECT INSERT(`bP`,1,5,'\\\\\' ) FROM `sU`; +SELECT INSERT(`bP`,2,1,'\') FROM `sU`; +SELECT INSERT(`bP`,2,2,'\\') FROM `sU`; +SELECT INSERT(`bP`,2,3,'\\\' ) FROM `sU`; +SELECT INSERT(`bP`,2,4,'\\\\' ) FROM `sU`; +SELECT INSERT(`bP`,3,1,'\') FROM `sU`; +SELECT INSERT(`bP`,3,2,'\\' ) FROM `sU`; +SELECT INSERT(`bP`,3,3,'\\\' ) FROM `sU`; +SELECT INSERT(`bP`,4,1,'\') FROM `sU`; +SELECT INSERT(`bP`,4,2,'\\' ) FROM `sU`; +SELECT INSERT(`bP`,5,1,'\') FROM `sU`; + +#HEAP +SELECT INSERT(`bP`,1,1,'') FROM `sV`; +SELECT INSERT(`bP`,1,2,'') FROM `sV`; +SELECT INSERT(`bP`,1,3,'') FROM `sV`; +SELECT INSERT(`bP`,1,4,'') FROM `sV`; +SELECT INSERT(`bP`,1,5,'') FROM `sV`; +SELECT INSERT(`bP`,2,1,'') FROM `sV`; +SELECT INSERT(`bP`,2,2,'') FROM `sV`; +SELECT INSERT(`bP`,2,3,'') FROM `sV`; +SELECT INSERT(`bP`,2,4,'') FROM `sV`; +SELECT INSERT(`bP`,3,1,'') FROM `sV`; +SELECT INSERT(`bP`,3,2,'') FROM `sV`; +SELECT INSERT(`bP`,3,3,'') FROM `sV`; +SELECT INSERT(`bP`,4,1,'') FROM `sV`; +SELECT INSERT(`bP`,4,2,'') FROM `sV`; +SELECT INSERT(`bP`,5,1,'') FROM `sV`; +SELECT INSERT(`bP`,1,1,' ') FROM `sV`; +SELECT INSERT(`bP`,1,2,' ') FROM `sV`; +SELECT INSERT(`bP`,1,3,' ') FROM `sV`; +SELECT INSERT(`bP`,1,4,' ') FROM `sV`; +SELECT INSERT(`bP`,1,5,' ') FROM `sV`; +SELECT INSERT(`bP`,2,1,' ') FROM `sV`; +SELECT INSERT(`bP`,2,2,' ') FROM `sV`; +SELECT INSERT(`bP`,2,3,' ') FROM `sV`; +SELECT INSERT(`bP`,2,4,' ') FROM `sV`; +SELECT INSERT(`bP`,3,1,' ') FROM `sV`; +SELECT INSERT(`bP`,3,2,' ') FROM `sV`; +SELECT INSERT(`bP`,3,3,' ') FROM `sV`; +SELECT INSERT(`bP`,4,1,' ') FROM `sV`; +SELECT INSERT(`bP`,4,2,' ') FROM `sV`; +SELECT INSERT(`bP`,5,1,' ') FROM `sV`; +SELECT INSERT(`bP`,1,1,'') FROM `sW`; +SELECT INSERT(`bP`,1,2,'') FROM `sW`; +SELECT INSERT(`bP`,1,3,'') FROM `sW`; +SELECT INSERT(`bP`,1,4,'') FROM `sW`; +SELECT INSERT(`bP`,1,5,'') FROM `sW`; +SELECT INSERT(`bP`,2,1,'') FROM `sW`; +SELECT INSERT(`bP`,2,2,'') FROM `sW`; +SELECT INSERT(`bP`,2,3,'') FROM `sW`; +SELECT INSERT(`bP`,2,4,'') FROM `sW`; +SELECT INSERT(`bP`,3,1,'') FROM `sW`; +SELECT INSERT(`bP`,3,2,'') FROM `sW`; +SELECT INSERT(`bP`,3,3,'') FROM `sW`; +SELECT INSERT(`bP`,4,1,'') FROM `sW`; +SELECT INSERT(`bP`,4,2,'') FROM `sW`; +SELECT INSERT(`bP`,5,1,'') FROM `sW`; +SELECT INSERT(`bP`,1,1,'@') FROM `sW`; +SELECT INSERT(`bP`,1,2,'@@') FROM `sW`; +SELECT INSERT(`bP`,1,3,'@@@') FROM `sW`; +SELECT INSERT(`bP`,1,4,'@@@@') FROM `sW`; +SELECT INSERT(`bP`,1,5,'@@@@@') FROM `sW`; +SELECT INSERT(`bP`,2,1,'@') FROM `sW`; +SELECT INSERT(`bP`,2,2,'@@') FROM `sW`; +SELECT INSERT(`bP`,2,3,'@@@') FROM `sW`; +SELECT INSERT(`bP`,2,4,'@@@@') FROM `sW`; +SELECT INSERT(`bP`,3,1,'@') FROM `sW`; +SELECT INSERT(`bP`,3,2,'@@') FROM `sW`; +SELECT INSERT(`bP`,3,3,'@@@') FROM `sW`; +SELECT INSERT(`bP`,4,1,'@') FROM `sW`; +SELECT INSERT(`bP`,4,2,'@@') FROM `sW`; +SELECT INSERT(`bP`,5,1,'@') FROM `sW`; +SELECT INSERT(`bP`,1,1,'\') FROM `sX`; +SELECT INSERT(`bP`,1,2,'\\' ) FROM `sX`; +SELECT INSERT(`bP`,1,3,'\\\' ) FROM `sX`; +SELECT INSERT(`bP`,1,4,'\\\\' ) FROM `sX`; +SELECT INSERT(`bP`,1,5,'\\\\\' ) FROM `sX`; +SELECT INSERT(`bP`,2,1,'\') FROM `sX`; +SELECT INSERT(`bP`,2,2,'\\' ) FROM `sX`; +SELECT INSERT(`bP`,2,3,'\\\' ) FROM `sX`; +SELECT INSERT(`bP`,2,4,'\\\\' ) FROM `sX`; +SELECT INSERT(`bP`,3,1,'\') FROM `sX`; +SELECT INSERT(`bP`,3,2,'\\' ) FROM `sX`; +SELECT INSERT(`bP`,3,3,'\\\' ) FROM `sX`; +SELECT INSERT(`bP`,4,1,'\') FROM `sX`; +SELECT INSERT(`bP`,4,2,'\\' ) FROM `sX`; +SELECT INSERT(`bP`,5,1,'\') FROM `sX`; + +#BDB +SELECT INSERT(`bP`,1,1,'') FROM `sPO`; +SELECT INSERT(`bP`,1,2,'') FROM `sPO`; +SELECT INSERT(`bP`,1,3,'') FROM `sPO`; +SELECT INSERT(`bP`,1,4,'') FROM `sPO`; +SELECT INSERT(`bP`,1,5,'') FROM `sPO`; +SELECT INSERT(`bP`,2,1,'') FROM `sPO`; +SELECT INSERT(`bP`,2,2,'') FROM `sPO`; +SELECT INSERT(`bP`,2,3,'') FROM `sPO`; +SELECT INSERT(`bP`,2,4,'') FROM `sPO`; +SELECT INSERT(`bP`,3,1,'') FROM `sPO`; +SELECT INSERT(`bP`,3,2,'') FROM `sPO`; +SELECT INSERT(`bP`,3,3,'') FROM `sPO`; +SELECT INSERT(`bP`,4,1,'') FROM `sPO`; +SELECT INSERT(`bP`,4,2,'') FROM `sPO`; +SELECT INSERT(`bP`,5,1,'') FROM `sPO`; +SELECT INSERT(`bP`,1,1,'') FROM `sPP`; +SELECT INSERT(`bP`,1,2,'') FROM `sPP`; +SELECT INSERT(`bP`,1,3,'') FROM `sPP`; +SELECT INSERT(`bP`,1,4,'') FROM `sPP`; +SELECT INSERT(`bP`,1,5,'') FROM `sPP`; +SELECT INSERT(`bP`,2,1,'') FROM `sPP`; +SELECT INSERT(`bP`,2,2,'') FROM `sPP`; +SELECT INSERT(`bP`,2,3,'') FROM `sPP`; +SELECT INSERT(`bP`,2,4,'') FROM `sPP`; +SELECT INSERT(`bP`,3,1,'') FROM `sPP`; +SELECT INSERT(`bP`,3,2,'') FROM `sPP`; +SELECT INSERT(`bP`,3,3,'') FROM `sPP`; +SELECT INSERT(`bP`,4,1,'') FROM `sPP`; +SELECT INSERT(`bP`,4,2,'') FROM `sPP`; +SELECT INSERT(`bP`,5,1,'') FROM `sPP`; +SELECT INSERT(`bP`,1,1,'@') FROM `sPP`; +SELECT INSERT(`bP`,1,2,'@@') FROM `sPP`; +SELECT INSERT(`bP`,1,3,'@@@') FROM `sPP`; +SELECT INSERT(`bP`,1,4,'@@@@') FROM `sPP`; +SELECT INSERT(`bP`,1,5,'@@@@@') FROM `sPP`; +SELECT INSERT(`bP`,2,1,'@') FROM `sPP`; +SELECT INSERT(`bP`,2,2,'@@') FROM `sPP`; +SELECT INSERT(`bP`,2,3,'@@@') FROM `sPP`; +SELECT INSERT(`bP`,2,4,'@@@@') FROM `sPP`; +SELECT INSERT(`bP`,3,1,'@') FROM `sPP`; +SELECT INSERT(`bP`,3,2,'@@') FROM `sPP`; +SELECT INSERT(`bP`,3,3,'@@@') FROM `sPP`; +SELECT INSERT(`bP`,4,1,'@') FROM `sPP`; +SELECT INSERT(`bP`,4,2,'@@') FROM `sPP`; +SELECT INSERT(`bP`,5,1,'@') FROM `sPP`; +SELECT INSERT(`bP`,1,1,'\') FROM `sPQ`; +SELECT INSERT(`bP`,1,2,'\\') FROM `sPQ`; +SELECT INSERT(`bP`,1,3,'\\\') FROM `sPQ`; +SELECT INSERT(`bP`,1,4,'\\\\') FROM `sPQ`; +SELECT INSERT(`bP`,1,5,'\\\\\') FROM `sPQ`; +SELECT INSERT(`bP`,2,1,'\') FROM `sPQ`; +SELECT INSERT(`bP`,2,2,'\\') FROM `sPQ`; +SELECT INSERT(`bP`,2,3,'\\\') FROM `sPQ`; +SELECT INSERT(`bP`,2,4,'\\\\') FROM `sPQ`; +SELECT INSERT(`bP`,3,1,'\') FROM `sPQ`; +SELECT INSERT(`bP`,3,2,'\\') FROM `sPQ`; +SELECT INSERT(`bP`,3,3,'\\\') FROM `sPQ`; +SELECT INSERT(`bP`,4,1,'\') FROM `sPQ`; +SELECT INSERT(`bP`,4,2,'\\') FROM `sPQ`; +SELECT INSERT(`bP`,5,1,'\') FROM `sPQ`; + +DROP TABLE `sP`; +DROP TABLE `sQ`; +DROP TABLE `sR`; +DROP TABLE `sS`; +DROP TABLE `sT`; +DROP TABLE `sU`; +DROP TABLE `sV`; +DROP TABLE `sW`; +DROP TABLE `sX`; +DROP TABLE `sPO`; +DROP TABLE `sPP`; +DROP TABLE `sPQ`; diff --git a/mysql-test/suite/jp/t/jp_insert_ucs2.test b/mysql-test/suite/jp/t/jp_insert_ucs2.test new file mode 100755 index 00000000000..9b0a02e57d8 --- /dev/null +++ b/mysql-test/suite/jp/t/jp_insert_ucs2.test @@ -0,0 +1,356 @@ +--source include/have_ucs2.inc + +--disable_warnings +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +--enable_warnings + +# +# Test INSERT() function with Japanese characters in ucs2 encoding +# + +SET NAMES ujis; +SET character_set_database = ucs2; +SET collation_connection = ucs2_general_ci; + +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ucs2 engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ucs2 engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ucs2 engine = bdb; + +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); + +#InnoDB +SELECT INSERT(`ã`,1,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,3,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,4,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,5,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,3,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,4,'') FROM `ԣ`; +SELECT INSERT(`ã`,3,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,3,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,3,3,'') FROM `ԣ`; +SELECT INSERT(`ã`,4,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,4,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,5,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,1,' ') FROM `ԣ`; +SELECT INSERT(`ã`,1,2,' ') FROM `ԣ`; +SELECT INSERT(`ã`,1,3,' ') FROM `ԣ`; +SELECT INSERT(`ã`,1,4,' ') FROM `ԣ`; +SELECT INSERT(`ã`,1,5,' ') FROM `ԣ`; +SELECT INSERT(`ã`,2,1,' ') FROM `ԣ`; +SELECT INSERT(`ã`,2,2,' ') FROM `ԣ`; +SELECT INSERT(`ã`,2,3,' ') FROM `ԣ`; +SELECT INSERT(`ã`,2,4,' ') FROM `ԣ`; +SELECT INSERT(`ã`,3,1,' ') FROM `ԣ`; +SELECT INSERT(`ã`,3,2,' ') FROM `ԣ`; +SELECT INSERT(`ã`,3,3,' ') FROM `ԣ`; +SELECT INSERT(`ã`,4,1,' ') FROM `ԣ`; +SELECT INSERT(`ã`,4,2,' ') FROM `ԣ`; +SELECT INSERT(`ã`,5,1,' ') FROM `ԣ`; +SELECT INSERT(`ã`,1,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,3,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,4,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,5,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,3,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,4,'') FROM `ԣ`; +SELECT INSERT(`ã`,3,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,3,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,3,3,'') FROM `ԣ`; +SELECT INSERT(`ã`,4,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,4,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,5,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,3,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,4,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,5,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,3,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,4,'') FROM `ԣ`; +SELECT INSERT(`ã`,3,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,3,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,3,3,'') FROM `ԣ`; +SELECT INSERT(`ã`,4,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,4,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,5,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,2,'' ) FROM `ԣ`; +SELECT INSERT(`ã`,1,3,'' ) FROM `ԣ`; +SELECT INSERT(`ã`,1,4,'' ) FROM `ԣ`; +SELECT INSERT(`ã`,1,5,'' ) FROM `ԣ`; +SELECT INSERT(`ã`,2,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,2,'' ) FROM `ԣ`; +SELECT INSERT(`ã`,2,3,'' ) FROM `ԣ`; +SELECT INSERT(`ã`,2,4,'' ) FROM `ԣ`; +SELECT INSERT(`ã`,3,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,3,2,'' ) FROM `ԣ`; +SELECT INSERT(`ã`,3,3,'' ) FROM `ԣ`; +SELECT INSERT(`ã`,4,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,4,2,'' ) FROM `ԣ`; +SELECT INSERT(`ã`,5,1,'') FROM `ԣ`; + +#MyISAM +SELECT INSERT(`ã`,1,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,3,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,4,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,5,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,3,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,4,'') FROM `ԣ`; +SELECT INSERT(`ã`,3,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,3,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,3,3,'') FROM `ԣ`; +SELECT INSERT(`ã`,4,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,4,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,5,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,1,' ') FROM `ԣ`; +SELECT INSERT(`ã`,1,2,' ') FROM `ԣ`; +SELECT INSERT(`ã`,1,3,' ') FROM `ԣ`; +SELECT INSERT(`ã`,1,4,' ') FROM `ԣ`; +SELECT INSERT(`ã`,1,5,' ') FROM `ԣ`; +SELECT INSERT(`ã`,2,1,' ') FROM `ԣ`; +SELECT INSERT(`ã`,2,2,' ') FROM `ԣ`; +SELECT INSERT(`ã`,2,3,' ') FROM `ԣ`; +SELECT INSERT(`ã`,2,4,' ') FROM `ԣ`; +SELECT INSERT(`ã`,3,1,' ') FROM `ԣ`; +SELECT INSERT(`ã`,3,2,' ') FROM `ԣ`; +SELECT INSERT(`ã`,3,3,' ') FROM `ԣ`; +SELECT INSERT(`ã`,4,1,' ') FROM `ԣ`; +SELECT INSERT(`ã`,4,2,' ') FROM `ԣ`; +SELECT INSERT(`ã`,5,1,' ') FROM `ԣ`; +SELECT INSERT(`ã`,1,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,3,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,4,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,5,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,3,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,4,'') FROM `ԣ`; +SELECT INSERT(`ã`,3,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,3,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,3,3,'') FROM `ԣ`; +SELECT INSERT(`ã`,4,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,4,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,5,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,3,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,4,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,5,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,3,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,4,'') FROM `ԣ`; +SELECT INSERT(`ã`,3,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,3,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,3,3,'') FROM `ԣ`; +SELECT INSERT(`ã`,4,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,4,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,5,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,2,'' ) FROM `ԣ`; +SELECT INSERT(`ã`,1,3,'' ) FROM `ԣ`; +SELECT INSERT(`ã`,1,4,'' ) FROM `ԣ`; +SELECT INSERT(`ã`,1,5,'' ) FROM `ԣ`; +SELECT INSERT(`ã`,2,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,3,'' ) FROM `ԣ`; +SELECT INSERT(`ã`,2,4,'' ) FROM `ԣ`; +SELECT INSERT(`ã`,3,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,3,2,'' ) FROM `ԣ`; +SELECT INSERT(`ã`,3,3,'' ) FROM `ԣ`; +SELECT INSERT(`ã`,4,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,4,2,'' ) FROM `ԣ`; +SELECT INSERT(`ã`,5,1,'') FROM `ԣ`; + +#HEAP +SELECT INSERT(`ã`,1,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,3,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,4,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,5,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,3,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,4,'') FROM `ԣ`; +SELECT INSERT(`ã`,3,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,3,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,3,3,'') FROM `ԣ`; +SELECT INSERT(`ã`,4,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,4,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,5,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,1,' ') FROM `ԣ`; +SELECT INSERT(`ã`,1,2,' ') FROM `ԣ`; +SELECT INSERT(`ã`,1,3,' ') FROM `ԣ`; +SELECT INSERT(`ã`,1,4,' ') FROM `ԣ`; +SELECT INSERT(`ã`,1,5,' ') FROM `ԣ`; +SELECT INSERT(`ã`,2,1,' ') FROM `ԣ`; +SELECT INSERT(`ã`,2,2,' ') FROM `ԣ`; +SELECT INSERT(`ã`,2,3,' ') FROM `ԣ`; +SELECT INSERT(`ã`,2,4,' ') FROM `ԣ`; +SELECT INSERT(`ã`,3,1,' ') FROM `ԣ`; +SELECT INSERT(`ã`,3,2,' ') FROM `ԣ`; +SELECT INSERT(`ã`,3,3,' ') FROM `ԣ`; +SELECT INSERT(`ã`,4,1,' ') FROM `ԣ`; +SELECT INSERT(`ã`,4,2,' ') FROM `ԣ`; +SELECT INSERT(`ã`,5,1,' ') FROM `ԣ`; +SELECT INSERT(`ã`,1,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,3,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,4,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,5,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,3,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,4,'') FROM `ԣ`; +SELECT INSERT(`ã`,3,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,3,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,3,3,'') FROM `ԣ`; +SELECT INSERT(`ã`,4,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,4,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,5,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,3,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,4,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,5,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,3,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,4,'') FROM `ԣ`; +SELECT INSERT(`ã`,3,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,3,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,3,3,'') FROM `ԣ`; +SELECT INSERT(`ã`,4,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,4,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,5,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,2,'' ) FROM `ԣ`; +SELECT INSERT(`ã`,1,3,'' ) FROM `ԣ`; +SELECT INSERT(`ã`,1,4,'' ) FROM `ԣ`; +SELECT INSERT(`ã`,1,5,'' ) FROM `ԣ`; +SELECT INSERT(`ã`,2,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,2,'' ) FROM `ԣ`; +SELECT INSERT(`ã`,2,3,'' ) FROM `ԣ`; +SELECT INSERT(`ã`,2,4,'' ) FROM `ԣ`; +SELECT INSERT(`ã`,3,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,3,2,'' ) FROM `ԣ`; +SELECT INSERT(`ã`,3,3,'' ) FROM `ԣ`; +SELECT INSERT(`ã`,4,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,4,2,'' ) FROM `ԣ`; +SELECT INSERT(`ã`,5,1,'') FROM `ԣ`; + +#BDB +SELECT INSERT(`ã`,1,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,3,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,4,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,5,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,3,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,4,'') FROM `ԣ`; +SELECT INSERT(`ã`,3,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,3,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,3,3,'') FROM `ԣ`; +SELECT INSERT(`ã`,4,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,4,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,5,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,3,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,4,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,5,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,3,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,4,'') FROM `ԣ`; +SELECT INSERT(`ã`,3,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,3,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,3,3,'') FROM `ԣ`; +SELECT INSERT(`ã`,4,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,4,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,5,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,3,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,4,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,5,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,3,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,4,'') FROM `ԣ`; +SELECT INSERT(`ã`,3,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,3,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,3,3,'') FROM `ԣ`; +SELECT INSERT(`ã`,4,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,4,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,5,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,3,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,4,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,5,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,3,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,4,'') FROM `ԣ`; +SELECT INSERT(`ã`,3,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,3,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,3,3,'') FROM `ԣ`; +SELECT INSERT(`ã`,4,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,4,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,5,1,'') FROM `ԣ`; + +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; diff --git a/mysql-test/suite/jp/t/jp_insert_ujis.test b/mysql-test/suite/jp/t/jp_insert_ujis.test new file mode 100755 index 00000000000..7b6d2838386 --- /dev/null +++ b/mysql-test/suite/jp/t/jp_insert_ujis.test @@ -0,0 +1,356 @@ +--source include/have_ujis.inc + +--disable_warnings +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +--enable_warnings + +# +# Test INSERT() function with Japanese characters in ujis encoding +# + +SET NAMES ujis; +SET character_set_database = ujis; +SET collation_connection = ujis_japanese_ci; + +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ujis engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ujis engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ujis engine = bdb; + +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); + +#InnoDB +SELECT INSERT(`ã`,1,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,3,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,4,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,5,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,3,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,4,'') FROM `ԣ`; +SELECT INSERT(`ã`,3,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,3,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,3,3,'') FROM `ԣ`; +SELECT INSERT(`ã`,4,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,4,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,5,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,1,' ') FROM `ԣ`; +SELECT INSERT(`ã`,1,2,' ') FROM `ԣ`; +SELECT INSERT(`ã`,1,3,' ') FROM `ԣ`; +SELECT INSERT(`ã`,1,4,' ') FROM `ԣ`; +SELECT INSERT(`ã`,1,5,' ') FROM `ԣ`; +SELECT INSERT(`ã`,2,1,' ') FROM `ԣ`; +SELECT INSERT(`ã`,2,2,' ') FROM `ԣ`; +SELECT INSERT(`ã`,2,3,' ') FROM `ԣ`; +SELECT INSERT(`ã`,2,4,' ') FROM `ԣ`; +SELECT INSERT(`ã`,3,1,' ') FROM `ԣ`; +SELECT INSERT(`ã`,3,2,' ') FROM `ԣ`; +SELECT INSERT(`ã`,3,3,' ') FROM `ԣ`; +SELECT INSERT(`ã`,4,1,' ') FROM `ԣ`; +SELECT INSERT(`ã`,4,2,' ') FROM `ԣ`; +SELECT INSERT(`ã`,5,1,' ') FROM `ԣ`; +SELECT INSERT(`ã`,1,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,3,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,4,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,5,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,3,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,4,'') FROM `ԣ`; +SELECT INSERT(`ã`,3,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,3,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,3,3,'') FROM `ԣ`; +SELECT INSERT(`ã`,4,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,4,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,5,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,3,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,4,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,5,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,3,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,4,'') FROM `ԣ`; +SELECT INSERT(`ã`,3,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,3,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,3,3,'') FROM `ԣ`; +SELECT INSERT(`ã`,4,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,4,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,5,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,2,'' ) FROM `ԣ`; +SELECT INSERT(`ã`,1,3,'' ) FROM `ԣ`; +SELECT INSERT(`ã`,1,4,'' ) FROM `ԣ`; +SELECT INSERT(`ã`,1,5,'' ) FROM `ԣ`; +SELECT INSERT(`ã`,2,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,2,'' ) FROM `ԣ`; +SELECT INSERT(`ã`,2,3,'' ) FROM `ԣ`; +SELECT INSERT(`ã`,2,4,'' ) FROM `ԣ`; +SELECT INSERT(`ã`,3,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,3,2,'' ) FROM `ԣ`; +SELECT INSERT(`ã`,3,3,'' ) FROM `ԣ`; +SELECT INSERT(`ã`,4,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,4,2,'' ) FROM `ԣ`; +SELECT INSERT(`ã`,5,1,'') FROM `ԣ`; + +#MyISAM +SELECT INSERT(`ã`,1,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,3,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,4,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,5,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,3,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,4,'') FROM `ԣ`; +SELECT INSERT(`ã`,3,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,3,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,3,3,'') FROM `ԣ`; +SELECT INSERT(`ã`,4,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,4,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,5,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,1,' ') FROM `ԣ`; +SELECT INSERT(`ã`,1,2,' ') FROM `ԣ`; +SELECT INSERT(`ã`,1,3,' ') FROM `ԣ`; +SELECT INSERT(`ã`,1,4,' ') FROM `ԣ`; +SELECT INSERT(`ã`,1,5,' ') FROM `ԣ`; +SELECT INSERT(`ã`,2,1,' ') FROM `ԣ`; +SELECT INSERT(`ã`,2,2,' ') FROM `ԣ`; +SELECT INSERT(`ã`,2,3,' ') FROM `ԣ`; +SELECT INSERT(`ã`,2,4,' ') FROM `ԣ`; +SELECT INSERT(`ã`,3,1,' ') FROM `ԣ`; +SELECT INSERT(`ã`,3,2,' ') FROM `ԣ`; +SELECT INSERT(`ã`,3,3,' ') FROM `ԣ`; +SELECT INSERT(`ã`,4,1,' ') FROM `ԣ`; +SELECT INSERT(`ã`,4,2,' ') FROM `ԣ`; +SELECT INSERT(`ã`,5,1,' ') FROM `ԣ`; +SELECT INSERT(`ã`,1,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,3,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,4,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,5,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,3,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,4,'') FROM `ԣ`; +SELECT INSERT(`ã`,3,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,3,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,3,3,'') FROM `ԣ`; +SELECT INSERT(`ã`,4,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,4,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,5,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,3,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,4,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,5,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,3,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,4,'') FROM `ԣ`; +SELECT INSERT(`ã`,3,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,3,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,3,3,'') FROM `ԣ`; +SELECT INSERT(`ã`,4,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,4,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,5,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,2,'' ) FROM `ԣ`; +SELECT INSERT(`ã`,1,3,'' ) FROM `ԣ`; +SELECT INSERT(`ã`,1,4,'' ) FROM `ԣ`; +SELECT INSERT(`ã`,1,5,'' ) FROM `ԣ`; +SELECT INSERT(`ã`,2,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,3,'' ) FROM `ԣ`; +SELECT INSERT(`ã`,2,4,'' ) FROM `ԣ`; +SELECT INSERT(`ã`,3,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,3,2,'' ) FROM `ԣ`; +SELECT INSERT(`ã`,3,3,'' ) FROM `ԣ`; +SELECT INSERT(`ã`,4,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,4,2,'' ) FROM `ԣ`; +SELECT INSERT(`ã`,5,1,'') FROM `ԣ`; + +#HEAP +SELECT INSERT(`ã`,1,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,3,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,4,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,5,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,3,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,4,'') FROM `ԣ`; +SELECT INSERT(`ã`,3,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,3,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,3,3,'') FROM `ԣ`; +SELECT INSERT(`ã`,4,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,4,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,5,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,1,' ') FROM `ԣ`; +SELECT INSERT(`ã`,1,2,' ') FROM `ԣ`; +SELECT INSERT(`ã`,1,3,' ') FROM `ԣ`; +SELECT INSERT(`ã`,1,4,' ') FROM `ԣ`; +SELECT INSERT(`ã`,1,5,' ') FROM `ԣ`; +SELECT INSERT(`ã`,2,1,' ') FROM `ԣ`; +SELECT INSERT(`ã`,2,2,' ') FROM `ԣ`; +SELECT INSERT(`ã`,2,3,' ') FROM `ԣ`; +SELECT INSERT(`ã`,2,4,' ') FROM `ԣ`; +SELECT INSERT(`ã`,3,1,' ') FROM `ԣ`; +SELECT INSERT(`ã`,3,2,' ') FROM `ԣ`; +SELECT INSERT(`ã`,3,3,' ') FROM `ԣ`; +SELECT INSERT(`ã`,4,1,' ') FROM `ԣ`; +SELECT INSERT(`ã`,4,2,' ') FROM `ԣ`; +SELECT INSERT(`ã`,5,1,' ') FROM `ԣ`; +SELECT INSERT(`ã`,1,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,3,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,4,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,5,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,3,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,4,'') FROM `ԣ`; +SELECT INSERT(`ã`,3,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,3,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,3,3,'') FROM `ԣ`; +SELECT INSERT(`ã`,4,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,4,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,5,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,3,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,4,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,5,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,3,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,4,'') FROM `ԣ`; +SELECT INSERT(`ã`,3,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,3,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,3,3,'') FROM `ԣ`; +SELECT INSERT(`ã`,4,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,4,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,5,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,2,'' ) FROM `ԣ`; +SELECT INSERT(`ã`,1,3,'' ) FROM `ԣ`; +SELECT INSERT(`ã`,1,4,'' ) FROM `ԣ`; +SELECT INSERT(`ã`,1,5,'' ) FROM `ԣ`; +SELECT INSERT(`ã`,2,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,2,'' ) FROM `ԣ`; +SELECT INSERT(`ã`,2,3,'' ) FROM `ԣ`; +SELECT INSERT(`ã`,2,4,'' ) FROM `ԣ`; +SELECT INSERT(`ã`,3,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,3,2,'' ) FROM `ԣ`; +SELECT INSERT(`ã`,3,3,'' ) FROM `ԣ`; +SELECT INSERT(`ã`,4,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,4,2,'' ) FROM `ԣ`; +SELECT INSERT(`ã`,5,1,'') FROM `ԣ`; + +#BDB +SELECT INSERT(`ã`,1,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,3,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,4,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,5,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,3,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,4,'') FROM `ԣ`; +SELECT INSERT(`ã`,3,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,3,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,3,3,'') FROM `ԣ`; +SELECT INSERT(`ã`,4,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,4,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,5,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,3,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,4,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,5,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,3,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,4,'') FROM `ԣ`; +SELECT INSERT(`ã`,3,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,3,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,3,3,'') FROM `ԣ`; +SELECT INSERT(`ã`,4,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,4,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,5,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,3,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,4,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,5,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,3,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,4,'') FROM `ԣ`; +SELECT INSERT(`ã`,3,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,3,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,3,3,'') FROM `ԣ`; +SELECT INSERT(`ã`,4,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,4,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,5,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,3,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,4,'') FROM `ԣ`; +SELECT INSERT(`ã`,1,5,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,3,'') FROM `ԣ`; +SELECT INSERT(`ã`,2,4,'') FROM `ԣ`; +SELECT INSERT(`ã`,3,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,3,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,3,3,'') FROM `ԣ`; +SELECT INSERT(`ã`,4,1,'') FROM `ԣ`; +SELECT INSERT(`ã`,4,2,'') FROM `ԣ`; +SELECT INSERT(`ã`,5,1,'') FROM `ԣ`; + +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; diff --git a/mysql-test/suite/jp/t/jp_insert_utf8.test b/mysql-test/suite/jp/t/jp_insert_utf8.test new file mode 100755 index 00000000000..ef6acb90063 --- /dev/null +++ b/mysql-test/suite/jp/t/jp_insert_utf8.test @@ -0,0 +1,353 @@ +--disable_warnings +drop table if exists `T1`; +drop table if exists `T2`; +drop table if exists `T3`; +drop table if exists `T4`; +drop table if exists `T5`; +drop table if exists `T6`; +drop table if exists `T7`; +drop table if exists `T8`; +drop table if exists `T9`; +drop table if exists `T10`; +drop table if exists `T11`; +drop table if exists `T12`; +--enable_warnings + +# +# Test INSERT() function with Japanese characters in utf8 encoding +# + +SET NAMES utf8; +SET character_set_database = utf8; + +CREATE TABLE `T1` (`C1` char(5)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T2` (`C1` char(5)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T3` (`C1` char(5)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T4` (`C1` char(5)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T5` (`C1` char(5)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T6` (`C1` char(5)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T7` (`C1` char(5)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T8` (`C1` char(5)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T9` (`C1` char(5)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T10` (`C1` char(5)) DEFAULT CHARSET = utf8 engine = bdb; +CREATE TABLE `T11` (`C1` char(5)) DEFAULT CHARSET = utf8 engine = bdb; +CREATE TABLE `T12` (`C1` char(5)) DEFAULT CHARSET = utf8 engine = bdb; + +INSERT INTO `T1` VALUES ('アイウエオ'); +INSERT INTO `T2` VALUES ('あいうえお'); +INSERT INTO `T3` VALUES ('龔龖龗龞龡'); +INSERT INTO `T4` VALUES ('アイウエオ'); +INSERT INTO `T5` VALUES ('あいうえお'); +INSERT INTO `T6` VALUES ('龔龖龗龞龡'); +INSERT INTO `T7` VALUES ('アイウエオ'); +INSERT INTO `T8` VALUES ('あいうえお'); +INSERT INTO `T9` VALUES ('龔龖龗龞龡'); +INSERT INTO `T10` VALUES ('アイウエオ'); +INSERT INTO `T11` VALUES ('あいうえお'); +INSERT INTO `T12` VALUES ('龔龖龗龞龡'); + +#InnoDB +SELECT INSERT(`C1`,1,1,'カ') FROM `T1`; +SELECT INSERT(`C1`,1,2,'カカ') FROM `T1`; +SELECT INSERT(`C1`,1,3,'カカカ') FROM `T1`; +SELECT INSERT(`C1`,1,4,'カカカカ') FROM `T1`; +SELECT INSERT(`C1`,1,5,'カカカカカ') FROM `T1`; +SELECT INSERT(`C1`,2,1,'カ') FROM `T1`; +SELECT INSERT(`C1`,2,2,'カカ') FROM `T1`; +SELECT INSERT(`C1`,2,3,'カカカ') FROM `T1`; +SELECT INSERT(`C1`,2,4,'カカカカ') FROM `T1`; +SELECT INSERT(`C1`,3,1,'カ') FROM `T1`; +SELECT INSERT(`C1`,3,2,'カカ') FROM `T1`; +SELECT INSERT(`C1`,3,3,'カカカ') FROM `T1`; +SELECT INSERT(`C1`,4,1,'カ') FROM `T1`; +SELECT INSERT(`C1`,4,2,'カカ') FROM `T1`; +SELECT INSERT(`C1`,5,1,'カ') FROM `T1`; +SELECT INSERT(`C1`,1,1,' ') FROM `T1`; +SELECT INSERT(`C1`,1,2,' ') FROM `T1`; +SELECT INSERT(`C1`,1,3,' ') FROM `T1`; +SELECT INSERT(`C1`,1,4,' ') FROM `T1`; +SELECT INSERT(`C1`,1,5,' ') FROM `T1`; +SELECT INSERT(`C1`,2,1,' ') FROM `T1`; +SELECT INSERT(`C1`,2,2,' ') FROM `T1`; +SELECT INSERT(`C1`,2,3,' ') FROM `T1`; +SELECT INSERT(`C1`,2,4,' ') FROM `T1`; +SELECT INSERT(`C1`,3,1,' ') FROM `T1`; +SELECT INSERT(`C1`,3,2,' ') FROM `T1`; +SELECT INSERT(`C1`,3,3,' ') FROM `T1`; +SELECT INSERT(`C1`,4,1,' ') FROM `T1`; +SELECT INSERT(`C1`,4,2,' ') FROM `T1`; +SELECT INSERT(`C1`,5,1,' ') FROM `T1`; +SELECT INSERT(`C1`,1,1,'か') FROM `T2`; +SELECT INSERT(`C1`,1,2,'かか') FROM `T2`; +SELECT INSERT(`C1`,1,3,'かかか') FROM `T2`; +SELECT INSERT(`C1`,1,4,'かかかか') FROM `T2`; +SELECT INSERT(`C1`,1,5,'かかかかか') FROM `T2`; +SELECT INSERT(`C1`,2,1,'か') FROM `T2`; +SELECT INSERT(`C1`,2,2,'かか') FROM `T2`; +SELECT INSERT(`C1`,2,3,'かかか') FROM `T2`; +SELECT INSERT(`C1`,2,4,'かかかか') FROM `T2`; +SELECT INSERT(`C1`,3,1,'か') FROM `T2`; +SELECT INSERT(`C1`,3,2,'かか') FROM `T2`; +SELECT INSERT(`C1`,3,3,'かかか') FROM `T2`; +SELECT INSERT(`C1`,4,1,'か') FROM `T2`; +SELECT INSERT(`C1`,4,2,'かか') FROM `T2`; +SELECT INSERT(`C1`,5,1,'か') FROM `T2`; +SELECT INSERT(`C1`,1,1,' ') FROM `T2`; +SELECT INSERT(`C1`,1,2,'  ') FROM `T2`; +SELECT INSERT(`C1`,1,3,'   ') FROM `T2`; +SELECT INSERT(`C1`,1,4,'    ') FROM `T2`; +SELECT INSERT(`C1`,1,5,'     ') FROM `T2`; +SELECT INSERT(`C1`,2,1,' ') FROM `T2`; +SELECT INSERT(`C1`,2,2,'  ') FROM `T2`; +SELECT INSERT(`C1`,2,3,'   ') FROM `T2`; +SELECT INSERT(`C1`,2,4,'    ') FROM `T2`; +SELECT INSERT(`C1`,3,1,' ') FROM `T2`; +SELECT INSERT(`C1`,3,2,'  ') FROM `T2`; +SELECT INSERT(`C1`,3,3,'   ') FROM `T2`; +SELECT INSERT(`C1`,4,1,' ') FROM `T2`; +SELECT INSERT(`C1`,4,2,'  ') FROM `T2`; +SELECT INSERT(`C1`,5,1,' ') FROM `T2`; +SELECT INSERT(`C1`,1,1,'丂') FROM `T3`; +SELECT INSERT(`C1`,1,2,'丂丂' ) FROM `T3`; +SELECT INSERT(`C1`,1,3,'丂丂丂' ) FROM `T3`; +SELECT INSERT(`C1`,1,4,'丂丂丂丂' ) FROM `T3`; +SELECT INSERT(`C1`,1,5,'丂丂丂丂丂' ) FROM `T3`; +SELECT INSERT(`C1`,2,1,'丂') FROM `T3`; +SELECT INSERT(`C1`,2,2,'丂丂' ) FROM `T3`; +SELECT INSERT(`C1`,2,3,'丂丂丂' ) FROM `T3`; +SELECT INSERT(`C1`,2,4,'丂丂丂丂' ) FROM `T3`; +SELECT INSERT(`C1`,3,1,'丂') FROM `T3`; +SELECT INSERT(`C1`,3,2,'丂丂' ) FROM `T3`; +SELECT INSERT(`C1`,3,3,'丂丂丂' ) FROM `T3`; +SELECT INSERT(`C1`,4,1,'丂') FROM `T3`; +SELECT INSERT(`C1`,4,2,'丂丂' ) FROM `T3`; +SELECT INSERT(`C1`,5,1,'丂') FROM `T3`; + +#MyISAM +SELECT INSERT(`C1`,1,1,'カ') FROM `T4`; +SELECT INSERT(`C1`,1,2,'カカ') FROM `T4`; +SELECT INSERT(`C1`,1,3,'カカカ') FROM `T4`; +SELECT INSERT(`C1`,1,4,'カカカカ') FROM `T4`; +SELECT INSERT(`C1`,1,5,'カカカカカ') FROM `T4`; +SELECT INSERT(`C1`,2,1,'カ') FROM `T4`; +SELECT INSERT(`C1`,2,2,'カカ') FROM `T4`; +SELECT INSERT(`C1`,2,3,'カカカ') FROM `T4`; +SELECT INSERT(`C1`,2,4,'カカカカ') FROM `T4`; +SELECT INSERT(`C1`,3,1,'カ') FROM `T4`; +SELECT INSERT(`C1`,3,2,'カカ') FROM `T4`; +SELECT INSERT(`C1`,3,3,'カカカ') FROM `T4`; +SELECT INSERT(`C1`,4,1,'カ') FROM `T4`; +SELECT INSERT(`C1`,4,2,'カカ') FROM `T4`; +SELECT INSERT(`C1`,5,1,'カ') FROM `T4`; +SELECT INSERT(`C1`,1,1,' ') FROM `T4`; +SELECT INSERT(`C1`,1,2,' ') FROM `T4`; +SELECT INSERT(`C1`,1,3,' ') FROM `T4`; +SELECT INSERT(`C1`,1,4,' ') FROM `T4`; +SELECT INSERT(`C1`,1,5,' ') FROM `T4`; +SELECT INSERT(`C1`,2,1,' ') FROM `T4`; +SELECT INSERT(`C1`,2,2,' ') FROM `T4`; +SELECT INSERT(`C1`,2,3,' ') FROM `T4`; +SELECT INSERT(`C1`,2,4,' ') FROM `T4`; +SELECT INSERT(`C1`,3,1,' ') FROM `T4`; +SELECT INSERT(`C1`,3,2,' ') FROM `T4`; +SELECT INSERT(`C1`,3,3,' ') FROM `T4`; +SELECT INSERT(`C1`,4,1,' ') FROM `T4`; +SELECT INSERT(`C1`,4,2,' ') FROM `T4`; +SELECT INSERT(`C1`,5,1,' ') FROM `T4`; +SELECT INSERT(`C1`,1,1,'か') FROM `T5`; +SELECT INSERT(`C1`,1,2,'かか') FROM `T5`; +SELECT INSERT(`C1`,1,3,'かかか') FROM `T5`; +SELECT INSERT(`C1`,1,4,'かかかか') FROM `T5`; +SELECT INSERT(`C1`,1,5,'かかかかか') FROM `T5`; +SELECT INSERT(`C1`,2,1,'か') FROM `T5`; +SELECT INSERT(`C1`,2,2,'かか') FROM `T5`; +SELECT INSERT(`C1`,2,3,'かかか') FROM `T5`; +SELECT INSERT(`C1`,2,4,'かかかか') FROM `T5`; +SELECT INSERT(`C1`,3,1,'か') FROM `T5`; +SELECT INSERT(`C1`,3,2,'かか') FROM `T5`; +SELECT INSERT(`C1`,3,3,'かかか') FROM `T5`; +SELECT INSERT(`C1`,4,1,'か') FROM `T5`; +SELECT INSERT(`C1`,4,2,'かか') FROM `T5`; +SELECT INSERT(`C1`,5,1,'か') FROM `T5`; +SELECT INSERT(`C1`,1,1,' ') FROM `T5`; +SELECT INSERT(`C1`,1,2,'  ') FROM `T5`; +SELECT INSERT(`C1`,1,3,'   ') FROM `T5`; +SELECT INSERT(`C1`,1,4,'    ') FROM `T5`; +SELECT INSERT(`C1`,1,5,'     ') FROM `T5`; +SELECT INSERT(`C1`,2,1,' ') FROM `T5`; +SELECT INSERT(`C1`,2,2,'  ') FROM `T5`; +SELECT INSERT(`C1`,2,3,'   ') FROM `T5`; +SELECT INSERT(`C1`,2,4,'    ') FROM `T5`; +SELECT INSERT(`C1`,3,1,' ') FROM `T5`; +SELECT INSERT(`C1`,3,2,'  ') FROM `T5`; +SELECT INSERT(`C1`,3,3,'   ') FROM `T5`; +SELECT INSERT(`C1`,4,1,' ') FROM `T5`; +SELECT INSERT(`C1`,4,2,'  ') FROM `T5`; +SELECT INSERT(`C1`,5,1,' ') FROM `T5`; +SELECT INSERT(`C1`,1,1,'丂') FROM `T6`; +SELECT INSERT(`C1`,1,2,'丂丂' ) FROM `T6`; +SELECT INSERT(`C1`,1,3,'丂丂丂' ) FROM `T6`; +SELECT INSERT(`C1`,1,4,'丂丂丂丂' ) FROM `T6`; +SELECT INSERT(`C1`,1,5,'丂丂丂丂丂' ) FROM `T6`; +SELECT INSERT(`C1`,2,1,'丂') FROM `T6`; +SELECT INSERT(`C1`,2,2,'丂丂') FROM `T6`; +SELECT INSERT(`C1`,2,3,'丂丂丂' ) FROM `T6`; +SELECT INSERT(`C1`,2,4,'丂丂丂丂' ) FROM `T6`; +SELECT INSERT(`C1`,3,1,'丂') FROM `T6`; +SELECT INSERT(`C1`,3,2,'丂丂' ) FROM `T6`; +SELECT INSERT(`C1`,3,3,'丂丂丂' ) FROM `T6`; +SELECT INSERT(`C1`,4,1,'丂') FROM `T6`; +SELECT INSERT(`C1`,4,2,'丂丂' ) FROM `T6`; +SELECT INSERT(`C1`,5,1,'丂') FROM `T6`; + +#HEAP +SELECT INSERT(`C1`,1,1,'カ') FROM `T7`; +SELECT INSERT(`C1`,1,2,'カカ') FROM `T7`; +SELECT INSERT(`C1`,1,3,'カカカ') FROM `T7`; +SELECT INSERT(`C1`,1,4,'カカカカ') FROM `T7`; +SELECT INSERT(`C1`,1,5,'カカカカカ') FROM `T7`; +SELECT INSERT(`C1`,2,1,'カ') FROM `T7`; +SELECT INSERT(`C1`,2,2,'カカ') FROM `T7`; +SELECT INSERT(`C1`,2,3,'カカカ') FROM `T7`; +SELECT INSERT(`C1`,2,4,'カカカカ') FROM `T7`; +SELECT INSERT(`C1`,3,1,'カ') FROM `T7`; +SELECT INSERT(`C1`,3,2,'カカ') FROM `T7`; +SELECT INSERT(`C1`,3,3,'カカカ') FROM `T7`; +SELECT INSERT(`C1`,4,1,'カ') FROM `T7`; +SELECT INSERT(`C1`,4,2,'カカ') FROM `T7`; +SELECT INSERT(`C1`,5,1,'カ') FROM `T7`; +SELECT INSERT(`C1`,1,1,' ') FROM `T7`; +SELECT INSERT(`C1`,1,2,' ') FROM `T7`; +SELECT INSERT(`C1`,1,3,' ') FROM `T7`; +SELECT INSERT(`C1`,1,4,' ') FROM `T7`; +SELECT INSERT(`C1`,1,5,' ') FROM `T7`; +SELECT INSERT(`C1`,2,1,' ') FROM `T7`; +SELECT INSERT(`C1`,2,2,' ') FROM `T7`; +SELECT INSERT(`C1`,2,3,' ') FROM `T7`; +SELECT INSERT(`C1`,2,4,' ') FROM `T7`; +SELECT INSERT(`C1`,3,1,' ') FROM `T7`; +SELECT INSERT(`C1`,3,2,' ') FROM `T7`; +SELECT INSERT(`C1`,3,3,' ') FROM `T7`; +SELECT INSERT(`C1`,4,1,' ') FROM `T7`; +SELECT INSERT(`C1`,4,2,' ') FROM `T7`; +SELECT INSERT(`C1`,5,1,' ') FROM `T7`; +SELECT INSERT(`C1`,1,1,'か') FROM `T8`; +SELECT INSERT(`C1`,1,2,'かか') FROM `T8`; +SELECT INSERT(`C1`,1,3,'かかか') FROM `T8`; +SELECT INSERT(`C1`,1,4,'かかかか') FROM `T8`; +SELECT INSERT(`C1`,1,5,'かかかかか') FROM `T8`; +SELECT INSERT(`C1`,2,1,'か') FROM `T8`; +SELECT INSERT(`C1`,2,2,'かか') FROM `T8`; +SELECT INSERT(`C1`,2,3,'かかか') FROM `T8`; +SELECT INSERT(`C1`,2,4,'かかかか') FROM `T8`; +SELECT INSERT(`C1`,3,1,'か') FROM `T8`; +SELECT INSERT(`C1`,3,2,'かか') FROM `T8`; +SELECT INSERT(`C1`,3,3,'かかか') FROM `T8`; +SELECT INSERT(`C1`,4,1,'か') FROM `T8`; +SELECT INSERT(`C1`,4,2,'かか') FROM `T8`; +SELECT INSERT(`C1`,5,1,'か') FROM `T8`; +SELECT INSERT(`C1`,1,1,' ') FROM `T8`; +SELECT INSERT(`C1`,1,2,'  ') FROM `T8`; +SELECT INSERT(`C1`,1,3,'   ') FROM `T8`; +SELECT INSERT(`C1`,1,4,'    ') FROM `T8`; +SELECT INSERT(`C1`,1,5,'     ') FROM `T8`; +SELECT INSERT(`C1`,2,1,' ') FROM `T8`; +SELECT INSERT(`C1`,2,2,'  ') FROM `T8`; +SELECT INSERT(`C1`,2,3,'   ') FROM `T8`; +SELECT INSERT(`C1`,2,4,'    ') FROM `T8`; +SELECT INSERT(`C1`,3,1,' ') FROM `T8`; +SELECT INSERT(`C1`,3,2,'  ') FROM `T8`; +SELECT INSERT(`C1`,3,3,'   ') FROM `T8`; +SELECT INSERT(`C1`,4,1,' ') FROM `T8`; +SELECT INSERT(`C1`,4,2,'  ') FROM `T8`; +SELECT INSERT(`C1`,5,1,' ') FROM `T8`; +SELECT INSERT(`C1`,1,1,'丂') FROM `T9`; +SELECT INSERT(`C1`,1,2,'丂丂' ) FROM `T9`; +SELECT INSERT(`C1`,1,3,'丂丂丂' ) FROM `T9`; +SELECT INSERT(`C1`,1,4,'丂丂丂丂' ) FROM `T9`; +SELECT INSERT(`C1`,1,5,'丂丂丂丂丂' ) FROM `T9`; +SELECT INSERT(`C1`,2,1,'丂') FROM `T9`; +SELECT INSERT(`C1`,2,2,'丂丂' ) FROM `T9`; +SELECT INSERT(`C1`,2,3,'丂丂丂' ) FROM `T9`; +SELECT INSERT(`C1`,2,4,'丂丂丂丂' ) FROM `T9`; +SELECT INSERT(`C1`,3,1,'丂') FROM `T9`; +SELECT INSERT(`C1`,3,2,'丂丂' ) FROM `T9`; +SELECT INSERT(`C1`,3,3,'丂丂丂' ) FROM `T9`; +SELECT INSERT(`C1`,4,1,'丂') FROM `T9`; +SELECT INSERT(`C1`,4,2,'丂丂' ) FROM `T9`; +SELECT INSERT(`C1`,5,1,'丂') FROM `T9`; + +#BDB +SELECT INSERT(`C1`,1,1,'カ') FROM `T10`; +SELECT INSERT(`C1`,1,2,'カカ') FROM `T10`; +SELECT INSERT(`C1`,1,3,'カカカ') FROM `T10`; +SELECT INSERT(`C1`,1,4,'カカカカ') FROM `T10`; +SELECT INSERT(`C1`,1,5,'カカカカカ') FROM `T10`; +SELECT INSERT(`C1`,2,1,'カ') FROM `T10`; +SELECT INSERT(`C1`,2,2,'カカ') FROM `T10`; +SELECT INSERT(`C1`,2,3,'カカカ') FROM `T10`; +SELECT INSERT(`C1`,2,4,'カカカカ') FROM `T10`; +SELECT INSERT(`C1`,3,1,'カ') FROM `T10`; +SELECT INSERT(`C1`,3,2,'カカ') FROM `T10`; +SELECT INSERT(`C1`,3,3,'カカカ') FROM `T10`; +SELECT INSERT(`C1`,4,1,'カ') FROM `T10`; +SELECT INSERT(`C1`,4,2,'カカ') FROM `T10`; +SELECT INSERT(`C1`,5,1,'カ') FROM `T10`; +SELECT INSERT(`C1`,1,1,'か') FROM `T11`; +SELECT INSERT(`C1`,1,2,'かか') FROM `T11`; +SELECT INSERT(`C1`,1,3,'かかか') FROM `T11`; +SELECT INSERT(`C1`,1,4,'かかかか') FROM `T11`; +SELECT INSERT(`C1`,1,5,'かかかかか') FROM `T11`; +SELECT INSERT(`C1`,2,1,'か') FROM `T11`; +SELECT INSERT(`C1`,2,2,'かか') FROM `T11`; +SELECT INSERT(`C1`,2,3,'かかか') FROM `T11`; +SELECT INSERT(`C1`,2,4,'かかかか') FROM `T11`; +SELECT INSERT(`C1`,3,1,'か') FROM `T11`; +SELECT INSERT(`C1`,3,2,'かか') FROM `T11`; +SELECT INSERT(`C1`,3,3,'かかか') FROM `T11`; +SELECT INSERT(`C1`,4,1,'か') FROM `T11`; +SELECT INSERT(`C1`,4,2,'かか') FROM `T11`; +SELECT INSERT(`C1`,5,1,'か') FROM `T11`; +SELECT INSERT(`C1`,1,1,' ') FROM `T11`; +SELECT INSERT(`C1`,1,2,'  ') FROM `T11`; +SELECT INSERT(`C1`,1,3,'   ') FROM `T11`; +SELECT INSERT(`C1`,1,4,'    ') FROM `T11`; +SELECT INSERT(`C1`,1,5,'     ') FROM `T11`; +SELECT INSERT(`C1`,2,1,' ') FROM `T11`; +SELECT INSERT(`C1`,2,2,'  ') FROM `T11`; +SELECT INSERT(`C1`,2,3,'   ') FROM `T11`; +SELECT INSERT(`C1`,2,4,'    ') FROM `T11`; +SELECT INSERT(`C1`,3,1,' ') FROM `T11`; +SELECT INSERT(`C1`,3,2,'  ') FROM `T11`; +SELECT INSERT(`C1`,3,3,'   ') FROM `T11`; +SELECT INSERT(`C1`,4,1,' ') FROM `T11`; +SELECT INSERT(`C1`,4,2,'  ') FROM `T11`; +SELECT INSERT(`C1`,5,1,' ') FROM `T11`; +SELECT INSERT(`C1`,1,1,'丂') FROM `T12`; +SELECT INSERT(`C1`,1,2,'丂丂') FROM `T12`; +SELECT INSERT(`C1`,1,3,'丂丂丂') FROM `T12`; +SELECT INSERT(`C1`,1,4,'丂丂丂丂') FROM `T12`; +SELECT INSERT(`C1`,1,5,'丂丂丂丂丂') FROM `T12`; +SELECT INSERT(`C1`,2,1,'丂') FROM `T12`; +SELECT INSERT(`C1`,2,2,'丂丂') FROM `T12`; +SELECT INSERT(`C1`,2,3,'丂丂丂') FROM `T12`; +SELECT INSERT(`C1`,2,4,'丂丂丂丂') FROM `T12`; +SELECT INSERT(`C1`,3,1,'丂') FROM `T12`; +SELECT INSERT(`C1`,3,2,'丂丂') FROM `T12`; +SELECT INSERT(`C1`,3,3,'丂丂丂') FROM `T12`; +SELECT INSERT(`C1`,4,1,'丂') FROM `T12`; +SELECT INSERT(`C1`,4,2,'丂丂') FROM `T12`; +SELECT INSERT(`C1`,5,1,'丂') FROM `T12`; + +DROP TABLE `T1`; +DROP TABLE `T2`; +DROP TABLE `T3`; +DROP TABLE `T4`; +DROP TABLE `T5`; +DROP TABLE `T6`; +DROP TABLE `T7`; +DROP TABLE `T8`; +DROP TABLE `T9`; +DROP TABLE `T10`; +DROP TABLE `T11`; +DROP TABLE `T12`; diff --git a/mysql-test/suite/jp/t/jp_instr_sjis.test b/mysql-test/suite/jp/t/jp_instr_sjis.test new file mode 100755 index 00000000000..c19b5f2b14c --- /dev/null +++ b/mysql-test/suite/jp/t/jp_instr_sjis.test @@ -0,0 +1,139 @@ +--character_set sjis +--disable_warnings +drop table if exists `sP`; +drop table if exists `sQ`; +drop table if exists `sR`; +drop table if exists `sS`; +drop table if exists `sT`; +drop table if exists `sU`; +drop table if exists `sV`; +drop table if exists `sW`; +drop table if exists `sX`; +drop table if exists `sPO`; +--enable_warnings + +# +# Test INSTR() function with Japanese characters in sjis encoding +# + +SET NAMES sjis; +SET character_set_database = sjis; + +CREATE TABLE `sP` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sQ` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sR` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sS` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sT` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sU` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sV` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sW` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sX` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sPO` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +CREATE TABLE `sPP` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +CREATE TABLE `sPQ` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; + +INSERT INTO `sP` VALUES (''); +INSERT INTO `sQ` VALUES (''); +INSERT INTO `sR` VALUES ('\\\\\'); +INSERT INTO `sS` VALUES (''); +INSERT INTO `sT` VALUES (''); +INSERT INTO `sU` VALUES ('\\\\\'); +INSERT INTO `sV` VALUES (''); +INSERT INTO `sW` VALUES (''); +INSERT INTO `sX` VALUES ('\\\\\'); +INSERT INTO `sPO` VALUES (''); +INSERT INTO `sPP` VALUES (''); +INSERT INTO `sPQ` VALUES ('\\\\\'); + +#InnoDB +SELECT INSTR(`bP`,'') from `sP`; +SELECT INSTR(`bP`,'') from `sP`; +SELECT INSTR(`bP`,'') from `sP`; +SELECT INSTR(`bP`,'') from `sP`; +SELECT INSTR(`bP`,'') from `sP`; +SELECT INSTR(`bP`,'') from `sP`; +SELECT INSTR(`bP`,'') from `sQ`; +SELECT INSTR(`bP`,'') from `sQ`; +SELECT INSTR(`bP`,'') from `sQ`; +SELECT INSTR(`bP`,'') from `sQ`; +SELECT INSTR(`bP`,'') from `sQ`; +SELECT INSTR(`bP`,'') from `sQ`; +SELECT INSTR(`bP`,'\') from `sR`; +SELECT INSTR(`bP`,'\') from `sR`; +SELECT INSTR(`bP`,'\') from `sR`; +SELECT INSTR(`bP`,'\') from `sR`; +SELECT INSTR(`bP`,'\') from `sR`; +SELECT INSTR(`bP`,'\') from `sR`; + +#MyISAM +SELECT INSTR(`bP`,'') from `sS`; +SELECT INSTR(`bP`,'') from `sS`; +SELECT INSTR(`bP`,'') from `sS`; +SELECT INSTR(`bP`,'') from `sS`; +SELECT INSTR(`bP`,'') from `sS`; +SELECT INSTR(`bP`,'') from `sS`; +SELECT INSTR(`bP`,'') from `sT`; +SELECT INSTR(`bP`,'') from `sT`; +SELECT INSTR(`bP`,'') from `sT`; +SELECT INSTR(`bP`,'') from `sT`; +SELECT INSTR(`bP`,'') from `sT`; +SELECT INSTR(`bP`,'') from `sT`; +SELECT INSTR(`bP`,'\') from `sU`; +SELECT INSTR(`bP`,'\') from `sU`; +SELECT INSTR(`bP`,'\') from `sU`; +SELECT INSTR(`bP`,'\') from `sU`; +SELECT INSTR(`bP`,'\') from `sU`; +SELECT INSTR(`bP`,'\') from `sU`; + +#HEAP +SELECT INSTR(`bP`,'') from `sV`; +SELECT INSTR(`bP`,'') from `sV`; +SELECT INSTR(`bP`,'') from `sV`; +SELECT INSTR(`bP`,'') from `sV`; +SELECT INSTR(`bP`,'') from `sV`; +SELECT INSTR(`bP`,'') from `sV`; +SELECT INSTR(`bP`,'') from `sW`; +SELECT INSTR(`bP`,'') from `sW`; +SELECT INSTR(`bP`,'') from `sW`; +SELECT INSTR(`bP`,'') from `sW`; +SELECT INSTR(`bP`,'') from `sW`; +SELECT INSTR(`bP`,'') from `sW`; +SELECT INSTR(`bP`,'\') from `sX`; +SELECT INSTR(`bP`,'\') from `sX`; +SELECT INSTR(`bP`,'\') from `sX`; +SELECT INSTR(`bP`,'\') from `sX`; +SELECT INSTR(`bP`,'\') from `sX`; +SELECT INSTR(`bP`,'\') from `sX`; + +#BDB +SELECT INSTR(`bP`,'') from `sPO`; +SELECT INSTR(`bP`,'') from `sPO`; +SELECT INSTR(`bP`,'') from `sPO`; +SELECT INSTR(`bP`,'') from `sPO`; +SELECT INSTR(`bP`,'') from `sPO`; +SELECT INSTR(`bP`,'') from `sPO`; +SELECT INSTR(`bP`,'') from `sPP`; +SELECT INSTR(`bP`,'') from `sPP`; +SELECT INSTR(`bP`,'') from `sPP`; +SELECT INSTR(`bP`,'') from `sPP`; +SELECT INSTR(`bP`,'') from `sPP`; +SELECT INSTR(`bP`,'') from `sPP`; +SELECT INSTR(`bP`,'\') from `sPQ`; +SELECT INSTR(`bP`,'\') from `sPQ`; +SELECT INSTR(`bP`,'\') from `sPQ`; +SELECT INSTR(`bP`,'\') from `sPQ`; +SELECT INSTR(`bP`,'\') from `sPQ`; +SELECT INSTR(`bP`,'\') from `sPQ`; + +DROP TABLE `sP`; +DROP TABLE `sQ`; +DROP TABLE `sR`; +DROP TABLE `sS`; +DROP TABLE `sT`; +DROP TABLE `sU`; +DROP TABLE `sV`; +DROP TABLE `sW`; +DROP TABLE `sX`; +DROP TABLE `sPO`; +DROP TABLE `sPP`; +DROP TABLE `sPQ`; diff --git a/mysql-test/suite/jp/t/jp_instr_ucs2.test b/mysql-test/suite/jp/t/jp_instr_ucs2.test new file mode 100755 index 00000000000..b8f83961e90 --- /dev/null +++ b/mysql-test/suite/jp/t/jp_instr_ucs2.test @@ -0,0 +1,141 @@ +--source include/have_ucs2.inc + +--disable_warnings +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +--enable_warnings + +# +# Test INSTR() function with Japanese characters in ucs2 encoding +# + +SET NAMES ujis; +SET character_set_database = ucs2; +SET collation_connection = ucs2_general_ci; + +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; + +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); + +#InnoDB +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; + +#MyISAM +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; + +#HEAP +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; + +#BDB +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; + +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; diff --git a/mysql-test/suite/jp/t/jp_instr_ujis.test b/mysql-test/suite/jp/t/jp_instr_ujis.test new file mode 100755 index 00000000000..696e1147372 --- /dev/null +++ b/mysql-test/suite/jp/t/jp_instr_ujis.test @@ -0,0 +1,140 @@ +--source include/have_ujis.inc + +--disable_warnings +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +--enable_warnings + +# +# Test INSTR() function with Japanese characters in ujis encoding +# + +SET NAMES ujis; +SET character_set_database = ujis; + +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; + +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); + +#InnoDB +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; + +#MyISAM +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; + +#HEAP +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; + +#BDB +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; +SELECT INSTR(`ã`,'') from `ԣ`; + +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; diff --git a/mysql-test/suite/jp/t/jp_instr_utf8.test b/mysql-test/suite/jp/t/jp_instr_utf8.test new file mode 100755 index 00000000000..b25b72bc8d0 --- /dev/null +++ b/mysql-test/suite/jp/t/jp_instr_utf8.test @@ -0,0 +1,138 @@ +--disable_warnings +drop table if exists `T1`; +drop table if exists `T2`; +drop table if exists `T3`; +drop table if exists `T4`; +drop table if exists `T5`; +drop table if exists `T6`; +drop table if exists `T7`; +drop table if exists `T8`; +drop table if exists `T9`; +drop table if exists `T10`; +--enable_warnings + +# +# Test INSTR() function with Japanese characters in utf8 encoding +# + +SET NAMES utf8; +SET character_set_database = utf8; + +CREATE TABLE `T1` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T2` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T3` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T4` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T5` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T6` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T7` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T8` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T9` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T10` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +CREATE TABLE `T11` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +CREATE TABLE `T12` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; + +INSERT INTO `T1` VALUES ('アイウエオ'); +INSERT INTO `T2` VALUES ('あいうえお'); +INSERT INTO `T3` VALUES ('龔龖龗龞龡'); +INSERT INTO `T4` VALUES ('アイウエオ'); +INSERT INTO `T5` VALUES ('あいうえお'); +INSERT INTO `T6` VALUES ('龔龖龗龞龡'); +INSERT INTO `T7` VALUES ('アイウエオ'); +INSERT INTO `T8` VALUES ('あいうえお'); +INSERT INTO `T9` VALUES ('龔龖龗龞龡'); +INSERT INTO `T10` VALUES ('アイウエオ'); +INSERT INTO `T11` VALUES ('あいうえお'); +INSERT INTO `T12` VALUES ('龔龖龗龞龡'); + +#InnoDB +SELECT INSTR(`C1`,'ア') from `T1`; +SELECT INSTR(`C1`,'イ') from `T1`; +SELECT INSTR(`C1`,'ウ') from `T1`; +SELECT INSTR(`C1`,'エ') from `T1`; +SELECT INSTR(`C1`,'オ') from `T1`; +SELECT INSTR(`C1`,'ン') from `T1`; +SELECT INSTR(`C1`,'あ') from `T2`; +SELECT INSTR(`C1`,'い') from `T2`; +SELECT INSTR(`C1`,'う') from `T2`; +SELECT INSTR(`C1`,'え') from `T2`; +SELECT INSTR(`C1`,'お') from `T2`; +SELECT INSTR(`C1`,'ん') from `T2`; +SELECT INSTR(`C1`,'龔') from `T3`; +SELECT INSTR(`C1`,'龖') from `T3`; +SELECT INSTR(`C1`,'龗') from `T3`; +SELECT INSTR(`C1`,'龞') from `T3`; +SELECT INSTR(`C1`,'龡') from `T3`; +SELECT INSTR(`C1`,'丂') from `T3`; + +#MyISAM +SELECT INSTR(`C1`,'ア') from `T4`; +SELECT INSTR(`C1`,'イ') from `T4`; +SELECT INSTR(`C1`,'ウ') from `T4`; +SELECT INSTR(`C1`,'エ') from `T4`; +SELECT INSTR(`C1`,'オ') from `T4`; +SELECT INSTR(`C1`,'ン') from `T4`; +SELECT INSTR(`C1`,'あ') from `T5`; +SELECT INSTR(`C1`,'い') from `T5`; +SELECT INSTR(`C1`,'う') from `T5`; +SELECT INSTR(`C1`,'え') from `T5`; +SELECT INSTR(`C1`,'お') from `T5`; +SELECT INSTR(`C1`,'ん') from `T5`; +SELECT INSTR(`C1`,'龔') from `T6`; +SELECT INSTR(`C1`,'龖') from `T6`; +SELECT INSTR(`C1`,'龗') from `T6`; +SELECT INSTR(`C1`,'龞') from `T6`; +SELECT INSTR(`C1`,'龡') from `T6`; +SELECT INSTR(`C1`,'丂') from `T6`; + +#HEAP +SELECT INSTR(`C1`,'ア') from `T7`; +SELECT INSTR(`C1`,'イ') from `T7`; +SELECT INSTR(`C1`,'ウ') from `T7`; +SELECT INSTR(`C1`,'エ') from `T7`; +SELECT INSTR(`C1`,'オ') from `T7`; +SELECT INSTR(`C1`,'ン') from `T7`; +SELECT INSTR(`C1`,'あ') from `T8`; +SELECT INSTR(`C1`,'い') from `T8`; +SELECT INSTR(`C1`,'う') from `T8`; +SELECT INSTR(`C1`,'え') from `T8`; +SELECT INSTR(`C1`,'お') from `T8`; +SELECT INSTR(`C1`,'ん') from `T8`; +SELECT INSTR(`C1`,'龔') from `T9`; +SELECT INSTR(`C1`,'龖') from `T9`; +SELECT INSTR(`C1`,'龗') from `T9`; +SELECT INSTR(`C1`,'龞') from `T9`; +SELECT INSTR(`C1`,'龡') from `T9`; +SELECT INSTR(`C1`,'丂') from `T9`; + +#BDB +SELECT INSTR(`C1`,'ア') from `T10`; +SELECT INSTR(`C1`,'イ') from `T10`; +SELECT INSTR(`C1`,'ウ') from `T10`; +SELECT INSTR(`C1`,'エ') from `T10`; +SELECT INSTR(`C1`,'オ') from `T10`; +SELECT INSTR(`C1`,'ン') from `T10`; +SELECT INSTR(`C1`,'あ') from `T11`; +SELECT INSTR(`C1`,'い') from `T11`; +SELECT INSTR(`C1`,'う') from `T11`; +SELECT INSTR(`C1`,'え') from `T11`; +SELECT INSTR(`C1`,'お') from `T11`; +SELECT INSTR(`C1`,'ん') from `T11`; +SELECT INSTR(`C1`,'龔') from `T12`; +SELECT INSTR(`C1`,'龖') from `T12`; +SELECT INSTR(`C1`,'龗') from `T12`; +SELECT INSTR(`C1`,'龞') from `T12`; +SELECT INSTR(`C1`,'龡') from `T12`; +SELECT INSTR(`C1`,'丂') from `T12`; + +DROP TABLE `T1`; +DROP TABLE `T2`; +DROP TABLE `T3`; +DROP TABLE `T4`; +DROP TABLE `T5`; +DROP TABLE `T6`; +DROP TABLE `T7`; +DROP TABLE `T8`; +DROP TABLE `T9`; +DROP TABLE `T10`; +DROP TABLE `T11`; +DROP TABLE `T12`; diff --git a/mysql-test/suite/jp/t/jp_join_sjis.test b/mysql-test/suite/jp/t/jp_join_sjis.test new file mode 100755 index 00000000000..30b23913929 --- /dev/null +++ b/mysql-test/suite/jp/t/jp_join_sjis.test @@ -0,0 +1,218 @@ +--character_set sjis +--disable_warnings +drop table if exists `sP`; +drop table if exists `sQ`; +drop table if exists `sR`; +drop table if exists `sS`; +drop table if exists `sT`; +drop table if exists `sU`; +drop table if exists `sV`; +drop table if exists `sW`; +drop table if exists `sX`; +drop table if exists `sPO`; +drop table if exists `sPP`; +drop table if exists `sPQ`; +--enable_warnings + +# +# Test table JOIN using Japanese characters in sjis encoding +# + +SET NAMES sjis; +SET character_set_database = sjis; + +CREATE TABLE `sPa` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sPb` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sQa` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sQb` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sRa` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sRb` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sSa` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sSb` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sTa` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sTb` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sUa` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sUb` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sVa` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sVb` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sWa` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sWb` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sXa` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sXb` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sPOa` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sPOb` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sPPa` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sPPb` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sPQa` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sPQb` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = heap; + +#insert the following data in each table +# jisx0201 hankaku-katakana data +# jisx0208 data +# jisx0212 supplemental character data + +INSERT INTO `sPa` VALUES (''),(''),(''); +INSERT INTO `sPb` VALUES (''); +INSERT INTO `sQa` VALUES (''),(''),(''); +INSERT INTO `sQb` VALUES (''); +INSERT INTO `sRa` VALUES ('\'),('\'),('\'); +INSERT INTO `sRb` VALUES ('\'); +INSERT INTO `sSa` VALUES (''),(''),(''); +INSERT INTO `sSb` VALUES (''); +INSERT INTO `sTa` VALUES (''),(''),(''); +INSERT INTO `sTb` VALUES (''); +INSERT INTO `sUa` VALUES ('\'),('\'),('\'); +INSERT INTO `sUb` VALUES ('\'); +INSERT INTO `sVa` VALUES (''),(''),(''); +INSERT INTO `sVb` VALUES (''); +INSERT INTO `sWa` VALUES (''),(''),(''); +INSERT INTO `sWb` VALUES (''); +INSERT INTO `sXa` VALUES ('\'),('\'),('\'); +INSERT INTO `sXb` VALUES ('\'); +INSERT INTO `sPOa` VALUES (''),(''),(''); +INSERT INTO `sPOb` VALUES (''); +INSERT INTO `sPPa` VALUES (''),(''),(''); +INSERT INTO `sPPb` VALUES (''); +INSERT INTO `sPQa` VALUES ('\'),('\'),('\'); +INSERT INTO `sPQb` VALUES ('\'); + +#Test for innodb +SELECT * FROM `sPa` JOIN `sPb`; +SELECT * FROM `sPa` INNER JOIN `sPb`; +SELECT * FROM `sPa` JOIN `sPb` USING (`bP`); +SELECT * FROM `sPa` INNER JOIN `sPb` USING (`bP`); +SELECT * FROM `sPa` CROSS JOIN `sPb`; +SELECT * FROM `sPa` LEFT JOIN `sPb` USING (`bP`); +SELECT * FROM `sPa` LEFT JOIN `sPb` ON (`sPa`.`bP` = `sPb`.`bP`); +SELECT * FROM `sPb` RIGHT JOIN `sPa` USING (`bP`); +SELECT * FROM `sPb` RIGHT JOIN `sPa` ON (`sPa`.`bP` = `sPb`.`bP`); +SELECT * FROM `sQa` JOIN `sQb`; +SELECT * FROM `sQa` INNER JOIN `sQb`; +SELECT * FROM `sQa` JOIN `sQb` USING (`bP`); +SELECT * FROM `sQa` INNER JOIN `sQb` USING (`bP`); +SELECT * FROM `sQa` CROSS JOIN `sQb`; +SELECT * FROM `sQa` LEFT JOIN `sQb` USING (`bP`); +SELECT * FROM `sQa` LEFT JOIN `sQb` ON (`sQa`.`bP` = `sQb`.`bP`); +SELECT * FROM `sQb` RIGHT JOIN `sQa` USING (`bP`); +SELECT * FROM `sQb` RIGHT JOIN `sQa` ON (`sQa`.`bP` = `sQb`.`bP`); +SELECT * FROM `sRa` JOIN `sRb`; +SELECT * FROM `sRa` INNER JOIN `sRb`; +SELECT * FROM `sRa` JOIN `sRb` USING (`bP`); +SELECT * FROM `sRa` INNER JOIN `sRb` USING (`bP`); +SELECT * FROM `sRa` CROSS JOIN `sRb`; +SELECT * FROM `sRa` LEFT JOIN `sRb` USING (`bP`); +SELECT * FROM `sRa` LEFT JOIN `sRb` ON (`sRa`.`bP` = `sRb`.`bP`); +SELECT * FROM `sRb` RIGHT JOIN `sRa` USING (`bP`); +SELECT * FROM `sRb` RIGHT JOIN `sRa` ON (`sRa`.`bP` = `sRb`.`bP`); + +#Test for myisam +SELECT * FROM `sSa` JOIN `sSb`; +SELECT * FROM `sSa` INNER JOIN `sSb`; +SELECT * FROM `sSa` JOIN `sSb` USING (`bP`); +SELECT * FROM `sSa` INNER JOIN `sSb` USING (`bP`); +SELECT * FROM `sSa` CROSS JOIN `sSb`; +SELECT * FROM `sSa` LEFT JOIN `sSb` USING (`bP`); +SELECT * FROM `sSa` LEFT JOIN `sSb` ON (`sSa`.`bP` = `sSb`.`bP`); +SELECT * FROM `sSb` RIGHT JOIN `sSa` USING (`bP`); +SELECT * FROM `sSb` RIGHT JOIN `sSa` ON (`sSa`.`bP` = `sSb`.`bP`); +SELECT * FROM `sTa` JOIN `sTb`; +SELECT * FROM `sTa` INNER JOIN `sTb`; +SELECT * FROM `sTa` JOIN `sTb` USING (`bP`); +SELECT * FROM `sTa` INNER JOIN `sTb` USING (`bP`); +SELECT * FROM `sTa` CROSS JOIN `sTb`; +SELECT * FROM `sTa` LEFT JOIN `sTb` USING (`bP`); +SELECT * FROM `sTa` LEFT JOIN `sTb` ON (`sTa`.`bP` = `sTb`.`bP`); +SELECT * FROM `sTb` RIGHT JOIN `sTa` USING (`bP`); +SELECT * FROM `sTb` RIGHT JOIN `sTa` ON (`sTa`.`bP` = `sTb`.`bP`); +SELECT * FROM `sUa` JOIN `sUb`; +SELECT * FROM `sUa` INNER JOIN `sUb`; +SELECT * FROM `sUa` JOIN `sUb` USING (`bP`); +SELECT * FROM `sUa` INNER JOIN `sUb` USING (`bP`); +SELECT * FROM `sUa` CROSS JOIN `sUb`; +SELECT * FROM `sUa` LEFT JOIN `sUb` USING (`bP`); +SELECT * FROM `sUa` LEFT JOIN `sUb` ON (`sUa`.`bP` = `sUb`.`bP`); +SELECT * FROM `sUb` RIGHT JOIN `sUa` USING (`bP`); +SELECT * FROM `sUb` RIGHT JOIN `sUa` ON (`sUa`.`bP` = `sUb`.`bP`); + +#Test for heap +SELECT * FROM `sVa` JOIN `sVb`; +SELECT * FROM `sVa` INNER JOIN `sVb`; +SELECT * FROM `sVa` JOIN `sVb` USING (`bP`); +SELECT * FROM `sVa` INNER JOIN `sVb` USING (`bP`); +SELECT * FROM `sVa` CROSS JOIN `sVb`; +SELECT * FROM `sVa` LEFT JOIN `sVb` USING (`bP`); +SELECT * FROM `sVa` LEFT JOIN `sVb` ON (`sVa`.`bP` = `sVb`.`bP`); +SELECT * FROM `sVb` RIGHT JOIN `sVa` USING (`bP`); +SELECT * FROM `sVb` RIGHT JOIN `sVa` ON (`sVa`.`bP` = `sVb`.`bP`); +SELECT * FROM `sWa` JOIN `sWb`; +SELECT * FROM `sWa` INNER JOIN `sWb`; +SELECT * FROM `sWa` JOIN `sWb` USING (`bP`); +SELECT * FROM `sWa` INNER JOIN `sWb` USING (`bP`); +SELECT * FROM `sWa` CROSS JOIN `sWb`; +SELECT * FROM `sWa` LEFT JOIN `sWb` USING (`bP`); +SELECT * FROM `sWa` LEFT JOIN `sWb` ON (`sWa`.`bP` = `sWb`.`bP`); +SELECT * FROM `sWb` RIGHT JOIN `sWa` USING (`bP`); +SELECT * FROM `sWb` RIGHT JOIN `sWa` ON (`sWa`.`bP` = `sWb`.`bP`); +SELECT * FROM `sXa` JOIN `sXb`; +SELECT * FROM `sXa` INNER JOIN `sXb`; +SELECT * FROM `sXa` JOIN `sXb` USING (`bP`); +SELECT * FROM `sXa` INNER JOIN `sXb` USING (`bP`); +SELECT * FROM `sXa` CROSS JOIN `sXb`; +SELECT * FROM `sXa` LEFT JOIN `sXb` USING (`bP`); +SELECT * FROM `sXa` LEFT JOIN `sXb` ON (`sXa`.`bP` = `sXb`.`bP`); +SELECT * FROM `sXb` RIGHT JOIN `sXa` USING (`bP`); +SELECT * FROM `sXb` RIGHT JOIN `sXa` ON (`sXa`.`bP` = `sXb`.`bP`); + +#Test for heap +SELECT * FROM `sPOa` JOIN `sPOb`; +SELECT * FROM `sPOa` INNER JOIN `sPOb`; +SELECT * FROM `sPOa` JOIN `sPOb` USING (`bP`); +SELECT * FROM `sPOa` INNER JOIN `sPOb` USING (`bP`); +SELECT * FROM `sPOa` CROSS JOIN `sPOb`; +SELECT * FROM `sPOa` LEFT JOIN `sPOb` USING (`bP`); +SELECT * FROM `sPOa` LEFT JOIN `sPOb` ON (`sPOa`.`bP` = `sPOb`.`bP`); +SELECT * FROM `sPOb` RIGHT JOIN `sPOa` USING (`bP`); +SELECT * FROM `sPOb` RIGHT JOIN `sPOa` ON (`sPOa`.`bP` = `sPOb`.`bP`); +SELECT * FROM `sPPa` JOIN `sPPb`; +SELECT * FROM `sPPa` INNER JOIN `sPPb`; +SELECT * FROM `sPPa` JOIN `sPPb` USING (`bP`); +SELECT * FROM `sPPa` INNER JOIN `sPPb` USING (`bP`); +SELECT * FROM `sPPa` CROSS JOIN `sPPb`; +SELECT * FROM `sPPa` LEFT JOIN `sPPb` USING (`bP`); +SELECT * FROM `sPPa` LEFT JOIN `sPPb` ON (`sPPa`.`bP` = `sPPb`.`bP`); +SELECT * FROM `sPPb` RIGHT JOIN `sPPa` USING (`bP`); +SELECT * FROM `sPPb` RIGHT JOIN `sPPa` ON (`sPPa`.`bP` = `sPPb`.`bP`); +SELECT * FROM `sPQa` JOIN `sPQb`; +SELECT * FROM `sPQa` INNER JOIN `sPQb`; +SELECT * FROM `sPQa` JOIN `sPQb` USING (`bP`); +SELECT * FROM `sPQa` INNER JOIN `sPQb` USING (`bP`); +SELECT * FROM `sPQa` CROSS JOIN `sPQb`; +SELECT * FROM `sPQa` LEFT JOIN `sPQb` USING (`bP`); +SELECT * FROM `sPQa` LEFT JOIN `sPQb` ON (`sPQa`.`bP` = `sPQb`.`bP`); +SELECT * FROM `sPQb` RIGHT JOIN `sPQa` USING (`bP`); +SELECT * FROM `sPQb` RIGHT JOIN `sPQa` ON (`sPQa`.`bP` = `sPQb`.`bP`); + +DROP TABLE `sPa`; +DROP TABLE `sPb`; +DROP TABLE `sQa`; +DROP TABLE `sQb`; +DROP TABLE `sRa`; +DROP TABLE `sRb`; +DROP TABLE `sSa`; +DROP TABLE `sSb`; +DROP TABLE `sTa`; +DROP TABLE `sTb`; +DROP TABLE `sUa`; +DROP TABLE `sUb`; +DROP TABLE `sVa`; +DROP TABLE `sVb`; +DROP TABLE `sWa`; +DROP TABLE `sWb`; +DROP TABLE `sXa`; +DROP TABLE `sXb`; +DROP TABLE `sPOa`; +DROP TABLE `sPOb`; +DROP TABLE `sPPa`; +DROP TABLE `sPPb`; +DROP TABLE `sPQa`; +DROP TABLE `sPQb`; diff --git a/mysql-test/suite/jp/t/jp_join_ucs2.test b/mysql-test/suite/jp/t/jp_join_ucs2.test new file mode 100755 index 00000000000..27e49203dd2 --- /dev/null +++ b/mysql-test/suite/jp/t/jp_join_ucs2.test @@ -0,0 +1,220 @@ +--source include/have_ucs2.inc + +--disable_warnings +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +--enable_warnings + +# +# Test table JOIN using Japanese characters +# + +SET NAMES ujis; +SET character_set_database = ucs2; +SET collation_connection = ucs2_general_ci; + +CREATE TABLE `ԣa` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣb` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣa` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣb` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣa` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣb` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣa` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣb` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣa` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣb` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣa` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣb` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣa` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣb` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣa` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣb` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣa` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣb` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣa` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣb` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣa` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣb` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣa` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣb` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ucs2 engine = innodb; + +#insert the following data in each table +# jisx0201 hankaku-katakana data +# jisx0208 data +# jisx0212 supplemental character data + +INSERT INTO `ԣa` VALUES (''),(''),(''); +INSERT INTO `ԣb` VALUES (''); +INSERT INTO `ԣa` VALUES (''),(''),(''); +INSERT INTO `ԣb` VALUES (''); +INSERT INTO `ԣa` VALUES (''),(''),(''); +INSERT INTO `ԣb` VALUES (''); +INSERT INTO `ԣa` VALUES (''),(''),(''); +INSERT INTO `ԣb` VALUES (''); +INSERT INTO `ԣa` VALUES (''),(''),(''); +INSERT INTO `ԣb` VALUES (''); +INSERT INTO `ԣa` VALUES (''),(''),(''); +INSERT INTO `ԣb` VALUES (''); +INSERT INTO `ԣa` VALUES (''),(''),(''); +INSERT INTO `ԣb` VALUES (''); +INSERT INTO `ԣa` VALUES (''),(''),(''); +INSERT INTO `ԣb` VALUES (''); +INSERT INTO `ԣa` VALUES (''),(''),(''); +INSERT INTO `ԣb` VALUES (''); +INSERT INTO `ԣa` VALUES (''),(''),(''); +INSERT INTO `ԣb` VALUES (''); +INSERT INTO `ԣa` VALUES (''),(''),(''); +INSERT INTO `ԣb` VALUES (''); +INSERT INTO `ԣa` VALUES (''),(''),(''); +INSERT INTO `ԣb` VALUES (''); + +#Test for innodb +SELECT * FROM `ԣa` JOIN `ԣb`; +SELECT * FROM `ԣa` INNER JOIN `ԣb`; +SELECT * FROM `ԣa` JOIN `ԣb` USING (`ã`); +SELECT * FROM `ԣa` INNER JOIN `ԣb` USING (`ã`); +SELECT * FROM `ԣa` CROSS JOIN `ԣb`; +SELECT * FROM `ԣa` LEFT JOIN `ԣb` USING (`ã`); +SELECT * FROM `ԣa` LEFT JOIN `ԣb` ON (`ԣa`.`ã` = `ԣb`.`ã`); +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` USING (`ã`); +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` ON (`ԣa`.`ã` = `ԣb`.`ã`); +SELECT * FROM `ԣa` JOIN `ԣb`; +SELECT * FROM `ԣa` INNER JOIN `ԣb`; +SELECT * FROM `ԣa` JOIN `ԣb` USING (`ã`); +SELECT * FROM `ԣa` INNER JOIN `ԣb` USING (`ã`); +SELECT * FROM `ԣa` CROSS JOIN `ԣb`; +SELECT * FROM `ԣa` LEFT JOIN `ԣb` USING (`ã`); +SELECT * FROM `ԣa` LEFT JOIN `ԣb` ON (`ԣa`.`ã` = `ԣb`.`ã`); +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` USING (`ã`); +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` ON (`ԣa`.`ã` = `ԣb`.`ã`); +SELECT * FROM `ԣa` JOIN `ԣb`; +SELECT * FROM `ԣa` INNER JOIN `ԣb`; +SELECT * FROM `ԣa` JOIN `ԣb` USING (`ã`); +SELECT * FROM `ԣa` INNER JOIN `ԣb` USING (`ã`); +SELECT * FROM `ԣa` CROSS JOIN `ԣb`; +SELECT * FROM `ԣa` LEFT JOIN `ԣb` USING (`ã`); +SELECT * FROM `ԣa` LEFT JOIN `ԣb` ON (`ԣa`.`ã` = `ԣb`.`ã`); +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` USING (`ã`); +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` ON (`ԣa`.`ã` = `ԣb`.`ã`); + +#Test for myisam +SELECT * FROM `ԣa` JOIN `ԣb`; +SELECT * FROM `ԣa` INNER JOIN `ԣb`; +SELECT * FROM `ԣa` JOIN `ԣb` USING (`ã`); +SELECT * FROM `ԣa` INNER JOIN `ԣb` USING (`ã`); +SELECT * FROM `ԣa` CROSS JOIN `ԣb`; +SELECT * FROM `ԣa` LEFT JOIN `ԣb` USING (`ã`); +SELECT * FROM `ԣa` LEFT JOIN `ԣb` ON (`ԣa`.`ã` = `ԣb`.`ã`); +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` USING (`ã`); +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` ON (`ԣa`.`ã` = `ԣb`.`ã`); +SELECT * FROM `ԣa` JOIN `ԣb`; +SELECT * FROM `ԣa` INNER JOIN `ԣb`; +SELECT * FROM `ԣa` JOIN `ԣb` USING (`ã`); +SELECT * FROM `ԣa` INNER JOIN `ԣb` USING (`ã`); +SELECT * FROM `ԣa` CROSS JOIN `ԣb`; +SELECT * FROM `ԣa` LEFT JOIN `ԣb` USING (`ã`); +SELECT * FROM `ԣa` LEFT JOIN `ԣb` ON (`ԣa`.`ã` = `ԣb`.`ã`); +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` USING (`ã`); +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` ON (`ԣa`.`ã` = `ԣb`.`ã`); +SELECT * FROM `ԣa` JOIN `ԣb`; +SELECT * FROM `ԣa` INNER JOIN `ԣb`; +SELECT * FROM `ԣa` JOIN `ԣb` USING (`ã`); +SELECT * FROM `ԣa` INNER JOIN `ԣb` USING (`ã`); +SELECT * FROM `ԣa` CROSS JOIN `ԣb`; +SELECT * FROM `ԣa` LEFT JOIN `ԣb` USING (`ã`); +SELECT * FROM `ԣa` LEFT JOIN `ԣb` ON (`ԣa`.`ã` = `ԣb`.`ã`); +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` USING (`ã`); +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` ON (`ԣa`.`ã` = `ԣb`.`ã`); + +#Test for heap +SELECT * FROM `ԣa` JOIN `ԣb`; +SELECT * FROM `ԣa` INNER JOIN `ԣb`; +SELECT * FROM `ԣa` JOIN `ԣb` USING (`ã`); +SELECT * FROM `ԣa` INNER JOIN `ԣb` USING (`ã`); +SELECT * FROM `ԣa` CROSS JOIN `ԣb`; +SELECT * FROM `ԣa` LEFT JOIN `ԣb` USING (`ã`); +SELECT * FROM `ԣa` LEFT JOIN `ԣb` ON (`ԣa`.`ã` = `ԣb`.`ã`); +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` USING (`ã`); +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` ON (`ԣa`.`ã` = `ԣb`.`ã`); +SELECT * FROM `ԣa` JOIN `ԣb`; +SELECT * FROM `ԣa` INNER JOIN `ԣb`; +SELECT * FROM `ԣa` JOIN `ԣb` USING (`ã`); +SELECT * FROM `ԣa` INNER JOIN `ԣb` USING (`ã`); +SELECT * FROM `ԣa` CROSS JOIN `ԣb`; +SELECT * FROM `ԣa` LEFT JOIN `ԣb` USING (`ã`); +SELECT * FROM `ԣa` LEFT JOIN `ԣb` ON (`ԣa`.`ã` = `ԣb`.`ã`); +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` USING (`ã`); +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` ON (`ԣa`.`ã` = `ԣb`.`ã`); +SELECT * FROM `ԣa` JOIN `ԣb`; +SELECT * FROM `ԣa` INNER JOIN `ԣb`; +SELECT * FROM `ԣa` JOIN `ԣb` USING (`ã`); +SELECT * FROM `ԣa` INNER JOIN `ԣb` USING (`ã`); +SELECT * FROM `ԣa` CROSS JOIN `ԣb`; +SELECT * FROM `ԣa` LEFT JOIN `ԣb` USING (`ã`); +SELECT * FROM `ԣa` LEFT JOIN `ԣb` ON (`ԣa`.`ã` = `ԣb`.`ã`); +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` USING (`ã`); +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` ON (`ԣa`.`ã` = `ԣb`.`ã`); + +#Test for heap +SELECT * FROM `ԣa` JOIN `ԣb`; +SELECT * FROM `ԣa` INNER JOIN `ԣb`; +SELECT * FROM `ԣa` JOIN `ԣb` USING (`ã`); +SELECT * FROM `ԣa` INNER JOIN `ԣb` USING (`ã`); +SELECT * FROM `ԣa` CROSS JOIN `ԣb`; +SELECT * FROM `ԣa` LEFT JOIN `ԣb` USING (`ã`); +SELECT * FROM `ԣa` LEFT JOIN `ԣb` ON (`ԣa`.`ã` = `ԣb`.`ã`); +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` USING (`ã`); +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` ON (`ԣa`.`ã` = `ԣb`.`ã`); +SELECT * FROM `ԣa` JOIN `ԣb`; +SELECT * FROM `ԣa` INNER JOIN `ԣb`; +SELECT * FROM `ԣa` JOIN `ԣb` USING (`ã`); +SELECT * FROM `ԣa` INNER JOIN `ԣb` USING (`ã`); +SELECT * FROM `ԣa` CROSS JOIN `ԣb`; +SELECT * FROM `ԣa` LEFT JOIN `ԣb` USING (`ã`); +SELECT * FROM `ԣa` LEFT JOIN `ԣb` ON (`ԣa`.`ã` = `ԣb`.`ã`); +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` USING (`ã`); +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` ON (`ԣa`.`ã` = `ԣb`.`ã`); +SELECT * FROM `ԣa` JOIN `ԣb`; +SELECT * FROM `ԣa` INNER JOIN `ԣb`; +SELECT * FROM `ԣa` JOIN `ԣb` USING (`ã`); +SELECT * FROM `ԣa` INNER JOIN `ԣb` USING (`ã`); +SELECT * FROM `ԣa` CROSS JOIN `ԣb`; +SELECT * FROM `ԣa` LEFT JOIN `ԣb` USING (`ã`); +SELECT * FROM `ԣa` LEFT JOIN `ԣb` ON (`ԣa`.`ã` = `ԣb`.`ã`); +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` USING (`ã`); +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` ON (`ԣa`.`ã` = `ԣb`.`ã`); + +DROP TABLE `ԣa`; +DROP TABLE `ԣb`; +DROP TABLE `ԣa`; +DROP TABLE `ԣb`; +DROP TABLE `ԣa`; +DROP TABLE `ԣb`; +DROP TABLE `ԣa`; +DROP TABLE `ԣb`; +DROP TABLE `ԣa`; +DROP TABLE `ԣb`; +DROP TABLE `ԣa`; +DROP TABLE `ԣb`; +DROP TABLE `ԣa`; +DROP TABLE `ԣb`; +DROP TABLE `ԣa`; +DROP TABLE `ԣb`; +DROP TABLE `ԣa`; +DROP TABLE `ԣb`; +DROP TABLE `ԣa`; +DROP TABLE `ԣb`; +DROP TABLE `ԣa`; +DROP TABLE `ԣb`; +DROP TABLE `ԣa`; +DROP TABLE `ԣb`; diff --git a/mysql-test/suite/jp/t/jp_join_ujis.test b/mysql-test/suite/jp/t/jp_join_ujis.test new file mode 100755 index 00000000000..079f260cc26 --- /dev/null +++ b/mysql-test/suite/jp/t/jp_join_ujis.test @@ -0,0 +1,219 @@ +--source include/have_ujis.inc + +--disable_warnings +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +--enable_warnings + +# +# Test table JOIN using Japanese characters +# + +SET NAMES ujis; +SET character_set_database = ujis; + +CREATE TABLE `ԣa` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣb` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣa` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣb` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣa` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣb` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣa` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣb` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣa` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣb` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣa` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣb` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣa` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣb` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣa` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣb` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣa` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣb` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣa` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣb` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣa` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣb` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣa` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣb` (`ã` char(1) PRIMARY KEY) DEFAULT CHARSET = ujis engine = innodb; + +#insert the following data in each table +# jisx0201 hankaku-katakana data +# jisx0208 data +# jisx0212 supplemental character data + +INSERT INTO `ԣa` VALUES (''),(''),(''); +INSERT INTO `ԣb` VALUES (''); +INSERT INTO `ԣa` VALUES (''),(''),(''); +INSERT INTO `ԣb` VALUES (''); +INSERT INTO `ԣa` VALUES (''),(''),(''); +INSERT INTO `ԣb` VALUES (''); +INSERT INTO `ԣa` VALUES (''),(''),(''); +INSERT INTO `ԣb` VALUES (''); +INSERT INTO `ԣa` VALUES (''),(''),(''); +INSERT INTO `ԣb` VALUES (''); +INSERT INTO `ԣa` VALUES (''),(''),(''); +INSERT INTO `ԣb` VALUES (''); +INSERT INTO `ԣa` VALUES (''),(''),(''); +INSERT INTO `ԣb` VALUES (''); +INSERT INTO `ԣa` VALUES (''),(''),(''); +INSERT INTO `ԣb` VALUES (''); +INSERT INTO `ԣa` VALUES (''),(''),(''); +INSERT INTO `ԣb` VALUES (''); +INSERT INTO `ԣa` VALUES (''),(''),(''); +INSERT INTO `ԣb` VALUES (''); +INSERT INTO `ԣa` VALUES (''),(''),(''); +INSERT INTO `ԣb` VALUES (''); +INSERT INTO `ԣa` VALUES (''),(''),(''); +INSERT INTO `ԣb` VALUES (''); + +#Test for innodb +SELECT * FROM `ԣa` JOIN `ԣb`; +SELECT * FROM `ԣa` INNER JOIN `ԣb`; +SELECT * FROM `ԣa` JOIN `ԣb` USING (`ã`); +SELECT * FROM `ԣa` INNER JOIN `ԣb` USING (`ã`); +SELECT * FROM `ԣa` CROSS JOIN `ԣb`; +SELECT * FROM `ԣa` LEFT JOIN `ԣb` USING (`ã`); +SELECT * FROM `ԣa` LEFT JOIN `ԣb` ON (`ԣa`.`ã` = `ԣb`.`ã`); +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` USING (`ã`); +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` ON (`ԣa`.`ã` = `ԣb`.`ã`); +SELECT * FROM `ԣa` JOIN `ԣb`; +SELECT * FROM `ԣa` INNER JOIN `ԣb`; +SELECT * FROM `ԣa` JOIN `ԣb` USING (`ã`); +SELECT * FROM `ԣa` INNER JOIN `ԣb` USING (`ã`); +SELECT * FROM `ԣa` CROSS JOIN `ԣb`; +SELECT * FROM `ԣa` LEFT JOIN `ԣb` USING (`ã`); +SELECT * FROM `ԣa` LEFT JOIN `ԣb` ON (`ԣa`.`ã` = `ԣb`.`ã`); +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` USING (`ã`); +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` ON (`ԣa`.`ã` = `ԣb`.`ã`); +SELECT * FROM `ԣa` JOIN `ԣb`; +SELECT * FROM `ԣa` INNER JOIN `ԣb`; +SELECT * FROM `ԣa` JOIN `ԣb` USING (`ã`); +SELECT * FROM `ԣa` INNER JOIN `ԣb` USING (`ã`); +SELECT * FROM `ԣa` CROSS JOIN `ԣb`; +SELECT * FROM `ԣa` LEFT JOIN `ԣb` USING (`ã`); +SELECT * FROM `ԣa` LEFT JOIN `ԣb` ON (`ԣa`.`ã` = `ԣb`.`ã`); +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` USING (`ã`); +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` ON (`ԣa`.`ã` = `ԣb`.`ã`); + +#Test for myisam +SELECT * FROM `ԣa` JOIN `ԣb`; +SELECT * FROM `ԣa` INNER JOIN `ԣb`; +SELECT * FROM `ԣa` JOIN `ԣb` USING (`ã`); +SELECT * FROM `ԣa` INNER JOIN `ԣb` USING (`ã`); +SELECT * FROM `ԣa` CROSS JOIN `ԣb`; +SELECT * FROM `ԣa` LEFT JOIN `ԣb` USING (`ã`); +SELECT * FROM `ԣa` LEFT JOIN `ԣb` ON (`ԣa`.`ã` = `ԣb`.`ã`); +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` USING (`ã`); +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` ON (`ԣa`.`ã` = `ԣb`.`ã`); +SELECT * FROM `ԣa` JOIN `ԣb`; +SELECT * FROM `ԣa` INNER JOIN `ԣb`; +SELECT * FROM `ԣa` JOIN `ԣb` USING (`ã`); +SELECT * FROM `ԣa` INNER JOIN `ԣb` USING (`ã`); +SELECT * FROM `ԣa` CROSS JOIN `ԣb`; +SELECT * FROM `ԣa` LEFT JOIN `ԣb` USING (`ã`); +SELECT * FROM `ԣa` LEFT JOIN `ԣb` ON (`ԣa`.`ã` = `ԣb`.`ã`); +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` USING (`ã`); +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` ON (`ԣa`.`ã` = `ԣb`.`ã`); +SELECT * FROM `ԣa` JOIN `ԣb`; +SELECT * FROM `ԣa` INNER JOIN `ԣb`; +SELECT * FROM `ԣa` JOIN `ԣb` USING (`ã`); +SELECT * FROM `ԣa` INNER JOIN `ԣb` USING (`ã`); +SELECT * FROM `ԣa` CROSS JOIN `ԣb`; +SELECT * FROM `ԣa` LEFT JOIN `ԣb` USING (`ã`); +SELECT * FROM `ԣa` LEFT JOIN `ԣb` ON (`ԣa`.`ã` = `ԣb`.`ã`); +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` USING (`ã`); +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` ON (`ԣa`.`ã` = `ԣb`.`ã`); + +#Test for heap +SELECT * FROM `ԣa` JOIN `ԣb`; +SELECT * FROM `ԣa` INNER JOIN `ԣb`; +SELECT * FROM `ԣa` JOIN `ԣb` USING (`ã`); +SELECT * FROM `ԣa` INNER JOIN `ԣb` USING (`ã`); +SELECT * FROM `ԣa` CROSS JOIN `ԣb`; +SELECT * FROM `ԣa` LEFT JOIN `ԣb` USING (`ã`); +SELECT * FROM `ԣa` LEFT JOIN `ԣb` ON (`ԣa`.`ã` = `ԣb`.`ã`); +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` USING (`ã`); +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` ON (`ԣa`.`ã` = `ԣb`.`ã`); +SELECT * FROM `ԣa` JOIN `ԣb`; +SELECT * FROM `ԣa` INNER JOIN `ԣb`; +SELECT * FROM `ԣa` JOIN `ԣb` USING (`ã`); +SELECT * FROM `ԣa` INNER JOIN `ԣb` USING (`ã`); +SELECT * FROM `ԣa` CROSS JOIN `ԣb`; +SELECT * FROM `ԣa` LEFT JOIN `ԣb` USING (`ã`); +SELECT * FROM `ԣa` LEFT JOIN `ԣb` ON (`ԣa`.`ã` = `ԣb`.`ã`); +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` USING (`ã`); +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` ON (`ԣa`.`ã` = `ԣb`.`ã`); +SELECT * FROM `ԣa` JOIN `ԣb`; +SELECT * FROM `ԣa` INNER JOIN `ԣb`; +SELECT * FROM `ԣa` JOIN `ԣb` USING (`ã`); +SELECT * FROM `ԣa` INNER JOIN `ԣb` USING (`ã`); +SELECT * FROM `ԣa` CROSS JOIN `ԣb`; +SELECT * FROM `ԣa` LEFT JOIN `ԣb` USING (`ã`); +SELECT * FROM `ԣa` LEFT JOIN `ԣb` ON (`ԣa`.`ã` = `ԣb`.`ã`); +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` USING (`ã`); +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` ON (`ԣa`.`ã` = `ԣb`.`ã`); + +#Test for heap +SELECT * FROM `ԣa` JOIN `ԣb`; +SELECT * FROM `ԣa` INNER JOIN `ԣb`; +SELECT * FROM `ԣa` JOIN `ԣb` USING (`ã`); +SELECT * FROM `ԣa` INNER JOIN `ԣb` USING (`ã`); +SELECT * FROM `ԣa` CROSS JOIN `ԣb`; +SELECT * FROM `ԣa` LEFT JOIN `ԣb` USING (`ã`); +SELECT * FROM `ԣa` LEFT JOIN `ԣb` ON (`ԣa`.`ã` = `ԣb`.`ã`); +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` USING (`ã`); +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` ON (`ԣa`.`ã` = `ԣb`.`ã`); +SELECT * FROM `ԣa` JOIN `ԣb`; +SELECT * FROM `ԣa` INNER JOIN `ԣb`; +SELECT * FROM `ԣa` JOIN `ԣb` USING (`ã`); +SELECT * FROM `ԣa` INNER JOIN `ԣb` USING (`ã`); +SELECT * FROM `ԣa` CROSS JOIN `ԣb`; +SELECT * FROM `ԣa` LEFT JOIN `ԣb` USING (`ã`); +SELECT * FROM `ԣa` LEFT JOIN `ԣb` ON (`ԣa`.`ã` = `ԣb`.`ã`); +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` USING (`ã`); +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` ON (`ԣa`.`ã` = `ԣb`.`ã`); +SELECT * FROM `ԣa` JOIN `ԣb`; +SELECT * FROM `ԣa` INNER JOIN `ԣb`; +SELECT * FROM `ԣa` JOIN `ԣb` USING (`ã`); +SELECT * FROM `ԣa` INNER JOIN `ԣb` USING (`ã`); +SELECT * FROM `ԣa` CROSS JOIN `ԣb`; +SELECT * FROM `ԣa` LEFT JOIN `ԣb` USING (`ã`); +SELECT * FROM `ԣa` LEFT JOIN `ԣb` ON (`ԣa`.`ã` = `ԣb`.`ã`); +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` USING (`ã`); +SELECT * FROM `ԣb` RIGHT JOIN `ԣa` ON (`ԣa`.`ã` = `ԣb`.`ã`); + +DROP TABLE `ԣa`; +DROP TABLE `ԣb`; +DROP TABLE `ԣa`; +DROP TABLE `ԣb`; +DROP TABLE `ԣa`; +DROP TABLE `ԣb`; +DROP TABLE `ԣa`; +DROP TABLE `ԣb`; +DROP TABLE `ԣa`; +DROP TABLE `ԣb`; +DROP TABLE `ԣa`; +DROP TABLE `ԣb`; +DROP TABLE `ԣa`; +DROP TABLE `ԣb`; +DROP TABLE `ԣa`; +DROP TABLE `ԣb`; +DROP TABLE `ԣa`; +DROP TABLE `ԣb`; +DROP TABLE `ԣa`; +DROP TABLE `ԣb`; +DROP TABLE `ԣa`; +DROP TABLE `ԣb`; +DROP TABLE `ԣa`; +DROP TABLE `ԣb`; diff --git a/mysql-test/suite/jp/t/jp_join_utf8.test b/mysql-test/suite/jp/t/jp_join_utf8.test new file mode 100755 index 00000000000..0b2f033f8bb --- /dev/null +++ b/mysql-test/suite/jp/t/jp_join_utf8.test @@ -0,0 +1,217 @@ +--disable_warnings +drop table if exists `T1`; +drop table if exists `T2`; +drop table if exists `T3`; +drop table if exists `T4`; +drop table if exists `T5`; +drop table if exists `T6`; +drop table if exists `T7`; +drop table if exists `T8`; +drop table if exists `T9`; +drop table if exists `T10`; +drop table if exists `T11`; +drop table if exists `T12`; +--enable_warnings + +# +# Test table JOIN using Japanese characters in utf8 +# + +SET NAMES utf8; +SET character_set_database = utf8; + +CREATE TABLE `T1a` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T1b` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T2a` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T2b` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T3a` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T3b` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T4a` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T4b` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T5a` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T5b` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T6a` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T6b` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T7a` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T7b` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T8a` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T8b` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T9a` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T9b` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T10a` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T10b` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T11a` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T11b` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T12a` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T12b` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = innodb; + +#insert the following data in each table +# jisx0201 hankaku-katakana data +# jisx0208 data +# jisx0212 supplemental character data + +INSERT INTO `T1a` VALUES ('ア'),('カ'),('サ'); +INSERT INTO `T1b` VALUES ('ア'); +INSERT INTO `T2a` VALUES ('あ'),('か'),('さ'); +INSERT INTO `T2b` VALUES ('あ'); +INSERT INTO `T3a` VALUES ('龔'),('龖'),('龗'); +INSERT INTO `T3b` VALUES ('龔'); +INSERT INTO `T4a` VALUES ('ア'),('カ'),('サ'); +INSERT INTO `T4b` VALUES ('ア'); +INSERT INTO `T5a` VALUES ('あ'),('か'),('さ'); +INSERT INTO `T5b` VALUES ('あ'); +INSERT INTO `T6a` VALUES ('龔'),('龖'),('龗'); +INSERT INTO `T6b` VALUES ('龔'); +INSERT INTO `T7a` VALUES ('ア'),('カ'),('サ'); +INSERT INTO `T7b` VALUES ('ア'); +INSERT INTO `T8a` VALUES ('あ'),('か'),('さ'); +INSERT INTO `T8b` VALUES ('あ'); +INSERT INTO `T9a` VALUES ('龔'),('龖'),('龗'); +INSERT INTO `T9b` VALUES ('龔'); +INSERT INTO `T10a` VALUES ('ア'),('カ'),('サ'); +INSERT INTO `T10b` VALUES ('ア'); +INSERT INTO `T11a` VALUES ('あ'),('か'),('さ'); +INSERT INTO `T11b` VALUES ('あ'); +INSERT INTO `T12a` VALUES ('龔'),('龖'),('龗'); +INSERT INTO `T12b` VALUES ('龔'); + +#Test for innodb +SELECT * FROM `T1a` JOIN `T1b`; +SELECT * FROM `T1a` INNER JOIN `T1b`; +SELECT * FROM `T1a` JOIN `T1b` USING (`C1`); +SELECT * FROM `T1a` INNER JOIN `T1b` USING (`C1`); +SELECT * FROM `T1a` CROSS JOIN `T1b`; +SELECT * FROM `T1a` LEFT JOIN `T1b` USING (`C1`); +SELECT * FROM `T1a` LEFT JOIN `T1b` ON (`T1a`.`C1` = `T1b`.`C1`); +SELECT * FROM `T1b` RIGHT JOIN `T1a` USING (`C1`); +SELECT * FROM `T1b` RIGHT JOIN `T1a` ON (`T1a`.`C1` = `T1b`.`C1`); +SELECT * FROM `T2a` JOIN `T2b`; +SELECT * FROM `T2a` INNER JOIN `T2b`; +SELECT * FROM `T2a` JOIN `T2b` USING (`C1`); +SELECT * FROM `T2a` INNER JOIN `T2b` USING (`C1`); +SELECT * FROM `T2a` CROSS JOIN `T2b`; +SELECT * FROM `T2a` LEFT JOIN `T2b` USING (`C1`); +SELECT * FROM `T2a` LEFT JOIN `T2b` ON (`T2a`.`C1` = `T2b`.`C1`); +SELECT * FROM `T2b` RIGHT JOIN `T2a` USING (`C1`); +SELECT * FROM `T2b` RIGHT JOIN `T2a` ON (`T2a`.`C1` = `T2b`.`C1`); +SELECT * FROM `T3a` JOIN `T3b`; +SELECT * FROM `T3a` INNER JOIN `T3b`; +SELECT * FROM `T3a` JOIN `T3b` USING (`C1`); +SELECT * FROM `T3a` INNER JOIN `T3b` USING (`C1`); +SELECT * FROM `T3a` CROSS JOIN `T3b`; +SELECT * FROM `T3a` LEFT JOIN `T3b` USING (`C1`); +SELECT * FROM `T3a` LEFT JOIN `T3b` ON (`T3a`.`C1` = `T3b`.`C1`); +SELECT * FROM `T3b` RIGHT JOIN `T3a` USING (`C1`); +SELECT * FROM `T3b` RIGHT JOIN `T3a` ON (`T3a`.`C1` = `T3b`.`C1`); + +#Test for myisam +SELECT * FROM `T4a` JOIN `T4b`; +SELECT * FROM `T4a` INNER JOIN `T4b`; +SELECT * FROM `T4a` JOIN `T4b` USING (`C1`); +SELECT * FROM `T4a` INNER JOIN `T4b` USING (`C1`); +SELECT * FROM `T4a` CROSS JOIN `T4b`; +SELECT * FROM `T4a` LEFT JOIN `T4b` USING (`C1`); +SELECT * FROM `T4a` LEFT JOIN `T4b` ON (`T4a`.`C1` = `T4b`.`C1`); +SELECT * FROM `T4b` RIGHT JOIN `T4a` USING (`C1`); +SELECT * FROM `T4b` RIGHT JOIN `T4a` ON (`T4a`.`C1` = `T4b`.`C1`); +SELECT * FROM `T5a` JOIN `T5b`; +SELECT * FROM `T5a` INNER JOIN `T5b`; +SELECT * FROM `T5a` JOIN `T5b` USING (`C1`); +SELECT * FROM `T5a` INNER JOIN `T5b` USING (`C1`); +SELECT * FROM `T5a` CROSS JOIN `T5b`; +SELECT * FROM `T5a` LEFT JOIN `T5b` USING (`C1`); +SELECT * FROM `T5a` LEFT JOIN `T5b` ON (`T5a`.`C1` = `T5b`.`C1`); +SELECT * FROM `T5b` RIGHT JOIN `T5a` USING (`C1`); +SELECT * FROM `T5b` RIGHT JOIN `T5a` ON (`T5a`.`C1` = `T5b`.`C1`); +SELECT * FROM `T6a` JOIN `T6b`; +SELECT * FROM `T6a` INNER JOIN `T6b`; +SELECT * FROM `T6a` JOIN `T6b` USING (`C1`); +SELECT * FROM `T6a` INNER JOIN `T6b` USING (`C1`); +SELECT * FROM `T6a` CROSS JOIN `T6b`; +SELECT * FROM `T6a` LEFT JOIN `T6b` USING (`C1`); +SELECT * FROM `T6a` LEFT JOIN `T6b` ON (`T6a`.`C1` = `T6b`.`C1`); +SELECT * FROM `T6b` RIGHT JOIN `T6a` USING (`C1`); +SELECT * FROM `T6b` RIGHT JOIN `T6a` ON (`T6a`.`C1` = `T6b`.`C1`); + +#Test for heap +SELECT * FROM `T7a` JOIN `T7b`; +SELECT * FROM `T7a` INNER JOIN `T7b`; +SELECT * FROM `T7a` JOIN `T7b` USING (`C1`); +SELECT * FROM `T7a` INNER JOIN `T7b` USING (`C1`); +SELECT * FROM `T7a` CROSS JOIN `T7b`; +SELECT * FROM `T7a` LEFT JOIN `T7b` USING (`C1`); +SELECT * FROM `T7a` LEFT JOIN `T7b` ON (`T7a`.`C1` = `T7b`.`C1`); +SELECT * FROM `T7b` RIGHT JOIN `T7a` USING (`C1`); +SELECT * FROM `T7b` RIGHT JOIN `T7a` ON (`T7a`.`C1` = `T7b`.`C1`); +SELECT * FROM `T8a` JOIN `T8b`; +SELECT * FROM `T8a` INNER JOIN `T8b`; +SELECT * FROM `T8a` JOIN `T8b` USING (`C1`); +SELECT * FROM `T8a` INNER JOIN `T8b` USING (`C1`); +SELECT * FROM `T8a` CROSS JOIN `T8b`; +SELECT * FROM `T8a` LEFT JOIN `T8b` USING (`C1`); +SELECT * FROM `T8a` LEFT JOIN `T8b` ON (`T8a`.`C1` = `T8b`.`C1`); +SELECT * FROM `T8b` RIGHT JOIN `T8a` USING (`C1`); +SELECT * FROM `T8b` RIGHT JOIN `T8a` ON (`T8a`.`C1` = `T8b`.`C1`); +SELECT * FROM `T9a` JOIN `T9b`; +SELECT * FROM `T9a` INNER JOIN `T9b`; +SELECT * FROM `T9a` JOIN `T9b` USING (`C1`); +SELECT * FROM `T9a` INNER JOIN `T9b` USING (`C1`); +SELECT * FROM `T9a` CROSS JOIN `T9b`; +SELECT * FROM `T9a` LEFT JOIN `T9b` USING (`C1`); +SELECT * FROM `T9a` LEFT JOIN `T9b` ON (`T9a`.`C1` = `T9b`.`C1`); +SELECT * FROM `T9b` RIGHT JOIN `T9a` USING (`C1`); +SELECT * FROM `T9b` RIGHT JOIN `T9a` ON (`T9a`.`C1` = `T9b`.`C1`); + +#Test for heap +SELECT * FROM `T10a` JOIN `T10b`; +SELECT * FROM `T10a` INNER JOIN `T10b`; +SELECT * FROM `T10a` JOIN `T10b` USING (`C1`); +SELECT * FROM `T10a` INNER JOIN `T10b` USING (`C1`); +SELECT * FROM `T10a` CROSS JOIN `T10b`; +SELECT * FROM `T10a` LEFT JOIN `T10b` USING (`C1`); +SELECT * FROM `T10a` LEFT JOIN `T10b` ON (`T10a`.`C1` = `T10b`.`C1`); +SELECT * FROM `T10b` RIGHT JOIN `T10a` USING (`C1`); +SELECT * FROM `T10b` RIGHT JOIN `T10a` ON (`T10a`.`C1` = `T10b`.`C1`); +SELECT * FROM `T11a` JOIN `T11b`; +SELECT * FROM `T11a` INNER JOIN `T11b`; +SELECT * FROM `T11a` JOIN `T11b` USING (`C1`); +SELECT * FROM `T11a` INNER JOIN `T11b` USING (`C1`); +SELECT * FROM `T11a` CROSS JOIN `T11b`; +SELECT * FROM `T11a` LEFT JOIN `T11b` USING (`C1`); +SELECT * FROM `T11a` LEFT JOIN `T11b` ON (`T11a`.`C1` = `T11b`.`C1`); +SELECT * FROM `T11b` RIGHT JOIN `T11a` USING (`C1`); +SELECT * FROM `T11b` RIGHT JOIN `T11a` ON (`T11a`.`C1` = `T11b`.`C1`); +SELECT * FROM `T12a` JOIN `T12b`; +SELECT * FROM `T12a` INNER JOIN `T12b`; +SELECT * FROM `T12a` JOIN `T12b` USING (`C1`); +SELECT * FROM `T12a` INNER JOIN `T12b` USING (`C1`); +SELECT * FROM `T12a` CROSS JOIN `T12b`; +SELECT * FROM `T12a` LEFT JOIN `T12b` USING (`C1`); +SELECT * FROM `T12a` LEFT JOIN `T12b` ON (`T12a`.`C1` = `T12b`.`C1`); +SELECT * FROM `T12b` RIGHT JOIN `T12a` USING (`C1`); +SELECT * FROM `T12b` RIGHT JOIN `T12a` ON (`T12a`.`C1` = `T12b`.`C1`); + +DROP TABLE `T1a`; +DROP TABLE `T1b`; +DROP TABLE `T2a`; +DROP TABLE `T2b`; +DROP TABLE `T3a`; +DROP TABLE `T3b`; +DROP TABLE `T4a`; +DROP TABLE `T4b`; +DROP TABLE `T5a`; +DROP TABLE `T5b`; +DROP TABLE `T6a`; +DROP TABLE `T6b`; +DROP TABLE `T7a`; +DROP TABLE `T7b`; +DROP TABLE `T8a`; +DROP TABLE `T8b`; +DROP TABLE `T9a`; +DROP TABLE `T9b`; +DROP TABLE `T10a`; +DROP TABLE `T10b`; +DROP TABLE `T11a`; +DROP TABLE `T11b`; +DROP TABLE `T12a`; +DROP TABLE `T12b`; diff --git a/mysql-test/suite/jp/t/jp_left_sjis.test b/mysql-test/suite/jp/t/jp_left_sjis.test new file mode 100755 index 00000000000..5d69d9892e2 --- /dev/null +++ b/mysql-test/suite/jp/t/jp_left_sjis.test @@ -0,0 +1,141 @@ +--character_set sjis +--disable_warnings +drop table if exists `sP`; +drop table if exists `sQ`; +drop table if exists `sR`; +drop table if exists `sS`; +drop table if exists `sT`; +drop table if exists `sU`; +drop table if exists `sV`; +drop table if exists `sW`; +drop table if exists `sX`; +drop table if exists `sPO`; +drop table if exists `sPP`; +drop table if exists `sPQ`; +--enable_warnings + +# +# Test LEFT() function with Japanese character in sjis encoding +# + +SET NAMES sjis; +SET character_set_database = sjis; + +CREATE TABLE `sP` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sQ` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sR` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sS` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sT` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sU` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sV` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sW` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sX` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sPO` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +CREATE TABLE `sPP` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +CREATE TABLE `sPQ` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; + +INSERT INTO `sP` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sQ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sR` VALUES ('\\\\\'),('\\\\'),('\\\'),('\\'),('\'),(''); +INSERT INTO `sS` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sT` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sU` VALUES ('\\\\\'),('\\\\'),('\\\'),('\\'),('\'),(''); +INSERT INTO `sV` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sW` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sX` VALUES ('\\\\\'),('\\\\'),('\\\'),('\\'),('\'),(''); +INSERT INTO `sPO` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sPP` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sPQ` VALUES ('\\\\\'),('\\\\'),('\\\'),('\\'),('\'),(''); + +#InnoDB +SELECT `bP`, LEFT(`bP`,0) FROM `sP`; +SELECT `bP`, LEFT(`bP`,1) FROM `sP`; +SELECT `bP`, LEFT(`bP`,2) FROM `sP`; +SELECT `bP`, LEFT(`bP`,3) FROM `sP`; +SELECT `bP`, LEFT(`bP`,4) FROM `sP`; +SELECT `bP`, LEFT(`bP`,5) FROM `sP`; +SELECT `bP`, LEFT(`bP`,0) FROM `sQ`; +SELECT `bP`, LEFT(`bP`,1) FROM `sQ`; +SELECT `bP`, LEFT(`bP`,2) FROM `sQ`; +SELECT `bP`, LEFT(`bP`,3) FROM `sQ`; +SELECT `bP`, LEFT(`bP`,4) FROM `sQ`; +SELECT `bP`, LEFT(`bP`,5) FROM `sQ`; +SELECT `bP`, LEFT(`bP`,0) FROM `sR`; +SELECT `bP`, LEFT(`bP`,1) FROM `sR`; +SELECT `bP`, LEFT(`bP`,2) FROM `sR`; +SELECT `bP`, LEFT(`bP`,3) FROM `sR`; +SELECT `bP`, LEFT(`bP`,4) FROM `sR`; +SELECT `bP`, LEFT(`bP`,5) FROM `sR`; + +#MyISAM +SELECT `bP`, LEFT(`bP`,0) FROM `sS`; +SELECT `bP`, LEFT(`bP`,1) FROM `sS`; +SELECT `bP`, LEFT(`bP`,2) FROM `sS`; +SELECT `bP`, LEFT(`bP`,3) FROM `sS`; +SELECT `bP`, LEFT(`bP`,4) FROM `sS`; +SELECT `bP`, LEFT(`bP`,5) FROM `sS`; +SELECT `bP`, LEFT(`bP`,0) FROM `sT`; +SELECT `bP`, LEFT(`bP`,1) FROM `sT`; +SELECT `bP`, LEFT(`bP`,2) FROM `sT`; +SELECT `bP`, LEFT(`bP`,3) FROM `sT`; +SELECT `bP`, LEFT(`bP`,4) FROM `sT`; +SELECT `bP`, LEFT(`bP`,5) FROM `sT`; +SELECT `bP`, LEFT(`bP`,0) FROM `sU`; +SELECT `bP`, LEFT(`bP`,1) FROM `sU`; +SELECT `bP`, LEFT(`bP`,2) FROM `sU`; +SELECT `bP`, LEFT(`bP`,3) FROM `sU`; +SELECT `bP`, LEFT(`bP`,4) FROM `sU`; +SELECT `bP`, LEFT(`bP`,5) FROM `sU`; + +#HEAP +SELECT `bP`, LEFT(`bP`,0) FROM `sV`; +SELECT `bP`, LEFT(`bP`,1) FROM `sV`; +SELECT `bP`, LEFT(`bP`,2) FROM `sV`; +SELECT `bP`, LEFT(`bP`,3) FROM `sV`; +SELECT `bP`, LEFT(`bP`,4) FROM `sV`; +SELECT `bP`, LEFT(`bP`,5) FROM `sV`; +SELECT `bP`, LEFT(`bP`,0) FROM `sW`; +SELECT `bP`, LEFT(`bP`,1) FROM `sW`; +SELECT `bP`, LEFT(`bP`,2) FROM `sW`; +SELECT `bP`, LEFT(`bP`,3) FROM `sW`; +SELECT `bP`, LEFT(`bP`,4) FROM `sW`; +SELECT `bP`, LEFT(`bP`,5) FROM `sW`; +SELECT `bP`, LEFT(`bP`,0) FROM `sX`; +SELECT `bP`, LEFT(`bP`,1) FROM `sX`; +SELECT `bP`, LEFT(`bP`,2) FROM `sX`; +SELECT `bP`, LEFT(`bP`,3) FROM `sX`; +SELECT `bP`, LEFT(`bP`,4) FROM `sX`; +SELECT `bP`, LEFT(`bP`,5) FROM `sX`; + +#BDB +SELECT `bP`, LEFT(`bP`,0) FROM `sPO`; +SELECT `bP`, LEFT(`bP`,1) FROM `sPO`; +SELECT `bP`, LEFT(`bP`,2) FROM `sPO`; +SELECT `bP`, LEFT(`bP`,3) FROM `sPO`; +SELECT `bP`, LEFT(`bP`,4) FROM `sPO`; +SELECT `bP`, LEFT(`bP`,5) FROM `sPO`; +SELECT `bP`, LEFT(`bP`,0) FROM `sPP`; +SELECT `bP`, LEFT(`bP`,1) FROM `sPP`; +SELECT `bP`, LEFT(`bP`,2) FROM `sPP`; +SELECT `bP`, LEFT(`bP`,3) FROM `sPP`; +SELECT `bP`, LEFT(`bP`,4) FROM `sPP`; +SELECT `bP`, LEFT(`bP`,5) FROM `sPP`; +SELECT `bP`, LEFT(`bP`,0) FROM `sPQ`; +SELECT `bP`, LEFT(`bP`,1) FROM `sPQ`; +SELECT `bP`, LEFT(`bP`,2) FROM `sPQ`; +SELECT `bP`, LEFT(`bP`,3) FROM `sPQ`; +SELECT `bP`, LEFT(`bP`,4) FROM `sPQ`; +SELECT `bP`, LEFT(`bP`,5) FROM `sPQ`; + +DROP TABLE `sP`; +DROP TABLE `sQ`; +DROP TABLE `sR`; +DROP TABLE `sS`; +DROP TABLE `sT`; +DROP TABLE `sU`; +DROP TABLE `sV`; +DROP TABLE `sW`; +DROP TABLE `sX`; +DROP TABLE `sPO`; +DROP TABLE `sPP`; +DROP TABLE `sPQ`; diff --git a/mysql-test/suite/jp/t/jp_left_ucs2.test b/mysql-test/suite/jp/t/jp_left_ucs2.test new file mode 100755 index 00000000000..59d10b7d736 --- /dev/null +++ b/mysql-test/suite/jp/t/jp_left_ucs2.test @@ -0,0 +1,143 @@ +--source include/have_ucs2.inc + +--disable_warnings +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +--enable_warnings + +# +# Test LEFT() function with Japanese character in ucs2 encoding +# + +SET NAMES ujis; +SET character_set_database = ucs2; +SET collation_connection = ucs2_general_ci; + +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; + +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); + +#InnoDB +SELECT `ã`, LEFT(`ã`,0) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,1) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,2) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,3) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,4) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,5) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,0) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,1) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,2) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,3) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,4) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,5) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,0) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,1) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,2) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,3) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,4) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,5) FROM `ԣ`; + +#MyISAM +SELECT `ã`, LEFT(`ã`,0) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,1) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,2) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,3) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,4) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,5) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,0) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,1) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,2) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,3) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,4) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,5) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,0) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,1) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,2) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,3) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,4) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,5) FROM `ԣ`; + +#HEAP +SELECT `ã`, LEFT(`ã`,0) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,1) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,2) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,3) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,4) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,5) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,0) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,1) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,2) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,3) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,4) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,5) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,0) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,1) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,2) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,3) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,4) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,5) FROM `ԣ`; + +#BDB +SELECT `ã`, LEFT(`ã`,0) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,1) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,2) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,3) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,4) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,5) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,0) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,1) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,2) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,3) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,4) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,5) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,0) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,1) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,2) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,3) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,4) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,5) FROM `ԣ`; + +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; diff --git a/mysql-test/suite/jp/t/jp_left_ujis.test b/mysql-test/suite/jp/t/jp_left_ujis.test new file mode 100755 index 00000000000..718639cd8a4 --- /dev/null +++ b/mysql-test/suite/jp/t/jp_left_ujis.test @@ -0,0 +1,142 @@ +--source include/have_ujis.inc + +--disable_warnings +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +--enable_warnings + +# +# Test LEFT() function with Japanese character in ujis encoding +# + +SET NAMES ujis; +SET character_set_database = ujis; + +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; + +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); + +#InnoDB +SELECT `ã`, LEFT(`ã`,0) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,1) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,2) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,3) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,4) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,5) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,0) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,1) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,2) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,3) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,4) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,5) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,0) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,1) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,2) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,3) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,4) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,5) FROM `ԣ`; + +#MyISAM +SELECT `ã`, LEFT(`ã`,0) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,1) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,2) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,3) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,4) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,5) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,0) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,1) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,2) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,3) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,4) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,5) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,0) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,1) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,2) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,3) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,4) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,5) FROM `ԣ`; + +#HEAP +SELECT `ã`, LEFT(`ã`,0) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,1) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,2) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,3) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,4) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,5) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,0) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,1) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,2) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,3) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,4) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,5) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,0) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,1) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,2) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,3) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,4) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,5) FROM `ԣ`; + +#BDB +SELECT `ã`, LEFT(`ã`,0) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,1) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,2) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,3) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,4) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,5) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,0) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,1) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,2) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,3) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,4) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,5) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,0) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,1) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,2) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,3) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,4) FROM `ԣ`; +SELECT `ã`, LEFT(`ã`,5) FROM `ԣ`; + +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; diff --git a/mysql-test/suite/jp/t/jp_left_utf8.test b/mysql-test/suite/jp/t/jp_left_utf8.test new file mode 100755 index 00000000000..f9c99718e0f --- /dev/null +++ b/mysql-test/suite/jp/t/jp_left_utf8.test @@ -0,0 +1,140 @@ +--disable_warnings +drop table if exists `T1`; +drop table if exists `T2`; +drop table if exists `T3`; +drop table if exists `T4`; +drop table if exists `T5`; +drop table if exists `T6`; +drop table if exists `T7`; +drop table if exists `T8`; +drop table if exists `T9`; +drop table if exists `T10`; +drop table if exists `T11`; +drop table if exists `T12`; +--enable_warnings + +# +# Test LEFT() function with Japanese character in utf8 encoding +# + +SET NAMES utf8; +SET character_set_database = utf8; + +CREATE TABLE `T1` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T2` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T3` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T4` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T5` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T6` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T7` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T8` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T9` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T10` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +CREATE TABLE `T11` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +CREATE TABLE `T12` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; + +INSERT INTO `T1` VALUES ('アイウエオ'),('アイウエ'),('アイウ'),('アイ'),('ア'),(''); +INSERT INTO `T2` VALUES ('あいうえお'),('あいうえ'),('あいう'),('あい'),('あ'),(''); +INSERT INTO `T3` VALUES ('龔龖龗龞龡'),('龔龖龗龞'),('龔龖龗'),('龔龖'),('龔'),(''); +INSERT INTO `T4` VALUES ('アイウエオ'),('アイウエ'),('アイウ'),('アイ'),('ア'),(''); +INSERT INTO `T5` VALUES ('あいうえお'),('あいうえ'),('あいう'),('あい'),('あ'),(''); +INSERT INTO `T6` VALUES ('龔龖龗龞龡'),('龔龖龗龞'),('龔龖龗'),('龔龖'),('龔'),(''); +INSERT INTO `T7` VALUES ('アイウエオ'),('アイウエ'),('アイウ'),('アイ'),('ア'),(''); +INSERT INTO `T8` VALUES ('あいうえお'),('あいうえ'),('あいう'),('あい'),('あ'),(''); +INSERT INTO `T9` VALUES ('龔龖龗龞龡'),('龔龖龗龞'),('龔龖龗'),('龔龖'),('龔'),(''); +INSERT INTO `T10` VALUES ('アイウエオ'),('アイウエ'),('アイウ'),('アイ'),('ア'),(''); +INSERT INTO `T11` VALUES ('あいうえお'),('あいうえ'),('あいう'),('あい'),('あ'),(''); +INSERT INTO `T12` VALUES ('龔龖龗龞龡'),('龔龖龗龞'),('龔龖龗'),('龔龖'),('龔'),(''); + +#InnoDB +SELECT `C1`, LEFT(`C1`,0) FROM `T1`; +SELECT `C1`, LEFT(`C1`,1) FROM `T1`; +SELECT `C1`, LEFT(`C1`,2) FROM `T1`; +SELECT `C1`, LEFT(`C1`,3) FROM `T1`; +SELECT `C1`, LEFT(`C1`,4) FROM `T1`; +SELECT `C1`, LEFT(`C1`,5) FROM `T1`; +SELECT `C1`, LEFT(`C1`,0) FROM `T2`; +SELECT `C1`, LEFT(`C1`,1) FROM `T2`; +SELECT `C1`, LEFT(`C1`,2) FROM `T2`; +SELECT `C1`, LEFT(`C1`,3) FROM `T2`; +SELECT `C1`, LEFT(`C1`,4) FROM `T2`; +SELECT `C1`, LEFT(`C1`,5) FROM `T2`; +SELECT `C1`, LEFT(`C1`,0) FROM `T3`; +SELECT `C1`, LEFT(`C1`,1) FROM `T3`; +SELECT `C1`, LEFT(`C1`,2) FROM `T3`; +SELECT `C1`, LEFT(`C1`,3) FROM `T3`; +SELECT `C1`, LEFT(`C1`,4) FROM `T3`; +SELECT `C1`, LEFT(`C1`,5) FROM `T3`; + +#MyISAM +SELECT `C1`, LEFT(`C1`,0) FROM `T4`; +SELECT `C1`, LEFT(`C1`,1) FROM `T4`; +SELECT `C1`, LEFT(`C1`,2) FROM `T4`; +SELECT `C1`, LEFT(`C1`,3) FROM `T4`; +SELECT `C1`, LEFT(`C1`,4) FROM `T4`; +SELECT `C1`, LEFT(`C1`,5) FROM `T4`; +SELECT `C1`, LEFT(`C1`,0) FROM `T5`; +SELECT `C1`, LEFT(`C1`,1) FROM `T5`; +SELECT `C1`, LEFT(`C1`,2) FROM `T5`; +SELECT `C1`, LEFT(`C1`,3) FROM `T5`; +SELECT `C1`, LEFT(`C1`,4) FROM `T5`; +SELECT `C1`, LEFT(`C1`,5) FROM `T5`; +SELECT `C1`, LEFT(`C1`,0) FROM `T6`; +SELECT `C1`, LEFT(`C1`,1) FROM `T6`; +SELECT `C1`, LEFT(`C1`,2) FROM `T6`; +SELECT `C1`, LEFT(`C1`,3) FROM `T6`; +SELECT `C1`, LEFT(`C1`,4) FROM `T6`; +SELECT `C1`, LEFT(`C1`,5) FROM `T6`; + +#HEAP +SELECT `C1`, LEFT(`C1`,0) FROM `T7`; +SELECT `C1`, LEFT(`C1`,1) FROM `T7`; +SELECT `C1`, LEFT(`C1`,2) FROM `T7`; +SELECT `C1`, LEFT(`C1`,3) FROM `T7`; +SELECT `C1`, LEFT(`C1`,4) FROM `T7`; +SELECT `C1`, LEFT(`C1`,5) FROM `T7`; +SELECT `C1`, LEFT(`C1`,0) FROM `T8`; +SELECT `C1`, LEFT(`C1`,1) FROM `T8`; +SELECT `C1`, LEFT(`C1`,2) FROM `T8`; +SELECT `C1`, LEFT(`C1`,3) FROM `T8`; +SELECT `C1`, LEFT(`C1`,4) FROM `T8`; +SELECT `C1`, LEFT(`C1`,5) FROM `T8`; +SELECT `C1`, LEFT(`C1`,0) FROM `T9`; +SELECT `C1`, LEFT(`C1`,1) FROM `T9`; +SELECT `C1`, LEFT(`C1`,2) FROM `T9`; +SELECT `C1`, LEFT(`C1`,3) FROM `T9`; +SELECT `C1`, LEFT(`C1`,4) FROM `T9`; +SELECT `C1`, LEFT(`C1`,5) FROM `T9`; + +#BDB +SELECT `C1`, LEFT(`C1`,0) FROM `T10`; +SELECT `C1`, LEFT(`C1`,1) FROM `T10`; +SELECT `C1`, LEFT(`C1`,2) FROM `T10`; +SELECT `C1`, LEFT(`C1`,3) FROM `T10`; +SELECT `C1`, LEFT(`C1`,4) FROM `T10`; +SELECT `C1`, LEFT(`C1`,5) FROM `T10`; +SELECT `C1`, LEFT(`C1`,0) FROM `T11`; +SELECT `C1`, LEFT(`C1`,1) FROM `T11`; +SELECT `C1`, LEFT(`C1`,2) FROM `T11`; +SELECT `C1`, LEFT(`C1`,3) FROM `T11`; +SELECT `C1`, LEFT(`C1`,4) FROM `T11`; +SELECT `C1`, LEFT(`C1`,5) FROM `T11`; +SELECT `C1`, LEFT(`C1`,0) FROM `T12`; +SELECT `C1`, LEFT(`C1`,1) FROM `T12`; +SELECT `C1`, LEFT(`C1`,2) FROM `T12`; +SELECT `C1`, LEFT(`C1`,3) FROM `T12`; +SELECT `C1`, LEFT(`C1`,4) FROM `T12`; +SELECT `C1`, LEFT(`C1`,5) FROM `T12`; + +DROP TABLE `T1`; +DROP TABLE `T2`; +DROP TABLE `T3`; +DROP TABLE `T4`; +DROP TABLE `T5`; +DROP TABLE `T6`; +DROP TABLE `T7`; +DROP TABLE `T8`; +DROP TABLE `T9`; +DROP TABLE `T10`; +DROP TABLE `T11`; +DROP TABLE `T12`; diff --git a/mysql-test/suite/jp/t/jp_length_sjis.test b/mysql-test/suite/jp/t/jp_length_sjis.test new file mode 100755 index 00000000000..7023891b7f0 --- /dev/null +++ b/mysql-test/suite/jp/t/jp_length_sjis.test @@ -0,0 +1,81 @@ +--character_set sjis +--disable_warnings +drop table if exists `sP`; +drop table if exists `sQ`; +drop table if exists `sR`; +drop table if exists `sS`; +drop table if exists `sT`; +drop table if exists `sU`; +drop table if exists `sV`; +drop table if exists `sW`; +drop table if exists `sX`; +drop table if exists `sPO`; +drop table if exists `sPP`; +drop table if exists `sPQ`; +--enable_warnings + +# +# Test LENGTH() function with Japanese character in sjis encoding +# + +SET NAMES sjis; +SET character_set_database = sjis; + +CREATE TABLE `sP` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sQ` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sR` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sS` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sT` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sU` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sV` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sW` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sX` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sPO` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +CREATE TABLE `sPP` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +CREATE TABLE `sPQ` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; + +INSERT INTO `sP` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sQ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sR` VALUES ('\\\\\'),('\\\\'),('\\\'),('\\'),('\'),(''); +INSERT INTO `sS` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sT` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sU` VALUES ('\\\\\'),('\\\\'),('\\\'),('\\'),('\'),(''); +INSERT INTO `sV` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sW` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sX` VALUES ('\\\\\'),('\\\\'),('\\\'),('\\'),('\'),(''); +INSERT INTO `sPO` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sPP` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sPQ` VALUES ('\\\\\'),('\\\\'),('\\\'),('\\'),('\'),(''); + +#InnoDB +SELECT `bP`, LENGTH(`bP`) FROM `sP`; +SELECT `bP`, LENGTH(`bP`) FROM `sQ`; +SELECT `bP`, LENGTH(`bP`) FROM `sR`; + +#MyISAM +SELECT `bP`, LENGTH(`bP`) FROM `sS`; +SELECT `bP`, LENGTH(`bP`) FROM `sT`; +SELECT `bP`, LENGTH(`bP`) FROM `sU`; + +#HEAP +SELECT `bP`, LENGTH(`bP`) FROM `sV`; +SELECT `bP`, LENGTH(`bP`) FROM `sW`; +SELECT `bP`, LENGTH(`bP`) FROM `sX`; + +#BDB +SELECT `bP`, LENGTH(`bP`) FROM `sPO`; +SELECT `bP`, LENGTH(`bP`) FROM `sPP`; +SELECT `bP`, LENGTH(`bP`) FROM `sPQ`; + +DROP TABLE `sP`; +DROP TABLE `sQ`; +DROP TABLE `sR`; +DROP TABLE `sS`; +DROP TABLE `sT`; +DROP TABLE `sU`; +DROP TABLE `sV`; +DROP TABLE `sW`; +DROP TABLE `sX`; +DROP TABLE `sPO`; +DROP TABLE `sPP`; +DROP TABLE `sPQ`; diff --git a/mysql-test/suite/jp/t/jp_length_ucs2.test b/mysql-test/suite/jp/t/jp_length_ucs2.test new file mode 100755 index 00000000000..9951c9b6cd1 --- /dev/null +++ b/mysql-test/suite/jp/t/jp_length_ucs2.test @@ -0,0 +1,83 @@ +--source include/have_ucs2.inc + +--disable_warnings +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +--enable_warnings + +# +# Test LENGTH() function with Japanese character in ucs2 encoding +# + +SET NAMES ujis; +SET character_set_database = ucs2; +SET collation_connection = ucs2_general_ci; + +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; + +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); + +#InnoDB +SELECT `ã`, LENGTH(`ã`) FROM `ԣ`; +SELECT `ã`, LENGTH(`ã`) FROM `ԣ`; +SELECT `ã`, LENGTH(`ã`) FROM `ԣ`; + +#MyISAM +SELECT `ã`, LENGTH(`ã`) FROM `ԣ`; +SELECT `ã`, LENGTH(`ã`) FROM `ԣ`; +SELECT `ã`, LENGTH(`ã`) FROM `ԣ`; + +#HEAP +SELECT `ã`, LENGTH(`ã`) FROM `ԣ`; +SELECT `ã`, LENGTH(`ã`) FROM `ԣ`; +SELECT `ã`, LENGTH(`ã`) FROM `ԣ`; + +#BDB +SELECT `ã`, LENGTH(`ã`) FROM `ԣ`; +SELECT `ã`, LENGTH(`ã`) FROM `ԣ`; +SELECT `ã`, LENGTH(`ã`) FROM `ԣ`; + +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; diff --git a/mysql-test/suite/jp/t/jp_length_ujis.test b/mysql-test/suite/jp/t/jp_length_ujis.test new file mode 100755 index 00000000000..ac3aef2c768 --- /dev/null +++ b/mysql-test/suite/jp/t/jp_length_ujis.test @@ -0,0 +1,82 @@ +--source include/have_ujis.inc + +--disable_warnings +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +--enable_warnings + +# +# Test LENGTH() function with Japanese character in ujis encoding +# + +SET NAMES ujis; +SET character_set_database = ujis; + +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; + +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); + +#InnoDB +SELECT `ã`, LENGTH(`ã`) FROM `ԣ`; +SELECT `ã`, LENGTH(`ã`) FROM `ԣ`; +SELECT `ã`, LENGTH(`ã`) FROM `ԣ`; + +#MyISAM +SELECT `ã`, LENGTH(`ã`) FROM `ԣ`; +SELECT `ã`, LENGTH(`ã`) FROM `ԣ`; +SELECT `ã`, LENGTH(`ã`) FROM `ԣ`; + +#HEAP +SELECT `ã`, LENGTH(`ã`) FROM `ԣ`; +SELECT `ã`, LENGTH(`ã`) FROM `ԣ`; +SELECT `ã`, LENGTH(`ã`) FROM `ԣ`; + +#BDB +SELECT `ã`, LENGTH(`ã`) FROM `ԣ`; +SELECT `ã`, LENGTH(`ã`) FROM `ԣ`; +SELECT `ã`, LENGTH(`ã`) FROM `ԣ`; + +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; diff --git a/mysql-test/suite/jp/t/jp_length_utf8.test b/mysql-test/suite/jp/t/jp_length_utf8.test new file mode 100755 index 00000000000..5c5021f37be --- /dev/null +++ b/mysql-test/suite/jp/t/jp_length_utf8.test @@ -0,0 +1,80 @@ +--disable_warnings +drop table if exists `T1`; +drop table if exists `T2`; +drop table if exists `T3`; +drop table if exists `T4`; +drop table if exists `T5`; +drop table if exists `T6`; +drop table if exists `T7`; +drop table if exists `T8`; +drop table if exists `T9`; +drop table if exists `T10`; +drop table if exists `T11`; +drop table if exists `T12`; +--enable_warnings + +# +# Test LENGTH() function with Japanese character in utf8 encoding +# + +SET NAMES utf8; +SET character_set_database = utf8; + +CREATE TABLE `T1` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T2` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T3` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T4` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T5` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T6` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T7` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T8` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T9` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T10` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +CREATE TABLE `T11` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +CREATE TABLE `T12` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; + +INSERT INTO `T1` VALUES ('アイウエオ'),('アイウエ'),('アイウ'),('アイ'),('ア'),(''); +INSERT INTO `T2` VALUES ('あいうえお'),('あいうえ'),('あいう'),('あい'),('あ'),(''); +INSERT INTO `T3` VALUES ('龔龖龗龞龡'),('龔龖龗龞'),('龔龖龗'),('龔龖'),('龔'),(''); +INSERT INTO `T4` VALUES ('アイウエオ'),('アイウエ'),('アイウ'),('アイ'),('ア'),(''); +INSERT INTO `T5` VALUES ('あいうえお'),('あいうえ'),('あいう'),('あい'),('あ'),(''); +INSERT INTO `T6` VALUES ('龔龖龗龞龡'),('龔龖龗龞'),('龔龖龗'),('龔龖'),('龔'),(''); +INSERT INTO `T7` VALUES ('アイウエオ'),('アイウエ'),('アイウ'),('アイ'),('ア'),(''); +INSERT INTO `T8` VALUES ('あいうえお'),('あいうえ'),('あいう'),('あい'),('あ'),(''); +INSERT INTO `T9` VALUES ('龔龖龗龞龡'),('龔龖龗龞'),('龔龖龗'),('龔龖'),('龔'),(''); +INSERT INTO `T10` VALUES ('アイウエオ'),('アイウエ'),('アイウ'),('アイ'),('ア'),(''); +INSERT INTO `T11` VALUES ('あいうえお'),('あいうえ'),('あいう'),('あい'),('あ'),(''); +INSERT INTO `T12` VALUES ('龔龖龗龞龡'),('龔龖龗龞'),('龔龖龗'),('龔龖'),('龔'),(''); + +#InnoDB +SELECT `C1`, LENGTH(`C1`) FROM `T1`; +SELECT `C1`, LENGTH(`C1`) FROM `T2`; +SELECT `C1`, LENGTH(`C1`) FROM `T3`; + +#MyISAM +SELECT `C1`, LENGTH(`C1`) FROM `T4`; +SELECT `C1`, LENGTH(`C1`) FROM `T5`; +SELECT `C1`, LENGTH(`C1`) FROM `T6`; + +#HEAP +SELECT `C1`, LENGTH(`C1`) FROM `T7`; +SELECT `C1`, LENGTH(`C1`) FROM `T8`; +SELECT `C1`, LENGTH(`C1`) FROM `T9`; + +#BDB +SELECT `C1`, LENGTH(`C1`) FROM `T10`; +SELECT `C1`, LENGTH(`C1`) FROM `T11`; +SELECT `C1`, LENGTH(`C1`) FROM `T12`; + +DROP TABLE `T1`; +DROP TABLE `T2`; +DROP TABLE `T3`; +DROP TABLE `T4`; +DROP TABLE `T5`; +DROP TABLE `T6`; +DROP TABLE `T7`; +DROP TABLE `T8`; +DROP TABLE `T9`; +DROP TABLE `T10`; +DROP TABLE `T11`; +DROP TABLE `T12`; diff --git a/mysql-test/suite/jp/t/jp_like_sjis.test b/mysql-test/suite/jp/t/jp_like_sjis.test new file mode 100755 index 00000000000..5c41b9ff7ef --- /dev/null +++ b/mysql-test/suite/jp/t/jp_like_sjis.test @@ -0,0 +1,168 @@ +--character_set sjis +--disable_warnings +drop table if exists `sP`; +drop table if exists `sQ`; +drop table if exists `sR`; +drop table if exists `sS`; +drop table if exists `sT`; +drop table if exists `sU`; +drop table if exists `sV`; +drop table if exists `sW`; +drop table if exists `sX`; +drop table if exists `sPO`; +drop table if exists `sPP`; +drop table if exists `sPQ`; +--enable_warnings + +# +# Test LIKE pattern matching using Japanese characters in sjis encoding +# + +SET NAMES sjis; +SET character_set_database = sjis; + +CREATE TABLE `sP` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sQ` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sR` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sS` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sT` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sU` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sV` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sW` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sX` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sPO` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +CREATE TABLE `sPP` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +CREATE TABLE `sPQ` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; + +#Load the following data in each table +# jisx0201 hankaku-katakana data +# jisx0208 data + +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_sjis.dat' INTO TABLE `sP`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_sjis.dat' INTO TABLE `sQ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_sjis2.dat' INTO TABLE `sR`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_sjis.dat' INTO TABLE `sS`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_sjis.dat' INTO TABLE `sT`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_sjis2.dat' INTO TABLE `sU`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_sjis.dat' INTO TABLE `sV`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_sjis.dat' INTO TABLE `sW`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_sjis2.dat' INTO TABLE `sX`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_sjis.dat' INTO TABLE `sPO`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_sjis.dat' INTO TABLE `sPP`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_sjis2.dat' INTO TABLE `sPQ`; + +#InnoDB +SELECT * FROM `sP` WHERE `bP` LIKE ' %'; +SELECT * FROM `sP` WHERE `bP` LIKE '% %'; +SELECT * FROM `sP` WHERE `bP` LIKE '% '; +SELECT * FROM `sP` WHERE `bP` LIKE '%'; +SELECT * FROM `sP` WHERE `bP` LIKE '%%'; +SELECT * FROM `sP` WHERE `bP` LIKE '%'; +SELECT * FROM `sP` WHERE `bP` LIKE '%'; +SELECT * FROM `sP` WHERE `bP` LIKE '%%'; +SELECT * FROM `sP` WHERE `bP` LIKE '%'; +SELECT * FROM `sQ` WHERE `bP` LIKE '@%'; +SELECT * FROM `sQ` WHERE `bP` LIKE '%@%'; +SELECT * FROM `sQ` WHERE `bP` LIKE '%@'; +SELECT * FROM `sQ` WHERE `bP` LIKE '%'; +SELECT * FROM `sQ` WHERE `bP` LIKE '%%'; +SELECT * FROM `sQ` WHERE `bP` LIKE '%'; +SELECT * FROM `sQ` WHERE `bP` LIKE 'E%'; +SELECT * FROM `sQ` WHERE `bP` LIKE '%E%'; +SELECT * FROM `sQ` WHERE `bP` LIKE '%E'; +SELECT * FROM `sR` WHERE `bP` LIKE '\%'; +SELECT * FROM `sR` WHERE `bP` LIKE '%\%'; +SELECT * FROM `sR` WHERE `bP` LIKE '%\'; +SELECT * FROM `sR` WHERE `bP` LIKE '\\\\\\\\\\\\\\\\\\\\%'; +SELECT * FROM `sR` WHERE `bP` LIKE '%\\\\\\\\\\\\\\\\\\\\%'; +SELECT * FROM `sR` WHERE `bP` LIKE '%\\\\\\\\\\\\\\\\\\\\'; + +#MyISAM +SELECT * FROM `sS` WHERE `bP` LIKE ' %'; +SELECT * FROM `sS` WHERE `bP` LIKE '% %'; +SELECT * FROM `sS` WHERE `bP` LIKE '% '; +SELECT * FROM `sS` WHERE `bP` LIKE '%'; +SELECT * FROM `sS` WHERE `bP` LIKE '%%'; +SELECT * FROM `sS` WHERE `bP` LIKE '%'; +SELECT * FROM `sS` WHERE `bP` LIKE '%'; +SELECT * FROM `sS` WHERE `bP` LIKE '%%'; +SELECT * FROM `sS` WHERE `bP` LIKE '%'; +SELECT * FROM `sT` WHERE `bP` LIKE '@%'; +SELECT * FROM `sT` WHERE `bP` LIKE '%@%'; +SELECT * FROM `sT` WHERE `bP` LIKE '%@'; +SELECT * FROM `sT` WHERE `bP` LIKE '%'; +SELECT * FROM `sT` WHERE `bP` LIKE '%%'; +SELECT * FROM `sT` WHERE `bP` LIKE '%'; +SELECT * FROM `sT` WHERE `bP` LIKE 'E%'; +SELECT * FROM `sT` WHERE `bP` LIKE '%E%'; +SELECT * FROM `sT` WHERE `bP` LIKE '%E'; +SELECT * FROM `sU` WHERE `bP` LIKE '\%'; +SELECT * FROM `sU` WHERE `bP` LIKE '%\%'; +SELECT * FROM `sU` WHERE `bP` LIKE '%\'; +SELECT * FROM `sU` WHERE `bP` LIKE '\\\\\\\\\\\\\\\\\\\\%'; +SELECT * FROM `sU` WHERE `bP` LIKE '%\\\\\\\\\\\\\\\\\\\\%'; +SELECT * FROM `sU` WHERE `bP` LIKE '%\\\\\\\\\\\\\\\\\\\\'; + +#Heap +SELECT * FROM `sV` WHERE `bP` LIKE ' %'; +SELECT * FROM `sV` WHERE `bP` LIKE '% %'; +SELECT * FROM `sV` WHERE `bP` LIKE '% '; +SELECT * FROM `sV` WHERE `bP` LIKE '%'; +SELECT * FROM `sV` WHERE `bP` LIKE '%%'; +SELECT * FROM `sV` WHERE `bP` LIKE '%'; +SELECT * FROM `sV` WHERE `bP` LIKE '%'; +SELECT * FROM `sV` WHERE `bP` LIKE '%%'; +SELECT * FROM `sV` WHERE `bP` LIKE '%'; +SELECT * FROM `sW` WHERE `bP` LIKE '@%'; +SELECT * FROM `sW` WHERE `bP` LIKE '%@%'; +SELECT * FROM `sW` WHERE `bP` LIKE '%@'; +SELECT * FROM `sW` WHERE `bP` LIKE '%'; +SELECT * FROM `sW` WHERE `bP` LIKE '%%'; +SELECT * FROM `sW` WHERE `bP` LIKE '%'; +SELECT * FROM `sW` WHERE `bP` LIKE 'E%'; +SELECT * FROM `sW` WHERE `bP` LIKE '%E%'; +SELECT * FROM `sW` WHERE `bP` LIKE '%E'; +SELECT * FROM `sX` WHERE `bP` LIKE '\%'; +SELECT * FROM `sX` WHERE `bP` LIKE '%\%'; +SELECT * FROM `sX` WHERE `bP` LIKE '%\'; +SELECT * FROM `sX` WHERE `bP` LIKE '\\\\\\\\\\\\\\\\\\\\%'; +SELECT * FROM `sX` WHERE `bP` LIKE '%\\\\\\\\\\\\\\\\\\\\%'; +SELECT * FROM `sX` WHERE `bP` LIKE '%\\\\\\\\\\\\\\\\\\\\'; +#BDB +SELECT * FROM `sPO` WHERE `bP` LIKE ' %'; +SELECT * FROM `sPO` WHERE `bP` LIKE '% %'; +SELECT * FROM `sPO` WHERE `bP` LIKE '% '; +SELECT * FROM `sPO` WHERE `bP` LIKE '%'; +SELECT * FROM `sPO` WHERE `bP` LIKE '%%'; +SELECT * FROM `sPO` WHERE `bP` LIKE '%'; +#SELECT * FROM `sPO` WHERE `bP` LIKE '%'; +#SELECT * FROM `sPO` WHERE `bP` LIKE '%%'; +SELECT * FROM `sPO` WHERE `bP` LIKE '%'; +SELECT * FROM `sPP` WHERE `bP` LIKE '@%'; +SELECT * FROM `sPP` WHERE `bP` LIKE '%@%'; +SELECT * FROM `sPP` WHERE `bP` LIKE '%@'; +SELECT * FROM `sPP` WHERE `bP` LIKE '%'; +SELECT * FROM `sPP` WHERE `bP` LIKE '%%'; +SELECT * FROM `sPP` WHERE `bP` LIKE '%'; +#SELECT * FROM `sPP` WHERE `bP` LIKE 'E%'; +#SELECT * FROM `sPP` WHERE `bP` LIKE '%E%'; +#SELECT * FROM `sPP` WHERE `bP` LIKE '%E'; +SELECT * FROM `sPQ` WHERE `bP` LIKE '\%'; +SELECT * FROM `sPQ` WHERE `bP` LIKE '%\%'; +SELECT * FROM `sPQ` WHERE `bP` LIKE '%\'; +#SELECT * FROM `sPQ` WHERE `bP` LIKE '\\\\\\\\\\\\\\\\\\\\%'; +#SELECT * FROM `sPQ` WHERE `bP` LIKE '%\\\\\\\\\\\\\\\\\\\\%'; +#SELECT * FROM `sPQ` WHERE `bP` LIKE '%\\\\\\\\\\\\\\\\\\\\'; + +DROP TABLE `sP`; +DROP TABLE `sQ`; +DROP TABLE `sR`; +DROP TABLE `sS`; +DROP TABLE `sT`; +DROP TABLE `sU`; +DROP TABLE `sV`; +DROP TABLE `sW`; +DROP TABLE `sX`; +DROP TABLE `sPO`; +DROP TABLE `sPP`; +DROP TABLE `sPQ`; diff --git a/mysql-test/suite/jp/t/jp_like_ucs2.test b/mysql-test/suite/jp/t/jp_like_ucs2.test new file mode 100755 index 00000000000..feae40de49e --- /dev/null +++ b/mysql-test/suite/jp/t/jp_like_ucs2.test @@ -0,0 +1,271 @@ +--source include/have_ucs2.inc + +--disable_warnings +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +--enable_warnings + +# +# Test LIKE pattern matching using Japanese characters in ucs2 encoding +# + +SET NAMES ujis; +SET character_set_database = ucs2; +SET collation_connection = ucs2_general_ci; + +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; + +#Insert the following data in each table +# jisx0201 hankaku-katakana data +# jisx0208 data +# jisx0212 supplemental character data + +INSERT INTO `ԣ` VALUES + ('PQRSTUVWXYZ[\\]^_') +,(' ') +,('') +,('ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ') +,('ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ'); + +INSERT INTO `ԣ` VALUES + ('') +,('¡áġšơ') +,('ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ') +,('') +,('Ȥɤʤˤ̤ͤΤϤФѤҤӤԤդ֤פؤ٤ڤ') +,('ܤݤޤߤ') +,('') +,('') +,('СТУФХЦЧШЩЪЫЬЭЮЯабвг') +,(''); + +INSERT INTO `ԣ` VALUES + ('Ïġ') +,('ÏďŏƏ') +,('ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ') +,('܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰') +,('') +,('ÏďŏƏ') +,('ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ'); + +INSERT INTO `ԣ` VALUES + ('PQRSTUVWXYZ[\\]^_') +,(' ') +,('') +,('ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ') +,('ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ'); + +INSERT INTO `ԣ` VALUES + ('') +,('¡áġšơ') +,('ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ') +,('') +,('Ȥɤʤˤ̤ͤΤϤФѤҤӤԤդ֤פؤ٤ڤ') +,('ܤݤޤߤ') +,('') +,('') +,('СТУФХЦЧШЩЪЫЬЭЮЯабвг') +,(''); + +INSERT INTO `ԣ` VALUES + ('Ïġ') +,('ÏďŏƏ') +,('ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ') +,('܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰') +,('') +,('ÏďŏƏ') +,('ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ'); + +INSERT INTO `ԣ` VALUES + ('PQRSTUVWXYZ[\\]^_') +,(' ') +,('') +,('ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ') +,('ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ'); + +INSERT INTO `ԣ` VALUES + ('') +,('¡áġšơ') +,('ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ') +,('') +,('Ȥɤʤˤ̤ͤΤϤФѤҤӤԤդ֤פؤ٤ڤ') +,('ܤݤޤߤ') +,('') +,('') +,('СТУФХЦЧШЩЪЫЬЭЮЯабвг') +,(''); + +INSERT INTO `ԣ` VALUES + ('Ïġ') +,('ÏďŏƏ') +,('ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ') +,('܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰') +,('') +,('ÏďŏƏ') +,('ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ'); + +INSERT INTO `ԣ` VALUES + ('PQRSTUVWXYZ[\\]^_') +,(' ') +,('') +,('ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ') +,('ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ'); + +INSERT INTO `ԣ` VALUES + ('') +,('¡áġšơ') +,('ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ') +,('') +,('Ȥɤʤˤ̤ͤΤϤФѤҤӤԤդ֤פؤ٤ڤ') +,('ܤݤޤߤ') +,('') +,('') +,('СТУФХЦЧШЩЪЫЬЭЮЯабвг') +,(''); + +INSERT INTO `ԣ` VALUES + ('Ïġ') +,('ÏďŏƏ') +,('ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ') +,('܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰') +,('') +,('ÏďŏƏ') +,('ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ'); + +#INNODB +SELECT * FROM `ԣ` WHERE `ã` LIKE ' %'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '% %'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '% '; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%׎%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE 'ÏďŏƏ%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%ÏďŏƏ%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%ÏďŏƏ'; + +#MyISAM +SELECT * FROM `ԣ` WHERE `ã` LIKE ' %'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '% %'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '% '; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%׎%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE 'ÏďŏƏ%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%ÏďŏƏ%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%ÏďŏƏ'; + +#Heap +SELECT * FROM `ԣ` WHERE `ã` LIKE ' %'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '% %'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '% '; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%׎%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE 'ÏďŏƏ%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%ÏďŏƏ%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%ÏďŏƏ'; + +#BDB +SELECT * FROM `ԣ` WHERE `ã` LIKE ' %'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '% %'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '% '; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%׎%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE 'ÏďŏƏ%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%ÏďŏƏ%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%ÏďŏƏ'; + +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; diff --git a/mysql-test/suite/jp/t/jp_like_ujis.test b/mysql-test/suite/jp/t/jp_like_ujis.test new file mode 100755 index 00000000000..29ef7c5d48b --- /dev/null +++ b/mysql-test/suite/jp/t/jp_like_ujis.test @@ -0,0 +1,170 @@ +--source include/have_ujis.inc + +--disable_warnings +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +--enable_warnings + +# +# Test LIKE pattern matching using Japanese characters in ujis encoding +# + +SET NAMES ujis; +SET character_set_database = ujis; + +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; + +#Load the following data in each table +# jisx0201 hankaku-katakana data +# jisx0208 data +# jisx0212 supplemental character data + +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_ujis.dat' INTO TABLE `ԣ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_ujis.dat' INTO TABLE `ԣ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0212_ujis.dat' INTO TABLE `ԣ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_ujis.dat' INTO TABLE `ԣ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_ujis.dat' INTO TABLE `ԣ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0212_ujis.dat' INTO TABLE `ԣ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_ujis.dat' INTO TABLE `ԣ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_ujis.dat' INTO TABLE `ԣ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0212_ujis.dat' INTO TABLE `ԣ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_ujis.dat' INTO TABLE `ԣ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_ujis.dat' INTO TABLE `ԣ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0212_ujis.dat' INTO TABLE `ԣ`; + +#InnoDB +SELECT * FROM `ԣ` WHERE `ã` LIKE ' %'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '% %'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '% '; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%׎%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE 'ÏďŏƏ%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%ÏďŏƏ%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%ÏďŏƏ'; + +#MyISAM +SELECT * FROM `ԣ` WHERE `ã` LIKE ' %'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '% %'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '% '; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%׎%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE 'ÏďŏƏ%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%ÏďŏƏ%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%ÏďŏƏ'; + +#Heap +SELECT * FROM `ԣ` WHERE `ã` LIKE ' %'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '% %'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '% '; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%׎%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE 'ÏďŏƏ%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%ÏďŏƏ%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%ÏďŏƏ'; +#BDB +SELECT * FROM `ԣ` WHERE `ã` LIKE ' %'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '% %'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '% '; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%׎%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +#SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +#SELECT * FROM `ԣ` WHERE `ã` LIKE '%%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +#SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +#SELECT * FROM `ԣ` WHERE `ã` LIKE '%%'; +#SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%%'; +SELECT * FROM `ԣ` WHERE `ã` LIKE '%'; +#SELECT * FROM `ԣ` WHERE `ã` LIKE 'ÏďŏƏ%'; +#SELECT * FROM `ԣ` WHERE `ã` LIKE '%ÏďŏƏ%'; +#SELECT * FROM `ԣ` WHERE `ã` LIKE '%ÏďŏƏ'; + +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; diff --git a/mysql-test/suite/jp/t/jp_like_utf8.test b/mysql-test/suite/jp/t/jp_like_utf8.test new file mode 100755 index 00000000000..4247242029d --- /dev/null +++ b/mysql-test/suite/jp/t/jp_like_utf8.test @@ -0,0 +1,168 @@ +--disable_warnings +drop table if exists `T1`; +drop table if exists `T2`; +drop table if exists `T3`; +drop table if exists `T4`; +drop table if exists `T5`; +drop table if exists `T6`; +drop table if exists `T7`; +drop table if exists `T8`; +drop table if exists `T9`; +drop table if exists `T10`; +drop table if exists `T11`; +drop table if exists `T12`; +--enable_warnings + +# +# Test LIKE pattern matching using Japanese characters in utf8 encoding +# + +SET NAMES utf8; +SET character_set_database = utf8; + +CREATE TABLE `T1` (`C1` char(20), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T2` (`C1` char(20), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T3` (`C1` char(20), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T4` (`C1` char(20), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T5` (`C1` char(20), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T6` (`C1` char(20), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T7` (`C1` char(20), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T8` (`C1` char(20), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T9` (`C1` char(20), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T10` (`C1` char(20), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +CREATE TABLE `T11` (`C1` char(20), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +CREATE TABLE `T12` (`C1` char(20), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; + +#Load the following data in each table +# jisx0201 hankaku-katakana data +# jisx0208 data +# jisx0212 supplemental character data + +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_utf8.dat' INTO TABLE `T1`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_utf8.dat' INTO TABLE `T2`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0212_utf8.dat' INTO TABLE `T3`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_utf8.dat' INTO TABLE `T4`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_utf8.dat' INTO TABLE `T5`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0212_utf8.dat' INTO TABLE `T6`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_utf8.dat' INTO TABLE `T7`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_utf8.dat' INTO TABLE `T8`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0212_utf8.dat' INTO TABLE `T9`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_utf8.dat' INTO TABLE `T10`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_utf8.dat' INTO TABLE `T11`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0212_utf8.dat' INTO TABLE `T12`; + +#InnoDB +SELECT * FROM `T1` WHERE `C1` LIKE ' %'; +SELECT * FROM `T1` WHERE `C1` LIKE '% %'; +SELECT * FROM `T1` WHERE `C1` LIKE '% '; +SELECT * FROM `T1` WHERE `C1` LIKE 'タ%'; +SELECT * FROM `T1` WHERE `C1` LIKE '%ラリ%'; +SELECT * FROM `T1` WHERE `C1` LIKE '%ソ'; +SELECT * FROM `T1` WHERE `C1` LIKE 'ーアイウエオカキクケコサシスセソ%'; +SELECT * FROM `T1` WHERE `C1` LIKE '%ーアイウエオカキクケコサシスセソ%'; +SELECT * FROM `T1` WHERE `C1` LIKE '%ーアイウエオカキクケコサシスセソ'; +SELECT * FROM `T2` WHERE `C1` LIKE ' %'; +SELECT * FROM `T2` WHERE `C1` LIKE '% %'; +SELECT * FROM `T2` WHERE `C1` LIKE '% '; +SELECT * FROM `T2` WHERE `C1` LIKE 'と%'; +SELECT * FROM `T2` WHERE `C1` LIKE '%あ%'; +SELECT * FROM `T2` WHERE `C1` LIKE '%わ'; +SELECT * FROM `T2` WHERE `C1` LIKE '・ぁあぃいぅうぇえぉおかがきぎくぐけげこ%'; +SELECT * FROM `T2` WHERE `C1` LIKE '%・ぁあぃいぅうぇえぉおかがきぎくぐけげこ%'; +SELECT * FROM `T2` WHERE `C1` LIKE '%・ぁあぃいぅうぇえぉおかがきぎくぐけげこ'; +SELECT * FROM `T3` WHERE `C1` LIKE '鼫%'; +SELECT * FROM `T3` WHERE `C1` LIKE '%鼺%'; +SELECT * FROM `T3` WHERE `C1` LIKE '%齖'; +SELECT * FROM `T3` WHERE `C1` LIKE '鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃齄齅齆齇齓齕齖%'; +SELECT * FROM `T3` WHERE `C1` LIKE '%鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃齄齅齆齇齓齕齖%'; +SELECT * FROM `T3` WHERE `C1` LIKE '%鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃齄齅齆齇齓齕齖'; + +#MyISAM +SELECT * FROM `T4` WHERE `C1` LIKE ' %'; +SELECT * FROM `T4` WHERE `C1` LIKE '% %'; +SELECT * FROM `T4` WHERE `C1` LIKE '% '; +SELECT * FROM `T4` WHERE `C1` LIKE 'タ%'; +SELECT * FROM `T4` WHERE `C1` LIKE '%ラリ%'; +SELECT * FROM `T4` WHERE `C1` LIKE '%ソ'; +SELECT * FROM `T4` WHERE `C1` LIKE 'ーアイウエオカキクケコサシスセソ%'; +SELECT * FROM `T4` WHERE `C1` LIKE '%ーアイウエオカキクケコサシスセソ%'; +SELECT * FROM `T4` WHERE `C1` LIKE '%ーアイウエオカキクケコサシスセソ'; +SELECT * FROM `T5` WHERE `C1` LIKE ' %'; +SELECT * FROM `T5` WHERE `C1` LIKE '% %'; +SELECT * FROM `T5` WHERE `C1` LIKE '% '; +SELECT * FROM `T5` WHERE `C1` LIKE 'と%'; +SELECT * FROM `T5` WHERE `C1` LIKE '%あ%'; +SELECT * FROM `T5` WHERE `C1` LIKE '%わ'; +SELECT * FROM `T5` WHERE `C1` LIKE '・ぁあぃいぅうぇえぉおかがきぎくぐけげこ%'; +SELECT * FROM `T5` WHERE `C1` LIKE '%・ぁあぃいぅうぇえぉおかがきぎくぐけげこ%'; +SELECT * FROM `T5` WHERE `C1` LIKE '%・ぁあぃいぅうぇえぉおかがきぎくぐけげこ'; +SELECT * FROM `T6` WHERE `C1` LIKE '鼫%'; +SELECT * FROM `T6` WHERE `C1` LIKE '%鼺%'; +SELECT * FROM `T6` WHERE `C1` LIKE '%齖'; +SELECT * FROM `T6` WHERE `C1` LIKE '鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃齄齅齆齇齓齕齖%'; +SELECT * FROM `T6` WHERE `C1` LIKE '%鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃齄齅齆齇齓齕齖%'; +SELECT * FROM `T6` WHERE `C1` LIKE '%鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃齄齅齆齇齓齕齖'; + +#Heap +SELECT * FROM `T7` WHERE `C1` LIKE ' %'; +SELECT * FROM `T7` WHERE `C1` LIKE '% %'; +SELECT * FROM `T7` WHERE `C1` LIKE '% '; +SELECT * FROM `T7` WHERE `C1` LIKE 'タ%'; +SELECT * FROM `T7` WHERE `C1` LIKE '%ラリ%'; +SELECT * FROM `T7` WHERE `C1` LIKE '%ソ'; +SELECT * FROM `T7` WHERE `C1` LIKE 'ーアイウエオカキクケコサシスセソ%'; +SELECT * FROM `T7` WHERE `C1` LIKE '%ーアイウエオカキクケコサシスセソ%'; +SELECT * FROM `T7` WHERE `C1` LIKE '%ーアイウエオカキクケコサシスセソ'; +SELECT * FROM `T8` WHERE `C1` LIKE ' %'; +SELECT * FROM `T8` WHERE `C1` LIKE '% %'; +SELECT * FROM `T8` WHERE `C1` LIKE '% '; +SELECT * FROM `T8` WHERE `C1` LIKE 'と%'; +SELECT * FROM `T8` WHERE `C1` LIKE '%あ%'; +SELECT * FROM `T8` WHERE `C1` LIKE '%わ'; +SELECT * FROM `T8` WHERE `C1` LIKE '・ぁあぃいぅうぇえぉおかがきぎくぐけげこ%'; +SELECT * FROM `T8` WHERE `C1` LIKE '%・ぁあぃいぅうぇえぉおかがきぎくぐけげこ%'; +SELECT * FROM `T8` WHERE `C1` LIKE '%・ぁあぃいぅうぇえぉおかがきぎくぐけげこ'; +SELECT * FROM `T9` WHERE `C1` LIKE '鼫%'; +SELECT * FROM `T9` WHERE `C1` LIKE '%鼺%'; +SELECT * FROM `T9` WHERE `C1` LIKE '%齖'; +SELECT * FROM `T9` WHERE `C1` LIKE '鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃齄齅齆齇齓齕齖%'; +SELECT * FROM `T9` WHERE `C1` LIKE '%鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃齄齅齆齇齓齕齖%'; +SELECT * FROM `T9` WHERE `C1` LIKE '%鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃齄齅齆齇齓齕齖'; +#BDB +SELECT * FROM `T10` WHERE `C1` LIKE ' %'; +SELECT * FROM `T10` WHERE `C1` LIKE '% %'; +SELECT * FROM `T10` WHERE `C1` LIKE '% '; +SELECT * FROM `T10` WHERE `C1` LIKE 'タ%'; +SELECT * FROM `T10` WHERE `C1` LIKE '%ラリ%'; +SELECT * FROM `T10` WHERE `C1` LIKE '%ソ'; +#SELECT * FROM `T10` WHERE `C1` LIKE 'ーアイウエオカキクケコサシスセソ%'; +#SELECT * FROM `T10` WHERE `C1` LIKE '%ーアイウエオカキクケコサシスセソ%'; +#SELECT * FROM `T10` WHERE `C1` LIKE '%ーアイウエオカキクケコサシスセソ'; +SELECT * FROM `T11` WHERE `C1` LIKE ' %'; +SELECT * FROM `T11` WHERE `C1` LIKE '% %'; +SELECT * FROM `T11` WHERE `C1` LIKE '% '; +SELECT * FROM `T11` WHERE `C1` LIKE 'と%'; +SELECT * FROM `T11` WHERE `C1` LIKE '%あ%'; +SELECT * FROM `T11` WHERE `C1` LIKE '%わ'; +#SELECT * FROM `T11` WHERE `C1` LIKE '・ぁあぃいぅうぇえぉおかがきぎくぐけげこ%'; +#SELECT * FROM `T11` WHERE `C1` LIKE '%・ぁあぃいぅうぇえぉおかがきぎくぐけげこ%'; +#SELECT * FROM `T11` WHERE `C1` LIKE '%・ぁあぃいぅうぇえぉおかがきぎくぐけげこ'; +SELECT * FROM `T12` WHERE `C1` LIKE '鼫%'; +SELECT * FROM `T12` WHERE `C1` LIKE '%鼺%'; +SELECT * FROM `T12` WHERE `C1` LIKE '%齖'; +#SELECT * FROM `T12` WHERE `C1` LIKE '鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃齄齅齆齇齓齕齖%'; +#SELECT * FROM `T12` WHERE `C1` LIKE '%鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃齄齅齆齇齓齕齖%'; +#SELECT * FROM `T12` WHERE `C1` LIKE '%鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃齄齅齆齇齓齕齖'; + +DROP TABLE `T1`; +DROP TABLE `T2`; +DROP TABLE `T3`; +DROP TABLE `T4`; +DROP TABLE `T5`; +DROP TABLE `T6`; +DROP TABLE `T7`; +DROP TABLE `T8`; +DROP TABLE `T9`; +DROP TABLE `T10`; +DROP TABLE `T11`; +DROP TABLE `T12`; diff --git a/mysql-test/suite/jp/t/jp_locate_sjis.test b/mysql-test/suite/jp/t/jp_locate_sjis.test new file mode 100755 index 00000000000..92c671199b6 --- /dev/null +++ b/mysql-test/suite/jp/t/jp_locate_sjis.test @@ -0,0 +1,141 @@ +--character_set sjis +--disable_warnings +drop table if exists `sP`; +drop table if exists `sQ`; +drop table if exists `sR`; +drop table if exists `sS`; +drop table if exists `sT`; +drop table if exists `sU`; +drop table if exists `sV`; +drop table if exists `sW`; +drop table if exists `sX`; +drop table if exists `sPO`; +--enable_warnings + +# +# Test LOCATE() function with Japanese characters in sjis encoding +# + +SET NAMES sjis; +SET character_set_database = sjis; +CREATE TABLE `sP` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sQ` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sR` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sS` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sT` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sU` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sV` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sW` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sX` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sPO` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +CREATE TABLE `sPP` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +CREATE TABLE `sPQ` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; + +INSERT INTO `sP` VALUES (''); +INSERT INTO `sQ` VALUES (''); +INSERT INTO `sR` VALUES ('\\\\\'); +INSERT INTO `sS` VALUES (''); +INSERT INTO `sT` VALUES (''); +INSERT INTO `sU` VALUES ('\\\\\'); +INSERT INTO `sV` VALUES (''); +INSERT INTO `sW` VALUES (''); +INSERT INTO `sX` VALUES ('\\\\\'); +INSERT INTO `sPO` VALUES (''); +INSERT INTO `sPP` VALUES (''); +INSERT INTO `sPQ` VALUES ('\\\\\'); + +#InnoDB +SELECT LOCATE('',`bP`) from `sP`; +SELECT LOCATE('',`bP`) from `sP`; +SELECT LOCATE('',`bP`) from `sP`; +SELECT LOCATE('',`bP`) from `sP`; +SELECT LOCATE('',`bP`) from `sP`; +SELECT LOCATE('',`bP`) from `sP`; +SELECT LOCATE('',`bP`) from `sQ`; +SELECT LOCATE('',`bP`) from `sQ`; +SELECT LOCATE('',`bP`) from `sQ`; +SELECT LOCATE('',`bP`) from `sQ`; +SELECT LOCATE('',`bP`) from `sQ`; +SELECT LOCATE('',`bP`) from `sQ`; +SELECT LOCATE('\',`bP`) from `sR`; +SELECT LOCATE('\',`bP`) from `sR`; +SELECT LOCATE('\',`bP`) from `sR`; +SELECT LOCATE('\',`bP`) from `sR`; +SELECT LOCATE('\',`bP`) from `sR`; +SELECT LOCATE('\',`bP`) from `sR`; + +#MyISAM +SELECT LOCATE('',`bP`) from `sS`; +SELECT LOCATE('',`bP`) from `sS`; +SELECT LOCATE('',`bP`) from `sS`; +SELECT LOCATE('',`bP`) from `sS`; +SELECT LOCATE('',`bP`) from `sS`; +SELECT LOCATE('',`bP`) from `sS`; +SELECT LOCATE('',`bP`) from `sT`; +SELECT LOCATE('',`bP`) from `sT`; +SELECT LOCATE('',`bP`) from `sT`; +SELECT LOCATE('',`bP`) from `sT`; +SELECT LOCATE('',`bP`) from `sT`; +SELECT LOCATE('',`bP`) from `sT`; +SELECT LOCATE('\',`bP`) from `sU`; +SELECT LOCATE('\',`bP`) from `sU`; +SELECT LOCATE('\',`bP`) from `sU`; +SELECT LOCATE('\',`bP`) from `sU`; +SELECT LOCATE('\',`bP`) from `sU`; +SELECT LOCATE('\',`bP`) from `sU`; + + +#HEAP +SELECT LOCATE('',`bP`) from `sV`; +SELECT LOCATE('',`bP`) from `sV`; +SELECT LOCATE('',`bP`) from `sV`; +SELECT LOCATE('',`bP`) from `sV`; +SELECT LOCATE('',`bP`) from `sV`; +SELECT LOCATE('',`bP`) from `sV`; +SELECT LOCATE('',`bP`) from `sW`; +SELECT LOCATE('',`bP`) from `sW`; +SELECT LOCATE('',`bP`) from `sW`; +SELECT LOCATE('',`bP`) from `sW`; +SELECT LOCATE('',`bP`) from `sW`; +SELECT LOCATE('',`bP`) from `sW`; +SELECT LOCATE('\',`bP`) from `sX`; +SELECT LOCATE('\',`bP`) from `sX`; +SELECT LOCATE('\',`bP`) from `sX`; +SELECT LOCATE('\',`bP`) from `sX`; +SELECT LOCATE('\',`bP`) from `sX`; +SELECT LOCATE('\',`bP`) from `sX`; + + +#BDB +SELECT LOCATE('',`bP`) from `sPO`; +SELECT LOCATE('',`bP`) from `sPO`; +SELECT LOCATE('',`bP`) from `sPO`; +SELECT LOCATE('',`bP`) from `sPO`; +SELECT LOCATE('',`bP`) from `sPO`; +SELECT LOCATE('',`bP`) from `sPO`; +SELECT LOCATE('',`bP`) from `sPP`; +SELECT LOCATE('',`bP`) from `sPP`; +SELECT LOCATE('',`bP`) from `sPP`; +SELECT LOCATE('',`bP`) from `sPP`; +SELECT LOCATE('',`bP`) from `sPP`; +SELECT LOCATE('',`bP`) from `sPP`; +SELECT LOCATE('\',`bP`) from `sPQ`; +SELECT LOCATE('\',`bP`) from `sPQ`; +SELECT LOCATE('\',`bP`) from `sPQ`; +SELECT LOCATE('\',`bP`) from `sPQ`; +SELECT LOCATE('\',`bP`) from `sPQ`; +SELECT LOCATE('\',`bP`) from `sPQ`; + + +DROP TABLE `sP`; +DROP TABLE `sQ`; +DROP TABLE `sR`; +DROP TABLE `sS`; +DROP TABLE `sT`; +DROP TABLE `sU`; +DROP TABLE `sV`; +DROP TABLE `sW`; +DROP TABLE `sX`; +DROP TABLE `sPO`; +DROP TABLE `sPP`; +DROP TABLE `sPQ`; diff --git a/mysql-test/suite/jp/t/jp_locate_ucs2.test b/mysql-test/suite/jp/t/jp_locate_ucs2.test new file mode 100755 index 00000000000..d00ad67235a --- /dev/null +++ b/mysql-test/suite/jp/t/jp_locate_ucs2.test @@ -0,0 +1,144 @@ +--source include/have_ucs2.inc + +--disable_warnings +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +--enable_warnings + +# +# Test LOCATE() function with Japanese characters in ucs2 encoding +# + +SET NAMES ujis; +SET character_set_database = ucs2; +SET collation_connection = ucs2_general_ci; + +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; + +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); + +#InnoDB +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; + +#MyISAM +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; + + +#HEAP +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; + + +#BDB +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; + + +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; diff --git a/mysql-test/suite/jp/t/jp_locate_ujis.test b/mysql-test/suite/jp/t/jp_locate_ujis.test new file mode 100755 index 00000000000..5375fad75db --- /dev/null +++ b/mysql-test/suite/jp/t/jp_locate_ujis.test @@ -0,0 +1,143 @@ +--source include/have_ujis.inc + +--disable_warnings +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +--enable_warnings + +# +# Test LOCATE() function with Japanese characters in ujis encoding +# + +SET NAMES ujis; +SET character_set_database = ujis; + +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; + +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); + +#InnoDB +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; + +#MyISAM +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; + + +#HEAP +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; + + +#BDB +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; +SELECT LOCATE('',`ã`) from `ԣ`; + + +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; diff --git a/mysql-test/suite/jp/t/jp_locate_utf8.test b/mysql-test/suite/jp/t/jp_locate_utf8.test new file mode 100755 index 00000000000..cbf6714e322 --- /dev/null +++ b/mysql-test/suite/jp/t/jp_locate_utf8.test @@ -0,0 +1,141 @@ +--disable_warnings +drop table if exists `T1`; +drop table if exists `T2`; +drop table if exists `T3`; +drop table if exists `T4`; +drop table if exists `T5`; +drop table if exists `T6`; +drop table if exists `T7`; +drop table if exists `T8`; +drop table if exists `T9`; +drop table if exists `T10`; +--enable_warnings + +# +# Test LOCATE() function with Japanese characters in utf8 encoding +# + +SET NAMES utf8; +SET character_set_database = utf8; + +CREATE TABLE `T1` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T2` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T3` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T4` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T5` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T6` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T7` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T8` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T9` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T10` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +CREATE TABLE `T11` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +CREATE TABLE `T12` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; + +INSERT INTO `T1` VALUES ('アイウエオ'); +INSERT INTO `T2` VALUES ('あいうえお'); +INSERT INTO `T3` VALUES ('龔龖龗龞龡'); +INSERT INTO `T4` VALUES ('アイウエオ'); +INSERT INTO `T5` VALUES ('あいうえお'); +INSERT INTO `T6` VALUES ('龔龖龗龞龡'); +INSERT INTO `T7` VALUES ('アイウエオ'); +INSERT INTO `T8` VALUES ('あいうえお'); +INSERT INTO `T9` VALUES ('龔龖龗龞龡'); +INSERT INTO `T10` VALUES ('アイウエオ'); +INSERT INTO `T11` VALUES ('あいうえお'); +INSERT INTO `T12` VALUES ('龔龖龗龞龡'); + +#InnoDB +SELECT LOCATE('ア',`C1`) from `T1`; +SELECT LOCATE('イ',`C1`) from `T1`; +SELECT LOCATE('ウ',`C1`) from `T1`; +SELECT LOCATE('エ',`C1`) from `T1`; +SELECT LOCATE('オ',`C1`) from `T1`; +SELECT LOCATE('ン',`C1`) from `T1`; +SELECT LOCATE('あ',`C1`) from `T2`; +SELECT LOCATE('い',`C1`) from `T2`; +SELECT LOCATE('う',`C1`) from `T2`; +SELECT LOCATE('え',`C1`) from `T2`; +SELECT LOCATE('お',`C1`) from `T2`; +SELECT LOCATE('ん',`C1`) from `T2`; +SELECT LOCATE('龔',`C1`) from `T3`; +SELECT LOCATE('龖',`C1`) from `T3`; +SELECT LOCATE('龗',`C1`) from `T3`; +SELECT LOCATE('龞',`C1`) from `T3`; +SELECT LOCATE('龡',`C1`) from `T3`; +SELECT LOCATE('丂',`C1`) from `T3`; + +#MyISAM +SELECT LOCATE('ア',`C1`) from `T4`; +SELECT LOCATE('イ',`C1`) from `T4`; +SELECT LOCATE('ウ',`C1`) from `T4`; +SELECT LOCATE('エ',`C1`) from `T4`; +SELECT LOCATE('オ',`C1`) from `T4`; +SELECT LOCATE('ン',`C1`) from `T4`; +SELECT LOCATE('あ',`C1`) from `T5`; +SELECT LOCATE('い',`C1`) from `T5`; +SELECT LOCATE('う',`C1`) from `T5`; +SELECT LOCATE('え',`C1`) from `T5`; +SELECT LOCATE('お',`C1`) from `T5`; +SELECT LOCATE('ん',`C1`) from `T5`; +SELECT LOCATE('龔',`C1`) from `T6`; +SELECT LOCATE('龖',`C1`) from `T6`; +SELECT LOCATE('龗',`C1`) from `T6`; +SELECT LOCATE('龞',`C1`) from `T6`; +SELECT LOCATE('龡',`C1`) from `T6`; +SELECT LOCATE('丂',`C1`) from `T6`; + + +#HEAP +SELECT LOCATE('ア',`C1`) from `T7`; +SELECT LOCATE('イ',`C1`) from `T7`; +SELECT LOCATE('ウ',`C1`) from `T7`; +SELECT LOCATE('エ',`C1`) from `T7`; +SELECT LOCATE('オ',`C1`) from `T7`; +SELECT LOCATE('ン',`C1`) from `T7`; +SELECT LOCATE('あ',`C1`) from `T8`; +SELECT LOCATE('い',`C1`) from `T8`; +SELECT LOCATE('う',`C1`) from `T8`; +SELECT LOCATE('え',`C1`) from `T8`; +SELECT LOCATE('お',`C1`) from `T8`; +SELECT LOCATE('ん',`C1`) from `T8`; +SELECT LOCATE('龔',`C1`) from `T9`; +SELECT LOCATE('龖',`C1`) from `T9`; +SELECT LOCATE('龗',`C1`) from `T9`; +SELECT LOCATE('龞',`C1`) from `T9`; +SELECT LOCATE('龡',`C1`) from `T9`; +SELECT LOCATE('丂',`C1`) from `T9`; + + +#BDB +SELECT LOCATE('ア',`C1`) from `T10`; +SELECT LOCATE('イ',`C1`) from `T10`; +SELECT LOCATE('ウ',`C1`) from `T10`; +SELECT LOCATE('エ',`C1`) from `T10`; +SELECT LOCATE('オ',`C1`) from `T10`; +SELECT LOCATE('ン',`C1`) from `T10`; +SELECT LOCATE('あ',`C1`) from `T11`; +SELECT LOCATE('い',`C1`) from `T11`; +SELECT LOCATE('う',`C1`) from `T11`; +SELECT LOCATE('え',`C1`) from `T11`; +SELECT LOCATE('お',`C1`) from `T11`; +SELECT LOCATE('ん',`C1`) from `T11`; +SELECT LOCATE('龔',`C1`) from `T12`; +SELECT LOCATE('龖',`C1`) from `T12`; +SELECT LOCATE('龗',`C1`) from `T12`; +SELECT LOCATE('龞',`C1`) from `T12`; +SELECT LOCATE('龡',`C1`) from `T12`; +SELECT LOCATE('丂',`C1`) from `T12`; + + +DROP TABLE `T1`; +DROP TABLE `T2`; +DROP TABLE `T3`; +DROP TABLE `T4`; +DROP TABLE `T5`; +DROP TABLE `T6`; +DROP TABLE `T7`; +DROP TABLE `T8`; +DROP TABLE `T9`; +DROP TABLE `T10`; +DROP TABLE `T11`; +DROP TABLE `T12`; diff --git a/mysql-test/suite/jp/t/jp_lpad_sjis.test b/mysql-test/suite/jp/t/jp_lpad_sjis.test new file mode 100755 index 00000000000..7038112cbc8 --- /dev/null +++ b/mysql-test/suite/jp/t/jp_lpad_sjis.test @@ -0,0 +1,81 @@ +--character_set sjis +--disable_warnings +drop table if exists `sP`; +drop table if exists `sQ`; +drop table if exists `sR`; +drop table if exists `sS`; +drop table if exists `sT`; +drop table if exists `sU`; +drop table if exists `sV`; +drop table if exists `sW`; +drop table if exists `sX`; +drop table if exists `sPO`; +drop table if exists `sPP`; +drop table if exists `sPQ`; +--enable_warnings + +# +# Test LPAD() function with Japanese character in sjis encoding +# + +SET NAMES sjis; +SET character_set_database = sjis; + +CREATE TABLE `sP` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sQ` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sR` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sS` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sT` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sU` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sV` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sW` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sX` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sPO` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +CREATE TABLE `sPP` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +CREATE TABLE `sPQ` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; + +INSERT INTO `sP` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sQ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sR` VALUES ('\\\\\'),('\\\\'),('\\\'),('\\'),('\'),(''); +INSERT INTO `sS` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sT` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sU` VALUES ('\\\\\'),('\\\\'),('\\\'),('\\'),('\'),(''); +INSERT INTO `sV` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sW` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sX` VALUES ('\\\\\'),('\\\\'),('\\\'),('\\'),('\'),(''); +INSERT INTO `sPO` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sPP` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sPQ` VALUES ('\\\\\'),('\\\\'),('\\\'),('\\'),('\'),(''); + +#InnoDB +SELECT `bP`, LPAD(`bP`,5,'') FROM `sP`; +SELECT `bP`, LPAD(`bP`,5,'w') FROM `sQ`; +SELECT `bP`, LPAD(`bP`,5,'\') FROM `sR`; + +#MyISAM +SELECT `bP`, LPAD(`bP`,5,'') FROM `sS`; +SELECT `bP`, LPAD(`bP`,5,'w') FROM `sT`; +SELECT `bP`, LPAD(`bP`,5,'\' ) FROM `sU`; + +#HEAP +SELECT `bP`, LPAD(`bP`,5,'') FROM `sV`; +SELECT `bP`, LPAD(`bP`,5,'w') FROM `sW`; +SELECT `bP`, LPAD(`bP`,5,'\' ) FROM `sX`; + +#BDB +SELECT `bP`, LPAD(`bP`,5,'') FROM `sPO`; +SELECT `bP`, LPAD(`bP`,5,'w') FROM `sPP`; +SELECT `bP`, LPAD(`bP`,5,'\' ) FROM `sPQ`; + +DROP TABLE `sP`; +DROP TABLE `sQ`; +DROP TABLE `sR`; +DROP TABLE `sS`; +DROP TABLE `sT`; +DROP TABLE `sU`; +DROP TABLE `sV`; +DROP TABLE `sW`; +DROP TABLE `sX`; +DROP TABLE `sPO`; +DROP TABLE `sPP`; +DROP TABLE `sPQ`; diff --git a/mysql-test/suite/jp/t/jp_lpad_ucs2.test b/mysql-test/suite/jp/t/jp_lpad_ucs2.test new file mode 100755 index 00000000000..e3bead0855a --- /dev/null +++ b/mysql-test/suite/jp/t/jp_lpad_ucs2.test @@ -0,0 +1,83 @@ +--source include/have_ucs2.inc + +--disable_warnings +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +--enable_warnings + +# +# Test LPAD() function with Japanese character in ucs2 encoding +# + +SET NAMES ujis; +SET character_set_database = ucs2; +SET collation_connection = ucs2_general_ci; + +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; + +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); + +#InnoDB +SELECT `ã`, LPAD(`ã`,5,'') FROM `ԣ`; +SELECT `ã`, LPAD(`ã`,5,'') FROM `ԣ`; +SELECT `ã`, LPAD(`ã`,5,'') FROM `ԣ`; + +#MyISAM +SELECT `ã`, LPAD(`ã`,5,'') FROM `ԣ`; +SELECT `ã`, LPAD(`ã`,5,'') FROM `ԣ`; +SELECT `ã`, LPAD(`ã`,5,'' ) FROM `ԣ`; + +#HEAP +SELECT `ã`, LPAD(`ã`,5,'') FROM `ԣ`; +SELECT `ã`, LPAD(`ã`,5,'') FROM `ԣ`; +SELECT `ã`, LPAD(`ã`,5,'' ) FROM `ԣ`; + +#BDB +SELECT `ã`, LPAD(`ã`,5,'') FROM `ԣ`; +SELECT `ã`, LPAD(`ã`,5,'') FROM `ԣ`; +SELECT `ã`, LPAD(`ã`,5,'' ) FROM `ԣ`; + +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; diff --git a/mysql-test/suite/jp/t/jp_lpad_ujis.test b/mysql-test/suite/jp/t/jp_lpad_ujis.test new file mode 100755 index 00000000000..eea4877ec3a --- /dev/null +++ b/mysql-test/suite/jp/t/jp_lpad_ujis.test @@ -0,0 +1,82 @@ +--source include/have_ujis.inc + +--disable_warnings +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +--enable_warnings + +# +# Test LPAD() function with Japanese character in ujis encoding +# + +SET NAMES ujis; +SET character_set_database = ujis; + +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; + +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); + +#InnoDB +SELECT `ã`, LPAD(`ã`,5,'') FROM `ԣ`; +SELECT `ã`, LPAD(`ã`,5,'') FROM `ԣ`; +SELECT `ã`, LPAD(`ã`,5,'') FROM `ԣ`; + +#MyISAM +SELECT `ã`, LPAD(`ã`,5,'') FROM `ԣ`; +SELECT `ã`, LPAD(`ã`,5,'') FROM `ԣ`; +SELECT `ã`, LPAD(`ã`,5,'' ) FROM `ԣ`; + +#HEAP +SELECT `ã`, LPAD(`ã`,5,'') FROM `ԣ`; +SELECT `ã`, LPAD(`ã`,5,'') FROM `ԣ`; +SELECT `ã`, LPAD(`ã`,5,'' ) FROM `ԣ`; + +#BDB +SELECT `ã`, LPAD(`ã`,5,'') FROM `ԣ`; +SELECT `ã`, LPAD(`ã`,5,'') FROM `ԣ`; +SELECT `ã`, LPAD(`ã`,5,'' ) FROM `ԣ`; + +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; diff --git a/mysql-test/suite/jp/t/jp_lpad_utf8.test b/mysql-test/suite/jp/t/jp_lpad_utf8.test new file mode 100755 index 00000000000..599bf5eba28 --- /dev/null +++ b/mysql-test/suite/jp/t/jp_lpad_utf8.test @@ -0,0 +1,80 @@ +--disable_warnings +drop table if exists `T1`; +drop table if exists `T2`; +drop table if exists `T3`; +drop table if exists `T4`; +drop table if exists `T5`; +drop table if exists `T6`; +drop table if exists `T7`; +drop table if exists `T8`; +drop table if exists `T9`; +drop table if exists `T10`; +drop table if exists `T11`; +drop table if exists `T12`; +--enable_warnings + +# +# Test LPAD() function with Japanese character in utf8 encoding +# + +SET NAMES utf8; +SET character_set_database = utf8; + +CREATE TABLE `T1` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T2` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T3` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T4` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T5` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T6` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T7` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T8` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T9` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T10` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +CREATE TABLE `T11` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +CREATE TABLE `T12` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; + +INSERT INTO `T1` VALUES ('アイウエオ'),('アイウエ'),('アイウ'),('アイ'),('ア'),(''); +INSERT INTO `T2` VALUES ('あいうえお'),('あいうえ'),('あいう'),('あい'),('あ'),(''); +INSERT INTO `T3` VALUES ('龔龖龗龞龡'),('龔龖龗龞'),('龔龖龗'),('龔龖'),('龔'),(''); +INSERT INTO `T4` VALUES ('アイウエオ'),('アイウエ'),('アイウ'),('アイ'),('ア'),(''); +INSERT INTO `T5` VALUES ('あいうえお'),('あいうえ'),('あいう'),('あい'),('あ'),(''); +INSERT INTO `T6` VALUES ('龔龖龗龞龡'),('龔龖龗龞'),('龔龖龗'),('龔龖'),('龔'),(''); +INSERT INTO `T7` VALUES ('アイウエオ'),('アイウエ'),('アイウ'),('アイ'),('ア'),(''); +INSERT INTO `T8` VALUES ('あいうえお'),('あいうえ'),('あいう'),('あい'),('あ'),(''); +INSERT INTO `T9` VALUES ('龔龖龗龞龡'),('龔龖龗龞'),('龔龖龗'),('龔龖'),('龔'),(''); +INSERT INTO `T10` VALUES ('アイウエオ'),('アイウエ'),('アイウ'),('アイ'),('ア'),(''); +INSERT INTO `T11` VALUES ('あいうえお'),('あいうえ'),('あいう'),('あい'),('あ'),(''); +INSERT INTO `T12` VALUES ('龔龖龗龞龡'),('龔龖龗龞'),('龔龖龗'),('龔龖'),('龔'),(''); + +#InnoDB +SELECT `C1`, LPAD(`C1`,5,'。') FROM `T1`; +SELECT `C1`, LPAD(`C1`,5,'X') FROM `T2`; +SELECT `C1`, LPAD(`C1`,5,'丄') FROM `T3`; + +#MyISAM +SELECT `C1`, LPAD(`C1`,5,'。') FROM `T4`; +SELECT `C1`, LPAD(`C1`,5,'X') FROM `T5`; +SELECT `C1`, LPAD(`C1`,5,'丄' ) FROM `T6`; + +#HEAP +SELECT `C1`, LPAD(`C1`,5,'。') FROM `T7`; +SELECT `C1`, LPAD(`C1`,5,'X') FROM `T8`; +SELECT `C1`, LPAD(`C1`,5,'丄' ) FROM `T9`; + +#BDB +SELECT `C1`, LPAD(`C1`,5,'。') FROM `T10`; +SELECT `C1`, LPAD(`C1`,5,'X') FROM `T11`; +SELECT `C1`, LPAD(`C1`,5,'丄' ) FROM `T12`; + +DROP TABLE `T1`; +DROP TABLE `T2`; +DROP TABLE `T3`; +DROP TABLE `T4`; +DROP TABLE `T5`; +DROP TABLE `T6`; +DROP TABLE `T7`; +DROP TABLE `T8`; +DROP TABLE `T9`; +DROP TABLE `T10`; +DROP TABLE `T11`; +DROP TABLE `T12`; diff --git a/mysql-test/suite/jp/t/jp_ltrim_sjis.test b/mysql-test/suite/jp/t/jp_ltrim_sjis.test new file mode 100755 index 00000000000..864238df07c --- /dev/null +++ b/mysql-test/suite/jp/t/jp_ltrim_sjis.test @@ -0,0 +1,163 @@ +--character_set sjis +--disable_warnings +drop table if exists `sP`; +drop table if exists `sQ`; +drop table if exists `sR`; +drop table if exists `sS`; +drop table if exists `sT`; +drop table if exists `sU`; +drop table if exists `sV`; +drop table if exists `sW`; +drop table if exists `sX`; +drop table if exists `sPO`; +--enable_warnings + +# +# Test LTRIM() function with Japanese characters in sjis encoding +# + +SET NAMES sjis; +SET character_set_database = sjis; + +CREATE TABLE `sP` (`bP` char(8), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sQ` (`bP` char(8), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sR` (`bP` char(8), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sS` (`bP` char(8), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sT` (`bP` char(8), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sU` (`bP` char(8), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sV` (`bP` char(8), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sW` (`bP` char(8), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sX` (`bP` char(8), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sPO` (`bP` char(8), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +CREATE TABLE `sPP` (`bP` char(8), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +CREATE TABLE `sPQ` (`bP` char(8), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; + +INSERT INTO `sP` VALUES (''); +INSERT INTO `sP` VALUES (' '); +INSERT INTO `sP` VALUES (' '); +INSERT INTO `sP` VALUES (' '); +# Double byte spaces are not supposed to be trimed +INSERT INTO `sP` VALUES ('@'); +INSERT INTO `sP` VALUES ('@@'); +INSERT INTO `sP` VALUES ('@@@'); +INSERT INTO `sQ` VALUES (''); +INSERT INTO `sQ` VALUES (' '); +INSERT INTO `sQ` VALUES (' '); +INSERT INTO `sQ` VALUES (' '); +# Double byte spaces are not supposed to be trimed +INSERT INTO `sQ` VALUES ('@'); +INSERT INTO `sQ` VALUES ('@@'); +INSERT INTO `sQ` VALUES ('@@@'); +INSERT INTO `sR` VALUES ('\\\\\'); +INSERT INTO `sR` VALUES (' \\\\\'); +INSERT INTO `sR` VALUES (' \\\\\'); +INSERT INTO `sR` VALUES (' \\\\\'); +# Double byte spaces are not supposed to be trimed +INSERT INTO `sR` VALUES ('@\\\\\'); +INSERT INTO `sR` VALUES ('@@\\\\\'); +INSERT INTO `sR` VALUES ('@@@\\\\\'); +INSERT INTO `sS` VALUES (''); +INSERT INTO `sS` VALUES (' '); +INSERT INTO `sS` VALUES (' '); +INSERT INTO `sS` VALUES (' '); +# Double byte spaces are not supposed to be trimed +INSERT INTO `sS` VALUES ('@'); +INSERT INTO `sS` VALUES ('@@'); +INSERT INTO `sS` VALUES ('@@@'); +INSERT INTO `sT` VALUES (''); +INSERT INTO `sT` VALUES (' '); +INSERT INTO `sT` VALUES (' '); +INSERT INTO `sT` VALUES (' '); +# Double byte spaces are not supposed to be trimed +INSERT INTO `sT` VALUES ('@'); +INSERT INTO `sT` VALUES ('@@'); +INSERT INTO `sT` VALUES ('@@@'); +INSERT INTO `sU` VALUES ('\\\\\'); +INSERT INTO `sU` VALUES (' \\\\\'); +INSERT INTO `sU` VALUES (' \\\\\'); +INSERT INTO `sU` VALUES (' \\\\\'); +# Double byte spaces are not supposed to be trimed +INSERT INTO `sU` VALUES ('@\\\\\'); +INSERT INTO `sU` VALUES ('@@\\\\\'); +INSERT INTO `sU` VALUES ('@@@\\\\\'); +INSERT INTO `sV` VALUES (''); +INSERT INTO `sV` VALUES (' '); +INSERT INTO `sV` VALUES (' '); +INSERT INTO `sV` VALUES (' '); +# Double byte spaces are not supposed to be trimed +INSERT INTO `sV` VALUES ('@'); +INSERT INTO `sV` VALUES ('@@'); +INSERT INTO `sV` VALUES ('@@@'); +INSERT INTO `sW` VALUES (''); +INSERT INTO `sW` VALUES (' '); +INSERT INTO `sW` VALUES (' '); +INSERT INTO `sW` VALUES (' '); +# Double byte spaces are not supposed to be trimed +INSERT INTO `sW` VALUES ('@'); +INSERT INTO `sW` VALUES ('@@'); +INSERT INTO `sW` VALUES ('@@@'); +INSERT INTO `sX` VALUES ('\\\\\'); +INSERT INTO `sX` VALUES (' \\\\\'); +INSERT INTO `sX` VALUES (' \\\\\'); +INSERT INTO `sX` VALUES (' \\\\\'); +# Double byte spaces are not supposed to be trimed +INSERT INTO `sX` VALUES ('@\\\\\'); +INSERT INTO `sX` VALUES ('@@\\\\\'); +INSERT INTO `sX` VALUES ('@@@\\\\\'); +INSERT INTO `sPO` VALUES (''); +INSERT INTO `sPO` VALUES (' '); +INSERT INTO `sPO` VALUES (' '); +INSERT INTO `sPO` VALUES (' '); +# Double byte spaces are not supposed to be trimed +INSERT INTO `sPO` VALUES ('@'); +INSERT INTO `sPO` VALUES ('@@'); +INSERT INTO `sPO` VALUES ('@@@'); +INSERT INTO `sPP` VALUES (''); +INSERT INTO `sPP` VALUES (' '); +INSERT INTO `sPP` VALUES (' '); +INSERT INTO `sPP` VALUES (' '); +# Double byte spaces are not supposed to be trimed +INSERT INTO `sPP` VALUES ('@'); +INSERT INTO `sPP` VALUES ('@@'); +INSERT INTO `sPP` VALUES ('@@@'); +INSERT INTO `sPQ` VALUES ('\\\\\'); +INSERT INTO `sPQ` VALUES (' \\\\\'); +INSERT INTO `sPQ` VALUES (' \\\\\'); +INSERT INTO `sPQ` VALUES (' \\\\\'); +# Double byte spaces are not supposed to be trimed +INSERT INTO `sPQ` VALUES ('@\\\\\'); +INSERT INTO `sPQ` VALUES ('@@\\\\\'); +INSERT INTO `sPQ` VALUES ('@@@\\\\\'); + +#InnoDB +SELECT LTRIM(`bP`) from `sP`; +SELECT LTRIM(`bP`) from `sQ`; +SELECT LTRIM(`bP`) from `sR`; + +#MyISAM +SELECT LTRIM(`bP`) from `sS`; +SELECT LTRIM(`bP`) from `sT`; +SELECT LTRIM(`bP`) from `sU`; + +#HEAP +SELECT LTRIM(`bP`) from `sV`; +SELECT LTRIM(`bP`) from `sW`; +SELECT LTRIM(`bP`) from `sX`; + +#BDB +SELECT LTRIM(`bP`) from `sPO`; +SELECT LTRIM(`bP`) from `sPP`; +SELECT LTRIM(`bP`) from `sPQ`; + +DROP TABLE `sP`; +DROP TABLE `sQ`; +DROP TABLE `sR`; +DROP TABLE `sS`; +DROP TABLE `sT`; +DROP TABLE `sU`; +DROP TABLE `sV`; +DROP TABLE `sW`; +DROP TABLE `sX`; +DROP TABLE `sPO`; +DROP TABLE `sPP`; +DROP TABLE `sPQ`; diff --git a/mysql-test/suite/jp/t/jp_ltrim_ucs2.test b/mysql-test/suite/jp/t/jp_ltrim_ucs2.test new file mode 100755 index 00000000000..0ae647f5222 --- /dev/null +++ b/mysql-test/suite/jp/t/jp_ltrim_ucs2.test @@ -0,0 +1,165 @@ +--source include/have_ucs2.inc + +--disable_warnings +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +--enable_warnings + +# +# Test LTRIM() function with Japanese characters in ucs2 encoding +# + +SET NAMES ujis; +SET character_set_database = ucs2; +SET collation_connection = ucs2_general_ci; + +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; + +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +# Double byte spaces are not supposed to be trimed +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +# Double byte spaces are not supposed to be trimed +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (' ܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (' ܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (' ܏ݏޏߏ'); +# Double byte spaces are not supposed to be trimed +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +# Double byte spaces are not supposed to be trimed +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +# Double byte spaces are not supposed to be trimed +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (' ܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (' ܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (' ܏ݏޏߏ'); +# Double byte spaces are not supposed to be trimed +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +# Double byte spaces are not supposed to be trimed +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +# Double byte spaces are not supposed to be trimed +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (' ܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (' ܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (' ܏ݏޏߏ'); +# Double byte spaces are not supposed to be trimed +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +# Double byte spaces are not supposed to be trimed +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +# Double byte spaces are not supposed to be trimed +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (' ܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (' ܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (' ܏ݏޏߏ'); +# Double byte spaces are not supposed to be trimed +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); + +#InnoDB +SELECT LTRIM(`ã`) from `ԣ`; +SELECT LTRIM(`ã`) from `ԣ`; +SELECT LTRIM(`ã`) from `ԣ`; + +#MyISAM +SELECT LTRIM(`ã`) from `ԣ`; +SELECT LTRIM(`ã`) from `ԣ`; +SELECT LTRIM(`ã`) from `ԣ`; + +#HEAP +SELECT LTRIM(`ã`) from `ԣ`; +SELECT LTRIM(`ã`) from `ԣ`; +SELECT LTRIM(`ã`) from `ԣ`; + +#BDB +SELECT LTRIM(`ã`) from `ԣ`; +SELECT LTRIM(`ã`) from `ԣ`; +SELECT LTRIM(`ã`) from `ԣ`; + +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; diff --git a/mysql-test/suite/jp/t/jp_ltrim_ujis.test b/mysql-test/suite/jp/t/jp_ltrim_ujis.test new file mode 100755 index 00000000000..64363aa330b --- /dev/null +++ b/mysql-test/suite/jp/t/jp_ltrim_ujis.test @@ -0,0 +1,164 @@ +--source include/have_ujis.inc + +--disable_warnings +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +--enable_warnings + +# +# Test LTRIM() function with Japanese characters in ujis encoding +# + +SET NAMES ujis; +SET character_set_database = ujis; + +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; + +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +# Double byte spaces are not supposed to be trimed +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +# Double byte spaces are not supposed to be trimed +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (' ܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (' ܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (' ܏ݏޏߏ'); +# Double byte spaces are not supposed to be trimed +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +# Double byte spaces are not supposed to be trimed +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +# Double byte spaces are not supposed to be trimed +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (' ܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (' ܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (' ܏ݏޏߏ'); +# Double byte spaces are not supposed to be trimed +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +# Double byte spaces are not supposed to be trimed +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +# Double byte spaces are not supposed to be trimed +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (' ܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (' ܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (' ܏ݏޏߏ'); +# Double byte spaces are not supposed to be trimed +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +# Double byte spaces are not supposed to be trimed +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +# Double byte spaces are not supposed to be trimed +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (' ܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (' ܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (' ܏ݏޏߏ'); +# Double byte spaces are not supposed to be trimed +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); + +#InnoDB +SELECT LTRIM(`ã`) from `ԣ`; +SELECT LTRIM(`ã`) from `ԣ`; +SELECT LTRIM(`ã`) from `ԣ`; + +#MyISAM +SELECT LTRIM(`ã`) from `ԣ`; +SELECT LTRIM(`ã`) from `ԣ`; +SELECT LTRIM(`ã`) from `ԣ`; + +#HEAP +SELECT LTRIM(`ã`) from `ԣ`; +SELECT LTRIM(`ã`) from `ԣ`; +SELECT LTRIM(`ã`) from `ԣ`; + +#BDB +SELECT LTRIM(`ã`) from `ԣ`; +SELECT LTRIM(`ã`) from `ԣ`; +SELECT LTRIM(`ã`) from `ԣ`; + +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; diff --git a/mysql-test/suite/jp/t/jp_ltrim_utf8.test b/mysql-test/suite/jp/t/jp_ltrim_utf8.test new file mode 100755 index 00000000000..846ce11163b --- /dev/null +++ b/mysql-test/suite/jp/t/jp_ltrim_utf8.test @@ -0,0 +1,162 @@ +--disable_warnings +drop table if exists `T1`; +drop table if exists `T2`; +drop table if exists `T3`; +drop table if exists `T4`; +drop table if exists `T5`; +drop table if exists `T6`; +drop table if exists `T7`; +drop table if exists `T8`; +drop table if exists `T9`; +drop table if exists `T10`; +--enable_warnings + +# +# Test LTRIM() function with Japanese characters in utf8 encoding +# + +SET NAMES utf8; +SET character_set_database = utf8; + +CREATE TABLE `T1` (`C1` char(8), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T2` (`C1` char(8), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T3` (`C1` char(8), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T4` (`C1` char(8), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T5` (`C1` char(8), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T6` (`C1` char(8), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T7` (`C1` char(8), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T8` (`C1` char(8), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T9` (`C1` char(8), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T10` (`C1` char(8), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +CREATE TABLE `T11` (`C1` char(8), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +CREATE TABLE `T12` (`C1` char(8), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; + +INSERT INTO `T1` VALUES ('アイウエオ'); +INSERT INTO `T1` VALUES (' アイウエオ'); +INSERT INTO `T1` VALUES (' アイウエオ'); +INSERT INTO `T1` VALUES (' アイウエオ'); +# Double byte spaces are not supposed to be trimed +INSERT INTO `T1` VALUES (' アイウエオ'); +INSERT INTO `T1` VALUES ('  アイウエオ'); +INSERT INTO `T1` VALUES ('   アイウエオ'); +INSERT INTO `T2` VALUES ('あいうえお'); +INSERT INTO `T2` VALUES (' あいうえお'); +INSERT INTO `T2` VALUES (' あいうえお'); +INSERT INTO `T2` VALUES (' あいうえお'); +# Double byte spaces are not supposed to be trimed +INSERT INTO `T2` VALUES (' あいうえお'); +INSERT INTO `T2` VALUES ('  あいうえお'); +INSERT INTO `T2` VALUES ('   あいうえお'); +INSERT INTO `T3` VALUES ('龔龖龗龞龡'); +INSERT INTO `T3` VALUES (' 龔龖龗龞龡'); +INSERT INTO `T3` VALUES (' 龔龖龗龞龡'); +INSERT INTO `T3` VALUES (' 龔龖龗龞龡'); +# Double byte spaces are not supposed to be trimed +INSERT INTO `T3` VALUES (' 龔龖龗龞龡'); +INSERT INTO `T3` VALUES ('  龔龖龗龞龡'); +INSERT INTO `T3` VALUES ('   龔龖龗龞龡'); +INSERT INTO `T4` VALUES ('アイウエオ'); +INSERT INTO `T4` VALUES (' アイウエオ'); +INSERT INTO `T4` VALUES (' アイウエオ'); +INSERT INTO `T4` VALUES (' アイウエオ'); +# Double byte spaces are not supposed to be trimed +INSERT INTO `T4` VALUES (' アイウエオ'); +INSERT INTO `T4` VALUES ('  アイウエオ'); +INSERT INTO `T4` VALUES ('   アイウエオ'); +INSERT INTO `T5` VALUES ('あいうえお'); +INSERT INTO `T5` VALUES (' あいうえお'); +INSERT INTO `T5` VALUES (' あいうえお'); +INSERT INTO `T5` VALUES (' あいうえお'); +# Double byte spaces are not supposed to be trimed +INSERT INTO `T5` VALUES (' あいうえお'); +INSERT INTO `T5` VALUES ('  あいうえお'); +INSERT INTO `T5` VALUES ('   あいうえお'); +INSERT INTO `T6` VALUES ('龔龖龗龞龡'); +INSERT INTO `T6` VALUES (' 龔龖龗龞龡'); +INSERT INTO `T6` VALUES (' 龔龖龗龞龡'); +INSERT INTO `T6` VALUES (' 龔龖龗龞龡'); +# Double byte spaces are not supposed to be trimed +INSERT INTO `T6` VALUES (' 龔龖龗龞龡'); +INSERT INTO `T6` VALUES ('  龔龖龗龞龡'); +INSERT INTO `T6` VALUES ('   龔龖龗龞龡'); +INSERT INTO `T7` VALUES ('アイウエオ'); +INSERT INTO `T7` VALUES (' アイウエオ'); +INSERT INTO `T7` VALUES (' アイウエオ'); +INSERT INTO `T7` VALUES (' アイウエオ'); +# Double byte spaces are not supposed to be trimed +INSERT INTO `T7` VALUES (' アイウエオ'); +INSERT INTO `T7` VALUES ('  アイウエオ'); +INSERT INTO `T7` VALUES ('   アイウエオ'); +INSERT INTO `T8` VALUES ('あいうえお'); +INSERT INTO `T8` VALUES (' あいうえお'); +INSERT INTO `T8` VALUES (' あいうえお'); +INSERT INTO `T8` VALUES (' あいうえお'); +# Double byte spaces are not supposed to be trimed +INSERT INTO `T8` VALUES (' あいうえお'); +INSERT INTO `T8` VALUES ('  あいうえお'); +INSERT INTO `T8` VALUES ('   あいうえお'); +INSERT INTO `T9` VALUES ('龔龖龗龞龡'); +INSERT INTO `T9` VALUES (' 龔龖龗龞龡'); +INSERT INTO `T9` VALUES (' 龔龖龗龞龡'); +INSERT INTO `T9` VALUES (' 龔龖龗龞龡'); +# Double byte spaces are not supposed to be trimed +INSERT INTO `T9` VALUES (' 龔龖龗龞龡'); +INSERT INTO `T9` VALUES ('  龔龖龗龞龡'); +INSERT INTO `T9` VALUES ('   龔龖龗龞龡'); +INSERT INTO `T10` VALUES ('アイウエオ'); +INSERT INTO `T10` VALUES (' アイウエオ'); +INSERT INTO `T10` VALUES (' アイウエオ'); +INSERT INTO `T10` VALUES (' アイウエオ'); +# Double byte spaces are not supposed to be trimed +INSERT INTO `T10` VALUES (' アイウエオ'); +INSERT INTO `T10` VALUES ('  アイウエオ'); +INSERT INTO `T10` VALUES ('   アイウエオ'); +INSERT INTO `T11` VALUES ('あいうえお'); +INSERT INTO `T11` VALUES (' あいうえお'); +INSERT INTO `T11` VALUES (' あいうえお'); +INSERT INTO `T11` VALUES (' あいうえお'); +# Double byte spaces are not supposed to be trimed +INSERT INTO `T11` VALUES (' あいうえお'); +INSERT INTO `T11` VALUES ('  あいうえお'); +INSERT INTO `T11` VALUES ('   あいうえお'); +INSERT INTO `T12` VALUES ('龔龖龗龞龡'); +INSERT INTO `T12` VALUES (' 龔龖龗龞龡'); +INSERT INTO `T12` VALUES (' 龔龖龗龞龡'); +INSERT INTO `T12` VALUES (' 龔龖龗龞龡'); +# Double byte spaces are not supposed to be trimed +INSERT INTO `T12` VALUES (' 龔龖龗龞龡'); +INSERT INTO `T12` VALUES ('  龔龖龗龞龡'); +INSERT INTO `T12` VALUES ('   龔龖龗龞龡'); + +#InnoDB +SELECT LTRIM(`C1`) from `T1`; +SELECT LTRIM(`C1`) from `T2`; +SELECT LTRIM(`C1`) from `T3`; + +#MyISAM +SELECT LTRIM(`C1`) from `T4`; +SELECT LTRIM(`C1`) from `T5`; +SELECT LTRIM(`C1`) from `T6`; + +#HEAP +SELECT LTRIM(`C1`) from `T7`; +SELECT LTRIM(`C1`) from `T8`; +SELECT LTRIM(`C1`) from `T9`; + +#BDB +SELECT LTRIM(`C1`) from `T10`; +SELECT LTRIM(`C1`) from `T11`; +SELECT LTRIM(`C1`) from `T12`; + +DROP TABLE `T1`; +DROP TABLE `T2`; +DROP TABLE `T3`; +DROP TABLE `T4`; +DROP TABLE `T5`; +DROP TABLE `T6`; +DROP TABLE `T7`; +DROP TABLE `T8`; +DROP TABLE `T9`; +DROP TABLE `T10`; +DROP TABLE `T11`; +DROP TABLE `T12`; diff --git a/mysql-test/suite/jp/t/jp_ps_sjis.test b/mysql-test/suite/jp/t/jp_ps_sjis.test new file mode 100755 index 00000000000..cc93dca2a79 --- /dev/null +++ b/mysql-test/suite/jp/t/jp_ps_sjis.test @@ -0,0 +1,454 @@ +--character_set sjis +--disable_warnings +DROP TABLE IF EXISTS t1; +DROP TABLE IF EXISTS t2; +DROP TABLE IF EXISTS t3; +DROP TABLE IF EXISTS t4; +--enable_warnings + +# +# Test Prepares Statement with Japanese character in sjis encoding +# + +SET NAMES sjis; +SET character_set_database = sjis; + +### Test InnoDB ### +CREATE TABLE t1(c1 char(3)) DEFAULT CHARSET = sjis ENGINE = InnoDB; +CREATE TABLE t2(c1 char(3)) DEFAULT CHARSET = sjis ENGINE = InnoDB; +CREATE TABLE t3( + `` char(1), + `` char(1), + `\` char(1) +)DEFAULT CHARSET = sjis ENGINE = InnoDB; +CREATE TABLE t4(c1 char(1)) DEFAULT CHARSET = sjis ENGINE = InnoDB; + +INSERT INTO t1 VALUES ('xxx'); +INSERT INTO t2 VALUES ('\'); +INSERT INTO t3 VALUES ('x','x','x'),('x','x','x'),('y','y','y'),('y','y','y'),('z','z','z'),('z','z','z'); +INSERT INTO t4 VALUES (''),(''),('\'); + +# Japanese parameter for column name +# the parameter for stmt is not interpreted as column name +PREPARE stmt1 FROM 'SELECT ? FROM t3'; +PREPARE stmt2 FROM 'SELECT * FROM t3 ORDER BY ?'; +PREPARE stmt3 FROM 'SELECT COUNT(*) FROM t3 GROUP BY ?'; +# Japanese parameter for function argument +PREPARE stmt4 FROM 'SELECT CHAR_LENGTH(?)'; +PREPARE stmt5 FROM 'SELECT CHARSET(?)'; +PREPARE stmt6 FROM 'SELECT INSERT(c1,1,1,?) FROM t1'; +PREPARE stmt7 FROM 'SELECT INSTR(c1,?) FROM t2'; +PREPARE stmt8 FROM 'SELECT LOCATE(?,c1) FROM t2'; +PREPARE stmt9 FROM 'SELECT LPAD(c1,10,?) FROM t1'; +PREPARE stmt10 FROM 'SELECT REPLACE(c1,?,\'x\') FROM t2'; +PREPARE stmt11 FROM 'SELECT REPLACE(c1,\'x\',?) FROM t1'; +PREPARE stmt12 FROM 'SELECT RPAD(c1,10,?) FROM t1'; +# Japanese parameter for UPDATE +PREPARE stmt13 FROM 'UPDATE t4 SET c1=\'x\' WHERE c1=?'; +PREPARE stmt14 FROM 'UPDATE t4 SET c1=? WHERE c1=\'x\''; + +## Test jisx0201 ## +SET @arg = ''; +EXECUTE stmt1 USING @arg; +EXECUTE stmt2 USING @arg; +EXECUTE stmt3 USING @arg; +EXECUTE stmt4 USING @arg; +EXECUTE stmt5 USING @arg; +EXECUTE stmt6 USING @arg; +EXECUTE stmt7 USING @arg; +EXECUTE stmt8 USING @arg; +EXECUTE stmt9 USING @arg; +EXECUTE stmt10 USING @arg; +EXECUTE stmt11 USING @arg; +EXECUTE stmt12 USING @arg; +EXECUTE stmt13 USING @arg; +SELECT * FROM t4; +EXECUTE stmt14 USING @arg; +SELECT * FROM t4; + +## Test jisx0208 ## +SET @arg = ''; +EXECUTE stmt1 USING @arg; +EXECUTE stmt2 USING @arg; +EXECUTE stmt3 USING @arg; +EXECUTE stmt4 USING @arg; +EXECUTE stmt5 USING @arg; +EXECUTE stmt6 USING @arg; +EXECUTE stmt7 USING @arg; +EXECUTE stmt8 USING @arg; +EXECUTE stmt9 USING @arg; +EXECUTE stmt10 USING @arg; +EXECUTE stmt11 USING @arg; +EXECUTE stmt12 USING @arg; +EXECUTE stmt13 USING @arg; +SELECT * FROM t4; +EXECUTE stmt14 USING @arg; +SELECT * FROM t4; + +# Test jisx0212 ## +SET @arg = '\'; +EXECUTE stmt1 USING @arg; +EXECUTE stmt2 USING @arg; +EXECUTE stmt3 USING @arg; +EXECUTE stmt4 USING @arg; +EXECUTE stmt5 USING @arg; +EXECUTE stmt6 USING @arg; +EXECUTE stmt7 USING @arg; +EXECUTE stmt8 USING @arg; +EXECUTE stmt9 USING @arg; +EXECUTE stmt10 USING @arg; +EXECUTE stmt11 USING @arg; +EXECUTE stmt12 USING @arg; +EXECUTE stmt13 USING @arg; +SELECT * FROM t4; +EXECUTE stmt14 USING @arg; +SELECT * FROM t4; + +DEALLOCATE PREPARE stmt1; +DEALLOCATE PREPARE stmt2; +DEALLOCATE PREPARE stmt3; +DEALLOCATE PREPARE stmt4; +DEALLOCATE PREPARE stmt5; +DEALLOCATE PREPARE stmt6; +DEALLOCATE PREPARE stmt7; +DEALLOCATE PREPARE stmt8; +DEALLOCATE PREPARE stmt9; +DEALLOCATE PREPARE stmt10; +DEALLOCATE PREPARE stmt11; +DEALLOCATE PREPARE stmt12; +DEALLOCATE PREPARE stmt13; +DEALLOCATE PREPARE stmt14; + +DROP TABLE t1; +DROP TABLE t2; +DROP TABLE t3; +DROP TABLE t4; + +### Test MyISAM ### +CREATE TABLE t1(c1 char(3)) DEFAULT CHARSET = sjis ENGINE = MyISAM; +CREATE TABLE t2(c1 char(3)) DEFAULT CHARSET = sjis ENGINE = MyISAM; +CREATE TABLE t3( + `` char(1), + `` char(1), + `\` char(1) +)DEFAULT CHARSET = sjis ENGINE = MyISAM; +CREATE TABLE t4(c1 char(1)) DEFAULT CHARSET = sjis ENGINE = MyISAM; + +INSERT INTO t1 VALUES ('xxx'); +INSERT INTO t2 VALUES ('\'); +INSERT INTO t3 VALUES ('x','x','x'),('x','x','x'),('y','y','y'),('y','y','y'),('z','z','z'),('z','z','z'); +INSERT INTO t4 VALUES (''),(''),('\' ); + +# Japanese parameter for column name +PREPARE stmt1 FROM 'SELECT ? FROM t3'; +PREPARE stmt2 FROM 'SELECT * FROM t3 ORDER BY ?'; +PREPARE stmt3 FROM 'SELECT COUNT(*) FROM t3 GROUP BY ?'; +# Japanese parameter for function argument +PREPARE stmt4 FROM 'SELECT CHAR_LENGTH(?)'; +PREPARE stmt5 FROM 'SELECT CHARSET(?)'; +PREPARE stmt6 FROM 'SELECT INSERT(c1,1,1,?) FROM t1'; +PREPARE stmt7 FROM 'SELECT INSTR(c1,?) FROM t2'; +PREPARE stmt8 FROM 'SELECT LOCATE(?,c1) FROM t2'; +PREPARE stmt9 FROM 'SELECT LPAD(c1,10,?) FROM t1'; +PREPARE stmt10 FROM 'SELECT REPLACE(c1,?,\'x\') FROM t2'; +PREPARE stmt11 FROM 'SELECT REPLACE(c1,\'x\',?) FROM t1'; +PREPARE stmt12 FROM 'SELECT RPAD(c1,10,?) FROM t1'; +# Japanese parameter for UPDATE +PREPARE stmt13 FROM 'UPDATE t4 SET c1=\'x\' WHERE c1=?'; +PREPARE stmt14 FROM 'UPDATE t4 SET c1=? WHERE c1=\'x\''; + +## Test jisx0201 ## +SET @arg = ''; +EXECUTE stmt1 USING @arg; +EXECUTE stmt2 USING @arg; +EXECUTE stmt3 USING @arg; +EXECUTE stmt4 USING @arg; +EXECUTE stmt5 USING @arg; +EXECUTE stmt6 USING @arg; +EXECUTE stmt7 USING @arg; +EXECUTE stmt8 USING @arg; +EXECUTE stmt9 USING @arg; +EXECUTE stmt10 USING @arg; +EXECUTE stmt11 USING @arg; +EXECUTE stmt12 USING @arg; +EXECUTE stmt13 USING @arg; +SELECT * FROM t4; +EXECUTE stmt14 USING @arg; +SELECT * FROM t4; + +## Test jisx0208 ## +SET @arg = ''; +EXECUTE stmt1 USING @arg; +EXECUTE stmt2 USING @arg; +EXECUTE stmt3 USING @arg; +EXECUTE stmt4 USING @arg; +EXECUTE stmt5 USING @arg; +EXECUTE stmt6 USING @arg; +EXECUTE stmt7 USING @arg; +EXECUTE stmt8 USING @arg; +EXECUTE stmt9 USING @arg; +EXECUTE stmt10 USING @arg; +EXECUTE stmt11 USING @arg; +EXECUTE stmt12 USING @arg; +EXECUTE stmt13 USING @arg; +SELECT * FROM t4; +EXECUTE stmt14 USING @arg; +SELECT * FROM t4; + +## Test jisx0212 ## +SET @arg = '\'; +EXECUTE stmt1 USING @arg; +EXECUTE stmt2 USING @arg; +EXECUTE stmt3 USING @arg; +EXECUTE stmt4 USING @arg; +EXECUTE stmt5 USING @arg; +EXECUTE stmt6 USING @arg; +EXECUTE stmt7 USING @arg; +EXECUTE stmt8 USING @arg; +EXECUTE stmt9 USING @arg; +EXECUTE stmt10 USING @arg; +EXECUTE stmt11 USING @arg; +EXECUTE stmt12 USING @arg; +EXECUTE stmt13 USING @arg; +SELECT * FROM t4; +EXECUTE stmt14 USING @arg; +SELECT * FROM t4; + +DEALLOCATE PREPARE stmt1; +DEALLOCATE PREPARE stmt2; +DEALLOCATE PREPARE stmt3; +DEALLOCATE PREPARE stmt4; +DEALLOCATE PREPARE stmt5; +DEALLOCATE PREPARE stmt6; +DEALLOCATE PREPARE stmt7; +DEALLOCATE PREPARE stmt8; +DEALLOCATE PREPARE stmt9; +DEALLOCATE PREPARE stmt10; +DEALLOCATE PREPARE stmt11; +DEALLOCATE PREPARE stmt12; +DEALLOCATE PREPARE stmt13; +DEALLOCATE PREPARE stmt14; + +DROP TABLE t1; +DROP TABLE t2; +DROP TABLE t3; +DROP TABLE t4; + +### Test HEAP ### +CREATE TABLE t1(c1 char(3)) DEFAULT CHARSET = sjis ENGINE = HEAP; +CREATE TABLE t2(c1 char(3)) DEFAULT CHARSET = sjis ENGINE = HEAP; +CREATE TABLE t3( + `` char(1), + `` char(1), + `\` char(1) +)DEFAULT CHARSET = sjis ENGINE = HEAP; +CREATE TABLE t4(c1 char(1)) DEFAULT CHARSET = sjis ENGINE =HEAP; + +INSERT INTO t1 VALUES ('xxx'); +INSERT INTO t2 VALUES ('\'); +INSERT INTO t3 VALUES ('x','x','x'),('x','x','x'),('y','y','y'),('y','y','y'),('z','z','z'),('z','z','z'); +INSERT INTO t4 VALUES (''),(''),('\' ); + +# Japanese parameter for column name +PREPARE stmt1 FROM 'SELECT ? FROM t3'; +PREPARE stmt2 FROM 'SELECT * FROM t3 ORDER BY ?'; +PREPARE stmt3 FROM 'SELECT COUNT(*) FROM t3 GROUP BY ?'; +# Japanese parameter for function argument +PREPARE stmt4 FROM 'SELECT CHAR_LENGTH(?)'; +PREPARE stmt5 FROM 'SELECT CHARSET(?)'; +PREPARE stmt6 FROM 'SELECT INSERT(c1,1,1,?) FROM t1'; +PREPARE stmt7 FROM 'SELECT INSTR(c1,?) FROM t2'; +PREPARE stmt8 FROM 'SELECT LOCATE(?,c1) FROM t2'; +PREPARE stmt9 FROM 'SELECT LPAD(c1,10,?) FROM t1'; +PREPARE stmt10 FROM 'SELECT REPLACE(c1,?,\'x\') FROM t2'; +PREPARE stmt11 FROM 'SELECT REPLACE(c1,\'x\',?) FROM t1'; +PREPARE stmt12 FROM 'SELECT RPAD(c1,10,?) FROM t1'; +# Japanese parameter for UPDATE +PREPARE stmt13 FROM 'UPDATE t4 SET c1=\'x\' WHERE c1=?'; +PREPARE stmt14 FROM 'UPDATE t4 SET c1=? WHERE c1=\'x\''; + +## Test jisx0201 ## +SET @arg = ''; +EXECUTE stmt1 USING @arg; +EXECUTE stmt2 USING @arg; +EXECUTE stmt3 USING @arg; +EXECUTE stmt4 USING @arg; +EXECUTE stmt5 USING @arg; +EXECUTE stmt6 USING @arg; +EXECUTE stmt7 USING @arg; +EXECUTE stmt8 USING @arg; +EXECUTE stmt9 USING @arg; +EXECUTE stmt10 USING @arg; +EXECUTE stmt11 USING @arg; +EXECUTE stmt12 USING @arg; +EXECUTE stmt13 USING @arg; +SELECT * FROM t4; +EXECUTE stmt14 USING @arg; +SELECT * FROM t4; + +## Test jisx0208 ## +SET @arg = ''; +EXECUTE stmt1 USING @arg; +EXECUTE stmt2 USING @arg; +EXECUTE stmt3 USING @arg; +EXECUTE stmt4 USING @arg; +EXECUTE stmt5 USING @arg; +EXECUTE stmt6 USING @arg; +EXECUTE stmt7 USING @arg; +EXECUTE stmt8 USING @arg; +EXECUTE stmt9 USING @arg; +EXECUTE stmt10 USING @arg; +EXECUTE stmt11 USING @arg; +EXECUTE stmt12 USING @arg; +EXECUTE stmt13 USING @arg; +SELECT * FROM t4; +EXECUTE stmt14 USING @arg; +SELECT * FROM t4; + +## Test jisx0212 ## +SET @arg = '\'; +EXECUTE stmt1 USING @arg; +EXECUTE stmt2 USING @arg; +EXECUTE stmt3 USING @arg; +EXECUTE stmt4 USING @arg; +EXECUTE stmt5 USING @arg; +EXECUTE stmt6 USING @arg; +EXECUTE stmt7 USING @arg; +EXECUTE stmt8 USING @arg; +EXECUTE stmt9 USING @arg; +EXECUTE stmt10 USING @arg; +EXECUTE stmt11 USING @arg; +EXECUTE stmt12 USING @arg; +EXECUTE stmt13 USING @arg; +SELECT * FROM t4; +EXECUTE stmt14 USING @arg; +SELECT * FROM t4; + +DEALLOCATE PREPARE stmt1; +DEALLOCATE PREPARE stmt2; +DEALLOCATE PREPARE stmt3; +DEALLOCATE PREPARE stmt4; +DEALLOCATE PREPARE stmt5; +DEALLOCATE PREPARE stmt6; +DEALLOCATE PREPARE stmt7; +DEALLOCATE PREPARE stmt8; +DEALLOCATE PREPARE stmt9; +DEALLOCATE PREPARE stmt10; +DEALLOCATE PREPARE stmt11; +DEALLOCATE PREPARE stmt12; +DEALLOCATE PREPARE stmt13; +DEALLOCATE PREPARE stmt14; + +DROP TABLE t1; +DROP TABLE t2; +DROP TABLE t3; +DROP TABLE t4; + +### Test BDB ### +CREATE TABLE t1(c1 char(3)) DEFAULT CHARSET = sjis ENGINE = BDB; +CREATE TABLE t2(c1 char(3)) DEFAULT CHARSET = sjis ENGINE = BDB; +CREATE TABLE t3( + `` char(1), + `` char(1), + `\` char(1) +)DEFAULT CHARSET = sjis ENGINE = BDB; +CREATE TABLE t4(c1 char(1)) DEFAULT CHARSET = sjis ENGINE = BDB; +INSERT INTO t1 VALUES ('xxx'); +INSERT INTO t2 VALUES ('\'); +INSERT INTO t3 VALUES ('x','x','x'),('x','x','x'),('y','y','y'),('y','y','y'),('z','z','z'),('z','z','z'); +INSERT INTO t4 VALUES (''),(''),('\' ); + +# Japanese parameter for column name +PREPARE stmt1 FROM 'SELECT ? FROM t3'; +PREPARE stmt2 FROM 'SELECT * FROM t3 ORDER BY ?'; +PREPARE stmt3 FROM 'SELECT COUNT(*) FROM t3 GROUP BY ?'; +# Japanese parameter for function argument +PREPARE stmt4 FROM 'SELECT CHAR_LENGTH(?)'; +PREPARE stmt5 FROM 'SELECT CHARSET(?)'; +PREPARE stmt6 FROM 'SELECT INSERT(c1,1,1,?) FROM t1'; +PREPARE stmt7 FROM 'SELECT INSTR(c1,?) FROM t2'; +PREPARE stmt8 FROM 'SELECT LOCATE(?,c1) FROM t2'; +PREPARE stmt9 FROM 'SELECT LPAD(c1,10,?) FROM t1'; +PREPARE stmt10 FROM 'SELECT REPLACE(c1,?,\'x\') FROM t2'; +PREPARE stmt11 FROM 'SELECT REPLACE(c1,\'x\',?) FROM t1'; +PREPARE stmt12 FROM 'SELECT RPAD(c1,10,?) FROM t1'; +# Japanese parameter for UPDATE +PREPARE stmt13 FROM 'UPDATE t4 SET c1=\'x\' WHERE c1=?'; +PREPARE stmt14 FROM 'UPDATE t4 SET c1=? WHERE c1=\'x\''; + +## Test jisx0201 ## +SET @arg = ''; +EXECUTE stmt1 USING @arg; +EXECUTE stmt2 USING @arg; +EXECUTE stmt3 USING @arg; +EXECUTE stmt4 USING @arg; +EXECUTE stmt5 USING @arg; +EXECUTE stmt6 USING @arg; +EXECUTE stmt7 USING @arg; +EXECUTE stmt8 USING @arg; +EXECUTE stmt9 USING @arg; +EXECUTE stmt10 USING @arg; +EXECUTE stmt11 USING @arg; +EXECUTE stmt12 USING @arg; +EXECUTE stmt13 USING @arg; +SELECT * FROM t3; +EXECUTE stmt14 USING @arg; +SELECT * FROM t3; + +## Test jisx0208 ## +SET @arg = ''; +EXECUTE stmt1 USING @arg; +EXECUTE stmt2 USING @arg; +EXECUTE stmt3 USING @arg; +EXECUTE stmt4 USING @arg; +EXECUTE stmt5 USING @arg; +EXECUTE stmt6 USING @arg; +EXECUTE stmt7 USING @arg; +EXECUTE stmt8 USING @arg; +EXECUTE stmt9 USING @arg; +EXECUTE stmt10 USING @arg; +EXECUTE stmt11 USING @arg; +EXECUTE stmt12 USING @arg; +EXECUTE stmt13 USING @arg; +SELECT * FROM t4; +EXECUTE stmt14 USING @arg; +SELECT * FROM t4; + +##Test jisx0212 ## +SET @arg = '\'; +EXECUTE stmt1 USING @arg; +EXECUTE stmt2 USING @arg; +EXECUTE stmt3 USING @arg; +EXECUTE stmt4 USING @arg; +EXECUTE stmt5 USING @arg; +EXECUTE stmt6 USING @arg; +EXECUTE stmt7 USING @arg; +EXECUTE stmt8 USING @arg; +EXECUTE stmt9 USING @arg; +EXECUTE stmt10 USING @arg; +EXECUTE stmt11 USING @arg; +EXECUTE stmt12 USING @arg; +EXECUTE stmt13 USING @arg; +SELECT * FROM t4; +EXECUTE stmt14 USING @arg; +SELECT * FROM t4; + +DEALLOCATE PREPARE stmt1; +DEALLOCATE PREPARE stmt2; +DEALLOCATE PREPARE stmt3; +DEALLOCATE PREPARE stmt4; +DEALLOCATE PREPARE stmt5; +DEALLOCATE PREPARE stmt6; +DEALLOCATE PREPARE stmt7; +DEALLOCATE PREPARE stmt8; +DEALLOCATE PREPARE stmt9; +DEALLOCATE PREPARE stmt10; +DEALLOCATE PREPARE stmt11; +DEALLOCATE PREPARE stmt12; +DEALLOCATE PREPARE stmt13; +DEALLOCATE PREPARE stmt14; + +DROP TABLE t1; +DROP TABLE t2; +DROP TABLE t3; +DROP TABLE t4; diff --git a/mysql-test/suite/jp/t/jp_ps_ujis.test b/mysql-test/suite/jp/t/jp_ps_ujis.test new file mode 100755 index 00000000000..7d61c12e496 --- /dev/null +++ b/mysql-test/suite/jp/t/jp_ps_ujis.test @@ -0,0 +1,455 @@ +--source include/have_ujis.inc + +--disable_warnings +DROP TABLE IF EXISTS t1; +DROP TABLE IF EXISTS t2; +DROP TABLE IF EXISTS t3; +DROP TABLE IF EXISTS t4; +--enable_warnings + +# +# Test Prepares Statement with Japanese character in ujis encoding +# + +SET NAMES ujis; +SET character_set_database = ujis; + +### Test InnoDB ### +CREATE TABLE t1(c1 char(3)) DEFAULT CHARSET = ujis ENGINE = InnoDB; +CREATE TABLE t2(c1 char(3)) DEFAULT CHARSET = ujis ENGINE = InnoDB; +CREATE TABLE t3( + `` char(1), + `` char(1), + `` char(1) +)DEFAULT CHARSET = ujis ENGINE = InnoDB; +CREATE TABLE t4(c1 char(1)) DEFAULT CHARSET = ujis ENGINE = InnoDB; + +INSERT INTO t1 VALUES ('xxx'); +INSERT INTO t2 VALUES (''); +INSERT INTO t3 VALUES ('x','x','x'),('x','x','x'),('y','y','y'),('y','y','y'),('z','z','z'),('z','z','z'); +INSERT INTO t4 VALUES (''),(''),(''); + +# Japanese parameter for column name +# the parameter for stmt is not interpreted as column name +PREPARE stmt1 FROM 'SELECT ? FROM t3'; +PREPARE stmt2 FROM 'SELECT * FROM t3 ORDER BY ?'; +PREPARE stmt3 FROM 'SELECT COUNT(*) FROM t3 GROUP BY ?'; +# Japanese parameter for function argument +PREPARE stmt4 FROM 'SELECT CHAR_LENGTH(?)'; +PREPARE stmt5 FROM 'SELECT CHARSET(?)'; +PREPARE stmt6 FROM 'SELECT INSERT(c1,1,1,?) FROM t1'; +PREPARE stmt7 FROM 'SELECT INSTR(c1,?) FROM t2'; +PREPARE stmt8 FROM 'SELECT LOCATE(?,c1) FROM t2'; +PREPARE stmt9 FROM 'SELECT LPAD(c1,9,?) FROM t1'; +PREPARE stmt10 FROM 'SELECT REPLACE(c1,?,\'x\') FROM t2'; +PREPARE stmt11 FROM 'SELECT REPLACE(c1,\'x\',?) FROM t1'; +PREPARE stmt12 FROM 'SELECT RPAD(c1,9,?) FROM t1'; +# Japanese parameter for UPDATE +PREPARE stmt13 FROM 'UPDATE t4 SET c1=\'x\' WHERE c1=?'; +PREPARE stmt14 FROM 'UPDATE t4 SET c1=? WHERE c1=\'x\''; + +## Test jisx0201 ## +SET @arg = ''; +EXECUTE stmt1 USING @arg; +EXECUTE stmt2 USING @arg; +EXECUTE stmt3 USING @arg; +EXECUTE stmt4 USING @arg; +EXECUTE stmt5 USING @arg; +EXECUTE stmt6 USING @arg; +EXECUTE stmt7 USING @arg; +EXECUTE stmt8 USING @arg; +EXECUTE stmt9 USING @arg; +EXECUTE stmt10 USING @arg; +EXECUTE stmt11 USING @arg; +EXECUTE stmt12 USING @arg; +EXECUTE stmt13 USING @arg; +SELECT * FROM t4; +EXECUTE stmt14 USING @arg; +SELECT * FROM t4; + +## Test jisx0208 ## +SET @arg = ''; +EXECUTE stmt1 USING @arg; +EXECUTE stmt2 USING @arg; +EXECUTE stmt3 USING @arg; +EXECUTE stmt4 USING @arg; +EXECUTE stmt5 USING @arg; +EXECUTE stmt6 USING @arg; +EXECUTE stmt7 USING @arg; +EXECUTE stmt8 USING @arg; +EXECUTE stmt9 USING @arg; +EXECUTE stmt10 USING @arg; +EXECUTE stmt11 USING @arg; +EXECUTE stmt12 USING @arg; +EXECUTE stmt13 USING @arg; +SELECT * FROM t4; +EXECUTE stmt14 USING @arg; +SELECT * FROM t4; + +# Test jisx0212 ## +SET @arg = ''; +EXECUTE stmt1 USING @arg; +EXECUTE stmt2 USING @arg; +EXECUTE stmt3 USING @arg; +EXECUTE stmt4 USING @arg; +EXECUTE stmt5 USING @arg; +EXECUTE stmt6 USING @arg; +EXECUTE stmt7 USING @arg; +EXECUTE stmt8 USING @arg; +EXECUTE stmt9 USING @arg; +EXECUTE stmt10 USING @arg; +EXECUTE stmt11 USING @arg; +EXECUTE stmt12 USING @arg; +EXECUTE stmt13 USING @arg; +SELECT * FROM t4; +EXECUTE stmt14 USING @arg; +SELECT * FROM t4; + +DEALLOCATE PREPARE stmt1; +DEALLOCATE PREPARE stmt2; +DEALLOCATE PREPARE stmt3; +DEALLOCATE PREPARE stmt4; +DEALLOCATE PREPARE stmt5; +DEALLOCATE PREPARE stmt6; +DEALLOCATE PREPARE stmt7; +DEALLOCATE PREPARE stmt8; +DEALLOCATE PREPARE stmt9; +DEALLOCATE PREPARE stmt10; +DEALLOCATE PREPARE stmt11; +DEALLOCATE PREPARE stmt12; +DEALLOCATE PREPARE stmt13; +DEALLOCATE PREPARE stmt14; + +DROP TABLE t1; +DROP TABLE t2; +DROP TABLE t3; +DROP TABLE t4; + +### Test MyISAM ### +CREATE TABLE t1(c1 char(3)) DEFAULT CHARSET = ujis ENGINE = MyISAM; +CREATE TABLE t2(c1 char(3)) DEFAULT CHARSET = ujis ENGINE = MyISAM; +CREATE TABLE t3( + `` char(1), + `` char(1), + `` char(1) +)DEFAULT CHARSET = ujis ENGINE = MyISAM; +CREATE TABLE t4(c1 char(1)) DEFAULT CHARSET = ujis ENGINE = MyISAM; + +INSERT INTO t1 VALUES ('xxx'); +INSERT INTO t2 VALUES (''); +INSERT INTO t3 VALUES ('x','x','x'),('x','x','x'),('y','y','y'),('y','y','y'),('z','z','z'),('z','z','z'); +INSERT INTO t4 VALUES (''),(''),('' ); + +# Japanese parameter for column name +PREPARE stmt1 FROM 'SELECT ? FROM t3'; +PREPARE stmt2 FROM 'SELECT * FROM t3 ORDER BY ?'; +PREPARE stmt3 FROM 'SELECT COUNT(*) FROM t3 GROUP BY ?'; +# Japanese parameter for function argument +PREPARE stmt4 FROM 'SELECT CHAR_LENGTH(?)'; +PREPARE stmt5 FROM 'SELECT CHARSET(?)'; +PREPARE stmt6 FROM 'SELECT INSERT(c1,1,1,?) FROM t1'; +PREPARE stmt7 FROM 'SELECT INSTR(c1,?) FROM t2'; +PREPARE stmt8 FROM 'SELECT LOCATE(?,c1) FROM t2'; +PREPARE stmt9 FROM 'SELECT LPAD(c1,9,?) FROM t1'; +PREPARE stmt10 FROM 'SELECT REPLACE(c1,?,\'x\') FROM t2'; +PREPARE stmt11 FROM 'SELECT REPLACE(c1,\'x\',?) FROM t1'; +PREPARE stmt12 FROM 'SELECT RPAD(c1,9,?) FROM t1'; +# Japanese parameter for UPDATE +PREPARE stmt13 FROM 'UPDATE t4 SET c1=\'x\' WHERE c1=?'; +PREPARE stmt14 FROM 'UPDATE t4 SET c1=? WHERE c1=\'x\''; + +## Test jisx0201 ## +SET @arg = ''; +EXECUTE stmt1 USING @arg; +EXECUTE stmt2 USING @arg; +EXECUTE stmt3 USING @arg; +EXECUTE stmt4 USING @arg; +EXECUTE stmt5 USING @arg; +EXECUTE stmt6 USING @arg; +EXECUTE stmt7 USING @arg; +EXECUTE stmt8 USING @arg; +EXECUTE stmt9 USING @arg; +EXECUTE stmt10 USING @arg; +EXECUTE stmt11 USING @arg; +EXECUTE stmt12 USING @arg; +EXECUTE stmt13 USING @arg; +SELECT * FROM t4; +EXECUTE stmt14 USING @arg; +SELECT * FROM t4; + +## Test jisx0208 ## +SET @arg = ''; +EXECUTE stmt1 USING @arg; +EXECUTE stmt2 USING @arg; +EXECUTE stmt3 USING @arg; +EXECUTE stmt4 USING @arg; +EXECUTE stmt5 USING @arg; +EXECUTE stmt6 USING @arg; +EXECUTE stmt7 USING @arg; +EXECUTE stmt8 USING @arg; +EXECUTE stmt9 USING @arg; +EXECUTE stmt10 USING @arg; +EXECUTE stmt11 USING @arg; +EXECUTE stmt12 USING @arg; +EXECUTE stmt13 USING @arg; +SELECT * FROM t4; +EXECUTE stmt14 USING @arg; +SELECT * FROM t4; + +## Test jisx0212 ## +SET @arg = ''; +EXECUTE stmt1 USING @arg; +EXECUTE stmt2 USING @arg; +EXECUTE stmt3 USING @arg; +EXECUTE stmt4 USING @arg; +EXECUTE stmt5 USING @arg; +EXECUTE stmt6 USING @arg; +EXECUTE stmt7 USING @arg; +EXECUTE stmt8 USING @arg; +EXECUTE stmt9 USING @arg; +EXECUTE stmt10 USING @arg; +EXECUTE stmt11 USING @arg; +EXECUTE stmt12 USING @arg; +EXECUTE stmt13 USING @arg; +SELECT * FROM t4; +EXECUTE stmt14 USING @arg; +SELECT * FROM t4; + +DEALLOCATE PREPARE stmt1; +DEALLOCATE PREPARE stmt2; +DEALLOCATE PREPARE stmt3; +DEALLOCATE PREPARE stmt4; +DEALLOCATE PREPARE stmt5; +DEALLOCATE PREPARE stmt6; +DEALLOCATE PREPARE stmt7; +DEALLOCATE PREPARE stmt8; +DEALLOCATE PREPARE stmt9; +DEALLOCATE PREPARE stmt10; +DEALLOCATE PREPARE stmt11; +DEALLOCATE PREPARE stmt12; +DEALLOCATE PREPARE stmt13; +DEALLOCATE PREPARE stmt14; + +DROP TABLE t1; +DROP TABLE t2; +DROP TABLE t3; +DROP TABLE t4; + +### Test HEAP ### +CREATE TABLE t1(c1 char(3)) DEFAULT CHARSET = ujis ENGINE = HEAP; +CREATE TABLE t2(c1 char(3)) DEFAULT CHARSET = ujis ENGINE = HEAP; +CREATE TABLE t3( + `` char(1), + `` char(1), + `` char(1) +)DEFAULT CHARSET = ujis ENGINE = HEAP; +CREATE TABLE t4(c1 char(1)) DEFAULT CHARSET = ujis ENGINE =HEAP; + +INSERT INTO t1 VALUES ('xxx'); +INSERT INTO t2 VALUES (''); +INSERT INTO t3 VALUES ('x','x','x'),('x','x','x'),('y','y','y'),('y','y','y'),('z','z','z'),('z','z','z'); +INSERT INTO t4 VALUES (''),(''),('' ); + +# Japanese parameter for column name +PREPARE stmt1 FROM 'SELECT ? FROM t3'; +PREPARE stmt2 FROM 'SELECT * FROM t3 ORDER BY ?'; +PREPARE stmt3 FROM 'SELECT COUNT(*) FROM t3 GROUP BY ?'; +# Japanese parameter for function argument +PREPARE stmt4 FROM 'SELECT CHAR_LENGTH(?)'; +PREPARE stmt5 FROM 'SELECT CHARSET(?)'; +PREPARE stmt6 FROM 'SELECT INSERT(c1,1,1,?) FROM t1'; +PREPARE stmt7 FROM 'SELECT INSTR(c1,?) FROM t2'; +PREPARE stmt8 FROM 'SELECT LOCATE(?,c1) FROM t2'; +PREPARE stmt9 FROM 'SELECT LPAD(c1,9,?) FROM t1'; +PREPARE stmt10 FROM 'SELECT REPLACE(c1,?,\'x\') FROM t2'; +PREPARE stmt11 FROM 'SELECT REPLACE(c1,\'x\',?) FROM t1'; +PREPARE stmt12 FROM 'SELECT RPAD(c1,9,?) FROM t1'; +# Japanese parameter for UPDATE +PREPARE stmt13 FROM 'UPDATE t4 SET c1=\'x\' WHERE c1=?'; +PREPARE stmt14 FROM 'UPDATE t4 SET c1=? WHERE c1=\'x\''; + +## Test jisx0201 ## +SET @arg = ''; +EXECUTE stmt1 USING @arg; +EXECUTE stmt2 USING @arg; +EXECUTE stmt3 USING @arg; +EXECUTE stmt4 USING @arg; +EXECUTE stmt5 USING @arg; +EXECUTE stmt6 USING @arg; +EXECUTE stmt7 USING @arg; +EXECUTE stmt8 USING @arg; +EXECUTE stmt9 USING @arg; +EXECUTE stmt10 USING @arg; +EXECUTE stmt11 USING @arg; +EXECUTE stmt12 USING @arg; +EXECUTE stmt13 USING @arg; +SELECT * FROM t4; +EXECUTE stmt14 USING @arg; +SELECT * FROM t4; + +## Test jisx0208 ## +SET @arg = ''; +EXECUTE stmt1 USING @arg; +EXECUTE stmt2 USING @arg; +EXECUTE stmt3 USING @arg; +EXECUTE stmt4 USING @arg; +EXECUTE stmt5 USING @arg; +EXECUTE stmt6 USING @arg; +EXECUTE stmt7 USING @arg; +EXECUTE stmt8 USING @arg; +EXECUTE stmt9 USING @arg; +EXECUTE stmt10 USING @arg; +EXECUTE stmt11 USING @arg; +EXECUTE stmt12 USING @arg; +EXECUTE stmt13 USING @arg; +SELECT * FROM t4; +EXECUTE stmt14 USING @arg; +SELECT * FROM t4; + +## Test jisx0212 ## +SET @arg = ''; +EXECUTE stmt1 USING @arg; +EXECUTE stmt2 USING @arg; +EXECUTE stmt3 USING @arg; +EXECUTE stmt4 USING @arg; +EXECUTE stmt5 USING @arg; +EXECUTE stmt6 USING @arg; +EXECUTE stmt7 USING @arg; +EXECUTE stmt8 USING @arg; +EXECUTE stmt9 USING @arg; +EXECUTE stmt10 USING @arg; +EXECUTE stmt11 USING @arg; +EXECUTE stmt12 USING @arg; +EXECUTE stmt13 USING @arg; +SELECT * FROM t4; +EXECUTE stmt14 USING @arg; +SELECT * FROM t4; + +DEALLOCATE PREPARE stmt1; +DEALLOCATE PREPARE stmt2; +DEALLOCATE PREPARE stmt3; +DEALLOCATE PREPARE stmt4; +DEALLOCATE PREPARE stmt5; +DEALLOCATE PREPARE stmt6; +DEALLOCATE PREPARE stmt7; +DEALLOCATE PREPARE stmt8; +DEALLOCATE PREPARE stmt9; +DEALLOCATE PREPARE stmt10; +DEALLOCATE PREPARE stmt11; +DEALLOCATE PREPARE stmt12; +DEALLOCATE PREPARE stmt13; +DEALLOCATE PREPARE stmt14; + +DROP TABLE t1; +DROP TABLE t2; +DROP TABLE t3; +DROP TABLE t4; + +### Test BDB ### +CREATE TABLE t1(c1 char(3)) DEFAULT CHARSET = ujis ENGINE = BDB; +CREATE TABLE t2(c1 char(3)) DEFAULT CHARSET = ujis ENGINE = BDB; +CREATE TABLE t3( + `` char(1), + `` char(1), + `` char(1) +)DEFAULT CHARSET = ujis ENGINE = BDB; +CREATE TABLE t4(c1 char(1)) DEFAULT CHARSET = ujis ENGINE = BDB; +INSERT INTO t1 VALUES ('xxx'); +INSERT INTO t2 VALUES (''); +INSERT INTO t3 VALUES ('x','x','x'),('x','x','x'),('y','y','y'),('y','y','y'),('z','z','z'),('z','z','z'); +INSERT INTO t4 VALUES (''),(''),('' ); + +# Japanese parameter for column name +PREPARE stmt1 FROM 'SELECT ? FROM t3'; +PREPARE stmt2 FROM 'SELECT * FROM t3 ORDER BY ?'; +PREPARE stmt3 FROM 'SELECT COUNT(*) FROM t3 GROUP BY ?'; +# Japanese parameter for function argument +PREPARE stmt4 FROM 'SELECT CHAR_LENGTH(?)'; +PREPARE stmt5 FROM 'SELECT CHARSET(?)'; +PREPARE stmt6 FROM 'SELECT INSERT(c1,1,1,?) FROM t1'; +PREPARE stmt7 FROM 'SELECT INSTR(c1,?) FROM t2'; +PREPARE stmt8 FROM 'SELECT LOCATE(?,c1) FROM t2'; +PREPARE stmt9 FROM 'SELECT LPAD(c1,9,?) FROM t1'; +PREPARE stmt10 FROM 'SELECT REPLACE(c1,?,\'x\') FROM t2'; +PREPARE stmt11 FROM 'SELECT REPLACE(c1,\'x\',?) FROM t1'; +PREPARE stmt12 FROM 'SELECT RPAD(c1,9,?) FROM t1'; +# Japanese parameter for UPDATE +PREPARE stmt13 FROM 'UPDATE t4 SET c1=\'x\' WHERE c1=?'; +PREPARE stmt14 FROM 'UPDATE t4 SET c1=? WHERE c1=\'x\''; + +## Test jisx0201 ## +SET @arg = ''; +EXECUTE stmt1 USING @arg; +EXECUTE stmt2 USING @arg; +EXECUTE stmt3 USING @arg; +EXECUTE stmt4 USING @arg; +EXECUTE stmt5 USING @arg; +EXECUTE stmt6 USING @arg; +EXECUTE stmt7 USING @arg; +EXECUTE stmt8 USING @arg; +EXECUTE stmt9 USING @arg; +EXECUTE stmt10 USING @arg; +EXECUTE stmt11 USING @arg; +EXECUTE stmt12 USING @arg; +EXECUTE stmt13 USING @arg; +SELECT * FROM t3; +EXECUTE stmt14 USING @arg; +SELECT * FROM t3; + +## Test jisx0208 ## +SET @arg = ''; +EXECUTE stmt1 USING @arg; +EXECUTE stmt2 USING @arg; +EXECUTE stmt3 USING @arg; +EXECUTE stmt4 USING @arg; +EXECUTE stmt5 USING @arg; +EXECUTE stmt6 USING @arg; +EXECUTE stmt7 USING @arg; +EXECUTE stmt8 USING @arg; +EXECUTE stmt9 USING @arg; +EXECUTE stmt10 USING @arg; +EXECUTE stmt11 USING @arg; +EXECUTE stmt12 USING @arg; +EXECUTE stmt13 USING @arg; +SELECT * FROM t4; +EXECUTE stmt14 USING @arg; +SELECT * FROM t4; + +##Test jisx0212 ## +SET @arg = ''; +EXECUTE stmt1 USING @arg; +EXECUTE stmt2 USING @arg; +EXECUTE stmt3 USING @arg; +EXECUTE stmt4 USING @arg; +EXECUTE stmt5 USING @arg; +EXECUTE stmt6 USING @arg; +EXECUTE stmt7 USING @arg; +EXECUTE stmt8 USING @arg; +EXECUTE stmt9 USING @arg; +EXECUTE stmt10 USING @arg; +EXECUTE stmt11 USING @arg; +EXECUTE stmt12 USING @arg; +EXECUTE stmt13 USING @arg; +SELECT * FROM t4; +EXECUTE stmt14 USING @arg; +SELECT * FROM t4; + +DEALLOCATE PREPARE stmt1; +DEALLOCATE PREPARE stmt2; +DEALLOCATE PREPARE stmt3; +DEALLOCATE PREPARE stmt4; +DEALLOCATE PREPARE stmt5; +DEALLOCATE PREPARE stmt6; +DEALLOCATE PREPARE stmt7; +DEALLOCATE PREPARE stmt8; +DEALLOCATE PREPARE stmt9; +DEALLOCATE PREPARE stmt10; +DEALLOCATE PREPARE stmt11; +DEALLOCATE PREPARE stmt12; +DEALLOCATE PREPARE stmt13; +DEALLOCATE PREPARE stmt14; + +DROP TABLE t1; +DROP TABLE t2; +DROP TABLE t3; +DROP TABLE t4; diff --git a/mysql-test/suite/jp/t/jp_replace_sjis.test b/mysql-test/suite/jp/t/jp_replace_sjis.test new file mode 100755 index 00000000000..811d3350a34 --- /dev/null +++ b/mysql-test/suite/jp/t/jp_replace_sjis.test @@ -0,0 +1,129 @@ +--character_set sjis +--disable_warnings +drop table if exists `sP`; +drop table if exists `sQ`; +drop table if exists `sR`; +drop table if exists `sS`; +drop table if exists `sT`; +drop table if exists `sU`; +drop table if exists `sV`; +drop table if exists `sW`; +drop table if exists `sX`; +drop table if exists `sPO`; +drop table if exists `sPP`; +drop table if exists `sPQ`; +--enable_warnings + +# +# Test REPLACE() function with Japanese characters in sjis encoding +# + +SET NAMES sjis; +SET character_set_database = sjis; + +CREATE TABLE `sP` (`bP` char(5)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sQ` (`bP` char(5)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sR` (`bP` char(5)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sS` (`bP` char(5)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sT` (`bP` char(5)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sU` (`bP` char(5)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sV` (`bP` char(5)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sW` (`bP` char(5)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sX` (`bP` char(5)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sPO` (`bP` char(5)) DEFAULT CHARSET = sjis engine = bdb; +CREATE TABLE `sPP` (`bP` char(5)) DEFAULT CHARSET = sjis engine = bdb; +CREATE TABLE `sPQ` (`bP` char(5)) DEFAULT CHARSET = sjis engine = bdb; + +INSERT INTO `sP` VALUES (''); +INSERT INTO `sQ` VALUES (''); +INSERT INTO `sR` VALUES ('\\\\\'); +INSERT INTO `sS` VALUES (''); +INSERT INTO `sT` VALUES (''); +INSERT INTO `sU` VALUES ('\\\\\'); +INSERT INTO `sV` VALUES (''); +INSERT INTO `sW` VALUES (''); +INSERT INTO `sX` VALUES ('\\\\\'); +INSERT INTO `sPO` VALUES (''); +INSERT INTO `sPP` VALUES (''); +INSERT INTO `sPQ` VALUES ('\\\\\'); + +#InnoDB +SELECT REPLACE(`bP`,'','') FROM `sP`; +SELECT REPLACE(`bP`,'','') FROM `sP`; +SELECT REPLACE(`bP`,'','') FROM `sP`; +SELECT REPLACE(`bP`,'','') FROM `sP`; +SELECT REPLACE(`bP`,'','') FROM `sP`; +SELECT REPLACE(`bP`,'','') FROM `sQ`; +SELECT REPLACE(`bP`,'','') FROM `sQ`; +SELECT REPLACE(`bP`,'','') FROM `sQ`; +SELECT REPLACE(`bP`,'','') FROM `sQ`; +SELECT REPLACE(`bP`,'','') FROM `sQ`; +SELECT REPLACE(`bP`,'\','\\') FROM `sR`; +SELECT REPLACE(`bP`,'\','\\') FROM `sR`; +SELECT REPLACE(`bP`,'\','\\') FROM `sR`; +SELECT REPLACE(`bP`,'\','\\') FROM `sR`; +SELECT REPLACE(`bP`,'\','\\') FROM `sR`; + +#MyISAM +SELECT REPLACE(`bP`,'','') FROM `sS`; +SELECT REPLACE(`bP`,'','') FROM `sS`; +SELECT REPLACE(`bP`,'','') FROM `sS`; +SELECT REPLACE(`bP`,'','') FROM `sS`; +SELECT REPLACE(`bP`,'','') FROM `sS`; +SELECT REPLACE(`bP`,'','') FROM `sT`; +SELECT REPLACE(`bP`,'','') FROM `sT`; +SELECT REPLACE(`bP`,'','') FROM `sT`; +SELECT REPLACE(`bP`,'','') FROM `sT`; +SELECT REPLACE(`bP`,'','') FROM `sT`; +SELECT REPLACE(`bP`,'\','\\') FROM `sU`; +SELECT REPLACE(`bP`,'\','\\') FROM `sU`; +SELECT REPLACE(`bP`,'\','\\') FROM `sU`; +SELECT REPLACE(`bP`,'\','\\') FROM `sU`; +SELECT REPLACE(`bP`,'\','\\') FROM `sU`; + +#HEAP +SELECT REPLACE(`bP`,'','') FROM `sV`; +SELECT REPLACE(`bP`,'','') FROM `sV`; +SELECT REPLACE(`bP`,'','') FROM `sV`; +SELECT REPLACE(`bP`,'','') FROM `sV`; +SELECT REPLACE(`bP`,'','') FROM `sV`; +SELECT REPLACE(`bP`,'','') FROM `sW`; +SELECT REPLACE(`bP`,'','') FROM `sW`; +SELECT REPLACE(`bP`,'','') FROM `sW`; +SELECT REPLACE(`bP`,'','') FROM `sW`; +SELECT REPLACE(`bP`,'','') FROM `sW`; +SELECT REPLACE(`bP`,'\','\\') FROM `sX`; +SELECT REPLACE(`bP`,'\','\\') FROM `sX`; +SELECT REPLACE(`bP`,'\','\\') FROM `sX`; +SELECT REPLACE(`bP`,'\','\\') FROM `sX`; +SELECT REPLACE(`bP`,'\','\\') FROM `sX`; + +#BDB +SELECT REPLACE(`bP`,'','') FROM `sPO`; +SELECT REPLACE(`bP`,'','') FROM `sPO`; +SELECT REPLACE(`bP`,'','') FROM `sPO`; +SELECT REPLACE(`bP`,'','') FROM `sPO`; +SELECT REPLACE(`bP`,'','') FROM `sPO`; +SELECT REPLACE(`bP`,'','') FROM `sPP`; +SELECT REPLACE(`bP`,'','') FROM `sPP`; +SELECT REPLACE(`bP`,'','') FROM `sPP`; +SELECT REPLACE(`bP`,'','') FROM `sPP`; +SELECT REPLACE(`bP`,'','') FROM `sPP`; +SELECT REPLACE(`bP`,'\','\\') FROM `sPQ`; +SELECT REPLACE(`bP`,'\','\\') FROM `sPQ`; +SELECT REPLACE(`bP`,'\','\\') FROM `sPQ`; +SELECT REPLACE(`bP`,'\','\\') FROM `sPQ`; +SELECT REPLACE(`bP`,'\','\\') FROM `sPQ`; + +DROP TABLE `sP`; +DROP TABLE `sQ`; +DROP TABLE `sR`; +DROP TABLE `sS`; +DROP TABLE `sT`; +DROP TABLE `sU`; +DROP TABLE `sV`; +DROP TABLE `sW`; +DROP TABLE `sX`; +DROP TABLE `sPO`; +DROP TABLE `sPP`; +DROP TABLE `sPQ`; diff --git a/mysql-test/suite/jp/t/jp_replace_ucs2.test b/mysql-test/suite/jp/t/jp_replace_ucs2.test new file mode 100755 index 00000000000..7739a30cd9c --- /dev/null +++ b/mysql-test/suite/jp/t/jp_replace_ucs2.test @@ -0,0 +1,131 @@ +--source include/have_ucs2.inc + +--disable_warnings +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +--enable_warnings + +# +# Test REPLACE() function with Japanese characters in ucs2 encoding +# + +SET NAMES ujis; +SET character_set_database = ucs2; +SET collation_connection = ucs2_general_ci; + +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ucs2 engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ucs2 engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ucs2 engine = bdb; + +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); + +#InnoDB +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +SELECT REPLACE(`ã`,'','܏') FROM `ԣ`; +SELECT REPLACE(`ã`,'','ݏ') FROM `ԣ`; +SELECT REPLACE(`ã`,'','ޏ') FROM `ԣ`; +SELECT REPLACE(`ã`,'','ߏ') FROM `ԣ`; +SELECT REPLACE(`ã`,'','') FROM `ԣ`; + +#MyISAM +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +SELECT REPLACE(`ã`,'','܏') FROM `ԣ`; +SELECT REPLACE(`ã`,'','ݏ') FROM `ԣ`; +SELECT REPLACE(`ã`,'','ޏ') FROM `ԣ`; +SELECT REPLACE(`ã`,'','ߏ') FROM `ԣ`; +SELECT REPLACE(`ã`,'','') FROM `ԣ`; + +#HEAP +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +SELECT REPLACE(`ã`,'','܏') FROM `ԣ`; +SELECT REPLACE(`ã`,'','ݏ') FROM `ԣ`; +SELECT REPLACE(`ã`,'','ޏ') FROM `ԣ`; +SELECT REPLACE(`ã`,'','ߏ') FROM `ԣ`; +SELECT REPLACE(`ã`,'','') FROM `ԣ`; + +#BDB +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +SELECT REPLACE(`ã`,'','܏') FROM `ԣ`; +SELECT REPLACE(`ã`,'','ݏ') FROM `ԣ`; +SELECT REPLACE(`ã`,'','ޏ') FROM `ԣ`; +SELECT REPLACE(`ã`,'','ߏ') FROM `ԣ`; +SELECT REPLACE(`ã`,'','') FROM `ԣ`; + +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; diff --git a/mysql-test/suite/jp/t/jp_replace_ujis.test b/mysql-test/suite/jp/t/jp_replace_ujis.test new file mode 100755 index 00000000000..3d8724e63d5 --- /dev/null +++ b/mysql-test/suite/jp/t/jp_replace_ujis.test @@ -0,0 +1,130 @@ +--source include/have_ujis.inc + +--disable_warnings +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +--enable_warnings + +# +# Test REPLACE() function with Japanese characters in ujis encoding +# + +SET NAMES ujis; +SET character_set_database = ujis; + +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ujis engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ujis engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5)) DEFAULT CHARSET = ujis engine = bdb; + +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); + +#InnoDB +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +SELECT REPLACE(`ã`,'','܏') FROM `ԣ`; +SELECT REPLACE(`ã`,'','ݏ') FROM `ԣ`; +SELECT REPLACE(`ã`,'','ޏ') FROM `ԣ`; +SELECT REPLACE(`ã`,'','ߏ') FROM `ԣ`; +SELECT REPLACE(`ã`,'','') FROM `ԣ`; + +#MyISAM +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +SELECT REPLACE(`ã`,'','܏') FROM `ԣ`; +SELECT REPLACE(`ã`,'','ݏ') FROM `ԣ`; +SELECT REPLACE(`ã`,'','ޏ') FROM `ԣ`; +SELECT REPLACE(`ã`,'','ߏ') FROM `ԣ`; +SELECT REPLACE(`ã`,'','') FROM `ԣ`; + +#HEAP +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +SELECT REPLACE(`ã`,'','܏') FROM `ԣ`; +SELECT REPLACE(`ã`,'','ݏ') FROM `ԣ`; +SELECT REPLACE(`ã`,'','ޏ') FROM `ԣ`; +SELECT REPLACE(`ã`,'','ߏ') FROM `ԣ`; +SELECT REPLACE(`ã`,'','') FROM `ԣ`; + +#BDB +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +SELECT REPLACE(`ã`,'','') FROM `ԣ`; +SELECT REPLACE(`ã`,'','܏') FROM `ԣ`; +SELECT REPLACE(`ã`,'','ݏ') FROM `ԣ`; +SELECT REPLACE(`ã`,'','ޏ') FROM `ԣ`; +SELECT REPLACE(`ã`,'','ߏ') FROM `ԣ`; +SELECT REPLACE(`ã`,'','') FROM `ԣ`; + +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; diff --git a/mysql-test/suite/jp/t/jp_replace_utf8.test b/mysql-test/suite/jp/t/jp_replace_utf8.test new file mode 100755 index 00000000000..1d89a43648b --- /dev/null +++ b/mysql-test/suite/jp/t/jp_replace_utf8.test @@ -0,0 +1,128 @@ +--disable_warnings +drop table if exists `T1`; +drop table if exists `T2`; +drop table if exists `T3`; +drop table if exists `T4`; +drop table if exists `T5`; +drop table if exists `T6`; +drop table if exists `T7`; +drop table if exists `T8`; +drop table if exists `T9`; +drop table if exists `T10`; +drop table if exists `T11`; +drop table if exists `T12`; +--enable_warnings + +# +# Test REPLACE() function with Japanese characters in utf8 encoding +# + +SET NAMES utf8; +SET character_set_database = utf8; + +CREATE TABLE `T1` (`C1` char(5)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T2` (`C1` char(5)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T3` (`C1` char(5)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T4` (`C1` char(5)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T5` (`C1` char(5)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T6` (`C1` char(5)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T7` (`C1` char(5)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T8` (`C1` char(5)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T9` (`C1` char(5)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T10` (`C1` char(5)) DEFAULT CHARSET = utf8 engine = bdb; +CREATE TABLE `T11` (`C1` char(5)) DEFAULT CHARSET = utf8 engine = bdb; +CREATE TABLE `T12` (`C1` char(5)) DEFAULT CHARSET = utf8 engine = bdb; + +INSERT INTO `T1` VALUES ('アイウエオ'); +INSERT INTO `T2` VALUES ('あいうえお'); +INSERT INTO `T3` VALUES ('龔龖龗龞龡'); +INSERT INTO `T4` VALUES ('アイウエオ'); +INSERT INTO `T5` VALUES ('あいうえお'); +INSERT INTO `T6` VALUES ('龔龖龗龞龡'); +INSERT INTO `T7` VALUES ('アイウエオ'); +INSERT INTO `T8` VALUES ('あいうえお'); +INSERT INTO `T9` VALUES ('龔龖龗龞龡'); +INSERT INTO `T10` VALUES ('アイウエオ'); +INSERT INTO `T11` VALUES ('あいうえお'); +INSERT INTO `T12` VALUES ('龔龖龗龞龡'); + +#InnoDB +SELECT REPLACE(`C1`,'ア','アア') FROM `T1`; +SELECT REPLACE(`C1`,'イ','イイ') FROM `T1`; +SELECT REPLACE(`C1`,'ウ','ウウ') FROM `T1`; +SELECT REPLACE(`C1`,'エ','エエ') FROM `T1`; +SELECT REPLACE(`C1`,'オ','オオ') FROM `T1`; +SELECT REPLACE(`C1`,'あ','ああ') FROM `T2`; +SELECT REPLACE(`C1`,'い','いい') FROM `T2`; +SELECT REPLACE(`C1`,'う','うう') FROM `T2`; +SELECT REPLACE(`C1`,'え','ええ') FROM `T2`; +SELECT REPLACE(`C1`,'お','おお') FROM `T2`; +SELECT REPLACE(`C1`,'龔','龔龔') FROM `T3`; +SELECT REPLACE(`C1`,'龖','龖龖') FROM `T3`; +SELECT REPLACE(`C1`,'龗','龗龗') FROM `T3`; +SELECT REPLACE(`C1`,'龞','龞龞') FROM `T3`; +SELECT REPLACE(`C1`,'龡','龡龡') FROM `T3`; + +#MyISAM +SELECT REPLACE(`C1`,'ア','アア') FROM `T4`; +SELECT REPLACE(`C1`,'イ','イイ') FROM `T4`; +SELECT REPLACE(`C1`,'ウ','ウウ') FROM `T4`; +SELECT REPLACE(`C1`,'エ','エエ') FROM `T4`; +SELECT REPLACE(`C1`,'オ','オオ') FROM `T4`; +SELECT REPLACE(`C1`,'あ','ああ') FROM `T5`; +SELECT REPLACE(`C1`,'い','いい') FROM `T5`; +SELECT REPLACE(`C1`,'う','うう') FROM `T5`; +SELECT REPLACE(`C1`,'え','ええ') FROM `T5`; +SELECT REPLACE(`C1`,'お','おお') FROM `T5`; +SELECT REPLACE(`C1`,'龔','龔龔') FROM `T6`; +SELECT REPLACE(`C1`,'龖','龖龖') FROM `T6`; +SELECT REPLACE(`C1`,'龗','龗龗') FROM `T6`; +SELECT REPLACE(`C1`,'龞','龞龞') FROM `T6`; +SELECT REPLACE(`C1`,'龡','龡龡') FROM `T6`; + +#HEAP +SELECT REPLACE(`C1`,'ア','アア') FROM `T7`; +SELECT REPLACE(`C1`,'イ','イイ') FROM `T7`; +SELECT REPLACE(`C1`,'ウ','ウウ') FROM `T7`; +SELECT REPLACE(`C1`,'エ','エエ') FROM `T7`; +SELECT REPLACE(`C1`,'オ','オオ') FROM `T7`; +SELECT REPLACE(`C1`,'あ','ああ') FROM `T8`; +SELECT REPLACE(`C1`,'い','いい') FROM `T8`; +SELECT REPLACE(`C1`,'う','うう') FROM `T8`; +SELECT REPLACE(`C1`,'え','ええ') FROM `T8`; +SELECT REPLACE(`C1`,'お','おお') FROM `T8`; +SELECT REPLACE(`C1`,'龔','龔龔') FROM `T9`; +SELECT REPLACE(`C1`,'龖','龖龖') FROM `T9`; +SELECT REPLACE(`C1`,'龗','龗龗') FROM `T9`; +SELECT REPLACE(`C1`,'龞','龞龞') FROM `T9`; +SELECT REPLACE(`C1`,'龡','龡龡') FROM `T9`; + +#BDB +SELECT REPLACE(`C1`,'ア','アア') FROM `T10`; +SELECT REPLACE(`C1`,'イ','イイ') FROM `T10`; +SELECT REPLACE(`C1`,'ウ','ウウ') FROM `T10`; +SELECT REPLACE(`C1`,'エ','エエ') FROM `T10`; +SELECT REPLACE(`C1`,'オ','オオ') FROM `T10`; +SELECT REPLACE(`C1`,'あ','ああ') FROM `T11`; +SELECT REPLACE(`C1`,'い','いい') FROM `T11`; +SELECT REPLACE(`C1`,'う','うう') FROM `T11`; +SELECT REPLACE(`C1`,'え','ええ') FROM `T11`; +SELECT REPLACE(`C1`,'お','おお') FROM `T11`; +SELECT REPLACE(`C1`,'龔','龔龔') FROM `T12`; +SELECT REPLACE(`C1`,'龖','龖龖') FROM `T12`; +SELECT REPLACE(`C1`,'龗','龗龗') FROM `T12`; +SELECT REPLACE(`C1`,'龞','龞龞') FROM `T12`; +SELECT REPLACE(`C1`,'龡','龡龡') FROM `T12`; + +DROP TABLE `T1`; +DROP TABLE `T2`; +DROP TABLE `T3`; +DROP TABLE `T4`; +DROP TABLE `T5`; +DROP TABLE `T6`; +DROP TABLE `T7`; +DROP TABLE `T8`; +DROP TABLE `T9`; +DROP TABLE `T10`; +DROP TABLE `T11`; +DROP TABLE `T12`; diff --git a/mysql-test/suite/jp/t/jp_reverse_sjis.test b/mysql-test/suite/jp/t/jp_reverse_sjis.test new file mode 100755 index 00000000000..c1e2b2a17ca --- /dev/null +++ b/mysql-test/suite/jp/t/jp_reverse_sjis.test @@ -0,0 +1,81 @@ +--character_set sjis +--disable_warnings +drop table if exists `sP`; +drop table if exists `sQ`; +drop table if exists `sR`; +drop table if exists `sS`; +drop table if exists `sT`; +drop table if exists `sU`; +drop table if exists `sV`; +drop table if exists `sW`; +drop table if exists `sX`; +drop table if exists `sPO`; +drop table if exists `sPP`; +drop table if exists `sPQ`; +--enable_warnings + +# +# Test REVERSE() function with Japanese characters in sjis encoding +# + +SET NAMES sjis; +SET character_set_database = sjis; + +CREATE TABLE `sP` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sQ` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sR` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sS` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sT` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sU` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sV` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sW` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sX` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sPO` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +CREATE TABLE `sPP` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +CREATE TABLE `sPQ` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; + +INSERT INTO `sP` VALUES (''); +INSERT INTO `sQ` VALUES (''); +INSERT INTO `sR` VALUES ('\\\\\'); +INSERT INTO `sS` VALUES (''); +INSERT INTO `sT` VALUES (''); +INSERT INTO `sU` VALUES ('\\\\\'); +INSERT INTO `sV` VALUES (''); +INSERT INTO `sW` VALUES (''); +INSERT INTO `sX` VALUES ('\\\\\'); +INSERT INTO `sPO` VALUES (''); +INSERT INTO `sPP` VALUES (''); +INSERT INTO `sPQ` VALUES ('\\\\\'); + +#InnoDB +SELECT REVERSE(`bP`) FROM `sP`; +SELECT REVERSE(`bP`) FROM `sQ`; +SELECT REVERSE(`bP`) FROM `sR`; + +#MyISAM +SELECT REVERSE(`bP`) FROM `sS`; +SELECT REVERSE(`bP`) FROM `sT`; +SELECT REVERSE(`bP`) FROM `sU`; + +#HEAP +SELECT REVERSE(`bP`) FROM `sV`; +SELECT REVERSE(`bP`) FROM `sW`; +SELECT REVERSE(`bP`) FROM `sX`; + +#BDB +SELECT REVERSE(`bP`) FROM `sPO`; +SELECT REVERSE(`bP`) FROM `sPP`; +SELECT REVERSE(`bP`) FROM `sPQ`; + +DROP TABLE `sP`; +DROP TABLE `sQ`; +DROP TABLE `sR`; +DROP TABLE `sS`; +DROP TABLE `sT`; +DROP TABLE `sU`; +DROP TABLE `sV`; +DROP TABLE `sW`; +DROP TABLE `sX`; +DROP TABLE `sPO`; +DROP TABLE `sPP`; +DROP TABLE `sPQ`; diff --git a/mysql-test/suite/jp/t/jp_reverse_ucs2.test b/mysql-test/suite/jp/t/jp_reverse_ucs2.test new file mode 100755 index 00000000000..d91ec7f70e8 --- /dev/null +++ b/mysql-test/suite/jp/t/jp_reverse_ucs2.test @@ -0,0 +1,83 @@ +--source include/have_ucs2.inc + +--disable_warnings +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +--enable_warnings + +# +# Test REVERSE() function with Japanese characters in ucs2 encoding +# + +SET NAMES ujis; +SET character_set_database = ucs2; +SET collation_connection = ucs2_general_ci; + +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; + +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); + +#InnoDB +SELECT REVERSE(`ã`) FROM `ԣ`; +SELECT REVERSE(`ã`) FROM `ԣ`; +SELECT REVERSE(`ã`) FROM `ԣ`; + +#MyISAM +SELECT REVERSE(`ã`) FROM `ԣ`; +SELECT REVERSE(`ã`) FROM `ԣ`; +SELECT REVERSE(`ã`) FROM `ԣ`; + +#HEAP +SELECT REVERSE(`ã`) FROM `ԣ`; +SELECT REVERSE(`ã`) FROM `ԣ`; +SELECT REVERSE(`ã`) FROM `ԣ`; + +#BDB +SELECT REVERSE(`ã`) FROM `ԣ`; +SELECT REVERSE(`ã`) FROM `ԣ`; +SELECT REVERSE(`ã`) FROM `ԣ`; + +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; diff --git a/mysql-test/suite/jp/t/jp_reverse_ujis.test b/mysql-test/suite/jp/t/jp_reverse_ujis.test new file mode 100755 index 00000000000..d37d363f59a --- /dev/null +++ b/mysql-test/suite/jp/t/jp_reverse_ujis.test @@ -0,0 +1,82 @@ +--source include/have_ujis.inc + +--disable_warnings +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +--enable_warnings + +# +# Test REVERSE() function with Japanese characters in ujis encoding +# + +SET NAMES ujis; +SET character_set_database = ujis; + +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; + +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); + +#InnoDB +SELECT REVERSE(`ã`) FROM `ԣ`; +SELECT REVERSE(`ã`) FROM `ԣ`; +SELECT REVERSE(`ã`) FROM `ԣ`; + +#MyISAM +SELECT REVERSE(`ã`) FROM `ԣ`; +SELECT REVERSE(`ã`) FROM `ԣ`; +SELECT REVERSE(`ã`) FROM `ԣ`; + +#HEAP +SELECT REVERSE(`ã`) FROM `ԣ`; +SELECT REVERSE(`ã`) FROM `ԣ`; +SELECT REVERSE(`ã`) FROM `ԣ`; + +#BDB +SELECT REVERSE(`ã`) FROM `ԣ`; +SELECT REVERSE(`ã`) FROM `ԣ`; +SELECT REVERSE(`ã`) FROM `ԣ`; + +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; diff --git a/mysql-test/suite/jp/t/jp_reverse_utf8.test b/mysql-test/suite/jp/t/jp_reverse_utf8.test new file mode 100755 index 00000000000..4e53d4be049 --- /dev/null +++ b/mysql-test/suite/jp/t/jp_reverse_utf8.test @@ -0,0 +1,80 @@ +--disable_warnings +drop table if exists `T1`; +drop table if exists `T2`; +drop table if exists `T3`; +drop table if exists `T4`; +drop table if exists `T5`; +drop table if exists `T6`; +drop table if exists `T7`; +drop table if exists `T8`; +drop table if exists `T9`; +drop table if exists `T10`; +drop table if exists `T11`; +drop table if exists `T12`; +--enable_warnings + +# +# Test REVERSE() function with Japanese characters in utf8 encoding +# + +SET NAMES utf8; +SET character_set_database = utf8; + +CREATE TABLE `T1` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T2` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T3` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T4` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T5` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T6` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T7` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T8` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T9` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T10` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +CREATE TABLE `T11` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +CREATE TABLE `T12` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; + +INSERT INTO `T1` VALUES ('アイウエオ'); +INSERT INTO `T2` VALUES ('あいうえお'); +INSERT INTO `T3` VALUES ('龔龖龗龞龡'); +INSERT INTO `T4` VALUES ('アイウエオ'); +INSERT INTO `T5` VALUES ('あいうえお'); +INSERT INTO `T6` VALUES ('龔龖龗龞龡'); +INSERT INTO `T7` VALUES ('アイウエオ'); +INSERT INTO `T8` VALUES ('あいうえお'); +INSERT INTO `T9` VALUES ('龔龖龗龞龡'); +INSERT INTO `T10` VALUES ('アイウエオ'); +INSERT INTO `T11` VALUES ('あいうえお'); +INSERT INTO `T12` VALUES ('龔龖龗龞龡'); + +#InnoDB +SELECT REVERSE(`C1`) FROM `T1`; +SELECT REVERSE(`C1`) FROM `T2`; +SELECT REVERSE(`C1`) FROM `T3`; + +#MyISAM +SELECT REVERSE(`C1`) FROM `T4`; +SELECT REVERSE(`C1`) FROM `T5`; +SELECT REVERSE(`C1`) FROM `T6`; + +#HEAP +SELECT REVERSE(`C1`) FROM `T7`; +SELECT REVERSE(`C1`) FROM `T8`; +SELECT REVERSE(`C1`) FROM `T9`; + +#BDB +SELECT REVERSE(`C1`) FROM `T10`; +SELECT REVERSE(`C1`) FROM `T11`; +SELECT REVERSE(`C1`) FROM `T12`; + +DROP TABLE `T1`; +DROP TABLE `T2`; +DROP TABLE `T3`; +DROP TABLE `T4`; +DROP TABLE `T5`; +DROP TABLE `T6`; +DROP TABLE `T7`; +DROP TABLE `T8`; +DROP TABLE `T9`; +DROP TABLE `T10`; +DROP TABLE `T11`; +DROP TABLE `T12`; diff --git a/mysql-test/suite/jp/t/jp_right_sjis.test b/mysql-test/suite/jp/t/jp_right_sjis.test new file mode 100755 index 00000000000..f481ec532ec --- /dev/null +++ b/mysql-test/suite/jp/t/jp_right_sjis.test @@ -0,0 +1,141 @@ +--character_set sjis +--disable_warnings +drop table if exists `sP`; +drop table if exists `sQ`; +drop table if exists `sR`; +drop table if exists `sS`; +drop table if exists `sT`; +drop table if exists `sU`; +drop table if exists `sV`; +drop table if exists `sW`; +drop table if exists `sX`; +drop table if exists `sPO`; +drop table if exists `sPP`; +drop table if exists `sPQ`; +--enable_warnings + +# +# Test RIGHT() function with Japanese character in sjis encoding +# + +SET NAMES sjis; +SET character_set_database = sjis; + +CREATE TABLE `sP` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sQ` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sR` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sS` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sT` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sU` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sV` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sW` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sX` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sPO` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +CREATE TABLE `sPP` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +CREATE TABLE `sPQ` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; + +INSERT INTO `sP` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sQ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sR` VALUES ('\\\\\'),('\\\\'),('\\\'),('\\'),('\'),(''); +INSERT INTO `sS` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sT` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sU` VALUES ('\\\\\'),('\\\\'),('\\\'),('\\'),('\'),(''); +INSERT INTO `sV` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sW` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sX` VALUES ('\\\\\'),('\\\\'),('\\\'),('\\'),('\'),(''); +INSERT INTO `sPO` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sPP` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sPQ` VALUES ('\\\\\'),('\\\\'),('\\\'),('\\'),('\'),(''); + +#InnoDB +SELECT `bP`, RIGHT(`bP`,0) FROM `sP`; +SELECT `bP`, RIGHT(`bP`,1) FROM `sP`; +SELECT `bP`, RIGHT(`bP`,2) FROM `sP`; +SELECT `bP`, RIGHT(`bP`,3) FROM `sP`; +SELECT `bP`, RIGHT(`bP`,4) FROM `sP`; +SELECT `bP`, RIGHT(`bP`,5) FROM `sP`; +SELECT `bP`, RIGHT(`bP`,0) FROM `sQ`; +SELECT `bP`, RIGHT(`bP`,1) FROM `sQ`; +SELECT `bP`, RIGHT(`bP`,2) FROM `sQ`; +SELECT `bP`, RIGHT(`bP`,3) FROM `sQ`; +SELECT `bP`, RIGHT(`bP`,4) FROM `sQ`; +SELECT `bP`, RIGHT(`bP`,5) FROM `sQ`; +SELECT `bP`, RIGHT(`bP`,0) FROM `sR`; +SELECT `bP`, RIGHT(`bP`,1) FROM `sR`; +SELECT `bP`, RIGHT(`bP`,2) FROM `sR`; +SELECT `bP`, RIGHT(`bP`,3) FROM `sR`; +SELECT `bP`, RIGHT(`bP`,4) FROM `sR`; +SELECT `bP`, RIGHT(`bP`,5) FROM `sR`; + +#MyISAM +SELECT `bP`, RIGHT(`bP`,0) FROM `sS`; +SELECT `bP`, RIGHT(`bP`,1) FROM `sS`; +SELECT `bP`, RIGHT(`bP`,2) FROM `sS`; +SELECT `bP`, RIGHT(`bP`,3) FROM `sS`; +SELECT `bP`, RIGHT(`bP`,4) FROM `sS`; +SELECT `bP`, RIGHT(`bP`,5) FROM `sS`; +SELECT `bP`, RIGHT(`bP`,0) FROM `sT`; +SELECT `bP`, RIGHT(`bP`,1) FROM `sT`; +SELECT `bP`, RIGHT(`bP`,2) FROM `sT`; +SELECT `bP`, RIGHT(`bP`,3) FROM `sT`; +SELECT `bP`, RIGHT(`bP`,4) FROM `sT`; +SELECT `bP`, RIGHT(`bP`,5) FROM `sT`; +SELECT `bP`, RIGHT(`bP`,0) FROM `sU`; +SELECT `bP`, RIGHT(`bP`,1) FROM `sU`; +SELECT `bP`, RIGHT(`bP`,2) FROM `sU`; +SELECT `bP`, RIGHT(`bP`,3) FROM `sU`; +SELECT `bP`, RIGHT(`bP`,4) FROM `sU`; +SELECT `bP`, RIGHT(`bP`,5) FROM `sU`; + +#HEAP +SELECT `bP`, RIGHT(`bP`,0) FROM `sV`; +SELECT `bP`, RIGHT(`bP`,1) FROM `sV`; +SELECT `bP`, RIGHT(`bP`,2) FROM `sV`; +SELECT `bP`, RIGHT(`bP`,3) FROM `sV`; +SELECT `bP`, RIGHT(`bP`,4) FROM `sV`; +SELECT `bP`, RIGHT(`bP`,5) FROM `sV`; +SELECT `bP`, RIGHT(`bP`,0) FROM `sW`; +SELECT `bP`, RIGHT(`bP`,1) FROM `sW`; +SELECT `bP`, RIGHT(`bP`,2) FROM `sW`; +SELECT `bP`, RIGHT(`bP`,3) FROM `sW`; +SELECT `bP`, RIGHT(`bP`,4) FROM `sW`; +SELECT `bP`, RIGHT(`bP`,5) FROM `sW`; +SELECT `bP`, RIGHT(`bP`,0) FROM `sX`; +SELECT `bP`, RIGHT(`bP`,1) FROM `sX`; +SELECT `bP`, RIGHT(`bP`,2) FROM `sX`; +SELECT `bP`, RIGHT(`bP`,3) FROM `sX`; +SELECT `bP`, RIGHT(`bP`,4) FROM `sX`; +SELECT `bP`, RIGHT(`bP`,5) FROM `sX`; + +#BDB +SELECT `bP`, RIGHT(`bP`,0) FROM `sPO`; +SELECT `bP`, RIGHT(`bP`,1) FROM `sPO`; +SELECT `bP`, RIGHT(`bP`,2) FROM `sPO`; +SELECT `bP`, RIGHT(`bP`,3) FROM `sPO`; +SELECT `bP`, RIGHT(`bP`,4) FROM `sPO`; +SELECT `bP`, RIGHT(`bP`,5) FROM `sPO`; +SELECT `bP`, RIGHT(`bP`,0) FROM `sPP`; +SELECT `bP`, RIGHT(`bP`,1) FROM `sPP`; +SELECT `bP`, RIGHT(`bP`,2) FROM `sPP`; +SELECT `bP`, RIGHT(`bP`,3) FROM `sPP`; +SELECT `bP`, RIGHT(`bP`,4) FROM `sPP`; +SELECT `bP`, RIGHT(`bP`,5) FROM `sPP`; +SELECT `bP`, RIGHT(`bP`,0) FROM `sPQ`; +SELECT `bP`, RIGHT(`bP`,1) FROM `sPQ`; +SELECT `bP`, RIGHT(`bP`,2) FROM `sPQ`; +SELECT `bP`, RIGHT(`bP`,3) FROM `sPQ`; +SELECT `bP`, RIGHT(`bP`,4) FROM `sPQ`; +SELECT `bP`, RIGHT(`bP`,5) FROM `sPQ`; + +DROP TABLE `sP`; +DROP TABLE `sQ`; +DROP TABLE `sR`; +DROP TABLE `sS`; +DROP TABLE `sT`; +DROP TABLE `sU`; +DROP TABLE `sV`; +DROP TABLE `sW`; +DROP TABLE `sX`; +DROP TABLE `sPO`; +DROP TABLE `sPP`; +DROP TABLE `sPQ`; diff --git a/mysql-test/suite/jp/t/jp_right_ucs2.test b/mysql-test/suite/jp/t/jp_right_ucs2.test new file mode 100755 index 00000000000..23ca2fa4fae --- /dev/null +++ b/mysql-test/suite/jp/t/jp_right_ucs2.test @@ -0,0 +1,143 @@ +--source include/have_ucs2.inc + +--disable_warnings +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +--enable_warnings + +# +# Test RIGHT() function with Japanese character in ucs2 encoding +# + +SET NAMES ujis; +SET character_set_database = ucs2; +SET collation_connection = ucs2_general_ci; + +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; + +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); + +#InnoDB +SELECT `ã`, RIGHT(`ã`,0) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,1) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,2) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,3) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,4) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,5) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,0) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,1) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,2) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,3) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,4) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,5) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,0) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,1) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,2) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,3) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,4) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,5) FROM `ԣ`; + +#MyISAM +SELECT `ã`, RIGHT(`ã`,0) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,1) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,2) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,3) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,4) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,5) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,0) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,1) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,2) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,3) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,4) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,5) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,0) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,1) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,2) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,3) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,4) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,5) FROM `ԣ`; + +#HEAP +SELECT `ã`, RIGHT(`ã`,0) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,1) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,2) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,3) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,4) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,5) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,0) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,1) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,2) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,3) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,4) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,5) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,0) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,1) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,2) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,3) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,4) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,5) FROM `ԣ`; + +#BDB +SELECT `ã`, RIGHT(`ã`,0) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,1) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,2) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,3) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,4) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,5) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,0) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,1) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,2) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,3) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,4) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,5) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,0) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,1) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,2) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,3) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,4) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,5) FROM `ԣ`; + +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; diff --git a/mysql-test/suite/jp/t/jp_right_ujis.test b/mysql-test/suite/jp/t/jp_right_ujis.test new file mode 100755 index 00000000000..b5284489c7e --- /dev/null +++ b/mysql-test/suite/jp/t/jp_right_ujis.test @@ -0,0 +1,142 @@ +--source include/have_ujis.inc + +--disable_warnings +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +--enable_warnings + +# +# Test RIGHT() function with Japanese character in ujis encoding +# + +SET NAMES ujis; +SET character_set_database = ujis; + +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; + +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); + +#InnoDB +SELECT `ã`, RIGHT(`ã`,0) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,1) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,2) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,3) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,4) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,5) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,0) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,1) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,2) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,3) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,4) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,5) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,0) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,1) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,2) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,3) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,4) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,5) FROM `ԣ`; + +#MyISAM +SELECT `ã`, RIGHT(`ã`,0) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,1) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,2) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,3) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,4) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,5) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,0) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,1) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,2) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,3) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,4) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,5) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,0) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,1) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,2) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,3) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,4) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,5) FROM `ԣ`; + +#HEAP +SELECT `ã`, RIGHT(`ã`,0) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,1) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,2) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,3) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,4) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,5) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,0) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,1) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,2) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,3) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,4) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,5) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,0) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,1) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,2) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,3) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,4) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,5) FROM `ԣ`; + +#BDB +SELECT `ã`, RIGHT(`ã`,0) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,1) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,2) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,3) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,4) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,5) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,0) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,1) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,2) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,3) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,4) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,5) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,0) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,1) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,2) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,3) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,4) FROM `ԣ`; +SELECT `ã`, RIGHT(`ã`,5) FROM `ԣ`; + +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; diff --git a/mysql-test/suite/jp/t/jp_right_utf8.test b/mysql-test/suite/jp/t/jp_right_utf8.test new file mode 100755 index 00000000000..863755c1dcf --- /dev/null +++ b/mysql-test/suite/jp/t/jp_right_utf8.test @@ -0,0 +1,140 @@ +--disable_warnings +drop table if exists `T1`; +drop table if exists `T2`; +drop table if exists `T3`; +drop table if exists `T4`; +drop table if exists `T5`; +drop table if exists `T6`; +drop table if exists `T7`; +drop table if exists `T8`; +drop table if exists `T9`; +drop table if exists `T10`; +drop table if exists `T11`; +drop table if exists `T12`; +--enable_warnings + +# +# Test RIGHT() function with Japanese character in utf8 encoding +# + +SET NAMES utf8; +SET character_set_database = utf8; + +CREATE TABLE `T1` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T2` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T3` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T4` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T5` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T6` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T7` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T8` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T9` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T10` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +CREATE TABLE `T11` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +CREATE TABLE `T12` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; + +INSERT INTO `T1` VALUES ('アイウエオ'),('アイウエ'),('アイウ'),('アイ'),('ア'),(''); +INSERT INTO `T2` VALUES ('あいうえお'),('あいうえ'),('あいう'),('あい'),('あ'),(''); +INSERT INTO `T3` VALUES ('龔龖龗龞龡'),('龔龖龗龞'),('龔龖龗'),('龔龖'),('龔'),(''); +INSERT INTO `T4` VALUES ('アイウエオ'),('アイウエ'),('アイウ'),('アイ'),('ア'),(''); +INSERT INTO `T5` VALUES ('あいうえお'),('あいうえ'),('あいう'),('あい'),('あ'),(''); +INSERT INTO `T6` VALUES ('龔龖龗龞龡'),('龔龖龗龞'),('龔龖龗'),('龔龖'),('龔'),(''); +INSERT INTO `T7` VALUES ('アイウエオ'),('アイウエ'),('アイウ'),('アイ'),('ア'),(''); +INSERT INTO `T8` VALUES ('あいうえお'),('あいうえ'),('あいう'),('あい'),('あ'),(''); +INSERT INTO `T9` VALUES ('龔龖龗龞龡'),('龔龖龗龞'),('龔龖龗'),('龔龖'),('龔'),(''); +INSERT INTO `T10` VALUES ('アイウエオ'),('アイウエ'),('アイウ'),('アイ'),('ア'),(''); +INSERT INTO `T11` VALUES ('あいうえお'),('あいうえ'),('あいう'),('あい'),('あ'),(''); +INSERT INTO `T12` VALUES ('龔龖龗龞龡'),('龔龖龗龞'),('龔龖龗'),('龔龖'),('龔'),(''); + +#InnoDB +SELECT `C1`, RIGHT(`C1`,0) FROM `T1`; +SELECT `C1`, RIGHT(`C1`,1) FROM `T1`; +SELECT `C1`, RIGHT(`C1`,2) FROM `T1`; +SELECT `C1`, RIGHT(`C1`,3) FROM `T1`; +SELECT `C1`, RIGHT(`C1`,4) FROM `T1`; +SELECT `C1`, RIGHT(`C1`,5) FROM `T1`; +SELECT `C1`, RIGHT(`C1`,0) FROM `T2`; +SELECT `C1`, RIGHT(`C1`,1) FROM `T2`; +SELECT `C1`, RIGHT(`C1`,2) FROM `T2`; +SELECT `C1`, RIGHT(`C1`,3) FROM `T2`; +SELECT `C1`, RIGHT(`C1`,4) FROM `T2`; +SELECT `C1`, RIGHT(`C1`,5) FROM `T2`; +SELECT `C1`, RIGHT(`C1`,0) FROM `T3`; +SELECT `C1`, RIGHT(`C1`,1) FROM `T3`; +SELECT `C1`, RIGHT(`C1`,2) FROM `T3`; +SELECT `C1`, RIGHT(`C1`,3) FROM `T3`; +SELECT `C1`, RIGHT(`C1`,4) FROM `T3`; +SELECT `C1`, RIGHT(`C1`,5) FROM `T3`; + +#MyISAM +SELECT `C1`, RIGHT(`C1`,0) FROM `T4`; +SELECT `C1`, RIGHT(`C1`,1) FROM `T4`; +SELECT `C1`, RIGHT(`C1`,2) FROM `T4`; +SELECT `C1`, RIGHT(`C1`,3) FROM `T4`; +SELECT `C1`, RIGHT(`C1`,4) FROM `T4`; +SELECT `C1`, RIGHT(`C1`,5) FROM `T4`; +SELECT `C1`, RIGHT(`C1`,0) FROM `T5`; +SELECT `C1`, RIGHT(`C1`,1) FROM `T5`; +SELECT `C1`, RIGHT(`C1`,2) FROM `T5`; +SELECT `C1`, RIGHT(`C1`,3) FROM `T5`; +SELECT `C1`, RIGHT(`C1`,4) FROM `T5`; +SELECT `C1`, RIGHT(`C1`,5) FROM `T5`; +SELECT `C1`, RIGHT(`C1`,0) FROM `T6`; +SELECT `C1`, RIGHT(`C1`,1) FROM `T6`; +SELECT `C1`, RIGHT(`C1`,2) FROM `T6`; +SELECT `C1`, RIGHT(`C1`,3) FROM `T6`; +SELECT `C1`, RIGHT(`C1`,4) FROM `T6`; +SELECT `C1`, RIGHT(`C1`,5) FROM `T6`; + +#HEAP +SELECT `C1`, RIGHT(`C1`,0) FROM `T7`; +SELECT `C1`, RIGHT(`C1`,1) FROM `T7`; +SELECT `C1`, RIGHT(`C1`,2) FROM `T7`; +SELECT `C1`, RIGHT(`C1`,3) FROM `T7`; +SELECT `C1`, RIGHT(`C1`,4) FROM `T7`; +SELECT `C1`, RIGHT(`C1`,5) FROM `T7`; +SELECT `C1`, RIGHT(`C1`,0) FROM `T8`; +SELECT `C1`, RIGHT(`C1`,1) FROM `T8`; +SELECT `C1`, RIGHT(`C1`,2) FROM `T8`; +SELECT `C1`, RIGHT(`C1`,3) FROM `T8`; +SELECT `C1`, RIGHT(`C1`,4) FROM `T8`; +SELECT `C1`, RIGHT(`C1`,5) FROM `T8`; +SELECT `C1`, RIGHT(`C1`,0) FROM `T9`; +SELECT `C1`, RIGHT(`C1`,1) FROM `T9`; +SELECT `C1`, RIGHT(`C1`,2) FROM `T9`; +SELECT `C1`, RIGHT(`C1`,3) FROM `T9`; +SELECT `C1`, RIGHT(`C1`,4) FROM `T9`; +SELECT `C1`, RIGHT(`C1`,5) FROM `T9`; + +#BDB +SELECT `C1`, RIGHT(`C1`,0) FROM `T10`; +SELECT `C1`, RIGHT(`C1`,1) FROM `T10`; +SELECT `C1`, RIGHT(`C1`,2) FROM `T10`; +SELECT `C1`, RIGHT(`C1`,3) FROM `T10`; +SELECT `C1`, RIGHT(`C1`,4) FROM `T10`; +SELECT `C1`, RIGHT(`C1`,5) FROM `T10`; +SELECT `C1`, RIGHT(`C1`,0) FROM `T11`; +SELECT `C1`, RIGHT(`C1`,1) FROM `T11`; +SELECT `C1`, RIGHT(`C1`,2) FROM `T11`; +SELECT `C1`, RIGHT(`C1`,3) FROM `T11`; +SELECT `C1`, RIGHT(`C1`,4) FROM `T11`; +SELECT `C1`, RIGHT(`C1`,5) FROM `T11`; +SELECT `C1`, RIGHT(`C1`,0) FROM `T12`; +SELECT `C1`, RIGHT(`C1`,1) FROM `T12`; +SELECT `C1`, RIGHT(`C1`,2) FROM `T12`; +SELECT `C1`, RIGHT(`C1`,3) FROM `T12`; +SELECT `C1`, RIGHT(`C1`,4) FROM `T12`; +SELECT `C1`, RIGHT(`C1`,5) FROM `T12`; + +DROP TABLE `T1`; +DROP TABLE `T2`; +DROP TABLE `T3`; +DROP TABLE `T4`; +DROP TABLE `T5`; +DROP TABLE `T6`; +DROP TABLE `T7`; +DROP TABLE `T8`; +DROP TABLE `T9`; +DROP TABLE `T10`; +DROP TABLE `T11`; +DROP TABLE `T12`; diff --git a/mysql-test/suite/jp/t/jp_rpad_sjis.test b/mysql-test/suite/jp/t/jp_rpad_sjis.test new file mode 100755 index 00000000000..cc008631548 --- /dev/null +++ b/mysql-test/suite/jp/t/jp_rpad_sjis.test @@ -0,0 +1,81 @@ +--character_set sjis +--disable_warnings +drop table if exists `sP`; +drop table if exists `sQ`; +drop table if exists `sR`; +drop table if exists `sS`; +drop table if exists `sT`; +drop table if exists `sU`; +drop table if exists `sV`; +drop table if exists `sW`; +drop table if exists `sX`; +drop table if exists `sPO`; +drop table if exists `sPP`; +drop table if exists `sPQ`; +--enable_warnings + +# +# Test RPAD() function with Japanese character in sjis encoding +# + +SET NAMES sjis; +SET character_set_database = sjis; + +CREATE TABLE `sP` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sQ` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sR` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sS` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sT` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sU` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sV` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sW` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sX` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sPO` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +CREATE TABLE `sPP` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +CREATE TABLE `sPQ` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; + +INSERT INTO `sP` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sQ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sR` VALUES ('\\\\\'),('\\\\'),('\\\'),('\\'),('\'),(''); +INSERT INTO `sS` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sT` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sU` VALUES ('\\\\\'),('\\\\'),('\\\'),('\\'),('\'),(''); +INSERT INTO `sV` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sW` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sX` VALUES ('\\\\\'),('\\\\'),('\\\'),('\\'),('\'),(''); +INSERT INTO `sPO` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sPP` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sPQ` VALUES ('\\\\\'),('\\\\'),('\\\'),('\\'),('\'),(''); + +#InnoDB +SELECT `bP`, RPAD(`bP`,5,'') FROM `sP`; +SELECT `bP`, RPAD(`bP`,5,'w') FROM `sQ`; +SELECT `bP`, RPAD(`bP`,5,'\') FROM `sR`; + +#MyISAM +SELECT `bP`, RPAD(`bP`,5,'') FROM `sS`; +SELECT `bP`, RPAD(`bP`,5,'w') FROM `sT`; +SELECT `bP`, RPAD(`bP`,5,'\' ) FROM `sU`; + +#HEAP +SELECT `bP`, RPAD(`bP`,5,'') FROM `sV`; +SELECT `bP`, RPAD(`bP`,5,'w') FROM `sW`; +SELECT `bP`, RPAD(`bP`,5,'\' ) FROM `sX`; + +#BDB +SELECT `bP`, RPAD(`bP`,5,'') FROM `sPO`; +SELECT `bP`, RPAD(`bP`,5,'w') FROM `sPP`; +SELECT `bP`, RPAD(`bP`,5,'\' ) FROM `sPQ`; + +DROP TABLE `sP`; +DROP TABLE `sQ`; +DROP TABLE `sR`; +DROP TABLE `sS`; +DROP TABLE `sT`; +DROP TABLE `sU`; +DROP TABLE `sV`; +DROP TABLE `sW`; +DROP TABLE `sX`; +DROP TABLE `sPO`; +DROP TABLE `sPP`; +DROP TABLE `sPQ`; diff --git a/mysql-test/suite/jp/t/jp_rpad_ucs2.test b/mysql-test/suite/jp/t/jp_rpad_ucs2.test new file mode 100755 index 00000000000..ca5059497d3 --- /dev/null +++ b/mysql-test/suite/jp/t/jp_rpad_ucs2.test @@ -0,0 +1,83 @@ +--source include/have_ucs2.inc + +--disable_warnings +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +--enable_warnings + +# +# Test RPAD() function with Japanese character in ucs2 encoding +# + +SET NAMES ujis; +SET character_set_database = ucs2; +SET collation_connection = ucs2_general_ci; + +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; + +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); + +#InnoDB +SELECT `ã`, RPAD(`ã`,5,'') FROM `ԣ`; +SELECT `ã`, RPAD(`ã`,5,'') FROM `ԣ`; +SELECT `ã`, RPAD(`ã`,5,'') FROM `ԣ`; + +#MyISAM +SELECT `ã`, RPAD(`ã`,5,'') FROM `ԣ`; +SELECT `ã`, RPAD(`ã`,5,'') FROM `ԣ`; +SELECT `ã`, RPAD(`ã`,5,'' ) FROM `ԣ`; + +#HEAP +SELECT `ã`, RPAD(`ã`,5,'') FROM `ԣ`; +SELECT `ã`, RPAD(`ã`,5,'') FROM `ԣ`; +SELECT `ã`, RPAD(`ã`,5,'' ) FROM `ԣ`; + +#BDB +SELECT `ã`, RPAD(`ã`,5,'') FROM `ԣ`; +SELECT `ã`, RPAD(`ã`,5,'') FROM `ԣ`; +SELECT `ã`, RPAD(`ã`,5,'' ) FROM `ԣ`; + +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; diff --git a/mysql-test/suite/jp/t/jp_rpad_ujis.test b/mysql-test/suite/jp/t/jp_rpad_ujis.test new file mode 100755 index 00000000000..d7725b80af7 --- /dev/null +++ b/mysql-test/suite/jp/t/jp_rpad_ujis.test @@ -0,0 +1,82 @@ +--source include/have_ujis.inc + +--disable_warnings +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +--enable_warnings + +# +# Test RPAD() function with Japanese character in ujis encoding +# + +SET NAMES ujis; +SET character_set_database = ujis; + +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; + +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); + +#InnoDB +SELECT `ã`, RPAD(`ã`,5,'') FROM `ԣ`; +SELECT `ã`, RPAD(`ã`,5,'') FROM `ԣ`; +SELECT `ã`, RPAD(`ã`,5,'') FROM `ԣ`; + +#MyISAM +SELECT `ã`, RPAD(`ã`,5,'') FROM `ԣ`; +SELECT `ã`, RPAD(`ã`,5,'') FROM `ԣ`; +SELECT `ã`, RPAD(`ã`,5,'' ) FROM `ԣ`; + +#HEAP +SELECT `ã`, RPAD(`ã`,5,'') FROM `ԣ`; +SELECT `ã`, RPAD(`ã`,5,'') FROM `ԣ`; +SELECT `ã`, RPAD(`ã`,5,'' ) FROM `ԣ`; + +#BDB +SELECT `ã`, RPAD(`ã`,5,'') FROM `ԣ`; +SELECT `ã`, RPAD(`ã`,5,'') FROM `ԣ`; +SELECT `ã`, RPAD(`ã`,5,'' ) FROM `ԣ`; + +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; diff --git a/mysql-test/suite/jp/t/jp_rpad_utf8.test b/mysql-test/suite/jp/t/jp_rpad_utf8.test new file mode 100755 index 00000000000..b5a335bc6ce --- /dev/null +++ b/mysql-test/suite/jp/t/jp_rpad_utf8.test @@ -0,0 +1,80 @@ +--disable_warnings +drop table if exists `T1`; +drop table if exists `T2`; +drop table if exists `T3`; +drop table if exists `T4`; +drop table if exists `T5`; +drop table if exists `T6`; +drop table if exists `T7`; +drop table if exists `T8`; +drop table if exists `T9`; +drop table if exists `T10`; +drop table if exists `T11`; +drop table if exists `T12`; +--enable_warnings + +# +# Test RPAD() function with Japanese character in utf8 encoding +# + +SET NAMES utf8; +SET character_set_database = utf8; + +CREATE TABLE `T1` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T2` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T3` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T4` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T5` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T6` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T7` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T8` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T9` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T10` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +CREATE TABLE `T11` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +CREATE TABLE `T12` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; + +INSERT INTO `T1` VALUES ('アイウエオ'),('アイウエ'),('アイウ'),('アイ'),('ア'),(''); +INSERT INTO `T2` VALUES ('あいうえお'),('あいうえ'),('あいう'),('あい'),('あ'),(''); +INSERT INTO `T3` VALUES ('龔龖龗龞龡'),('龔龖龗龞'),('龔龖龗'),('龔龖'),('龔'),(''); +INSERT INTO `T4` VALUES ('アイウエオ'),('アイウエ'),('アイウ'),('アイ'),('ア'),(''); +INSERT INTO `T5` VALUES ('あいうえお'),('あいうえ'),('あいう'),('あい'),('あ'),(''); +INSERT INTO `T6` VALUES ('龔龖龗龞龡'),('龔龖龗龞'),('龔龖龗'),('龔龖'),('龔'),(''); +INSERT INTO `T7` VALUES ('アイウエオ'),('アイウエ'),('アイウ'),('アイ'),('ア'),(''); +INSERT INTO `T8` VALUES ('あいうえお'),('あいうえ'),('あいう'),('あい'),('あ'),(''); +INSERT INTO `T9` VALUES ('龔龖龗龞龡'),('龔龖龗龞'),('龔龖龗'),('龔龖'),('龔'),(''); +INSERT INTO `T10` VALUES ('アイウエオ'),('アイウエ'),('アイウ'),('アイ'),('ア'),(''); +INSERT INTO `T11` VALUES ('あいうえお'),('あいうえ'),('あいう'),('あい'),('あ'),(''); +INSERT INTO `T12` VALUES ('龔龖龗龞龡'),('龔龖龗龞'),('龔龖龗'),('龔龖'),('龔'),(''); + +#InnoDB +SELECT `C1`, RPAD(`C1`,5,'。') FROM `T1`; +SELECT `C1`, RPAD(`C1`,5,'X') FROM `T2`; +SELECT `C1`, RPAD(`C1`,5,'丄') FROM `T3`; + +#MyISAM +SELECT `C1`, RPAD(`C1`,5,'。') FROM `T4`; +SELECT `C1`, RPAD(`C1`,5,'X') FROM `T5`; +SELECT `C1`, RPAD(`C1`,5,'丄' ) FROM `T6`; + +#HEAP +SELECT `C1`, RPAD(`C1`,5,'。') FROM `T7`; +SELECT `C1`, RPAD(`C1`,5,'X') FROM `T8`; +SELECT `C1`, RPAD(`C1`,5,'丄' ) FROM `T9`; + +#BDB +SELECT `C1`, RPAD(`C1`,5,'。') FROM `T10`; +SELECT `C1`, RPAD(`C1`,5,'X') FROM `T11`; +SELECT `C1`, RPAD(`C1`,5,'丄' ) FROM `T12`; + +DROP TABLE `T1`; +DROP TABLE `T2`; +DROP TABLE `T3`; +DROP TABLE `T4`; +DROP TABLE `T5`; +DROP TABLE `T6`; +DROP TABLE `T7`; +DROP TABLE `T8`; +DROP TABLE `T9`; +DROP TABLE `T10`; +DROP TABLE `T11`; +DROP TABLE `T12`; diff --git a/mysql-test/suite/jp/t/jp_rtrim_sjis.test b/mysql-test/suite/jp/t/jp_rtrim_sjis.test new file mode 100755 index 00000000000..c80cf9410f9 --- /dev/null +++ b/mysql-test/suite/jp/t/jp_rtrim_sjis.test @@ -0,0 +1,163 @@ +--character_set sjis +--disable_warnings +drop table if exists `sP`; +drop table if exists `sQ`; +drop table if exists `sR`; +drop table if exists `sS`; +drop table if exists `sT`; +drop table if exists `sU`; +drop table if exists `sV`; +drop table if exists `sW`; +drop table if exists `sX`; +drop table if exists `sPO`; +--enable_warnings + +# +# Test RTRIM() function with Japanese characters in sjis encoding +# + +SET NAMES sjis; +SET character_set_database = sjis; + +CREATE TABLE `sP` (`bP` char(8), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sQ` (`bP` char(8), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sR` (`bP` char(8), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sS` (`bP` char(8), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sT` (`bP` char(8), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sU` (`bP` char(8), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sV` (`bP` char(8), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sW` (`bP` char(8), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sX` (`bP` char(8), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sPO` (`bP` char(8), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +CREATE TABLE `sPP` (`bP` char(8), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +CREATE TABLE `sPQ` (`bP` char(8), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; + +INSERT INTO `sP` VALUES (''); +INSERT INTO `sP` VALUES (' '); +INSERT INTO `sP` VALUES (' '); +INSERT INTO `sP` VALUES (' '); +# Double byte spaces are not supposed to be trimed +INSERT INTO `sP` VALUES ('@'); +INSERT INTO `sP` VALUES ('@@'); +INSERT INTO `sP` VALUES ('@@@'); +INSERT INTO `sQ` VALUES (''); +INSERT INTO `sQ` VALUES (' '); +INSERT INTO `sQ` VALUES (' '); +INSERT INTO `sQ` VALUES (' '); +# Double byte spaces are not supposed to be trimed +INSERT INTO `sQ` VALUES ('@'); +INSERT INTO `sQ` VALUES ('@@'); +INSERT INTO `sQ` VALUES ('@@@'); +INSERT INTO `sR` VALUES ('\\\\\'); +INSERT INTO `sR` VALUES ('\\\\\ '); +INSERT INTO `sR` VALUES ('\\\\\ '); +INSERT INTO `sR` VALUES ('\\\\\ '); +# Double byte spaces are not supposed to be trimed +INSERT INTO `sR` VALUES ('\\\\\@'); +INSERT INTO `sR` VALUES ('\\\\\@@'); +INSERT INTO `sR` VALUES ('\\\\\@@@'); +INSERT INTO `sS` VALUES (''); +INSERT INTO `sS` VALUES (' '); +INSERT INTO `sS` VALUES (' '); +INSERT INTO `sS` VALUES (' '); +# Double byte spaces are not supposed to be trimed +INSERT INTO `sS` VALUES ('@'); +INSERT INTO `sS` VALUES ('@@'); +INSERT INTO `sS` VALUES ('@@@'); +INSERT INTO `sT` VALUES (''); +INSERT INTO `sT` VALUES (' '); +INSERT INTO `sT` VALUES (' '); +INSERT INTO `sT` VALUES (' '); +# Double byte spaces are not supposed to be trimed +INSERT INTO `sT` VALUES ('@'); +INSERT INTO `sT` VALUES ('@@'); +INSERT INTO `sT` VALUES ('@@@'); +INSERT INTO `sU` VALUES ('\\\\\'); +INSERT INTO `sU` VALUES ('\\\\\ '); +INSERT INTO `sU` VALUES ('\\\\\ '); +INSERT INTO `sU` VALUES ('\\\\\ '); +# Double byte spaces are not supposed to be trimed +INSERT INTO `sU` VALUES ('\\\\\@'); +INSERT INTO `sU` VALUES ('\\\\\@@'); +INSERT INTO `sU` VALUES ('\\\\\@@@'); +INSERT INTO `sV` VALUES (''); +INSERT INTO `sV` VALUES (' '); +INSERT INTO `sV` VALUES (' '); +INSERT INTO `sV` VALUES (' '); +# Double byte spaces are not supposed to be trimed +INSERT INTO `sV` VALUES ('@'); +INSERT INTO `sV` VALUES ('@@'); +INSERT INTO `sV` VALUES ('@@@'); +INSERT INTO `sW` VALUES (''); +INSERT INTO `sW` VALUES (' '); +INSERT INTO `sW` VALUES (' '); +INSERT INTO `sW` VALUES (' '); +# Double byte spaces are not supposed to be trimed +INSERT INTO `sW` VALUES ('@'); +INSERT INTO `sW` VALUES ('@@'); +INSERT INTO `sW` VALUES ('@@@'); +INSERT INTO `sX` VALUES ('\\\\\'); +INSERT INTO `sX` VALUES ('\\\\\ '); +INSERT INTO `sX` VALUES ('\\\\\ '); +INSERT INTO `sX` VALUES ('\\\\\ '); +# Double byte spaces are not supposed to be trimed +INSERT INTO `sX` VALUES ('\\\\\@'); +INSERT INTO `sX` VALUES ('\\\\\@@'); +INSERT INTO `sX` VALUES ('\\\\\@@@'); +INSERT INTO `sPO` VALUES (''); +INSERT INTO `sPO` VALUES (' '); +INSERT INTO `sPO` VALUES (' '); +INSERT INTO `sPO` VALUES (' '); +# Double byte spaces are not supposed to be trimed +INSERT INTO `sPO` VALUES ('@'); +INSERT INTO `sPO` VALUES ('@@'); +INSERT INTO `sPO` VALUES ('@@@'); +INSERT INTO `sPP` VALUES (''); +INSERT INTO `sPP` VALUES (' '); +INSERT INTO `sPP` VALUES (' '); +INSERT INTO `sPP` VALUES (' '); +# Double byte spaces are not supposed to be trimed +INSERT INTO `sPP` VALUES ('@'); +INSERT INTO `sPP` VALUES ('@@'); +INSERT INTO `sPP` VALUES ('@@@'); +INSERT INTO `sPQ` VALUES ('\\\\\'); +INSERT INTO `sPQ` VALUES ('\\\\\ '); +INSERT INTO `sPQ` VALUES ('\\\\\ '); +INSERT INTO `sPQ` VALUES ('\\\\\ '); +# Double byte spaces are not supposed to be trimed +INSERT INTO `sPQ` VALUES ('\\\\\@'); +INSERT INTO `sPQ` VALUES ('\\\\\@@'); +INSERT INTO `sPQ` VALUES ('\\\\\@@@'); + +#InnoDB +SELECT RTRIM(`bP`) from `sP`; +SELECT RTRIM(`bP`) from `sQ`; +SELECT RTRIM(`bP`) from `sR`; + +#MyISAM +SELECT RTRIM(`bP`) from `sS`; +SELECT RTRIM(`bP`) from `sT`; +SELECT RTRIM(`bP`) from `sU`; + +#HEAP +SELECT RTRIM(`bP`) from `sV`; +SELECT RTRIM(`bP`) from `sW`; +SELECT RTRIM(`bP`) from `sX`; + +#BDB +SELECT RTRIM(`bP`) from `sPO`; +SELECT RTRIM(`bP`) from `sPP`; +SELECT RTRIM(`bP`) from `sPQ`; + +DROP TABLE `sP`; +DROP TABLE `sQ`; +DROP TABLE `sR`; +DROP TABLE `sS`; +DROP TABLE `sT`; +DROP TABLE `sU`; +DROP TABLE `sV`; +DROP TABLE `sW`; +DROP TABLE `sX`; +DROP TABLE `sPO`; +DROP TABLE `sPP`; +DROP TABLE `sPQ`; diff --git a/mysql-test/suite/jp/t/jp_rtrim_ucs2.test b/mysql-test/suite/jp/t/jp_rtrim_ucs2.test new file mode 100755 index 00000000000..0fac38d12d1 --- /dev/null +++ b/mysql-test/suite/jp/t/jp_rtrim_ucs2.test @@ -0,0 +1,165 @@ +--source include/have_ucs2.inc + +--disable_warnings +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +--enable_warnings + +# +# Test RTRIM() function with Japanese characters in ucs2 encoding +# + +SET NAMES ujis; +SET character_set_database = ucs2; +SET collation_connection = ucs2_general_ci; + +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; + +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +# Double byte spaces are not supposed to be trimed +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +# Double byte spaces are not supposed to be trimed +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ '); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ '); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ '); +# Double byte spaces are not supposed to be trimed +INSERT INTO `ԣ` VALUES ('܏ݏޏߏࡡ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏࡡ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏࡡ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +# Double byte spaces are not supposed to be trimed +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +# Double byte spaces are not supposed to be trimed +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ '); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ '); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ '); +# Double byte spaces are not supposed to be trimed +INSERT INTO `ԣ` VALUES ('܏ݏޏߏࡡ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏࡡ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏࡡ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +# Double byte spaces are not supposed to be trimed +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +# Double byte spaces are not supposed to be trimed +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ '); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ '); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ '); +# Double byte spaces are not supposed to be trimed +INSERT INTO `ԣ` VALUES ('܏ݏޏߏࡡ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏࡡ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏࡡ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +# Double byte spaces are not supposed to be trimed +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +# Double byte spaces are not supposed to be trimed +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ '); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ '); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ '); +# Double byte spaces are not supposed to be trimed +INSERT INTO `ԣ` VALUES ('܏ݏޏߏࡡ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏࡡ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏࡡ'); + +#InnoDB +SELECT RTRIM(`ã`) from `ԣ`; +SELECT RTRIM(`ã`) from `ԣ`; +SELECT RTRIM(`ã`) from `ԣ`; + +#MyISAM +SELECT RTRIM(`ã`) from `ԣ`; +SELECT RTRIM(`ã`) from `ԣ`; +SELECT RTRIM(`ã`) from `ԣ`; + +#HEAP +SELECT RTRIM(`ã`) from `ԣ`; +SELECT RTRIM(`ã`) from `ԣ`; +SELECT RTRIM(`ã`) from `ԣ`; + +#BDB +SELECT RTRIM(`ã`) from `ԣ`; +SELECT RTRIM(`ã`) from `ԣ`; +SELECT RTRIM(`ã`) from `ԣ`; + +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; diff --git a/mysql-test/suite/jp/t/jp_rtrim_ujis.test b/mysql-test/suite/jp/t/jp_rtrim_ujis.test new file mode 100755 index 00000000000..46cda84dd55 --- /dev/null +++ b/mysql-test/suite/jp/t/jp_rtrim_ujis.test @@ -0,0 +1,164 @@ +--source include/have_ujis.inc + +--disable_warnings +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +--enable_warnings + +# +# Test RTRIM() function with Japanese characters in ujis encoding +# + +SET NAMES ujis; +SET character_set_database = ujis; + +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +CREATE TABLE `ԣ` (`ã` char(8), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; + +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +# Double byte spaces are not supposed to be trimed +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +# Double byte spaces are not supposed to be trimed +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ '); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ '); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ '); +# Double byte spaces are not supposed to be trimed +INSERT INTO `ԣ` VALUES ('܏ݏޏߏࡡ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏࡡ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏࡡ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +# Double byte spaces are not supposed to be trimed +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +# Double byte spaces are not supposed to be trimed +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ '); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ '); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ '); +# Double byte spaces are not supposed to be trimed +INSERT INTO `ԣ` VALUES ('܏ݏޏߏࡡ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏࡡ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏࡡ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +# Double byte spaces are not supposed to be trimed +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +# Double byte spaces are not supposed to be trimed +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ '); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ '); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ '); +# Double byte spaces are not supposed to be trimed +INSERT INTO `ԣ` VALUES ('܏ݏޏߏࡡ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏࡡ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏࡡ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +# Double byte spaces are not supposed to be trimed +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (' '); +# Double byte spaces are not supposed to be trimed +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ '); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ '); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ '); +# Double byte spaces are not supposed to be trimed +INSERT INTO `ԣ` VALUES ('܏ݏޏߏࡡ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏࡡ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏࡡ'); + +#InnoDB +SELECT RTRIM(`ã`) from `ԣ`; +SELECT RTRIM(`ã`) from `ԣ`; +SELECT RTRIM(`ã`) from `ԣ`; + +#MyISAM +SELECT RTRIM(`ã`) from `ԣ`; +SELECT RTRIM(`ã`) from `ԣ`; +SELECT RTRIM(`ã`) from `ԣ`; + +#HEAP +SELECT RTRIM(`ã`) from `ԣ`; +SELECT RTRIM(`ã`) from `ԣ`; +SELECT RTRIM(`ã`) from `ԣ`; + +#BDB +SELECT RTRIM(`ã`) from `ԣ`; +SELECT RTRIM(`ã`) from `ԣ`; +SELECT RTRIM(`ã`) from `ԣ`; + +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; diff --git a/mysql-test/suite/jp/t/jp_rtrim_utf8.test b/mysql-test/suite/jp/t/jp_rtrim_utf8.test new file mode 100755 index 00000000000..4880a42db3e --- /dev/null +++ b/mysql-test/suite/jp/t/jp_rtrim_utf8.test @@ -0,0 +1,162 @@ +--disable_warnings +drop table if exists `T1`; +drop table if exists `T2`; +drop table if exists `T3`; +drop table if exists `T4`; +drop table if exists `T5`; +drop table if exists `T6`; +drop table if exists `T7`; +drop table if exists `T8`; +drop table if exists `T9`; +drop table if exists `T10`; +--enable_warnings + +# +# Test RTRIM() function with Japanese characters in utf8 encoding +# + +SET NAMES utf8; +SET character_set_database = utf8; + +CREATE TABLE `T1` (`C1` char(8), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T2` (`C1` char(8), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T3` (`C1` char(8), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T4` (`C1` char(8), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T5` (`C1` char(8), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T6` (`C1` char(8), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T7` (`C1` char(8), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T8` (`C1` char(8), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T9` (`C1` char(8), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T10` (`C1` char(8), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +CREATE TABLE `T11` (`C1` char(8), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +CREATE TABLE `T12` (`C1` char(8), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; + +INSERT INTO `T1` VALUES ('アイウエオ'); +INSERT INTO `T1` VALUES ('アイウエオ '); +INSERT INTO `T1` VALUES ('アイウエオ '); +INSERT INTO `T1` VALUES ('アイウエオ '); +# Double byte spaces are not supposed to be trimed +INSERT INTO `T1` VALUES ('アイウエオ '); +INSERT INTO `T1` VALUES ('アイウエオ  '); +INSERT INTO `T1` VALUES ('アイウエオ   '); +INSERT INTO `T2` VALUES ('あいうえお'); +INSERT INTO `T2` VALUES ('あいうえお '); +INSERT INTO `T2` VALUES ('あいうえお '); +INSERT INTO `T2` VALUES ('あいうえお '); +# Double byte spaces are not supposed to be trimed +INSERT INTO `T2` VALUES ('あいうえお '); +INSERT INTO `T2` VALUES ('あいうえお  '); +INSERT INTO `T2` VALUES ('あいうえお   '); +INSERT INTO `T3` VALUES ('龔龖龗龞龡'); +INSERT INTO `T3` VALUES ('龔龖龗龞龡 '); +INSERT INTO `T3` VALUES ('龔龖龗龞龡 '); +INSERT INTO `T3` VALUES ('龔龖龗龞龡 '); +# Double byte spaces are not supposed to be trimed +INSERT INTO `T3` VALUES ('龔龖龗龞龡 '); +INSERT INTO `T3` VALUES ('龔龖龗龞龡  '); +INSERT INTO `T3` VALUES ('龔龖龗龞龡   '); +INSERT INTO `T4` VALUES ('アイウエオ'); +INSERT INTO `T4` VALUES ('アイウエオ '); +INSERT INTO `T4` VALUES ('アイウエオ '); +INSERT INTO `T4` VALUES ('アイウエオ '); +# Double byte spaces are not supposed to be trimed +INSERT INTO `T4` VALUES ('アイウエオ '); +INSERT INTO `T4` VALUES ('アイウエオ  '); +INSERT INTO `T4` VALUES ('アイウエオ   '); +INSERT INTO `T5` VALUES ('あいうえお'); +INSERT INTO `T5` VALUES ('あいうえお '); +INSERT INTO `T5` VALUES ('あいうえお '); +INSERT INTO `T5` VALUES ('あいうえお '); +# Double byte spaces are not supposed to be trimed +INSERT INTO `T5` VALUES ('あいうえお '); +INSERT INTO `T5` VALUES ('あいうえお  '); +INSERT INTO `T5` VALUES ('あいうえお   '); +INSERT INTO `T6` VALUES ('龔龖龗龞龡'); +INSERT INTO `T6` VALUES ('龔龖龗龞龡 '); +INSERT INTO `T6` VALUES ('龔龖龗龞龡 '); +INSERT INTO `T6` VALUES ('龔龖龗龞龡 '); +# Double byte spaces are not supposed to be trimed +INSERT INTO `T6` VALUES ('龔龖龗龞龡 '); +INSERT INTO `T6` VALUES ('龔龖龗龞龡  '); +INSERT INTO `T6` VALUES ('龔龖龗龞龡   '); +INSERT INTO `T7` VALUES ('アイウエオ'); +INSERT INTO `T7` VALUES ('アイウエオ '); +INSERT INTO `T7` VALUES ('アイウエオ '); +INSERT INTO `T7` VALUES ('アイウエオ '); +# Double byte spaces are not supposed to be trimed +INSERT INTO `T7` VALUES ('アイウエオ '); +INSERT INTO `T7` VALUES ('アイウエオ  '); +INSERT INTO `T7` VALUES ('アイウエオ   '); +INSERT INTO `T8` VALUES ('あいうえお'); +INSERT INTO `T8` VALUES ('あいうえお '); +INSERT INTO `T8` VALUES ('あいうえお '); +INSERT INTO `T8` VALUES ('あいうえお '); +# Double byte spaces are not supposed to be trimed +INSERT INTO `T8` VALUES ('あいうえお '); +INSERT INTO `T8` VALUES ('あいうえお  '); +INSERT INTO `T8` VALUES ('あいうえお   '); +INSERT INTO `T9` VALUES ('龔龖龗龞龡'); +INSERT INTO `T9` VALUES ('龔龖龗龞龡 '); +INSERT INTO `T9` VALUES ('龔龖龗龞龡 '); +INSERT INTO `T9` VALUES ('龔龖龗龞龡 '); +# Double byte spaces are not supposed to be trimed +INSERT INTO `T9` VALUES ('龔龖龗龞龡 '); +INSERT INTO `T9` VALUES ('龔龖龗龞龡  '); +INSERT INTO `T9` VALUES ('龔龖龗龞龡   '); +INSERT INTO `T10` VALUES ('アイウエオ'); +INSERT INTO `T10` VALUES ('アイウエオ '); +INSERT INTO `T10` VALUES ('アイウエオ '); +INSERT INTO `T10` VALUES ('アイウエオ '); +# Double byte spaces are not supposed to be trimed +INSERT INTO `T10` VALUES ('アイウエオ '); +INSERT INTO `T10` VALUES ('アイウエオ  '); +INSERT INTO `T10` VALUES ('アイウエオ   '); +INSERT INTO `T11` VALUES ('あいうえお'); +INSERT INTO `T11` VALUES ('あいうえお '); +INSERT INTO `T11` VALUES ('あいうえお '); +INSERT INTO `T11` VALUES ('あいうえお '); +# Double byte spaces are not supposed to be trimed +INSERT INTO `T11` VALUES ('あいうえお '); +INSERT INTO `T11` VALUES ('あいうえお  '); +INSERT INTO `T11` VALUES ('あいうえお   '); +INSERT INTO `T12` VALUES ('龔龖龗龞龡'); +INSERT INTO `T12` VALUES ('龔龖龗龞龡 '); +INSERT INTO `T12` VALUES ('龔龖龗龞龡 '); +INSERT INTO `T12` VALUES ('龔龖龗龞龡 '); +# Double byte spaces are not supposed to be trimed +INSERT INTO `T12` VALUES ('龔龖龗龞龡 '); +INSERT INTO `T12` VALUES ('龔龖龗龞龡  '); +INSERT INTO `T12` VALUES ('龔龖龗龞龡   '); + +#InnoDB +SELECT RTRIM(`C1`) from `T1`; +SELECT RTRIM(`C1`) from `T2`; +SELECT RTRIM(`C1`) from `T3`; + +#MyISAM +SELECT RTRIM(`C1`) from `T4`; +SELECT RTRIM(`C1`) from `T5`; +SELECT RTRIM(`C1`) from `T6`; + +#HEAP +SELECT RTRIM(`C1`) from `T7`; +SELECT RTRIM(`C1`) from `T8`; +SELECT RTRIM(`C1`) from `T9`; + +#BDB +SELECT RTRIM(`C1`) from `T10`; +SELECT RTRIM(`C1`) from `T11`; +SELECT RTRIM(`C1`) from `T12`; + +DROP TABLE `T1`; +DROP TABLE `T2`; +DROP TABLE `T3`; +DROP TABLE `T4`; +DROP TABLE `T5`; +DROP TABLE `T6`; +DROP TABLE `T7`; +DROP TABLE `T8`; +DROP TABLE `T9`; +DROP TABLE `T10`; +DROP TABLE `T11`; +DROP TABLE `T12`; diff --git a/mysql-test/suite/jp/t/jp_select_sjis.test b/mysql-test/suite/jp/t/jp_select_sjis.test new file mode 100755 index 00000000000..d84ed7a4b2c --- /dev/null +++ b/mysql-test/suite/jp/t/jp_select_sjis.test @@ -0,0 +1,83 @@ +--character_set sjis +--disable_warnings +drop table if exists `sP`; +drop table if exists `sQ`; +drop table if exists `sR`; +drop table if exists `sS`; +drop table if exists `sT`; +drop table if exists `sU`; +drop table if exists `sV`; +drop table if exists `sW`; +drop table if exists `sX`; +drop table if exists `sPO`; +drop table if exists `sPP`; +drop table if exists `sPQ`; +--enable_warnings + +# +# Test Displaying Japanese charact in sjis encoding +# + +SET NAMES sjis; +SET character_set_database = sjis; + +CREATE TABLE `sP` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sQ` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sR` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sS` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sT` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sU` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sV` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sW` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sX` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sPO` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +CREATE TABLE `sPP` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +CREATE TABLE `sPQ` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; + +#Load the following data in each table +# jisx0201 hankaku-katakana data +# jisx0208 data +# jisx0212 supplemental character data + +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_sjis.dat' INTO TABLE `sP`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_sjis.dat' INTO TABLE `sQ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_sjis2.dat' INTO TABLE `sR`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_sjis.dat' INTO TABLE `sS`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_sjis.dat' INTO TABLE `sT`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_sjis2.dat' INTO TABLE `sU`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_sjis.dat' INTO TABLE `sV`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_sjis.dat' INTO TABLE `sW`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_sjis2.dat' INTO TABLE `sX`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_sjis.dat' INTO TABLE `sPO`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_sjis.dat' INTO TABLE `sPP`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_sjis2.dat' INTO TABLE `sPQ`; + +#InnoDB +SELECT * FROM `sP`; +SELECT * FROM `sQ`; +SELECT * FROM `sR`; +#MyISAM +SELECT * FROM `sS`; +SELECT * FROM `sT`; +SELECT * FROM `sU`; +#Heap +SELECT * FROM `sV`; +SELECT * FROM `sW`; +SELECT * FROM `sX`; +#BDB +SELECT * FROM `sPO`; +SELECT * FROM `sPP`; +SELECT * FROM `sPQ`; + +drop table `sP`; +drop table `sQ`; +drop table `sR`; +drop table `sS`; +drop table `sT`; +drop table `sU`; +drop table `sV`; +drop table `sW`; +drop table `sX`; +drop table `sPO`; +drop table `sPP`; +drop table `sPQ`; diff --git a/mysql-test/suite/jp/t/jp_select_ucs2.test b/mysql-test/suite/jp/t/jp_select_ucs2.test new file mode 100755 index 00000000000..2e4602e7ea4 --- /dev/null +++ b/mysql-test/suite/jp/t/jp_select_ucs2.test @@ -0,0 +1,172 @@ +--source include/have_ucs2.inc + +--disable_warnings +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +--enable_warnings + +# +# Test Displaying Japanese charact in ucs2 encoding +# + +SET NAMES ujis; +SET character_set_database = ucs2; +SET collation_connection = ucs2_general_ci; + +CREATE TABLE `ԣ` (c1 char(20), INDEX(c1)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (c1 char(20), INDEX(c1)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (c1 char(20), INDEX(c1)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (c1 char(20), INDEX(c1)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (c1 char(20), INDEX(c1)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (c1 char(20), INDEX(c1)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (c1 char(20), INDEX(c1)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (c1 char(20), INDEX(c1)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (c1 char(20), INDEX(c1)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (c1 char(20), INDEX(c1)) DEFAULT CHARSET = ucs2 engine = bdb; +CREATE TABLE `ԣ` (c1 char(20), INDEX(c1)) DEFAULT CHARSET = ucs2 engine = bdb; +CREATE TABLE `ԣ` (c1 char(20), INDEX(c1)) DEFAULT CHARSET = ucs2 engine = bdb; + +#INSERT the following data in each table +# jisx0201 hankaku-katakana data +# jisx0208 data +# jisx0212 supplemental character data + +INSERT INTO `ԣ` VALUES + ('PQRSTUVWXYZ[\\]^_') +,(' ') +,('') +,('ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ') +,('ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ'); + +INSERT INTO `ԣ` VALUES + ('¡áġšơ') +,('ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ') +,('') +,('') +,('') +,('СТУФХЦЧШЩЪЫЬЭЮЯабвг') +,(''); + +INSERT INTO `ԣ` VALUES + ('Ïġ') +,('ÏďŏƏ') +,('ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ') +,('܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰') +,('') +,('ÏďŏƏ') +,('ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ'); + +INSERT INTO `ԣ` VALUES + ('PQRSTUVWXYZ[\\]^_') +,(' ') +,('') +,('ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ') +,('ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ'); + +INSERT INTO `ԣ` VALUES + ('¡áġšơ') +,('ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ') +,('') +,('') +,('') +,('СТУФХЦЧШЩЪЫЬЭЮЯабвг') +,(''); + +INSERT INTO `ԣ` VALUES + ('Ïġ') +,('ÏďŏƏ') +,('ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ') +,('܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰') +,('') +,('ÏďŏƏ') +,('ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ'); + +INSERT INTO `ԣ` VALUES + ('PQRSTUVWXYZ[\\]^_') +,(' ') +,('') +,('ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ') +,('ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ'); + +INSERT INTO `ԣ` VALUES + ('¡áġšơ') +,('ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ') +,('') +,('') +,('') +,('СТУФХЦЧШЩЪЫЬЭЮЯабвг') +,(''); + +INSERT INTO `ԣ` VALUES + ('Ïġ') +,('ÏďŏƏ') +,('ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ') +,('܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰') +,('') +,('ÏďŏƏ') +,('ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ'); + +INSERT INTO `ԣ` VALUES + ('PQRSTUVWXYZ[\\]^_') +,(' ') +,('') +,('ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ') +,('ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ'); + +INSERT INTO `ԣ` VALUES + ('¡áġšơ') +,('ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ') +,('') +,('') +,('') +,('СТУФХЦЧШЩЪЫЬЭЮЯабвг') +,(''); + +INSERT INTO `ԣ` VALUES + ('Ïġ') +,('ÏďŏƏ') +,('ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ') +,('܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰') +,('') +,('ÏďŏƏ') +,('ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ'); + +#InnoDB +SELECT * FROM `ԣ`; +SELECT * FROM `ԣ`; +SELECT * FROM `ԣ`; +#MyISAM +SELECT * FROM `ԣ`; +SELECT * FROM `ԣ`; +SELECT * FROM `ԣ`; +#Heap +SELECT * FROM `ԣ`; +SELECT * FROM `ԣ`; +SELECT * FROM `ԣ`; +#BDB +SELECT * FROM `ԣ`; +SELECT * FROM `ԣ`; +SELECT * FROM `ԣ`; + +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; diff --git a/mysql-test/suite/jp/t/jp_select_ujis.test b/mysql-test/suite/jp/t/jp_select_ujis.test new file mode 100755 index 00000000000..4ad9e581a92 --- /dev/null +++ b/mysql-test/suite/jp/t/jp_select_ujis.test @@ -0,0 +1,84 @@ +--source include/have_ujis.inc + +--disable_warnings +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +--enable_warnings + +# +# Test Displaying Japanese charact in ujis encoding +# + +SET NAMES ujis; +SET character_set_database = ujis; + +CREATE TABLE `ԣ` (c1 char(20), INDEX(c1)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (c1 char(20), INDEX(c1)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (c1 char(20), INDEX(c1)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (c1 char(20), INDEX(c1)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (c1 char(20), INDEX(c1)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (c1 char(20), INDEX(c1)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (c1 char(20), INDEX(c1)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (c1 char(20), INDEX(c1)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (c1 char(20), INDEX(c1)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (c1 char(20), INDEX(c1)) DEFAULT CHARSET = ujis engine = bdb; +CREATE TABLE `ԣ` (c1 char(20), INDEX(c1)) DEFAULT CHARSET = ujis engine = bdb; +CREATE TABLE `ԣ` (c1 char(20), INDEX(c1)) DEFAULT CHARSET = ujis engine = bdb; + +#Load the following data in each table +# jisx0201 hankaku-katakana data +# jisx0208 data +# jisx0212 supplemental character data + +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_ujis.dat' INTO TABLE `ԣ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_ujis.dat' INTO TABLE `ԣ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0212_ujis.dat' INTO TABLE `ԣ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_ujis.dat' INTO TABLE `ԣ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_ujis.dat' INTO TABLE `ԣ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0212_ujis.dat' INTO TABLE `ԣ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_ujis.dat' INTO TABLE `ԣ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_ujis.dat' INTO TABLE `ԣ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0212_ujis.dat' INTO TABLE `ԣ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_ujis.dat' INTO TABLE `ԣ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_ujis.dat' INTO TABLE `ԣ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0212_ujis.dat' INTO TABLE `ԣ`; + +#InnoDB +SELECT * FROM `ԣ`; +SELECT * FROM `ԣ`; +SELECT * FROM `ԣ`; +#MyISAM +SELECT * FROM `ԣ`; +SELECT * FROM `ԣ`; +SELECT * FROM `ԣ`; +#Heap +SELECT * FROM `ԣ`; +SELECT * FROM `ԣ`; +SELECT * FROM `ԣ`; +#BDB +SELECT * FROM `ԣ`; +SELECT * FROM `ԣ`; +SELECT * FROM `ԣ`; + +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; +drop table `ԣ`; diff --git a/mysql-test/suite/jp/t/jp_select_utf8.test b/mysql-test/suite/jp/t/jp_select_utf8.test new file mode 100755 index 00000000000..e614b9ccfb0 --- /dev/null +++ b/mysql-test/suite/jp/t/jp_select_utf8.test @@ -0,0 +1,82 @@ +--disable_warnings +drop table if exists `T1`; +drop table if exists `T2`; +drop table if exists `T3`; +drop table if exists `T4`; +drop table if exists `T5`; +drop table if exists `T6`; +drop table if exists `T7`; +drop table if exists `T8`; +drop table if exists `T9`; +drop table if exists `T10`; +drop table if exists `T11`; +drop table if exists `T12`; +--enable_warnings + +# +# Test Displaying Japanese charact in utf8 encoding +# + +SET NAMES utf8; +SET character_set_database = utf8; + +CREATE TABLE `T1` (c1 char(20), INDEX(c1)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T2` (c1 char(20), INDEX(c1)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T3` (c1 char(20), INDEX(c1)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T4` (c1 char(20), INDEX(c1)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T5` (c1 char(20), INDEX(c1)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T6` (c1 char(20), INDEX(c1)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T7` (c1 char(20), INDEX(c1)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T8` (c1 char(20), INDEX(c1)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T9` (c1 char(20), INDEX(c1)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T10` (c1 char(20), INDEX(c1)) DEFAULT CHARSET = utf8 engine = bdb; +CREATE TABLE `T11` (c1 char(20), INDEX(c1)) DEFAULT CHARSET = utf8 engine = bdb; +CREATE TABLE `T12` (c1 char(20), INDEX(c1)) DEFAULT CHARSET = utf8 engine = bdb; + +#Load the following data in each table +# jisx0201 hankaku-katakana data +# jisx0208 data +# jisx0212 supplemental character data + +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_utf8.dat' INTO TABLE `T1`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_utf8.dat' INTO TABLE `T2`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0212_utf8.dat' INTO TABLE `T3`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_utf8.dat' INTO TABLE `T4`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_utf8.dat' INTO TABLE `T5`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0212_utf8.dat' INTO TABLE `T6`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_utf8.dat' INTO TABLE `T7`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_utf8.dat' INTO TABLE `T8`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0212_utf8.dat' INTO TABLE `T9`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_utf8.dat' INTO TABLE `T10`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_utf8.dat' INTO TABLE `T11`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0212_utf8.dat' INTO TABLE `T12`; + +#InnoDB +SELECT * FROM `T1`; +SELECT * FROM `T2`; +SELECT * FROM `T3`; +#MyISAM +SELECT * FROM `T4`; +SELECT * FROM `T5`; +SELECT * FROM `T6`; +#Heap +SELECT * FROM `T7`; +SELECT * FROM `T8`; +SELECT * FROM `T9`; +#BDB +SELECT * FROM `T10`; +SELECT * FROM `T11`; +SELECT * FROM `T12`; + +drop table `T1`; +drop table `T2`; +drop table `T3`; +drop table `T4`; +drop table `T5`; +drop table `T6`; +drop table `T7`; +drop table `T8`; +drop table `T9`; +drop table `T10`; +drop table `T11`; +drop table `T12`; diff --git a/mysql-test/suite/jp/t/jp_subquery_sjis.test b/mysql-test/suite/jp/t/jp_subquery_sjis.test new file mode 100755 index 00000000000..5292c7a2519 --- /dev/null +++ b/mysql-test/suite/jp/t/jp_subquery_sjis.test @@ -0,0 +1,140 @@ +--character_set sjis +--disable_warnings +drop table if exists `sP`; +drop table if exists `sQ`; +drop table if exists `sR`; +drop table if exists `sS`; +drop table if exists `sT`; +drop table if exists `sU`; +drop table if exists `sV`; +drop table if exists `sW`; +drop table if exists `sX`; +drop table if exists `sPO`; +drop table if exists `sPP`; +drop table if exists `sPQ`; +--enable_warnings + +# +# Test subquery using Japanese characters in sjis encoding +# + +SET NAMES sjis; +SET character_set_database = sjis; + +CREATE TABLE `sPa` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sPb` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sQa` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sQb` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sRa` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sRb` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sSa` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sSb` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sTa` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sTb` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sUa` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sUb` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sVa` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sVb` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sWa` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sWb` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sXa` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sXb` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sPOa` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sPOb` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sPPa` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sPPb` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sPQa` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sPQb` (`bP` char(1) PRIMARY KEY) DEFAULT CHARSET = sjis engine = heap; + +#insert the following data in each table +# jisx0201 hankaku-katakana data +# jisx0208 data +# jisx0212 supplemental character data + +INSERT INTO `sPa` VALUES (''),(''),(''); +INSERT INTO `sPb` VALUES (''); +INSERT INTO `sQa` VALUES (''),(''),(''); +INSERT INTO `sQb` VALUES (''); +INSERT INTO `sRa` VALUES ('\'),('\'),('\'); +INSERT INTO `sRb` VALUES ('\'); +INSERT INTO `sSa` VALUES (''),(''),(''); +INSERT INTO `sSb` VALUES (''); +INSERT INTO `sTa` VALUES (''),(''),(''); +INSERT INTO `sTb` VALUES (''); +INSERT INTO `sUa` VALUES ('\'),('\'),('\'); +INSERT INTO `sUb` VALUES ('\'); +INSERT INTO `sVa` VALUES (''),(''),(''); +INSERT INTO `sVb` VALUES (''); +INSERT INTO `sWa` VALUES (''),(''),(''); +INSERT INTO `sWb` VALUES (''); +INSERT INTO `sXa` VALUES ('\'),('\'),('\'); +INSERT INTO `sXb` VALUES ('\'); +INSERT INTO `sPOa` VALUES (''),(''),(''); +INSERT INTO `sPOb` VALUES (''); +INSERT INTO `sPPa` VALUES (''),(''),(''); +INSERT INTO `sPPb` VALUES (''); +INSERT INTO `sPQa` VALUES ('\'),('\'),('\'); +INSERT INTO `sPQb` VALUES ('\'); + +#Test for innodb +SELECT `bP` FROM `sPa` WHERE `bP` IN (SELECT `bP` FROM `sPb`); +SELECT `bP` FROM `sPa` WHERE EXISTS (SELECT `bP` FROM `sPb` WHERE `sPa`.`bP` = `sPb`.`bP`); +SELECT `bP` FROM `sPa` WHERE NOT EXISTS (SELECT `bP` FROM `sPb` WHERE `sPa`.`bP` = `sPb`.`bP`); +SELECT `bP` FROM `sQa` WHERE `bP` IN (SELECT `bP` FROM `sQb`); +SELECT `bP` FROM `sQa` WHERE EXISTS (SELECT `bP` FROM `sQb` WHERE `sQa`.`bP` = `sQb`.`bP`); +SELECT `bP` FROM `sQa` WHERE NOT EXISTS (SELECT `bP` FROM `sQb` WHERE `sQa`.`bP` = `sQb`.`bP`); +SELECT `bP` FROM `sRa` WHERE `bP` IN (SELECT `bP` FROM `sRb`); +SELECT `bP` FROM `sRa` WHERE EXISTS (SELECT `bP` FROM `sRb` WHERE `sRa`.`bP` = `sRb`.`bP`); +SELECT `bP` FROM `sRa` WHERE NOT EXISTS (SELECT `bP` FROM `sRb` WHERE `sRa`.`bP` = `sRb`.`bP`); +SELECT `bP` FROM `sSa` WHERE `bP` IN (SELECT `bP` FROM `sSb`); +SELECT `bP` FROM `sSa` WHERE EXISTS (SELECT `bP` FROM `sSb` WHERE `sSa`.`bP` = `sSb`.`bP`); +SELECT `bP` FROM `sSa` WHERE NOT EXISTS (SELECT `bP` FROM `sSb` WHERE `sSa`.`bP` = `sSb`.`bP`); +SELECT `bP` FROM `sTa` WHERE `bP` IN (SELECT `bP` FROM `sTb`); +SELECT `bP` FROM `sTa` WHERE EXISTS (SELECT `bP` FROM `sTb` WHERE `sTa`.`bP` = `sTb`.`bP`); +SELECT `bP` FROM `sTa` WHERE NOT EXISTS (SELECT `bP` FROM `sTb` WHERE `sTa`.`bP` = `sTb`.`bP`); +SELECT `bP` FROM `sUa` WHERE `bP` IN (SELECT `bP` FROM `sUb`); +SELECT `bP` FROM `sUa` WHERE EXISTS (SELECT `bP` FROM `sUb` WHERE `sUa`.`bP` = `sUb`.`bP`); +SELECT `bP` FROM `sUa` WHERE NOT EXISTS (SELECT `bP` FROM `sUb` WHERE `sUa`.`bP` = `sUb`.`bP`); +SELECT `bP` FROM `sVa` WHERE `bP` IN (SELECT `bP` FROM `sVb`); +SELECT `bP` FROM `sVa` WHERE EXISTS (SELECT `bP` FROM `sVb` WHERE `sVa`.`bP` = `sVb`.`bP`); +SELECT `bP` FROM `sVa` WHERE NOT EXISTS (SELECT `bP` FROM `sVb` WHERE `sVa`.`bP` = `sVb`.`bP`); +SELECT `bP` FROM `sWa` WHERE `bP` IN (SELECT `bP` FROM `sWb`); +SELECT `bP` FROM `sWa` WHERE EXISTS (SELECT `bP` FROM `sWb` WHERE `sWa`.`bP` = `sWb`.`bP`); +SELECT `bP` FROM `sWa` WHERE NOT EXISTS (SELECT `bP` FROM `sWb` WHERE `sWa`.`bP` = `sWb`.`bP`); +SELECT `bP` FROM `sXa` WHERE `bP` IN (SELECT `bP` FROM `sXb`); +SELECT `bP` FROM `sXa` WHERE EXISTS (SELECT `bP` FROM `sXb` WHERE `sXa`.`bP` = `sXb`.`bP`); +SELECT `bP` FROM `sXa` WHERE NOT EXISTS (SELECT `bP` FROM `sXb` WHERE `sXa`.`bP` = `sXb`.`bP`); +SELECT `bP` FROM `sPOa` WHERE `bP` IN (SELECT `bP` FROM `sPOb`); +SELECT `bP` FROM `sPOa` WHERE EXISTS (SELECT `bP` FROM `sPOb` WHERE `sPOa`.`bP` = `sPOb`.`bP`); +SELECT `bP` FROM `sPOa` WHERE NOT EXISTS (SELECT `bP` FROM `sPOb` WHERE `sPOa`.`bP` = `sPOb`.`bP`); +SELECT `bP` FROM `sPPa` WHERE `bP` IN (SELECT `bP` FROM `sPPb`); +SELECT `bP` FROM `sPPa` WHERE EXISTS (SELECT `bP` FROM `sPPb` WHERE `sPPa`.`bP` = `sPPb`.`bP`); +SELECT `bP` FROM `sPPa` WHERE NOT EXISTS (SELECT `bP` FROM `sPPb` WHERE `sPPa`.`bP` = `sPPb`.`bP`); +SELECT `bP` FROM `sPQa` WHERE `bP` IN (SELECT `bP` FROM `sPQb`); +SELECT `bP` FROM `sPQa` WHERE EXISTS (SELECT `bP` FROM `sPQb` WHERE `sPQa`.`bP` = `sPQb`.`bP`); +SELECT `bP` FROM `sPQa` WHERE NOT EXISTS (SELECT `bP` FROM `sPQb` WHERE `sPQa`.`bP` = `sPQb`.`bP`); + +DROP TABLE `sPa`; +DROP TABLE `sPb`; +DROP TABLE `sQa`; +DROP TABLE `sQb`; +DROP TABLE `sRa`; +DROP TABLE `sRb`; +DROP TABLE `sSa`; +DROP TABLE `sSb`; +DROP TABLE `sTa`; +DROP TABLE `sTb`; +DROP TABLE `sUa`; +DROP TABLE `sUb`; +DROP TABLE `sVa`; +DROP TABLE `sVb`; +DROP TABLE `sWa`; +DROP TABLE `sWb`; +DROP TABLE `sXa`; +DROP TABLE `sXb`; +DROP TABLE `sPOa`; +DROP TABLE `sPOb`; +DROP TABLE `sPPa`; +DROP TABLE `sPPb`; +DROP TABLE `sPQa`; +DROP TABLE `sPQb`; diff --git a/mysql-test/suite/jp/t/jp_subquery_utf8.test b/mysql-test/suite/jp/t/jp_subquery_utf8.test new file mode 100755 index 00000000000..97c2df8ce30 --- /dev/null +++ b/mysql-test/suite/jp/t/jp_subquery_utf8.test @@ -0,0 +1,139 @@ +--disable_warnings +drop table if exists `T1`; +drop table if exists `T2`; +drop table if exists `T3`; +drop table if exists `T4`; +drop table if exists `T5`; +drop table if exists `T6`; +drop table if exists `T7`; +drop table if exists `T8`; +drop table if exists `T9`; +drop table if exists `T10`; +drop table if exists `T11`; +drop table if exists `T12`; +--enable_warnings + +# +# Test subquery using Japanese characters in utf8 encoding +# + +SET NAMES utf8; +SET character_set_database = utf8; + +CREATE TABLE `T1a` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T1b` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T2a` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T2b` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T3a` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T3b` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T4a` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T4b` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T5a` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T5b` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T6a` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T6b` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T7a` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T7b` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T8a` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T8b` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T9a` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T9b` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T10a` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T10b` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T11a` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T11b` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T12a` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T12b` (`C1` char(1) PRIMARY KEY) DEFAULT CHARSET = utf8 engine = heap; + +#insert the following data in each table +# jisx0201 hankaku-katakana data +# jisx0208 data +# jisx0212 supplemental character data + +INSERT INTO `T1a` VALUES ('ア'),('カ'),('サ'); +INSERT INTO `T1b` VALUES ('ア'); +INSERT INTO `T2a` VALUES ('あ'),('か'),('さ'); +INSERT INTO `T2b` VALUES ('あ'); +INSERT INTO `T3a` VALUES ('龔'),('龖'),('龗'); +INSERT INTO `T3b` VALUES ('龔'); +INSERT INTO `T4a` VALUES ('ア'),('カ'),('サ'); +INSERT INTO `T4b` VALUES ('ア'); +INSERT INTO `T5a` VALUES ('あ'),('か'),('さ'); +INSERT INTO `T5b` VALUES ('あ'); +INSERT INTO `T6a` VALUES ('龔'),('龖'),('龗'); +INSERT INTO `T6b` VALUES ('龔'); +INSERT INTO `T7a` VALUES ('ア'),('カ'),('サ'); +INSERT INTO `T7b` VALUES ('ア'); +INSERT INTO `T8a` VALUES ('あ'),('か'),('さ'); +INSERT INTO `T8b` VALUES ('あ'); +INSERT INTO `T9a` VALUES ('龔'),('龖'),('龗'); +INSERT INTO `T9b` VALUES ('龔'); +INSERT INTO `T10a` VALUES ('ア'),('カ'),('サ'); +INSERT INTO `T10b` VALUES ('ア'); +INSERT INTO `T11a` VALUES ('あ'),('か'),('さ'); +INSERT INTO `T11b` VALUES ('あ'); +INSERT INTO `T12a` VALUES ('龔'),('龖'),('龗'); +INSERT INTO `T12b` VALUES ('龔'); + +#Test for innodb +SELECT `C1` FROM `T1a` WHERE `C1` IN (SELECT `C1` FROM `T1b`); +SELECT `C1` FROM `T1a` WHERE EXISTS (SELECT `C1` FROM `T1b` WHERE `T1a`.`C1` = `T1b`.`C1`); +SELECT `C1` FROM `T1a` WHERE NOT EXISTS (SELECT `C1` FROM `T1b` WHERE `T1a`.`C1` = `T1b`.`C1`); +SELECT `C1` FROM `T2a` WHERE `C1` IN (SELECT `C1` FROM `T2b`); +SELECT `C1` FROM `T2a` WHERE EXISTS (SELECT `C1` FROM `T2b` WHERE `T2a`.`C1` = `T2b`.`C1`); +SELECT `C1` FROM `T2a` WHERE NOT EXISTS (SELECT `C1` FROM `T2b` WHERE `T2a`.`C1` = `T2b`.`C1`); +SELECT `C1` FROM `T3a` WHERE `C1` IN (SELECT `C1` FROM `T3b`); +SELECT `C1` FROM `T3a` WHERE EXISTS (SELECT `C1` FROM `T3b` WHERE `T3a`.`C1` = `T3b`.`C1`); +SELECT `C1` FROM `T3a` WHERE NOT EXISTS (SELECT `C1` FROM `T3b` WHERE `T3a`.`C1` = `T3b`.`C1`); +SELECT `C1` FROM `T4a` WHERE `C1` IN (SELECT `C1` FROM `T4b`); +SELECT `C1` FROM `T4a` WHERE EXISTS (SELECT `C1` FROM `T4b` WHERE `T4a`.`C1` = `T4b`.`C1`); +SELECT `C1` FROM `T4a` WHERE NOT EXISTS (SELECT `C1` FROM `T4b` WHERE `T4a`.`C1` = `T4b`.`C1`); +SELECT `C1` FROM `T5a` WHERE `C1` IN (SELECT `C1` FROM `T5b`); +SELECT `C1` FROM `T5a` WHERE EXISTS (SELECT `C1` FROM `T5b` WHERE `T5a`.`C1` = `T5b`.`C1`); +SELECT `C1` FROM `T5a` WHERE NOT EXISTS (SELECT `C1` FROM `T5b` WHERE `T5a`.`C1` = `T5b`.`C1`); +SELECT `C1` FROM `T6a` WHERE `C1` IN (SELECT `C1` FROM `T6b`); +SELECT `C1` FROM `T6a` WHERE EXISTS (SELECT `C1` FROM `T6b` WHERE `T6a`.`C1` = `T6b`.`C1`); +SELECT `C1` FROM `T6a` WHERE NOT EXISTS (SELECT `C1` FROM `T6b` WHERE `T6a`.`C1` = `T6b`.`C1`); +SELECT `C1` FROM `T7a` WHERE `C1` IN (SELECT `C1` FROM `T7b`); +SELECT `C1` FROM `T7a` WHERE EXISTS (SELECT `C1` FROM `T7b` WHERE `T7a`.`C1` = `T7b`.`C1`); +SELECT `C1` FROM `T7a` WHERE NOT EXISTS (SELECT `C1` FROM `T7b` WHERE `T7a`.`C1` = `T7b`.`C1`); +SELECT `C1` FROM `T8a` WHERE `C1` IN (SELECT `C1` FROM `T8b`); +SELECT `C1` FROM `T8a` WHERE EXISTS (SELECT `C1` FROM `T8b` WHERE `T8a`.`C1` = `T8b`.`C1`); +SELECT `C1` FROM `T8a` WHERE NOT EXISTS (SELECT `C1` FROM `T8b` WHERE `T8a`.`C1` = `T8b`.`C1`); +SELECT `C1` FROM `T9a` WHERE `C1` IN (SELECT `C1` FROM `T9b`); +SELECT `C1` FROM `T9a` WHERE EXISTS (SELECT `C1` FROM `T9b` WHERE `T9a`.`C1` = `T9b`.`C1`); +SELECT `C1` FROM `T9a` WHERE NOT EXISTS (SELECT `C1` FROM `T9b` WHERE `T9a`.`C1` = `T9b`.`C1`); +SELECT `C1` FROM `T10a` WHERE `C1` IN (SELECT `C1` FROM `T10b`); +SELECT `C1` FROM `T10a` WHERE EXISTS (SELECT `C1` FROM `T10b` WHERE `T10a`.`C1` = `T10b`.`C1`); +SELECT `C1` FROM `T10a` WHERE NOT EXISTS (SELECT `C1` FROM `T10b` WHERE `T10a`.`C1` = `T10b`.`C1`); +SELECT `C1` FROM `T11a` WHERE `C1` IN (SELECT `C1` FROM `T11b`); +SELECT `C1` FROM `T11a` WHERE EXISTS (SELECT `C1` FROM `T11b` WHERE `T11a`.`C1` = `T11b`.`C1`); +SELECT `C1` FROM `T11a` WHERE NOT EXISTS (SELECT `C1` FROM `T11b` WHERE `T11a`.`C1` = `T11b`.`C1`); +SELECT `C1` FROM `T12a` WHERE `C1` IN (SELECT `C1` FROM `T12b`); +SELECT `C1` FROM `T12a` WHERE EXISTS (SELECT `C1` FROM `T12b` WHERE `T12a`.`C1` = `T12b`.`C1`); +SELECT `C1` FROM `T12a` WHERE NOT EXISTS (SELECT `C1` FROM `T12b` WHERE `T12a`.`C1` = `T12b`.`C1`); + +DROP TABLE `T1a`; +DROP TABLE `T1b`; +DROP TABLE `T2a`; +DROP TABLE `T2b`; +DROP TABLE `T3a`; +DROP TABLE `T3b`; +DROP TABLE `T4a`; +DROP TABLE `T4b`; +DROP TABLE `T5a`; +DROP TABLE `T5b`; +DROP TABLE `T6a`; +DROP TABLE `T6b`; +DROP TABLE `T7a`; +DROP TABLE `T7b`; +DROP TABLE `T8a`; +DROP TABLE `T8b`; +DROP TABLE `T9a`; +DROP TABLE `T9b`; +DROP TABLE `T10a`; +DROP TABLE `T10b`; +DROP TABLE `T11a`; +DROP TABLE `T11b`; +DROP TABLE `T12a`; +DROP TABLE `T12b`; diff --git a/mysql-test/suite/jp/t/jp_substring_sjis.test b/mysql-test/suite/jp/t/jp_substring_sjis.test new file mode 100755 index 00000000000..ac929114880 --- /dev/null +++ b/mysql-test/suite/jp/t/jp_substring_sjis.test @@ -0,0 +1,413 @@ +--character_set sjis +--disable_warnings +drop table if exists `sP`; +drop table if exists `sQ`; +drop table if exists `sR`; +drop table if exists `sS`; +drop table if exists `sT`; +drop table if exists `sU`; +drop table if exists `sV`; +drop table if exists `sW`; +drop table if exists `sX`; +drop table if exists `sPO`; +drop table if exists `sPP`; +drop table if exists `sPQ`; +--enable_warnings + +# +# Test SUBSTRING() function with Japanese character in sjis encoding +# + +SET NAMES sjis; +SET character_set_database = sjis; + +CREATE TABLE `sP` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sQ` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sR` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sS` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sT` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sU` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sV` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sW` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sX` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sPO` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +CREATE TABLE `sPP` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +CREATE TABLE `sPQ` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; + +INSERT INTO `sP` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sQ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sR` VALUES ('\\\\\'),('\\\\'),('\\\'),('\\'),('\'),(''); +INSERT INTO `sS` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sT` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sU` VALUES ('\\\\\'),('\\\\'),('\\\'),('\\'),('\'),(''); +INSERT INTO `sV` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sW` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sX` VALUES ('\\\\\'),('\\\\'),('\\\'),('\\'),('\'),(''); +INSERT INTO `sPO` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sPP` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `sPQ` VALUES ('\\\\\'),('\\\\'),('\\\'),('\\'),('\'),(''); + +#InnoDB +SELECT `bP`, SUBSTRING(`bP`,0) FROM `sP`; +SELECT `bP`, SUBSTRING(`bP`,1) FROM `sP`; +SELECT `bP`, SUBSTRING(`bP`,2) FROM `sP`; +SELECT `bP`, SUBSTRING(`bP`,3) FROM `sP`; +SELECT `bP`, SUBSTRING(`bP`,4) FROM `sP`; +SELECT `bP`, SUBSTRING(`bP`,5) FROM `sP`; +SELECT `bP`, SUBSTRING(`bP`,6) FROM `sP`; +SELECT `bP`, SUBSTRING(`bP` FROM 0) FROM `sP`; +SELECT `bP`, SUBSTRING(`bP` FROM 1) FROM `sP`; +SELECT `bP`, SUBSTRING(`bP` FROM 2) FROM `sP`; +SELECT `bP`, SUBSTRING(`bP` FROM 3) FROM `sP`; +SELECT `bP`, SUBSTRING(`bP` FROM 4) FROM `sP`; +SELECT `bP`, SUBSTRING(`bP` FROM 5) FROM `sP`; +SELECT `bP`, SUBSTRING(`bP` FROM 6) FROM `sP`; +SELECT `bP`, SUBSTRING(`bP`,1,0) FROM `sP`; +SELECT `bP`, SUBSTRING(`bP`,1,1) FROM `sP`; +SELECT `bP`, SUBSTRING(`bP`,1,2) FROM `sP`; +SELECT `bP`, SUBSTRING(`bP`,1,3) FROM `sP`; +SELECT `bP`, SUBSTRING(`bP`,1,4) FROM `sP`; +SELECT `bP`, SUBSTRING(`bP`,1,5) FROM `sP`; +SELECT `bP`, SUBSTRING(`bP`,1,6) FROM `sP`; +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 0) FROM `sP`; +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 1) FROM `sP`; +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 2) FROM `sP`; +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 3) FROM `sP`; +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 4) FROM `sP`; +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 5) FROM `sP`; +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 6) FROM `sP`; + +SELECT `bP`, SUBSTRING(`bP`,0) FROM `sQ`; +SELECT `bP`, SUBSTRING(`bP`,1) FROM `sQ`; +SELECT `bP`, SUBSTRING(`bP`,2) FROM `sQ`; +SELECT `bP`, SUBSTRING(`bP`,3) FROM `sQ`; +SELECT `bP`, SUBSTRING(`bP`,4) FROM `sQ`; +SELECT `bP`, SUBSTRING(`bP`,5) FROM `sQ`; +SELECT `bP`, SUBSTRING(`bP`,6) FROM `sQ`; +SELECT `bP`, SUBSTRING(`bP` FROM 0) FROM `sQ`; +SELECT `bP`, SUBSTRING(`bP` FROM 1) FROM `sQ`; +SELECT `bP`, SUBSTRING(`bP` FROM 2) FROM `sQ`; +SELECT `bP`, SUBSTRING(`bP` FROM 3) FROM `sQ`; +SELECT `bP`, SUBSTRING(`bP` FROM 4) FROM `sQ`; +SELECT `bP`, SUBSTRING(`bP` FROM 5) FROM `sQ`; +SELECT `bP`, SUBSTRING(`bP` FROM 6) FROM `sQ`; +SELECT `bP`, SUBSTRING(`bP`,1,0) FROM `sQ`; +SELECT `bP`, SUBSTRING(`bP`,1,1) FROM `sQ`; +SELECT `bP`, SUBSTRING(`bP`,1,2) FROM `sQ`; +SELECT `bP`, SUBSTRING(`bP`,1,3) FROM `sQ`; +SELECT `bP`, SUBSTRING(`bP`,1,4) FROM `sQ`; +SELECT `bP`, SUBSTRING(`bP`,1,5) FROM `sQ`; +SELECT `bP`, SUBSTRING(`bP`,1,6) FROM `sQ`; +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 0) FROM `sQ`; +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 1) FROM `sQ`; +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 2) FROM `sQ`; +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 3) FROM `sQ`; +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 4) FROM `sQ`; +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 5) FROM `sQ`; +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 6) FROM `sQ`; + +SELECT `bP`, SUBSTRING(`bP`,0) FROM `sR`; +SELECT `bP`, SUBSTRING(`bP`,1) FROM `sR`; +SELECT `bP`, SUBSTRING(`bP`,2) FROM `sR`; +SELECT `bP`, SUBSTRING(`bP`,3) FROM `sR`; +SELECT `bP`, SUBSTRING(`bP`,4) FROM `sR`; +SELECT `bP`, SUBSTRING(`bP`,5) FROM `sR`; +SELECT `bP`, SUBSTRING(`bP`,6) FROM `sR`; +SELECT `bP`, SUBSTRING(`bP` FROM 0) FROM `sR`; +SELECT `bP`, SUBSTRING(`bP` FROM 1) FROM `sR`; +SELECT `bP`, SUBSTRING(`bP` FROM 2) FROM `sR`; +SELECT `bP`, SUBSTRING(`bP` FROM 3) FROM `sR`; +SELECT `bP`, SUBSTRING(`bP` FROM 4) FROM `sR`; +SELECT `bP`, SUBSTRING(`bP` FROM 5) FROM `sR`; +SELECT `bP`, SUBSTRING(`bP` FROM 6) FROM `sR`; +SELECT `bP`, SUBSTRING(`bP`,1,0) FROM `sR`; +SELECT `bP`, SUBSTRING(`bP`,1,1) FROM `sR`; +SELECT `bP`, SUBSTRING(`bP`,1,2) FROM `sR`; +SELECT `bP`, SUBSTRING(`bP`,1,3) FROM `sR`; +SELECT `bP`, SUBSTRING(`bP`,1,4) FROM `sR`; +SELECT `bP`, SUBSTRING(`bP`,1,5) FROM `sR`; +SELECT `bP`, SUBSTRING(`bP`,1,6) FROM `sR`; +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 0) FROM `sR`; +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 1) FROM `sR`; +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 2) FROM `sR`; +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 3) FROM `sR`; +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 4) FROM `sR`; +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 5) FROM `sR`; +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 6) FROM `sR`; + +#MyISAM +SELECT `bP`, SUBSTRING(`bP`,0) FROM `sS`; +SELECT `bP`, SUBSTRING(`bP`,1) FROM `sS`; +SELECT `bP`, SUBSTRING(`bP`,2) FROM `sS`; +SELECT `bP`, SUBSTRING(`bP`,3) FROM `sS`; +SELECT `bP`, SUBSTRING(`bP`,4) FROM `sS`; +SELECT `bP`, SUBSTRING(`bP`,5) FROM `sS`; +SELECT `bP`, SUBSTRING(`bP`,6) FROM `sS`; +SELECT `bP`, SUBSTRING(`bP` FROM 0) FROM `sS`; +SELECT `bP`, SUBSTRING(`bP` FROM 1) FROM `sS`; +SELECT `bP`, SUBSTRING(`bP` FROM 2) FROM `sS`; +SELECT `bP`, SUBSTRING(`bP` FROM 3) FROM `sS`; +SELECT `bP`, SUBSTRING(`bP` FROM 4) FROM `sS`; +SELECT `bP`, SUBSTRING(`bP` FROM 5) FROM `sS`; +SELECT `bP`, SUBSTRING(`bP` FROM 6) FROM `sS`; +SELECT `bP`, SUBSTRING(`bP`,1,0) FROM `sS`; +SELECT `bP`, SUBSTRING(`bP`,1,1) FROM `sS`; +SELECT `bP`, SUBSTRING(`bP`,1,2) FROM `sS`; +SELECT `bP`, SUBSTRING(`bP`,1,3) FROM `sS`; +SELECT `bP`, SUBSTRING(`bP`,1,4) FROM `sS`; +SELECT `bP`, SUBSTRING(`bP`,1,5) FROM `sS`; +SELECT `bP`, SUBSTRING(`bP`,1,6) FROM `sS`; +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 0) FROM `sS`; +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 1) FROM `sS`; +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 2) FROM `sS`; +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 3) FROM `sS`; +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 4) FROM `sS`; +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 5) FROM `sS`; +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 6) FROM `sS`; + +SELECT `bP`, SUBSTRING(`bP`,0) FROM `sT`; +SELECT `bP`, SUBSTRING(`bP`,1) FROM `sT`; +SELECT `bP`, SUBSTRING(`bP`,2) FROM `sT`; +SELECT `bP`, SUBSTRING(`bP`,3) FROM `sT`; +SELECT `bP`, SUBSTRING(`bP`,4) FROM `sT`; +SELECT `bP`, SUBSTRING(`bP`,5) FROM `sT`; +SELECT `bP`, SUBSTRING(`bP`,6) FROM `sT`; +SELECT `bP`, SUBSTRING(`bP` FROM 0) FROM `sT`; +SELECT `bP`, SUBSTRING(`bP` FROM 1) FROM `sT`; +SELECT `bP`, SUBSTRING(`bP` FROM 2) FROM `sT`; +SELECT `bP`, SUBSTRING(`bP` FROM 3) FROM `sT`; +SELECT `bP`, SUBSTRING(`bP` FROM 4) FROM `sT`; +SELECT `bP`, SUBSTRING(`bP` FROM 5) FROM `sT`; +SELECT `bP`, SUBSTRING(`bP` FROM 6) FROM `sT`; +SELECT `bP`, SUBSTRING(`bP`,1,0) FROM `sT`; +SELECT `bP`, SUBSTRING(`bP`,1,1) FROM `sT`; +SELECT `bP`, SUBSTRING(`bP`,1,2) FROM `sT`; +SELECT `bP`, SUBSTRING(`bP`,1,3) FROM `sT`; +SELECT `bP`, SUBSTRING(`bP`,1,4) FROM `sT`; +SELECT `bP`, SUBSTRING(`bP`,1,5) FROM `sT`; +SELECT `bP`, SUBSTRING(`bP`,1,6) FROM `sT`; +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 0) FROM `sT`; +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 1) FROM `sT`; +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 2) FROM `sT`; +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 3) FROM `sT`; +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 4) FROM `sT`; +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 5) FROM `sT`; +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 6) FROM `sT`; + +SELECT `bP`, SUBSTRING(`bP`,0) FROM `sU`; +SELECT `bP`, SUBSTRING(`bP`,1) FROM `sU`; +SELECT `bP`, SUBSTRING(`bP`,2) FROM `sU`; +SELECT `bP`, SUBSTRING(`bP`,3) FROM `sU`; +SELECT `bP`, SUBSTRING(`bP`,4) FROM `sU`; +SELECT `bP`, SUBSTRING(`bP`,5) FROM `sU`; +SELECT `bP`, SUBSTRING(`bP`,6) FROM `sU`; +SELECT `bP`, SUBSTRING(`bP` FROM 0) FROM `sU`; +SELECT `bP`, SUBSTRING(`bP` FROM 1) FROM `sU`; +SELECT `bP`, SUBSTRING(`bP` FROM 2) FROM `sU`; +SELECT `bP`, SUBSTRING(`bP` FROM 3) FROM `sU`; +SELECT `bP`, SUBSTRING(`bP` FROM 4) FROM `sU`; +SELECT `bP`, SUBSTRING(`bP` FROM 5) FROM `sU`; +SELECT `bP`, SUBSTRING(`bP` FROM 6) FROM `sU`; +SELECT `bP`, SUBSTRING(`bP`,1,0) FROM `sU`; +SELECT `bP`, SUBSTRING(`bP`,1,1) FROM `sU`; +SELECT `bP`, SUBSTRING(`bP`,1,2) FROM `sU`; +SELECT `bP`, SUBSTRING(`bP`,1,3) FROM `sU`; +SELECT `bP`, SUBSTRING(`bP`,1,4) FROM `sU`; +SELECT `bP`, SUBSTRING(`bP`,1,5) FROM `sU`; +SELECT `bP`, SUBSTRING(`bP`,1,6) FROM `sU`; +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 0) FROM `sU`; +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 1) FROM `sU`; +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 2) FROM `sU`; +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 3) FROM `sU`; +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 4) FROM `sU`; +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 5) FROM `sU`; +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 6) FROM `sU`; + +#HEAP +SELECT `bP`, SUBSTRING(`bP`,0) FROM `sV`; +SELECT `bP`, SUBSTRING(`bP`,1) FROM `sV`; +SELECT `bP`, SUBSTRING(`bP`,2) FROM `sV`; +SELECT `bP`, SUBSTRING(`bP`,3) FROM `sV`; +SELECT `bP`, SUBSTRING(`bP`,4) FROM `sV`; +SELECT `bP`, SUBSTRING(`bP`,5) FROM `sV`; +SELECT `bP`, SUBSTRING(`bP`,6) FROM `sV`; +SELECT `bP`, SUBSTRING(`bP` FROM 0) FROM `sV`; +SELECT `bP`, SUBSTRING(`bP` FROM 1) FROM `sV`; +SELECT `bP`, SUBSTRING(`bP` FROM 2) FROM `sV`; +SELECT `bP`, SUBSTRING(`bP` FROM 3) FROM `sV`; +SELECT `bP`, SUBSTRING(`bP` FROM 4) FROM `sV`; +SELECT `bP`, SUBSTRING(`bP` FROM 5) FROM `sV`; +SELECT `bP`, SUBSTRING(`bP` FROM 6) FROM `sV`; +SELECT `bP`, SUBSTRING(`bP`,1,0) FROM `sV`; +SELECT `bP`, SUBSTRING(`bP`,1,1) FROM `sV`; +SELECT `bP`, SUBSTRING(`bP`,1,2) FROM `sV`; +SELECT `bP`, SUBSTRING(`bP`,1,3) FROM `sV`; +SELECT `bP`, SUBSTRING(`bP`,1,4) FROM `sV`; +SELECT `bP`, SUBSTRING(`bP`,1,5) FROM `sV`; +SELECT `bP`, SUBSTRING(`bP`,1,6) FROM `sV`; +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 0) FROM `sV`; +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 1) FROM `sV`; +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 2) FROM `sV`; +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 3) FROM `sV`; +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 4) FROM `sV`; +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 5) FROM `sV`; +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 6) FROM `sV`; + +SELECT `bP`, SUBSTRING(`bP`,0) FROM `sW`; +SELECT `bP`, SUBSTRING(`bP`,1) FROM `sW`; +SELECT `bP`, SUBSTRING(`bP`,2) FROM `sW`; +SELECT `bP`, SUBSTRING(`bP`,3) FROM `sW`; +SELECT `bP`, SUBSTRING(`bP`,4) FROM `sW`; +SELECT `bP`, SUBSTRING(`bP`,5) FROM `sW`; +SELECT `bP`, SUBSTRING(`bP`,6) FROM `sW`; +SELECT `bP`, SUBSTRING(`bP` FROM 0) FROM `sW`; +SELECT `bP`, SUBSTRING(`bP` FROM 1) FROM `sW`; +SELECT `bP`, SUBSTRING(`bP` FROM 2) FROM `sW`; +SELECT `bP`, SUBSTRING(`bP` FROM 3) FROM `sW`; +SELECT `bP`, SUBSTRING(`bP` FROM 4) FROM `sW`; +SELECT `bP`, SUBSTRING(`bP` FROM 5) FROM `sW`; +SELECT `bP`, SUBSTRING(`bP` FROM 6) FROM `sW`; +SELECT `bP`, SUBSTRING(`bP`,1,0) FROM `sW`; +SELECT `bP`, SUBSTRING(`bP`,1,1) FROM `sW`; +SELECT `bP`, SUBSTRING(`bP`,1,2) FROM `sW`; +SELECT `bP`, SUBSTRING(`bP`,1,3) FROM `sW`; +SELECT `bP`, SUBSTRING(`bP`,1,4) FROM `sW`; +SELECT `bP`, SUBSTRING(`bP`,1,5) FROM `sW`; +SELECT `bP`, SUBSTRING(`bP`,1,6) FROM `sW`; +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 0) FROM `sW`; +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 1) FROM `sW`; +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 2) FROM `sW`; +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 3) FROM `sW`; +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 4) FROM `sW`; +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 5) FROM `sW`; +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 6) FROM `sW`; + +SELECT `bP`, SUBSTRING(`bP`,0) FROM `sX`; +SELECT `bP`, SUBSTRING(`bP`,1) FROM `sX`; +SELECT `bP`, SUBSTRING(`bP`,2) FROM `sX`; +SELECT `bP`, SUBSTRING(`bP`,3) FROM `sX`; +SELECT `bP`, SUBSTRING(`bP`,4) FROM `sX`; +SELECT `bP`, SUBSTRING(`bP`,5) FROM `sX`; +SELECT `bP`, SUBSTRING(`bP`,6) FROM `sX`; +SELECT `bP`, SUBSTRING(`bP` FROM 0) FROM `sX`; +SELECT `bP`, SUBSTRING(`bP` FROM 1) FROM `sX`; +SELECT `bP`, SUBSTRING(`bP` FROM 2) FROM `sX`; +SELECT `bP`, SUBSTRING(`bP` FROM 3) FROM `sX`; +SELECT `bP`, SUBSTRING(`bP` FROM 4) FROM `sX`; +SELECT `bP`, SUBSTRING(`bP` FROM 5) FROM `sX`; +SELECT `bP`, SUBSTRING(`bP` FROM 6) FROM `sX`; +SELECT `bP`, SUBSTRING(`bP`,1,0) FROM `sX`; +SELECT `bP`, SUBSTRING(`bP`,1,1) FROM `sX`; +SELECT `bP`, SUBSTRING(`bP`,1,2) FROM `sX`; +SELECT `bP`, SUBSTRING(`bP`,1,3) FROM `sX`; +SELECT `bP`, SUBSTRING(`bP`,1,4) FROM `sX`; +SELECT `bP`, SUBSTRING(`bP`,1,5) FROM `sX`; +SELECT `bP`, SUBSTRING(`bP`,1,6) FROM `sX`; +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 0) FROM `sX`; +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 1) FROM `sX`; +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 2) FROM `sX`; +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 3) FROM `sX`; +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 4) FROM `sX`; +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 5) FROM `sX`; +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 6) FROM `sX`; + +#BDB +SELECT `bP`, SUBSTRING(`bP`,0) FROM `sPO`; +SELECT `bP`, SUBSTRING(`bP`,1) FROM `sPO`; +SELECT `bP`, SUBSTRING(`bP`,2) FROM `sPO`; +SELECT `bP`, SUBSTRING(`bP`,3) FROM `sPO`; +SELECT `bP`, SUBSTRING(`bP`,4) FROM `sPO`; +SELECT `bP`, SUBSTRING(`bP`,5) FROM `sPO`; +SELECT `bP`, SUBSTRING(`bP`,6) FROM `sPO`; +SELECT `bP`, SUBSTRING(`bP` FROM 0) FROM `sPO`; +SELECT `bP`, SUBSTRING(`bP` FROM 1) FROM `sPO`; +SELECT `bP`, SUBSTRING(`bP` FROM 2) FROM `sPO`; +SELECT `bP`, SUBSTRING(`bP` FROM 3) FROM `sPO`; +SELECT `bP`, SUBSTRING(`bP` FROM 4) FROM `sPO`; +SELECT `bP`, SUBSTRING(`bP` FROM 5) FROM `sPO`; +SELECT `bP`, SUBSTRING(`bP` FROM 6) FROM `sPO`; +SELECT `bP`, SUBSTRING(`bP`,1,0) FROM `sPO`; +SELECT `bP`, SUBSTRING(`bP`,1,1) FROM `sPO`; +SELECT `bP`, SUBSTRING(`bP`,1,2) FROM `sPO`; +SELECT `bP`, SUBSTRING(`bP`,1,3) FROM `sPO`; +SELECT `bP`, SUBSTRING(`bP`,1,4) FROM `sPO`; +SELECT `bP`, SUBSTRING(`bP`,1,5) FROM `sPO`; +SELECT `bP`, SUBSTRING(`bP`,1,6) FROM `sPO`; +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 0) FROM `sPO`; +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 1) FROM `sPO`; +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 2) FROM `sPO`; +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 3) FROM `sPO`; +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 4) FROM `sPO`; +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 5) FROM `sPO`; +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 6) FROM `sPO`; + +SELECT `bP`, SUBSTRING(`bP`,0) FROM `sPP`; +SELECT `bP`, SUBSTRING(`bP`,1) FROM `sPP`; +SELECT `bP`, SUBSTRING(`bP`,2) FROM `sPP`; +SELECT `bP`, SUBSTRING(`bP`,3) FROM `sPP`; +SELECT `bP`, SUBSTRING(`bP`,4) FROM `sPP`; +SELECT `bP`, SUBSTRING(`bP`,5) FROM `sPP`; +SELECT `bP`, SUBSTRING(`bP`,6) FROM `sPP`; +SELECT `bP`, SUBSTRING(`bP` FROM 0) FROM `sPP`; +SELECT `bP`, SUBSTRING(`bP` FROM 1) FROM `sPP`; +SELECT `bP`, SUBSTRING(`bP` FROM 2) FROM `sPP`; +SELECT `bP`, SUBSTRING(`bP` FROM 3) FROM `sPP`; +SELECT `bP`, SUBSTRING(`bP` FROM 4) FROM `sPP`; +SELECT `bP`, SUBSTRING(`bP` FROM 5) FROM `sPP`; +SELECT `bP`, SUBSTRING(`bP` FROM 6) FROM `sPP`; +SELECT `bP`, SUBSTRING(`bP`,1,0) FROM `sPP`; +SELECT `bP`, SUBSTRING(`bP`,1,1) FROM `sPP`; +SELECT `bP`, SUBSTRING(`bP`,1,2) FROM `sPP`; +SELECT `bP`, SUBSTRING(`bP`,1,3) FROM `sPP`; +SELECT `bP`, SUBSTRING(`bP`,1,4) FROM `sPP`; +SELECT `bP`, SUBSTRING(`bP`,1,5) FROM `sPP`; +SELECT `bP`, SUBSTRING(`bP`,1,6) FROM `sPP`; +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 0) FROM `sPP`; +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 1) FROM `sPP`; +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 2) FROM `sPP`; +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 3) FROM `sPP`; +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 4) FROM `sPP`; +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 5) FROM `sPP`; +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 6) FROM `sPP`; + +SELECT `bP`, SUBSTRING(`bP`,0) FROM `sPQ`; +SELECT `bP`, SUBSTRING(`bP`,1) FROM `sPQ`; +SELECT `bP`, SUBSTRING(`bP`,2) FROM `sPQ`; +SELECT `bP`, SUBSTRING(`bP`,3) FROM `sPQ`; +SELECT `bP`, SUBSTRING(`bP`,4) FROM `sPQ`; +SELECT `bP`, SUBSTRING(`bP`,5) FROM `sPQ`; +SELECT `bP`, SUBSTRING(`bP`,6) FROM `sPQ`; +SELECT `bP`, SUBSTRING(`bP` FROM 0) FROM `sPQ`; +SELECT `bP`, SUBSTRING(`bP` FROM 1) FROM `sPQ`; +SELECT `bP`, SUBSTRING(`bP` FROM 2) FROM `sPQ`; +SELECT `bP`, SUBSTRING(`bP` FROM 3) FROM `sPQ`; +SELECT `bP`, SUBSTRING(`bP` FROM 4) FROM `sPQ`; +SELECT `bP`, SUBSTRING(`bP` FROM 5) FROM `sPQ`; +SELECT `bP`, SUBSTRING(`bP` FROM 6) FROM `sPQ`; +SELECT `bP`, SUBSTRING(`bP`,1,0) FROM `sPQ`; +SELECT `bP`, SUBSTRING(`bP`,1,1) FROM `sPQ`; +SELECT `bP`, SUBSTRING(`bP`,1,2) FROM `sPQ`; +SELECT `bP`, SUBSTRING(`bP`,1,3) FROM `sPQ`; +SELECT `bP`, SUBSTRING(`bP`,1,4) FROM `sPQ`; +SELECT `bP`, SUBSTRING(`bP`,1,5) FROM `sPQ`; +SELECT `bP`, SUBSTRING(`bP`,1,6) FROM `sPQ`; +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 0) FROM `sPQ`; +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 1) FROM `sPQ`; +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 2) FROM `sPQ`; +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 3) FROM `sPQ`; +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 4) FROM `sPQ`; +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 5) FROM `sPQ`; +SELECT `bP`, SUBSTRING(`bP` FROM 1 FOR 6) FROM `sPQ`; + +DROP TABLE `sP`; +DROP TABLE `sQ`; +DROP TABLE `sR`; +DROP TABLE `sS`; +DROP TABLE `sT`; +DROP TABLE `sU`; +DROP TABLE `sV`; +DROP TABLE `sW`; +DROP TABLE `sX`; +DROP TABLE `sPO`; +DROP TABLE `sPP`; +DROP TABLE `sPQ`; diff --git a/mysql-test/suite/jp/t/jp_substring_ucs2.test b/mysql-test/suite/jp/t/jp_substring_ucs2.test new file mode 100755 index 00000000000..f3cd5550072 --- /dev/null +++ b/mysql-test/suite/jp/t/jp_substring_ucs2.test @@ -0,0 +1,418 @@ +--source include/have_ucs2.inc + +--disable_warnings +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +--enable_warnings + +# +# Test SUBSTRING() function with Japanese character in ucs2 encoding +# + +SET NAMES ujis; +SET character_set_database = ucs2; +SET collation_connection = ucs2_general_ci; + +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; + +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); + +# Test of SUBSTRING(str,pos) and SUBSTRING(str FROM pos) +# is not available until the bug #5364 is fixed + +#InnoDB +#SELECT `ã`, SUBSTRING(`ã`,0) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã`,1) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã`,2) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã`,3) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã`,4) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã`,5) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã`,6) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã` FROM 0) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã` FROM 1) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã` FROM 2) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã` FROM 3) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã` FROM 4) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã` FROM 5) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã` FROM 6) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,0) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,1) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,2) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,3) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,4) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,5) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,6) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 0) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 1) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 2) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 3) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 4) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 5) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 6) FROM `ԣ`; + +#SELECT `ã`, SUBSTRING(`ã`,0) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã`,1) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã`,2) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã`,3) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã`,4) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã`,5) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã`,6) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã` FROM 0) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã` FROM 1) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã` FROM 2) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã` FROM 3) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã` FROM 4) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã` FROM 5) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã` FROM 6) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,0) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,1) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,2) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,3) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,4) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,5) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,6) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 0) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 1) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 2) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 3) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 4) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 5) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 6) FROM `ԣ`; + +#SELECT `ã`, SUBSTRING(`ã`,0) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã`,1) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã`,2) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã`,3) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã`,4) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã`,5) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã`,6) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã` FROM 0) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã` FROM 1) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã` FROM 2) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã` FROM 3) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã` FROM 4) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã` FROM 5) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã` FROM 6) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,0) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,1) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,2) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,3) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,4) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,5) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,6) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 0) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 1) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 2) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 3) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 4) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 5) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 6) FROM `ԣ`; + +#MyISAM +#SELECT `ã`, SUBSTRING(`ã`,0) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã`,1) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã`,2) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã`,3) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã`,4) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã`,5) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã`,6) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã` FROM 0) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã` FROM 1) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã` FROM 2) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã` FROM 3) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã` FROM 4) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã` FROM 5) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã` FROM 6) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,0) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,1) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,2) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,3) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,4) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,5) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,6) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 0) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 1) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 2) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 3) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 4) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 5) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 6) FROM `ԣ`; + +#SELECT `ã`, SUBSTRING(`ã`,0) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã`,1) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã`,2) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã`,3) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã`,4) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã`,5) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã`,6) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã` FROM 0) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã` FROM 1) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã` FROM 2) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã` FROM 3) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã` FROM 4) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã` FROM 5) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã` FROM 6) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,0) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,1) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,2) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,3) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,4) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,5) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,6) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 0) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 1) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 2) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 3) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 4) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 5) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 6) FROM `ԣ`; + +#SELECT `ã`, SUBSTRING(`ã`,0) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã`,1) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã`,2) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã`,3) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã`,4) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã`,5) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã`,6) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã` FROM 0) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã` FROM 1) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã` FROM 2) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã` FROM 3) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã` FROM 4) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã` FROM 5) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã` FROM 6) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,0) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,1) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,2) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,3) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,4) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,5) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,6) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 0) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 1) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 2) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 3) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 4) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 5) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 6) FROM `ԣ`; + +#HEAP +#SELECT `ã`, SUBSTRING(`ã`,0) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã`,1) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã`,2) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã`,3) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã`,4) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã`,5) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã`,6) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã` FROM 0) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã` FROM 1) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã` FROM 2) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã` FROM 3) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã` FROM 4) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã` FROM 5) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã` FROM 6) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,0) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,1) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,2) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,3) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,4) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,5) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,6) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 0) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 1) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 2) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 3) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 4) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 5) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 6) FROM `ԣ`; + +#SELECT `ã`, SUBSTRING(`ã`,0) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã`,1) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã`,2) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã`,3) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã`,4) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã`,5) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã`,6) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã` FROM 0) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã` FROM 1) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã` FROM 2) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã` FROM 3) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã` FROM 4) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã` FROM 5) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã` FROM 6) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,0) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,1) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,2) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,3) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,4) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,5) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,6) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 0) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 1) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 2) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 3) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 4) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 5) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 6) FROM `ԣ`; + +#SELECT `ã`, SUBSTRING(`ã`,0) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã`,1) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã`,2) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã`,3) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã`,4) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã`,5) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã`,6) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã` FROM 0) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã` FROM 1) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã` FROM 2) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã` FROM 3) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã` FROM 4) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã` FROM 5) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã` FROM 6) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,0) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,1) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,2) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,3) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,4) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,5) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,6) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 0) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 1) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 2) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 3) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 4) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 5) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 6) FROM `ԣ`; + +#BDB +#SELECT `ã`, SUBSTRING(`ã`,0) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã`,1) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã`,2) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã`,3) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã`,4) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã`,5) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã`,6) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã` FROM 0) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã` FROM 1) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã` FROM 2) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã` FROM 3) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã` FROM 4) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã` FROM 5) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã` FROM 6) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,0) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,1) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,2) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,3) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,4) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,5) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,6) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 0) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 1) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 2) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 3) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 4) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 5) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 6) FROM `ԣ`; + +#SELECT `ã`, SUBSTRING(`ã`,0) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã`,1) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã`,2) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã`,3) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã`,4) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã`,5) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã`,6) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã` FROM 0) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã` FROM 1) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã` FROM 2) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã` FROM 3) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã` FROM 4) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã` FROM 5) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã` FROM 6) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,0) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,1) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,2) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,3) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,4) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,5) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,6) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 0) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 1) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 2) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 3) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 4) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 5) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 6) FROM `ԣ`; + +#SELECT `ã`, SUBSTRING(`ã`,0) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã`,1) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã`,2) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã`,3) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã`,4) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã`,5) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã`,6) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã` FROM 0) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã` FROM 1) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã` FROM 2) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã` FROM 3) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã` FROM 4) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã` FROM 5) FROM `ԣ`; +#SELECT `ã`, SUBSTRING(`ã` FROM 6) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,0) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,1) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,2) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,3) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,4) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,5) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,6) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 0) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 1) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 2) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 3) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 4) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 5) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 6) FROM `ԣ`; + +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; diff --git a/mysql-test/suite/jp/t/jp_substring_ujis.test b/mysql-test/suite/jp/t/jp_substring_ujis.test new file mode 100755 index 00000000000..c201c7148da --- /dev/null +++ b/mysql-test/suite/jp/t/jp_substring_ujis.test @@ -0,0 +1,414 @@ +--source include/have_ujis.inc + +--disable_warnings +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +--enable_warnings + +# +# Test SUBSTRING() function with Japanese character in ujis encoding +# + +SET NAMES ujis; +SET character_set_database = ujis; + +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; + +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES (''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'),('܏ݏޏ'),('܏ݏ'),('܏'),(''),(''); + +#InnoDB +SELECT `ã`, SUBSTRING(`ã`,0) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,2) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,3) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,4) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,5) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,6) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 0) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 2) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 3) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 4) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 5) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 6) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,0) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,1) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,2) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,3) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,4) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,5) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,6) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 0) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 1) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 2) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 3) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 4) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 5) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 6) FROM `ԣ`; + +SELECT `ã`, SUBSTRING(`ã`,0) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,2) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,3) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,4) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,5) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,6) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 0) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 2) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 3) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 4) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 5) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 6) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,0) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,1) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,2) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,3) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,4) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,5) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,6) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 0) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 1) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 2) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 3) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 4) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 5) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 6) FROM `ԣ`; + +SELECT `ã`, SUBSTRING(`ã`,0) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,2) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,3) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,4) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,5) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,6) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 0) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 2) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 3) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 4) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 5) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 6) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,0) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,1) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,2) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,3) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,4) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,5) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,6) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 0) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 1) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 2) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 3) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 4) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 5) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 6) FROM `ԣ`; + +#MyISAM +SELECT `ã`, SUBSTRING(`ã`,0) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,2) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,3) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,4) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,5) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,6) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 0) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 2) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 3) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 4) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 5) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 6) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,0) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,1) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,2) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,3) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,4) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,5) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,6) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 0) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 1) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 2) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 3) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 4) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 5) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 6) FROM `ԣ`; + +SELECT `ã`, SUBSTRING(`ã`,0) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,2) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,3) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,4) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,5) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,6) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 0) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 2) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 3) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 4) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 5) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 6) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,0) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,1) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,2) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,3) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,4) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,5) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,6) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 0) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 1) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 2) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 3) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 4) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 5) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 6) FROM `ԣ`; + +SELECT `ã`, SUBSTRING(`ã`,0) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,2) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,3) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,4) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,5) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,6) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 0) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 2) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 3) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 4) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 5) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 6) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,0) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,1) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,2) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,3) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,4) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,5) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,6) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 0) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 1) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 2) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 3) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 4) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 5) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 6) FROM `ԣ`; + +#HEAP +SELECT `ã`, SUBSTRING(`ã`,0) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,2) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,3) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,4) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,5) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,6) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 0) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 2) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 3) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 4) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 5) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 6) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,0) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,1) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,2) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,3) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,4) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,5) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,6) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 0) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 1) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 2) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 3) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 4) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 5) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 6) FROM `ԣ`; + +SELECT `ã`, SUBSTRING(`ã`,0) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,2) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,3) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,4) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,5) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,6) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 0) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 2) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 3) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 4) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 5) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 6) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,0) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,1) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,2) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,3) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,4) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,5) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,6) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 0) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 1) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 2) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 3) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 4) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 5) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 6) FROM `ԣ`; + +SELECT `ã`, SUBSTRING(`ã`,0) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,2) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,3) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,4) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,5) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,6) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 0) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 2) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 3) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 4) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 5) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 6) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,0) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,1) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,2) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,3) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,4) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,5) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,6) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 0) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 1) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 2) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 3) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 4) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 5) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 6) FROM `ԣ`; + +#BDB +SELECT `ã`, SUBSTRING(`ã`,0) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,2) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,3) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,4) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,5) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,6) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 0) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 2) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 3) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 4) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 5) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 6) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,0) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,1) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,2) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,3) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,4) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,5) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,6) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 0) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 1) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 2) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 3) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 4) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 5) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 6) FROM `ԣ`; + +SELECT `ã`, SUBSTRING(`ã`,0) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,2) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,3) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,4) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,5) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,6) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 0) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 2) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 3) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 4) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 5) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 6) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,0) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,1) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,2) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,3) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,4) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,5) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,6) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 0) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 1) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 2) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 3) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 4) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 5) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 6) FROM `ԣ`; + +SELECT `ã`, SUBSTRING(`ã`,0) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,2) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,3) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,4) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,5) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,6) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 0) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 2) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 3) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 4) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 5) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 6) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,0) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,1) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,2) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,3) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,4) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,5) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã`,1,6) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 0) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 1) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 2) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 3) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 4) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 5) FROM `ԣ`; +SELECT `ã`, SUBSTRING(`ã` FROM 1 FOR 6) FROM `ԣ`; + +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; diff --git a/mysql-test/suite/jp/t/jp_substring_utf8.test b/mysql-test/suite/jp/t/jp_substring_utf8.test new file mode 100755 index 00000000000..9f88115c899 --- /dev/null +++ b/mysql-test/suite/jp/t/jp_substring_utf8.test @@ -0,0 +1,412 @@ +--disable_warnings +drop table if exists `T1`; +drop table if exists `T2`; +drop table if exists `T3`; +drop table if exists `T4`; +drop table if exists `T5`; +drop table if exists `T6`; +drop table if exists `T7`; +drop table if exists `T8`; +drop table if exists `T9`; +drop table if exists `T10`; +drop table if exists `T11`; +drop table if exists `T12`; +--enable_warnings + +# +# Test SUBSTRING() function with Japanese character in utf8 encoding +# + +SET NAMES utf8; +SET character_set_database = utf8; + +CREATE TABLE `T1` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T2` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T3` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T4` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T5` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T6` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T7` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T8` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T9` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T10` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +CREATE TABLE `T11` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +CREATE TABLE `T12` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; + +INSERT INTO `T1` VALUES ('アイウエオ'),('アイウエ'),('アイウ'),('アイ'),('ア'),(''); +INSERT INTO `T2` VALUES ('あいうえお'),('あいうえ'),('あいう'),('あい'),('あ'),(''); +INSERT INTO `T3` VALUES ('龔龖龗龞龡'),('龔龖龗龞'),('龔龖龗'),('龔龖'),('龔'),(''); +INSERT INTO `T4` VALUES ('アイウエオ'),('アイウエ'),('アイウ'),('アイ'),('ア'),(''); +INSERT INTO `T5` VALUES ('あいうえお'),('あいうえ'),('あいう'),('あい'),('あ'),(''); +INSERT INTO `T6` VALUES ('龔龖龗龞龡'),('龔龖龗龞'),('龔龖龗'),('龔龖'),('龔'),(''); +INSERT INTO `T7` VALUES ('アイウエオ'),('アイウエ'),('アイウ'),('アイ'),('ア'),(''); +INSERT INTO `T8` VALUES ('あいうえお'),('あいうえ'),('あいう'),('あい'),('あ'),(''); +INSERT INTO `T9` VALUES ('龔龖龗龞龡'),('龔龖龗龞'),('龔龖龗'),('龔龖'),('龔'),(''); +INSERT INTO `T10` VALUES ('アイウエオ'),('アイウエ'),('アイウ'),('アイ'),('ア'),(''); +INSERT INTO `T11` VALUES ('あいうえお'),('あいうえ'),('あいう'),('あい'),('あ'),(''); +INSERT INTO `T12` VALUES ('龔龖龗龞龡'),('龔龖龗龞'),('龔龖龗'),('龔龖'),('龔'),(''); + +#InnoDB +SELECT `C1`, SUBSTRING(`C1`,0) FROM `T1`; +SELECT `C1`, SUBSTRING(`C1`,1) FROM `T1`; +SELECT `C1`, SUBSTRING(`C1`,2) FROM `T1`; +SELECT `C1`, SUBSTRING(`C1`,3) FROM `T1`; +SELECT `C1`, SUBSTRING(`C1`,4) FROM `T1`; +SELECT `C1`, SUBSTRING(`C1`,5) FROM `T1`; +SELECT `C1`, SUBSTRING(`C1`,6) FROM `T1`; +SELECT `C1`, SUBSTRING(`C1` FROM 0) FROM `T1`; +SELECT `C1`, SUBSTRING(`C1` FROM 1) FROM `T1`; +SELECT `C1`, SUBSTRING(`C1` FROM 2) FROM `T1`; +SELECT `C1`, SUBSTRING(`C1` FROM 3) FROM `T1`; +SELECT `C1`, SUBSTRING(`C1` FROM 4) FROM `T1`; +SELECT `C1`, SUBSTRING(`C1` FROM 5) FROM `T1`; +SELECT `C1`, SUBSTRING(`C1` FROM 6) FROM `T1`; +SELECT `C1`, SUBSTRING(`C1`,1,0) FROM `T1`; +SELECT `C1`, SUBSTRING(`C1`,1,1) FROM `T1`; +SELECT `C1`, SUBSTRING(`C1`,1,2) FROM `T1`; +SELECT `C1`, SUBSTRING(`C1`,1,3) FROM `T1`; +SELECT `C1`, SUBSTRING(`C1`,1,4) FROM `T1`; +SELECT `C1`, SUBSTRING(`C1`,1,5) FROM `T1`; +SELECT `C1`, SUBSTRING(`C1`,1,6) FROM `T1`; +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 0) FROM `T1`; +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 1) FROM `T1`; +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 2) FROM `T1`; +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 3) FROM `T1`; +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 4) FROM `T1`; +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 5) FROM `T1`; +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 6) FROM `T1`; + +SELECT `C1`, SUBSTRING(`C1`,0) FROM `T2`; +SELECT `C1`, SUBSTRING(`C1`,1) FROM `T2`; +SELECT `C1`, SUBSTRING(`C1`,2) FROM `T2`; +SELECT `C1`, SUBSTRING(`C1`,3) FROM `T2`; +SELECT `C1`, SUBSTRING(`C1`,4) FROM `T2`; +SELECT `C1`, SUBSTRING(`C1`,5) FROM `T2`; +SELECT `C1`, SUBSTRING(`C1`,6) FROM `T2`; +SELECT `C1`, SUBSTRING(`C1` FROM 0) FROM `T2`; +SELECT `C1`, SUBSTRING(`C1` FROM 1) FROM `T2`; +SELECT `C1`, SUBSTRING(`C1` FROM 2) FROM `T2`; +SELECT `C1`, SUBSTRING(`C1` FROM 3) FROM `T2`; +SELECT `C1`, SUBSTRING(`C1` FROM 4) FROM `T2`; +SELECT `C1`, SUBSTRING(`C1` FROM 5) FROM `T2`; +SELECT `C1`, SUBSTRING(`C1` FROM 6) FROM `T2`; +SELECT `C1`, SUBSTRING(`C1`,1,0) FROM `T2`; +SELECT `C1`, SUBSTRING(`C1`,1,1) FROM `T2`; +SELECT `C1`, SUBSTRING(`C1`,1,2) FROM `T2`; +SELECT `C1`, SUBSTRING(`C1`,1,3) FROM `T2`; +SELECT `C1`, SUBSTRING(`C1`,1,4) FROM `T2`; +SELECT `C1`, SUBSTRING(`C1`,1,5) FROM `T2`; +SELECT `C1`, SUBSTRING(`C1`,1,6) FROM `T2`; +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 0) FROM `T2`; +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 1) FROM `T2`; +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 2) FROM `T2`; +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 3) FROM `T2`; +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 4) FROM `T2`; +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 5) FROM `T2`; +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 6) FROM `T2`; + +SELECT `C1`, SUBSTRING(`C1`,0) FROM `T3`; +SELECT `C1`, SUBSTRING(`C1`,1) FROM `T3`; +SELECT `C1`, SUBSTRING(`C1`,2) FROM `T3`; +SELECT `C1`, SUBSTRING(`C1`,3) FROM `T3`; +SELECT `C1`, SUBSTRING(`C1`,4) FROM `T3`; +SELECT `C1`, SUBSTRING(`C1`,5) FROM `T3`; +SELECT `C1`, SUBSTRING(`C1`,6) FROM `T3`; +SELECT `C1`, SUBSTRING(`C1` FROM 0) FROM `T3`; +SELECT `C1`, SUBSTRING(`C1` FROM 1) FROM `T3`; +SELECT `C1`, SUBSTRING(`C1` FROM 2) FROM `T3`; +SELECT `C1`, SUBSTRING(`C1` FROM 3) FROM `T3`; +SELECT `C1`, SUBSTRING(`C1` FROM 4) FROM `T3`; +SELECT `C1`, SUBSTRING(`C1` FROM 5) FROM `T3`; +SELECT `C1`, SUBSTRING(`C1` FROM 6) FROM `T3`; +SELECT `C1`, SUBSTRING(`C1`,1,0) FROM `T3`; +SELECT `C1`, SUBSTRING(`C1`,1,1) FROM `T3`; +SELECT `C1`, SUBSTRING(`C1`,1,2) FROM `T3`; +SELECT `C1`, SUBSTRING(`C1`,1,3) FROM `T3`; +SELECT `C1`, SUBSTRING(`C1`,1,4) FROM `T3`; +SELECT `C1`, SUBSTRING(`C1`,1,5) FROM `T3`; +SELECT `C1`, SUBSTRING(`C1`,1,6) FROM `T3`; +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 0) FROM `T3`; +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 1) FROM `T3`; +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 2) FROM `T3`; +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 3) FROM `T3`; +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 4) FROM `T3`; +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 5) FROM `T3`; +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 6) FROM `T3`; + +#MyISAM +SELECT `C1`, SUBSTRING(`C1`,0) FROM `T4`; +SELECT `C1`, SUBSTRING(`C1`,1) FROM `T4`; +SELECT `C1`, SUBSTRING(`C1`,2) FROM `T4`; +SELECT `C1`, SUBSTRING(`C1`,3) FROM `T4`; +SELECT `C1`, SUBSTRING(`C1`,4) FROM `T4`; +SELECT `C1`, SUBSTRING(`C1`,5) FROM `T4`; +SELECT `C1`, SUBSTRING(`C1`,6) FROM `T4`; +SELECT `C1`, SUBSTRING(`C1` FROM 0) FROM `T4`; +SELECT `C1`, SUBSTRING(`C1` FROM 1) FROM `T4`; +SELECT `C1`, SUBSTRING(`C1` FROM 2) FROM `T4`; +SELECT `C1`, SUBSTRING(`C1` FROM 3) FROM `T4`; +SELECT `C1`, SUBSTRING(`C1` FROM 4) FROM `T4`; +SELECT `C1`, SUBSTRING(`C1` FROM 5) FROM `T4`; +SELECT `C1`, SUBSTRING(`C1` FROM 6) FROM `T4`; +SELECT `C1`, SUBSTRING(`C1`,1,0) FROM `T4`; +SELECT `C1`, SUBSTRING(`C1`,1,1) FROM `T4`; +SELECT `C1`, SUBSTRING(`C1`,1,2) FROM `T4`; +SELECT `C1`, SUBSTRING(`C1`,1,3) FROM `T4`; +SELECT `C1`, SUBSTRING(`C1`,1,4) FROM `T4`; +SELECT `C1`, SUBSTRING(`C1`,1,5) FROM `T4`; +SELECT `C1`, SUBSTRING(`C1`,1,6) FROM `T4`; +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 0) FROM `T4`; +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 1) FROM `T4`; +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 2) FROM `T4`; +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 3) FROM `T4`; +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 4) FROM `T4`; +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 5) FROM `T4`; +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 6) FROM `T4`; + +SELECT `C1`, SUBSTRING(`C1`,0) FROM `T5`; +SELECT `C1`, SUBSTRING(`C1`,1) FROM `T5`; +SELECT `C1`, SUBSTRING(`C1`,2) FROM `T5`; +SELECT `C1`, SUBSTRING(`C1`,3) FROM `T5`; +SELECT `C1`, SUBSTRING(`C1`,4) FROM `T5`; +SELECT `C1`, SUBSTRING(`C1`,5) FROM `T5`; +SELECT `C1`, SUBSTRING(`C1`,6) FROM `T5`; +SELECT `C1`, SUBSTRING(`C1` FROM 0) FROM `T5`; +SELECT `C1`, SUBSTRING(`C1` FROM 1) FROM `T5`; +SELECT `C1`, SUBSTRING(`C1` FROM 2) FROM `T5`; +SELECT `C1`, SUBSTRING(`C1` FROM 3) FROM `T5`; +SELECT `C1`, SUBSTRING(`C1` FROM 4) FROM `T5`; +SELECT `C1`, SUBSTRING(`C1` FROM 5) FROM `T5`; +SELECT `C1`, SUBSTRING(`C1` FROM 6) FROM `T5`; +SELECT `C1`, SUBSTRING(`C1`,1,0) FROM `T5`; +SELECT `C1`, SUBSTRING(`C1`,1,1) FROM `T5`; +SELECT `C1`, SUBSTRING(`C1`,1,2) FROM `T5`; +SELECT `C1`, SUBSTRING(`C1`,1,3) FROM `T5`; +SELECT `C1`, SUBSTRING(`C1`,1,4) FROM `T5`; +SELECT `C1`, SUBSTRING(`C1`,1,5) FROM `T5`; +SELECT `C1`, SUBSTRING(`C1`,1,6) FROM `T5`; +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 0) FROM `T5`; +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 1) FROM `T5`; +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 2) FROM `T5`; +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 3) FROM `T5`; +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 4) FROM `T5`; +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 5) FROM `T5`; +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 6) FROM `T5`; + +SELECT `C1`, SUBSTRING(`C1`,0) FROM `T6`; +SELECT `C1`, SUBSTRING(`C1`,1) FROM `T6`; +SELECT `C1`, SUBSTRING(`C1`,2) FROM `T6`; +SELECT `C1`, SUBSTRING(`C1`,3) FROM `T6`; +SELECT `C1`, SUBSTRING(`C1`,4) FROM `T6`; +SELECT `C1`, SUBSTRING(`C1`,5) FROM `T6`; +SELECT `C1`, SUBSTRING(`C1`,6) FROM `T6`; +SELECT `C1`, SUBSTRING(`C1` FROM 0) FROM `T6`; +SELECT `C1`, SUBSTRING(`C1` FROM 1) FROM `T6`; +SELECT `C1`, SUBSTRING(`C1` FROM 2) FROM `T6`; +SELECT `C1`, SUBSTRING(`C1` FROM 3) FROM `T6`; +SELECT `C1`, SUBSTRING(`C1` FROM 4) FROM `T6`; +SELECT `C1`, SUBSTRING(`C1` FROM 5) FROM `T6`; +SELECT `C1`, SUBSTRING(`C1` FROM 6) FROM `T6`; +SELECT `C1`, SUBSTRING(`C1`,1,0) FROM `T6`; +SELECT `C1`, SUBSTRING(`C1`,1,1) FROM `T6`; +SELECT `C1`, SUBSTRING(`C1`,1,2) FROM `T6`; +SELECT `C1`, SUBSTRING(`C1`,1,3) FROM `T6`; +SELECT `C1`, SUBSTRING(`C1`,1,4) FROM `T6`; +SELECT `C1`, SUBSTRING(`C1`,1,5) FROM `T6`; +SELECT `C1`, SUBSTRING(`C1`,1,6) FROM `T6`; +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 0) FROM `T6`; +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 1) FROM `T6`; +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 2) FROM `T6`; +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 3) FROM `T6`; +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 4) FROM `T6`; +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 5) FROM `T6`; +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 6) FROM `T6`; + +#HEAP +SELECT `C1`, SUBSTRING(`C1`,0) FROM `T7`; +SELECT `C1`, SUBSTRING(`C1`,1) FROM `T7`; +SELECT `C1`, SUBSTRING(`C1`,2) FROM `T7`; +SELECT `C1`, SUBSTRING(`C1`,3) FROM `T7`; +SELECT `C1`, SUBSTRING(`C1`,4) FROM `T7`; +SELECT `C1`, SUBSTRING(`C1`,5) FROM `T7`; +SELECT `C1`, SUBSTRING(`C1`,6) FROM `T7`; +SELECT `C1`, SUBSTRING(`C1` FROM 0) FROM `T7`; +SELECT `C1`, SUBSTRING(`C1` FROM 1) FROM `T7`; +SELECT `C1`, SUBSTRING(`C1` FROM 2) FROM `T7`; +SELECT `C1`, SUBSTRING(`C1` FROM 3) FROM `T7`; +SELECT `C1`, SUBSTRING(`C1` FROM 4) FROM `T7`; +SELECT `C1`, SUBSTRING(`C1` FROM 5) FROM `T7`; +SELECT `C1`, SUBSTRING(`C1` FROM 6) FROM `T7`; +SELECT `C1`, SUBSTRING(`C1`,1,0) FROM `T7`; +SELECT `C1`, SUBSTRING(`C1`,1,1) FROM `T7`; +SELECT `C1`, SUBSTRING(`C1`,1,2) FROM `T7`; +SELECT `C1`, SUBSTRING(`C1`,1,3) FROM `T7`; +SELECT `C1`, SUBSTRING(`C1`,1,4) FROM `T7`; +SELECT `C1`, SUBSTRING(`C1`,1,5) FROM `T7`; +SELECT `C1`, SUBSTRING(`C1`,1,6) FROM `T7`; +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 0) FROM `T7`; +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 1) FROM `T7`; +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 2) FROM `T7`; +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 3) FROM `T7`; +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 4) FROM `T7`; +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 5) FROM `T7`; +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 6) FROM `T7`; + +SELECT `C1`, SUBSTRING(`C1`,0) FROM `T8`; +SELECT `C1`, SUBSTRING(`C1`,1) FROM `T8`; +SELECT `C1`, SUBSTRING(`C1`,2) FROM `T8`; +SELECT `C1`, SUBSTRING(`C1`,3) FROM `T8`; +SELECT `C1`, SUBSTRING(`C1`,4) FROM `T8`; +SELECT `C1`, SUBSTRING(`C1`,5) FROM `T8`; +SELECT `C1`, SUBSTRING(`C1`,6) FROM `T8`; +SELECT `C1`, SUBSTRING(`C1` FROM 0) FROM `T8`; +SELECT `C1`, SUBSTRING(`C1` FROM 1) FROM `T8`; +SELECT `C1`, SUBSTRING(`C1` FROM 2) FROM `T8`; +SELECT `C1`, SUBSTRING(`C1` FROM 3) FROM `T8`; +SELECT `C1`, SUBSTRING(`C1` FROM 4) FROM `T8`; +SELECT `C1`, SUBSTRING(`C1` FROM 5) FROM `T8`; +SELECT `C1`, SUBSTRING(`C1` FROM 6) FROM `T8`; +SELECT `C1`, SUBSTRING(`C1`,1,0) FROM `T8`; +SELECT `C1`, SUBSTRING(`C1`,1,1) FROM `T8`; +SELECT `C1`, SUBSTRING(`C1`,1,2) FROM `T8`; +SELECT `C1`, SUBSTRING(`C1`,1,3) FROM `T8`; +SELECT `C1`, SUBSTRING(`C1`,1,4) FROM `T8`; +SELECT `C1`, SUBSTRING(`C1`,1,5) FROM `T8`; +SELECT `C1`, SUBSTRING(`C1`,1,6) FROM `T8`; +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 0) FROM `T8`; +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 1) FROM `T8`; +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 2) FROM `T8`; +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 3) FROM `T8`; +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 4) FROM `T8`; +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 5) FROM `T8`; +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 6) FROM `T8`; + +SELECT `C1`, SUBSTRING(`C1`,0) FROM `T9`; +SELECT `C1`, SUBSTRING(`C1`,1) FROM `T9`; +SELECT `C1`, SUBSTRING(`C1`,2) FROM `T9`; +SELECT `C1`, SUBSTRING(`C1`,3) FROM `T9`; +SELECT `C1`, SUBSTRING(`C1`,4) FROM `T9`; +SELECT `C1`, SUBSTRING(`C1`,5) FROM `T9`; +SELECT `C1`, SUBSTRING(`C1`,6) FROM `T9`; +SELECT `C1`, SUBSTRING(`C1` FROM 0) FROM `T9`; +SELECT `C1`, SUBSTRING(`C1` FROM 1) FROM `T9`; +SELECT `C1`, SUBSTRING(`C1` FROM 2) FROM `T9`; +SELECT `C1`, SUBSTRING(`C1` FROM 3) FROM `T9`; +SELECT `C1`, SUBSTRING(`C1` FROM 4) FROM `T9`; +SELECT `C1`, SUBSTRING(`C1` FROM 5) FROM `T9`; +SELECT `C1`, SUBSTRING(`C1` FROM 6) FROM `T9`; +SELECT `C1`, SUBSTRING(`C1`,1,0) FROM `T9`; +SELECT `C1`, SUBSTRING(`C1`,1,1) FROM `T9`; +SELECT `C1`, SUBSTRING(`C1`,1,2) FROM `T9`; +SELECT `C1`, SUBSTRING(`C1`,1,3) FROM `T9`; +SELECT `C1`, SUBSTRING(`C1`,1,4) FROM `T9`; +SELECT `C1`, SUBSTRING(`C1`,1,5) FROM `T9`; +SELECT `C1`, SUBSTRING(`C1`,1,6) FROM `T9`; +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 0) FROM `T9`; +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 1) FROM `T9`; +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 2) FROM `T9`; +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 3) FROM `T9`; +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 4) FROM `T9`; +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 5) FROM `T9`; +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 6) FROM `T9`; + +#BDB +SELECT `C1`, SUBSTRING(`C1`,0) FROM `T10`; +SELECT `C1`, SUBSTRING(`C1`,1) FROM `T10`; +SELECT `C1`, SUBSTRING(`C1`,2) FROM `T10`; +SELECT `C1`, SUBSTRING(`C1`,3) FROM `T10`; +SELECT `C1`, SUBSTRING(`C1`,4) FROM `T10`; +SELECT `C1`, SUBSTRING(`C1`,5) FROM `T10`; +SELECT `C1`, SUBSTRING(`C1`,6) FROM `T10`; +SELECT `C1`, SUBSTRING(`C1` FROM 0) FROM `T10`; +SELECT `C1`, SUBSTRING(`C1` FROM 1) FROM `T10`; +SELECT `C1`, SUBSTRING(`C1` FROM 2) FROM `T10`; +SELECT `C1`, SUBSTRING(`C1` FROM 3) FROM `T10`; +SELECT `C1`, SUBSTRING(`C1` FROM 4) FROM `T10`; +SELECT `C1`, SUBSTRING(`C1` FROM 5) FROM `T10`; +SELECT `C1`, SUBSTRING(`C1` FROM 6) FROM `T10`; +SELECT `C1`, SUBSTRING(`C1`,1,0) FROM `T10`; +SELECT `C1`, SUBSTRING(`C1`,1,1) FROM `T10`; +SELECT `C1`, SUBSTRING(`C1`,1,2) FROM `T10`; +SELECT `C1`, SUBSTRING(`C1`,1,3) FROM `T10`; +SELECT `C1`, SUBSTRING(`C1`,1,4) FROM `T10`; +SELECT `C1`, SUBSTRING(`C1`,1,5) FROM `T10`; +SELECT `C1`, SUBSTRING(`C1`,1,6) FROM `T10`; +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 0) FROM `T10`; +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 1) FROM `T10`; +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 2) FROM `T10`; +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 3) FROM `T10`; +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 4) FROM `T10`; +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 5) FROM `T10`; +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 6) FROM `T10`; + +SELECT `C1`, SUBSTRING(`C1`,0) FROM `T11`; +SELECT `C1`, SUBSTRING(`C1`,1) FROM `T11`; +SELECT `C1`, SUBSTRING(`C1`,2) FROM `T11`; +SELECT `C1`, SUBSTRING(`C1`,3) FROM `T11`; +SELECT `C1`, SUBSTRING(`C1`,4) FROM `T11`; +SELECT `C1`, SUBSTRING(`C1`,5) FROM `T11`; +SELECT `C1`, SUBSTRING(`C1`,6) FROM `T11`; +SELECT `C1`, SUBSTRING(`C1` FROM 0) FROM `T11`; +SELECT `C1`, SUBSTRING(`C1` FROM 1) FROM `T11`; +SELECT `C1`, SUBSTRING(`C1` FROM 2) FROM `T11`; +SELECT `C1`, SUBSTRING(`C1` FROM 3) FROM `T11`; +SELECT `C1`, SUBSTRING(`C1` FROM 4) FROM `T11`; +SELECT `C1`, SUBSTRING(`C1` FROM 5) FROM `T11`; +SELECT `C1`, SUBSTRING(`C1` FROM 6) FROM `T11`; +SELECT `C1`, SUBSTRING(`C1`,1,0) FROM `T11`; +SELECT `C1`, SUBSTRING(`C1`,1,1) FROM `T11`; +SELECT `C1`, SUBSTRING(`C1`,1,2) FROM `T11`; +SELECT `C1`, SUBSTRING(`C1`,1,3) FROM `T11`; +SELECT `C1`, SUBSTRING(`C1`,1,4) FROM `T11`; +SELECT `C1`, SUBSTRING(`C1`,1,5) FROM `T11`; +SELECT `C1`, SUBSTRING(`C1`,1,6) FROM `T11`; +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 0) FROM `T11`; +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 1) FROM `T11`; +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 2) FROM `T11`; +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 3) FROM `T11`; +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 4) FROM `T11`; +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 5) FROM `T11`; +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 6) FROM `T11`; + +SELECT `C1`, SUBSTRING(`C1`,0) FROM `T12`; +SELECT `C1`, SUBSTRING(`C1`,1) FROM `T12`; +SELECT `C1`, SUBSTRING(`C1`,2) FROM `T12`; +SELECT `C1`, SUBSTRING(`C1`,3) FROM `T12`; +SELECT `C1`, SUBSTRING(`C1`,4) FROM `T12`; +SELECT `C1`, SUBSTRING(`C1`,5) FROM `T12`; +SELECT `C1`, SUBSTRING(`C1`,6) FROM `T12`; +SELECT `C1`, SUBSTRING(`C1` FROM 0) FROM `T12`; +SELECT `C1`, SUBSTRING(`C1` FROM 1) FROM `T12`; +SELECT `C1`, SUBSTRING(`C1` FROM 2) FROM `T12`; +SELECT `C1`, SUBSTRING(`C1` FROM 3) FROM `T12`; +SELECT `C1`, SUBSTRING(`C1` FROM 4) FROM `T12`; +SELECT `C1`, SUBSTRING(`C1` FROM 5) FROM `T12`; +SELECT `C1`, SUBSTRING(`C1` FROM 6) FROM `T12`; +SELECT `C1`, SUBSTRING(`C1`,1,0) FROM `T12`; +SELECT `C1`, SUBSTRING(`C1`,1,1) FROM `T12`; +SELECT `C1`, SUBSTRING(`C1`,1,2) FROM `T12`; +SELECT `C1`, SUBSTRING(`C1`,1,3) FROM `T12`; +SELECT `C1`, SUBSTRING(`C1`,1,4) FROM `T12`; +SELECT `C1`, SUBSTRING(`C1`,1,5) FROM `T12`; +SELECT `C1`, SUBSTRING(`C1`,1,6) FROM `T12`; +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 0) FROM `T12`; +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 1) FROM `T12`; +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 2) FROM `T12`; +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 3) FROM `T12`; +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 4) FROM `T12`; +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 5) FROM `T12`; +SELECT `C1`, SUBSTRING(`C1` FROM 1 FOR 6) FROM `T12`; + +DROP TABLE `T1`; +DROP TABLE `T2`; +DROP TABLE `T3`; +DROP TABLE `T4`; +DROP TABLE `T5`; +DROP TABLE `T6`; +DROP TABLE `T7`; +DROP TABLE `T8`; +DROP TABLE `T9`; +DROP TABLE `T10`; +DROP TABLE `T11`; +DROP TABLE `T12`; diff --git a/mysql-test/suite/jp/t/jp_trim_sjis.test b/mysql-test/suite/jp/t/jp_trim_sjis.test new file mode 100755 index 00000000000..0f6821605ed --- /dev/null +++ b/mysql-test/suite/jp/t/jp_trim_sjis.test @@ -0,0 +1,219 @@ +--character_set sjis +--disable_warnings +drop table if exists `sP`; +drop table if exists `sQ`; +drop table if exists `sR`; +drop table if exists `sS`; +drop table if exists `sT`; +drop table if exists `sU`; +drop table if exists `sV`; +drop table if exists `sW`; +drop table if exists `sX`; +drop table if exists `sPO`; +--enable_warnings + +# +# Test TRIM() function with Japanese characters sjis encoding +# + +SET NAMES sjis; +SET character_set_database = sjis; + +CREATE TABLE `sP` (`bP` char(12), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sQ` (`bP` char(12), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sR` (`bP` char(12), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sS` (`bP` char(12), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sT` (`bP` char(12), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sU` (`bP` char(12), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sV` (`bP` char(12), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sW` (`bP` char(12), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sX` (`bP` char(12), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sPO` (`bP` char(12), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +CREATE TABLE `sPP` (`bP` char(12), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +CREATE TABLE `sPQ` (`bP` char(12), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; + +# Nothing to trim +INSERT INTO `sP` VALUES (''); +# Test data for TRIM(TRAILING [remstr] FROM str) +INSERT INTO `sP` VALUES (''); +INSERT INTO `sP` VALUES (''); +INSERT INTO `sP` VALUES (''); +# Test data for TRIM(LEADING [remstr] FROM str) +INSERT INTO `sP` VALUES (''); +INSERT INTO `sP` VALUES (''); +INSERT INTO `sP` VALUES (''); +# Test data for TRIM(BOTH [remstr] FROM str) +INSERT INTO `sP` VALUES (''); +# Test data for TRIM without [remstr] (remove spaces) +INSERT INTO `sP` VALUES (' '); +INSERT INTO `sQ` VALUES (''); +INSERT INTO `sQ` VALUES (''); +INSERT INTO `sQ` VALUES (''); +INSERT INTO `sQ` VALUES (''); +INSERT INTO `sQ` VALUES (''); +INSERT INTO `sQ` VALUES (''); +INSERT INTO `sQ` VALUES (''); +INSERT INTO `sQ` VALUES (''); +INSERT INTO `sQ` VALUES (' '); +INSERT INTO `sR` VALUES ('\\\\\'); +INSERT INTO `sR` VALUES ('\\\\\\'); +INSERT INTO `sR` VALUES ('\\\\\\\'); +INSERT INTO `sR` VALUES ('\\\\\\\\'); +INSERT INTO `sR` VALUES ('\\\\\\'); +INSERT INTO `sR` VALUES ('\\\\\\\'); +INSERT INTO `sR` VALUES ('\\\\\\\\'); +INSERT INTO `sR` VALUES ('\\\\\\\\\\\'); +INSERT INTO `sR` VALUES (' \\\\\ '); + +INSERT INTO `sS` VALUES (''); +INSERT INTO `sS` VALUES (''); +INSERT INTO `sS` VALUES (''); +INSERT INTO `sS` VALUES (''); +INSERT INTO `sS` VALUES (''); +INSERT INTO `sS` VALUES (''); +INSERT INTO `sS` VALUES (''); +INSERT INTO `sS` VALUES (''); +INSERT INTO `sS` VALUES (' '); +INSERT INTO `sT` VALUES (''); +INSERT INTO `sT` VALUES (''); +INSERT INTO `sT` VALUES (''); +INSERT INTO `sT` VALUES (''); +INSERT INTO `sT` VALUES (''); +INSERT INTO `sT` VALUES (''); +INSERT INTO `sT` VALUES (''); +INSERT INTO `sT` VALUES (''); +INSERT INTO `sT` VALUES (' '); +INSERT INTO `sU` VALUES ('\\\\\'); +INSERT INTO `sU` VALUES ('\\\\\\'); +INSERT INTO `sU` VALUES ('\\\\\\\'); +INSERT INTO `sU` VALUES ('\\\\\\\\'); +INSERT INTO `sU` VALUES ('\\\\\\'); +INSERT INTO `sU` VALUES ('\\\\\\\'); +INSERT INTO `sU` VALUES ('\\\\\\\\'); +INSERT INTO `sU` VALUES ('\\\\\\\\\\\'); +INSERT INTO `sU` VALUES (' \\\\\ '); + +INSERT INTO `sV` VALUES (''); +INSERT INTO `sV` VALUES (''); +INSERT INTO `sV` VALUES (''); +INSERT INTO `sV` VALUES (''); +INSERT INTO `sV` VALUES (''); +INSERT INTO `sV` VALUES (''); +INSERT INTO `sV` VALUES (''); +INSERT INTO `sV` VALUES (''); +INSERT INTO `sV` VALUES (' '); +INSERT INTO `sW` VALUES (''); +INSERT INTO `sW` VALUES (''); +INSERT INTO `sW` VALUES (''); +INSERT INTO `sW` VALUES (''); +INSERT INTO `sW` VALUES (''); +INSERT INTO `sW` VALUES (''); +INSERT INTO `sW` VALUES (''); +INSERT INTO `sW` VALUES (''); +INSERT INTO `sW` VALUES (' '); +INSERT INTO `sX` VALUES ('\\\\\'); +INSERT INTO `sX` VALUES ('\\\\\\'); +INSERT INTO `sX` VALUES ('\\\\\\\'); +INSERT INTO `sX` VALUES ('\\\\\\\\'); +INSERT INTO `sX` VALUES ('\\\\\\'); +INSERT INTO `sX` VALUES ('\\\\\\\'); +INSERT INTO `sX` VALUES ('\\\\\\\\'); +INSERT INTO `sX` VALUES ('\\\\\\\\\\\'); +INSERT INTO `sX` VALUES (' \\\\\ '); + +INSERT INTO `sPO` VALUES (''); +INSERT INTO `sPO` VALUES (''); +INSERT INTO `sPO` VALUES (''); +INSERT INTO `sPO` VALUES (''); +INSERT INTO `sPO` VALUES (''); +INSERT INTO `sPO` VALUES (''); +INSERT INTO `sPO` VALUES (''); +INSERT INTO `sPO` VALUES (''); +INSERT INTO `sPO` VALUES (' '); +INSERT INTO `sPP` VALUES (''); +INSERT INTO `sPP` VALUES (''); +INSERT INTO `sPP` VALUES (''); +INSERT INTO `sPP` VALUES (''); +INSERT INTO `sPP` VALUES (''); +INSERT INTO `sPP` VALUES (''); +INSERT INTO `sPP` VALUES (''); +INSERT INTO `sPP` VALUES (''); +INSERT INTO `sPP` VALUES (' '); +INSERT INTO `sPQ` VALUES ('\\\\\'); +INSERT INTO `sPQ` VALUES ('\\\\\\'); +INSERT INTO `sPQ` VALUES ('\\\\\\\'); +INSERT INTO `sPQ` VALUES ('\\\\\\\\'); +INSERT INTO `sPQ` VALUES ('\\\\\\'); +INSERT INTO `sPQ` VALUES ('\\\\\\\'); +INSERT INTO `sPQ` VALUES ('\\\\\\\\'); +INSERT INTO `sPQ` VALUES ('\\\\\\\\\\\'); +INSERT INTO `sPQ` VALUES (' \\\\\ '); + +#InnoDB +SELECT `bP`,TRIM(TRAILING '' FROM `bP`) FROM `sP`; +SELECT `bP`,TRIM(LEADING '' FROM `bP`) FROM `sP`; +SELECT `bP`,TRIM(BOTH '' FROM `bP`) FROM `sP`; +SELECT `bP`,TRIM(`bP`) FROM `sP`; +SELECT `bP`,TRIM(TRAILING '' FROM `bP`) FROM `sQ`; +SELECT `bP`,TRIM(LEADING '' FROM `bP`) FROM `sQ`; +SELECT `bP`,TRIM(BOTH '' FROM `bP`) FROM `sQ`; +SELECT `bP`,TRIM(`bP`) FROM `sQ`; +SELECT `bP`,TRIM(TRAILING '\'FROM `bP`) FROM `sR`; +SELECT `bP`,TRIM(LEADING '\' FROM `bP`) FROM `sR`; +SELECT `bP`,TRIM(BOTH '\' FROM `bP`) FROM `sR`; +SELECT `bP`,TRIM(`bP`) FROM `sR`; + +#MyISAM +SELECT `bP`,TRIM(TRAILING '' FROM `bP`) FROM `sS`; +SELECT `bP`,TRIM(LEADING '' FROM `bP`) FROM `sS`; +SELECT `bP`,TRIM(BOTH '' FROM `bP`) FROM `sS`; +SELECT `bP`,TRIM(`bP`) FROM `sS`; +SELECT `bP`,TRIM(TRAILING '' FROM `bP`) FROM `sT`; +SELECT `bP`,TRIM(LEADING '' FROM `bP`) FROM `sT`; +SELECT `bP`,TRIM(BOTH '' FROM `bP`) FROM `sT`; +SELECT `bP`,TRIM(`bP`) FROM `sT`; +SELECT `bP`,TRIM(TRAILING '\' FROM `bP`) FROM `sU`; +SELECT `bP`,TRIM(LEADING '\' FROM `bP`) FROM `sU`; +SELECT `bP`,TRIM(BOTH '\' FROM `bP`) FROM `sU`; +SELECT `bP`,TRIM(`bP`) FROM `sU`; + +#HEAP +SELECT `bP`,TRIM(TRAILING '' FROM `bP`) FROM `sV`; +SELECT `bP`,TRIM(LEADING '' FROM `bP`) FROM `sV`; +SELECT `bP`,TRIM(BOTH '' FROM `bP`) FROM `sV`; +SELECT `bP`,TRIM(`bP`) FROM `sV`; +SELECT `bP`,TRIM(TRAILING '' FROM `bP`) FROM `sW`; +SELECT `bP`,TRIM(LEADING '' FROM `bP`) FROM `sW`; +SELECT `bP`,TRIM(BOTH '' FROM `bP`) FROM `sW`; +SELECT `bP`,TRIM(`bP`) FROM `sW`; +SELECT `bP`,TRIM(TRAILING '\' FROM `bP`) FROM `sX`; +SELECT `bP`,TRIM(LEADING '\' FROM `bP`) FROM `sX`; +SELECT `bP`,TRIM(BOTH '\' FROM `bP`) FROM `sX`; +SELECT `bP`,TRIM(`bP`) FROM `sX`; + +#BDB +SELECT `bP`,TRIM(TRAILING '' FROM `bP`) FROM `sPO`; +SELECT `bP`,TRIM(LEADING '' FROM `bP`) FROM `sPO`; +SELECT `bP`,TRIM(BOTH '' FROM `bP`) FROM `sPO`; +SELECT `bP`,TRIM(`bP`) FROM `sPO`; +SELECT `bP`,TRIM(TRAILING '' FROM `bP`) FROM `sPP`; +SELECT `bP`,TRIM(LEADING '' FROM `bP`) FROM `sPP`; +SELECT `bP`,TRIM(BOTH '' FROM `bP`) FROM `sPP`; +SELECT `bP`,TRIM(`bP`) FROM `sPP`; +SELECT `bP`,TRIM(TRAILING '\' FROM `bP`) FROM `sPQ`; +SELECT `bP`,TRIM(LEADING '\' FROM `bP`) FROM `sPQ`; +SELECT `bP`,TRIM(BOTH '\' FROM `bP`) FROM `sPQ`; +SELECT `bP`,TRIM(`bP`) FROM `sPQ`; + +DROP TABLE `sP`; +DROP TABLE `sQ`; +DROP TABLE `sR`; +DROP TABLE `sS`; +DROP TABLE `sT`; +DROP TABLE `sU`; +DROP TABLE `sV`; +DROP TABLE `sW`; +DROP TABLE `sX`; +DROP TABLE `sPO`; +DROP TABLE `sPP`; +DROP TABLE `sPQ`; diff --git a/mysql-test/suite/jp/t/jp_trim_ucs2.test b/mysql-test/suite/jp/t/jp_trim_ucs2.test new file mode 100755 index 00000000000..1d8a12650e0 --- /dev/null +++ b/mysql-test/suite/jp/t/jp_trim_ucs2.test @@ -0,0 +1,221 @@ +--source include/have_ucs2.inc + +--disable_warnings +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +--enable_warnings + +# +# Test TRIM() function with Japanese characters ucs2 encoding +# + +SET NAMES ujis; +SET character_set_database = ucs2; +SET collation_connection = ucs2_general_ci; + +CREATE TABLE `ԣ` (`ã` char(12), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(12), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(12), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(12), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(12), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(12), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(12), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(12), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(12), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(12), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +CREATE TABLE `ԣ` (`ã` char(12), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +CREATE TABLE `ԣ` (`ã` char(12), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; + +# Nothing to trim +INSERT INTO `ԣ` VALUES (''); +# Test data for TRIM(TRAILING [remstr] FROM str) +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +# Test data for TRIM(LEADING [remstr] FROM str) +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +# Test data for TRIM(BOTH [remstr] FROM str) +INSERT INTO `ԣ` VALUES (''); +# Test data for TRIM without [remstr] (remove spaces) +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (' ܏ݏޏߏ '); + +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (' ܏ݏޏߏ '); + +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (' ܏ݏޏߏ '); + +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (' ܏ݏޏߏ '); + +#InnoDB +SELECT `ã`,TRIM(TRAILING '' FROM `ã`) FROM `ԣ`; +SELECT `ã`,TRIM(LEADING '' FROM `ã`) FROM `ԣ`; +SELECT `ã`,TRIM(BOTH '' FROM `ã`) FROM `ԣ`; +SELECT `ã`,TRIM(`ã`) FROM `ԣ`; +SELECT `ã`,TRIM(TRAILING '' FROM `ã`) FROM `ԣ`; +SELECT `ã`,TRIM(LEADING '' FROM `ã`) FROM `ԣ`; +SELECT `ã`,TRIM(BOTH '' FROM `ã`) FROM `ԣ`; +SELECT `ã`,TRIM(`ã`) FROM `ԣ`; +SELECT `ã`,TRIM(TRAILING ''FROM `ã`) FROM `ԣ`; +SELECT `ã`,TRIM(LEADING '' FROM `ã`) FROM `ԣ`; +SELECT `ã`,TRIM(BOTH '' FROM `ã`) FROM `ԣ`; +SELECT `ã`,TRIM(`ã`) FROM `ԣ`; + +#MyISAM +SELECT `ã`,TRIM(TRAILING '' FROM `ã`) FROM `ԣ`; +SELECT `ã`,TRIM(LEADING '' FROM `ã`) FROM `ԣ`; +SELECT `ã`,TRIM(BOTH '' FROM `ã`) FROM `ԣ`; +SELECT `ã`,TRIM(`ã`) FROM `ԣ`; +SELECT `ã`,TRIM(TRAILING '' FROM `ã`) FROM `ԣ`; +SELECT `ã`,TRIM(LEADING '' FROM `ã`) FROM `ԣ`; +SELECT `ã`,TRIM(BOTH '' FROM `ã`) FROM `ԣ`; +SELECT `ã`,TRIM(`ã`) FROM `ԣ`; +SELECT `ã`,TRIM(TRAILING '' FROM `ã`) FROM `ԣ`; +SELECT `ã`,TRIM(LEADING '' FROM `ã`) FROM `ԣ`; +SELECT `ã`,TRIM(BOTH '' FROM `ã`) FROM `ԣ`; +SELECT `ã`,TRIM(`ã`) FROM `ԣ`; + +#HEAP +SELECT `ã`,TRIM(TRAILING '' FROM `ã`) FROM `ԣ`; +SELECT `ã`,TRIM(LEADING '' FROM `ã`) FROM `ԣ`; +SELECT `ã`,TRIM(BOTH '' FROM `ã`) FROM `ԣ`; +SELECT `ã`,TRIM(`ã`) FROM `ԣ`; +SELECT `ã`,TRIM(TRAILING '' FROM `ã`) FROM `ԣ`; +SELECT `ã`,TRIM(LEADING '' FROM `ã`) FROM `ԣ`; +SELECT `ã`,TRIM(BOTH '' FROM `ã`) FROM `ԣ`; +SELECT `ã`,TRIM(`ã`) FROM `ԣ`; +SELECT `ã`,TRIM(TRAILING '' FROM `ã`) FROM `ԣ`; +SELECT `ã`,TRIM(LEADING '' FROM `ã`) FROM `ԣ`; +SELECT `ã`,TRIM(BOTH '' FROM `ã`) FROM `ԣ`; +SELECT `ã`,TRIM(`ã`) FROM `ԣ`; + +#BDB +SELECT `ã`,TRIM(TRAILING '' FROM `ã`) FROM `ԣ`; +SELECT `ã`,TRIM(LEADING '' FROM `ã`) FROM `ԣ`; +SELECT `ã`,TRIM(BOTH '' FROM `ã`) FROM `ԣ`; +SELECT `ã`,TRIM(`ã`) FROM `ԣ`; +SELECT `ã`,TRIM(TRAILING '' FROM `ã`) FROM `ԣ`; +SELECT `ã`,TRIM(LEADING '' FROM `ã`) FROM `ԣ`; +SELECT `ã`,TRIM(BOTH '' FROM `ã`) FROM `ԣ`; +SELECT `ã`,TRIM(`ã`) FROM `ԣ`; +SELECT `ã`,TRIM(TRAILING '' FROM `ã`) FROM `ԣ`; +SELECT `ã`,TRIM(LEADING '' FROM `ã`) FROM `ԣ`; +SELECT `ã`,TRIM(BOTH '' FROM `ã`) FROM `ԣ`; +SELECT `ã`,TRIM(`ã`) FROM `ԣ`; + +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; diff --git a/mysql-test/suite/jp/t/jp_trim_ujis.test b/mysql-test/suite/jp/t/jp_trim_ujis.test new file mode 100755 index 00000000000..de401217fcf --- /dev/null +++ b/mysql-test/suite/jp/t/jp_trim_ujis.test @@ -0,0 +1,220 @@ +--source include/have_ujis.inc + +--disable_warnings +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +--enable_warnings + +# +# Test TRIM() function with Japanese characters ujis encoding +# + +SET NAMES ujis; +SET character_set_database = ujis; + +CREATE TABLE `ԣ` (`ã` char(12), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(12), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(12), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(12), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(12), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(12), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(12), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(12), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(12), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(12), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +CREATE TABLE `ԣ` (`ã` char(12), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +CREATE TABLE `ԣ` (`ã` char(12), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; + +# Nothing to trim +INSERT INTO `ԣ` VALUES (''); +# Test data for TRIM(TRAILING [remstr] FROM str) +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +# Test data for TRIM(LEADING [remstr] FROM str) +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +# Test data for TRIM(BOTH [remstr] FROM str) +INSERT INTO `ԣ` VALUES (''); +# Test data for TRIM without [remstr] (remove spaces) +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (' ܏ݏޏߏ '); + +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (' ܏ݏޏߏ '); + +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (' ܏ݏޏߏ '); + +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (' '); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (' ܏ݏޏߏ '); + +#InnoDB +SELECT `ã`,TRIM(TRAILING '' FROM `ã`) FROM `ԣ`; +SELECT `ã`,TRIM(LEADING '' FROM `ã`) FROM `ԣ`; +SELECT `ã`,TRIM(BOTH '' FROM `ã`) FROM `ԣ`; +SELECT `ã`,TRIM(`ã`) FROM `ԣ`; +SELECT `ã`,TRIM(TRAILING '' FROM `ã`) FROM `ԣ`; +SELECT `ã`,TRIM(LEADING '' FROM `ã`) FROM `ԣ`; +SELECT `ã`,TRIM(BOTH '' FROM `ã`) FROM `ԣ`; +SELECT `ã`,TRIM(`ã`) FROM `ԣ`; +SELECT `ã`,TRIM(TRAILING ''FROM `ã`) FROM `ԣ`; +SELECT `ã`,TRIM(LEADING '' FROM `ã`) FROM `ԣ`; +SELECT `ã`,TRIM(BOTH '' FROM `ã`) FROM `ԣ`; +SELECT `ã`,TRIM(`ã`) FROM `ԣ`; + +#MyISAM +SELECT `ã`,TRIM(TRAILING '' FROM `ã`) FROM `ԣ`; +SELECT `ã`,TRIM(LEADING '' FROM `ã`) FROM `ԣ`; +SELECT `ã`,TRIM(BOTH '' FROM `ã`) FROM `ԣ`; +SELECT `ã`,TRIM(`ã`) FROM `ԣ`; +SELECT `ã`,TRIM(TRAILING '' FROM `ã`) FROM `ԣ`; +SELECT `ã`,TRIM(LEADING '' FROM `ã`) FROM `ԣ`; +SELECT `ã`,TRIM(BOTH '' FROM `ã`) FROM `ԣ`; +SELECT `ã`,TRIM(`ã`) FROM `ԣ`; +SELECT `ã`,TRIM(TRAILING '' FROM `ã`) FROM `ԣ`; +SELECT `ã`,TRIM(LEADING '' FROM `ã`) FROM `ԣ`; +SELECT `ã`,TRIM(BOTH '' FROM `ã`) FROM `ԣ`; +SELECT `ã`,TRIM(`ã`) FROM `ԣ`; + +#HEAP +SELECT `ã`,TRIM(TRAILING '' FROM `ã`) FROM `ԣ`; +SELECT `ã`,TRIM(LEADING '' FROM `ã`) FROM `ԣ`; +SELECT `ã`,TRIM(BOTH '' FROM `ã`) FROM `ԣ`; +SELECT `ã`,TRIM(`ã`) FROM `ԣ`; +SELECT `ã`,TRIM(TRAILING '' FROM `ã`) FROM `ԣ`; +SELECT `ã`,TRIM(LEADING '' FROM `ã`) FROM `ԣ`; +SELECT `ã`,TRIM(BOTH '' FROM `ã`) FROM `ԣ`; +SELECT `ã`,TRIM(`ã`) FROM `ԣ`; +SELECT `ã`,TRIM(TRAILING '' FROM `ã`) FROM `ԣ`; +SELECT `ã`,TRIM(LEADING '' FROM `ã`) FROM `ԣ`; +SELECT `ã`,TRIM(BOTH '' FROM `ã`) FROM `ԣ`; +SELECT `ã`,TRIM(`ã`) FROM `ԣ`; + +#BDB +SELECT `ã`,TRIM(TRAILING '' FROM `ã`) FROM `ԣ`; +SELECT `ã`,TRIM(LEADING '' FROM `ã`) FROM `ԣ`; +SELECT `ã`,TRIM(BOTH '' FROM `ã`) FROM `ԣ`; +SELECT `ã`,TRIM(`ã`) FROM `ԣ`; +SELECT `ã`,TRIM(TRAILING '' FROM `ã`) FROM `ԣ`; +SELECT `ã`,TRIM(LEADING '' FROM `ã`) FROM `ԣ`; +SELECT `ã`,TRIM(BOTH '' FROM `ã`) FROM `ԣ`; +SELECT `ã`,TRIM(`ã`) FROM `ԣ`; +SELECT `ã`,TRIM(TRAILING '' FROM `ã`) FROM `ԣ`; +SELECT `ã`,TRIM(LEADING '' FROM `ã`) FROM `ԣ`; +SELECT `ã`,TRIM(BOTH '' FROM `ã`) FROM `ԣ`; +SELECT `ã`,TRIM(`ã`) FROM `ԣ`; + +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; diff --git a/mysql-test/suite/jp/t/jp_trim_utf8.test b/mysql-test/suite/jp/t/jp_trim_utf8.test new file mode 100755 index 00000000000..0777de15c36 --- /dev/null +++ b/mysql-test/suite/jp/t/jp_trim_utf8.test @@ -0,0 +1,218 @@ +--disable_warnings +drop table if exists `T1`; +drop table if exists `T2`; +drop table if exists `T3`; +drop table if exists `T4`; +drop table if exists `T5`; +drop table if exists `T6`; +drop table if exists `T7`; +drop table if exists `T8`; +drop table if exists `T9`; +drop table if exists `T10`; +--enable_warnings + +# +# Test TRIM() function with Japanese characters utf8 encoding +# + +SET NAMES utf8; +SET character_set_database = utf8; + +CREATE TABLE `T1` (`C1` char(12), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T2` (`C1` char(12), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T3` (`C1` char(12), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T4` (`C1` char(12), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T5` (`C1` char(12), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T6` (`C1` char(12), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T7` (`C1` char(12), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T8` (`C1` char(12), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T9` (`C1` char(12), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T10` (`C1` char(12), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +CREATE TABLE `T11` (`C1` char(12), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +CREATE TABLE `T12` (`C1` char(12), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; + +# Nothing to trim +INSERT INTO `T1` VALUES ('アイウエオ'); +# Test data for TRIM(TRAILING [remstr] FROM str) +INSERT INTO `T1` VALUES ('アイウエオカ'); +INSERT INTO `T1` VALUES ('アイウエオカカ'); +INSERT INTO `T1` VALUES ('アイウエオカカカ'); +# Test data for TRIM(LEADING [remstr] FROM str) +INSERT INTO `T1` VALUES ('カアイウエオ'); +INSERT INTO `T1` VALUES ('カカアイウエオ'); +INSERT INTO `T1` VALUES ('カカカアイウエオ'); +# Test data for TRIM(BOTH [remstr] FROM str) +INSERT INTO `T1` VALUES ('カカカアイウエオカカカ'); +# Test data for TRIM without [remstr] (remove spaces) +INSERT INTO `T1` VALUES (' アイウエオ '); +INSERT INTO `T2` VALUES ('あいうえお'); +INSERT INTO `T2` VALUES ('あいうえおか'); +INSERT INTO `T2` VALUES ('あいうえおかか'); +INSERT INTO `T2` VALUES ('あいうえおかかか'); +INSERT INTO `T2` VALUES ('かあいうえお'); +INSERT INTO `T2` VALUES ('かかあいうえお'); +INSERT INTO `T2` VALUES ('かかかあいうえお'); +INSERT INTO `T2` VALUES ('かかかあいうえおかかか'); +INSERT INTO `T2` VALUES (' あいうえお '); +INSERT INTO `T3` VALUES ('龔龖龗龞龡'); +INSERT INTO `T3` VALUES ('龔龖龗龞龡丂'); +INSERT INTO `T3` VALUES ('龔龖龗龞龡丂丂'); +INSERT INTO `T3` VALUES ('龔龖龗龞龡丂丂丂'); +INSERT INTO `T3` VALUES ('丂龔龖龗龞龡'); +INSERT INTO `T3` VALUES ('丂丂龔龖龗龞龡'); +INSERT INTO `T3` VALUES ('丂丂丂龔龖龗龞龡'); +INSERT INTO `T3` VALUES ('丂丂丂龔龖龗龞龡丂丂丂'); +INSERT INTO `T3` VALUES (' 龔龖龗龞龡 '); + +INSERT INTO `T4` VALUES ('アイウエオ'); +INSERT INTO `T4` VALUES ('アイウエオカ'); +INSERT INTO `T4` VALUES ('アイウエオカカ'); +INSERT INTO `T4` VALUES ('アイウエオカカカ'); +INSERT INTO `T4` VALUES ('カアイウエオ'); +INSERT INTO `T4` VALUES ('カカアイウエオ'); +INSERT INTO `T4` VALUES ('カカカアイウエオ'); +INSERT INTO `T4` VALUES ('カカカアイウエオカカカ'); +INSERT INTO `T4` VALUES (' アイウエオ '); +INSERT INTO `T5` VALUES ('あいうえお'); +INSERT INTO `T5` VALUES ('あいうえおか'); +INSERT INTO `T5` VALUES ('あいうえおかか'); +INSERT INTO `T5` VALUES ('あいうえおかかか'); +INSERT INTO `T5` VALUES ('かあいうえお'); +INSERT INTO `T5` VALUES ('かかあいうえお'); +INSERT INTO `T5` VALUES ('かかかあいうえお'); +INSERT INTO `T5` VALUES ('かかかあいうえおかかか'); +INSERT INTO `T5` VALUES (' あいうえお '); +INSERT INTO `T6` VALUES ('龔龖龗龞龡'); +INSERT INTO `T6` VALUES ('龔龖龗龞龡丂'); +INSERT INTO `T6` VALUES ('龔龖龗龞龡丂丂'); +INSERT INTO `T6` VALUES ('龔龖龗龞龡丂丂丂'); +INSERT INTO `T6` VALUES ('丂龔龖龗龞龡'); +INSERT INTO `T6` VALUES ('丂丂龔龖龗龞龡'); +INSERT INTO `T6` VALUES ('丂丂丂龔龖龗龞龡'); +INSERT INTO `T6` VALUES ('丂丂丂龔龖龗龞龡丂丂丂'); +INSERT INTO `T6` VALUES (' 龔龖龗龞龡 '); + +INSERT INTO `T7` VALUES ('アイウエオ'); +INSERT INTO `T7` VALUES ('アイウエオカ'); +INSERT INTO `T7` VALUES ('アイウエオカカ'); +INSERT INTO `T7` VALUES ('アイウエオカカカ'); +INSERT INTO `T7` VALUES ('カアイウエオ'); +INSERT INTO `T7` VALUES ('カカアイウエオ'); +INSERT INTO `T7` VALUES ('カカカアイウエオ'); +INSERT INTO `T7` VALUES ('カカカアイウエオカカカ'); +INSERT INTO `T7` VALUES (' アイウエオ '); +INSERT INTO `T8` VALUES ('あいうえお'); +INSERT INTO `T8` VALUES ('あいうえおか'); +INSERT INTO `T8` VALUES ('あいうえおかか'); +INSERT INTO `T8` VALUES ('あいうえおかかか'); +INSERT INTO `T8` VALUES ('かあいうえお'); +INSERT INTO `T8` VALUES ('かかあいうえお'); +INSERT INTO `T8` VALUES ('かかかあいうえお'); +INSERT INTO `T8` VALUES ('かかかあいうえおかかか'); +INSERT INTO `T8` VALUES (' あいうえお '); +INSERT INTO `T9` VALUES ('龔龖龗龞龡'); +INSERT INTO `T9` VALUES ('龔龖龗龞龡丂'); +INSERT INTO `T9` VALUES ('龔龖龗龞龡丂丂'); +INSERT INTO `T9` VALUES ('龔龖龗龞龡丂丂丂'); +INSERT INTO `T9` VALUES ('丂龔龖龗龞龡'); +INSERT INTO `T9` VALUES ('丂丂龔龖龗龞龡'); +INSERT INTO `T9` VALUES ('丂丂丂龔龖龗龞龡'); +INSERT INTO `T9` VALUES ('丂丂丂龔龖龗龞龡丂丂丂'); +INSERT INTO `T9` VALUES (' 龔龖龗龞龡 '); + +INSERT INTO `T10` VALUES ('アイウエオ'); +INSERT INTO `T10` VALUES ('アイウエオカ'); +INSERT INTO `T10` VALUES ('アイウエオカカ'); +INSERT INTO `T10` VALUES ('アイウエオカカカ'); +INSERT INTO `T10` VALUES ('カアイウエオ'); +INSERT INTO `T10` VALUES ('カカアイウエオ'); +INSERT INTO `T10` VALUES ('カカカアイウエオ'); +INSERT INTO `T10` VALUES ('カカカアイウエオカカカ'); +INSERT INTO `T10` VALUES (' アイウエオ '); +INSERT INTO `T11` VALUES ('あいうえお'); +INSERT INTO `T11` VALUES ('あいうえおか'); +INSERT INTO `T11` VALUES ('あいうえおかか'); +INSERT INTO `T11` VALUES ('あいうえおかかか'); +INSERT INTO `T11` VALUES ('かあいうえお'); +INSERT INTO `T11` VALUES ('かかあいうえお'); +INSERT INTO `T11` VALUES ('かかかあいうえお'); +INSERT INTO `T11` VALUES ('かかかあいうえおかかか'); +INSERT INTO `T11` VALUES (' あいうえお '); +INSERT INTO `T12` VALUES ('龔龖龗龞龡'); +INSERT INTO `T12` VALUES ('龔龖龗龞龡丂'); +INSERT INTO `T12` VALUES ('龔龖龗龞龡丂丂'); +INSERT INTO `T12` VALUES ('龔龖龗龞龡丂丂丂'); +INSERT INTO `T12` VALUES ('丂龔龖龗龞龡'); +INSERT INTO `T12` VALUES ('丂丂龔龖龗龞龡'); +INSERT INTO `T12` VALUES ('丂丂丂龔龖龗龞龡'); +INSERT INTO `T12` VALUES ('丂丂丂龔龖龗龞龡丂丂丂'); +INSERT INTO `T12` VALUES (' 龔龖龗龞龡 '); + +#InnoDB +SELECT `C1`,TRIM(TRAILING 'カ' FROM `C1`) FROM `T1`; +SELECT `C1`,TRIM(LEADING 'カ' FROM `C1`) FROM `T1`; +SELECT `C1`,TRIM(BOTH 'カ' FROM `C1`) FROM `T1`; +SELECT `C1`,TRIM(`C1`) FROM `T1`; +SELECT `C1`,TRIM(TRAILING 'か' FROM `C1`) FROM `T2`; +SELECT `C1`,TRIM(LEADING 'か' FROM `C1`) FROM `T2`; +SELECT `C1`,TRIM(BOTH 'か' FROM `C1`) FROM `T2`; +SELECT `C1`,TRIM(`C1`) FROM `T2`; +SELECT `C1`,TRIM(TRAILING '丂'FROM `C1`) FROM `T3`; +SELECT `C1`,TRIM(LEADING '丂' FROM `C1`) FROM `T3`; +SELECT `C1`,TRIM(BOTH '丂' FROM `C1`) FROM `T3`; +SELECT `C1`,TRIM(`C1`) FROM `T3`; + +#MyISAM +SELECT `C1`,TRIM(TRAILING 'カ' FROM `C1`) FROM `T4`; +SELECT `C1`,TRIM(LEADING 'カ' FROM `C1`) FROM `T4`; +SELECT `C1`,TRIM(BOTH 'カ' FROM `C1`) FROM `T4`; +SELECT `C1`,TRIM(`C1`) FROM `T4`; +SELECT `C1`,TRIM(TRAILING 'か' FROM `C1`) FROM `T5`; +SELECT `C1`,TRIM(LEADING 'か' FROM `C1`) FROM `T5`; +SELECT `C1`,TRIM(BOTH 'か' FROM `C1`) FROM `T5`; +SELECT `C1`,TRIM(`C1`) FROM `T5`; +SELECT `C1`,TRIM(TRAILING '丂' FROM `C1`) FROM `T6`; +SELECT `C1`,TRIM(LEADING '丂' FROM `C1`) FROM `T6`; +SELECT `C1`,TRIM(BOTH '丂' FROM `C1`) FROM `T6`; +SELECT `C1`,TRIM(`C1`) FROM `T6`; + +#HEAP +SELECT `C1`,TRIM(TRAILING 'カ' FROM `C1`) FROM `T7`; +SELECT `C1`,TRIM(LEADING 'カ' FROM `C1`) FROM `T7`; +SELECT `C1`,TRIM(BOTH 'カ' FROM `C1`) FROM `T7`; +SELECT `C1`,TRIM(`C1`) FROM `T7`; +SELECT `C1`,TRIM(TRAILING 'か' FROM `C1`) FROM `T8`; +SELECT `C1`,TRIM(LEADING 'か' FROM `C1`) FROM `T8`; +SELECT `C1`,TRIM(BOTH 'か' FROM `C1`) FROM `T8`; +SELECT `C1`,TRIM(`C1`) FROM `T8`; +SELECT `C1`,TRIM(TRAILING '丂' FROM `C1`) FROM `T9`; +SELECT `C1`,TRIM(LEADING '丂' FROM `C1`) FROM `T9`; +SELECT `C1`,TRIM(BOTH '丂' FROM `C1`) FROM `T9`; +SELECT `C1`,TRIM(`C1`) FROM `T9`; + +#BDB +SELECT `C1`,TRIM(TRAILING 'カ' FROM `C1`) FROM `T10`; +SELECT `C1`,TRIM(LEADING 'カ' FROM `C1`) FROM `T10`; +SELECT `C1`,TRIM(BOTH 'カ' FROM `C1`) FROM `T10`; +SELECT `C1`,TRIM(`C1`) FROM `T10`; +SELECT `C1`,TRIM(TRAILING 'か' FROM `C1`) FROM `T11`; +SELECT `C1`,TRIM(LEADING 'か' FROM `C1`) FROM `T11`; +SELECT `C1`,TRIM(BOTH 'か' FROM `C1`) FROM `T11`; +SELECT `C1`,TRIM(`C1`) FROM `T11`; +SELECT `C1`,TRIM(TRAILING '丂' FROM `C1`) FROM `T12`; +SELECT `C1`,TRIM(LEADING '丂' FROM `C1`) FROM `T12`; +SELECT `C1`,TRIM(BOTH '丂' FROM `C1`) FROM `T12`; +SELECT `C1`,TRIM(`C1`) FROM `T12`; + +DROP TABLE `T1`; +DROP TABLE `T2`; +DROP TABLE `T3`; +DROP TABLE `T4`; +DROP TABLE `T5`; +DROP TABLE `T6`; +DROP TABLE `T7`; +DROP TABLE `T8`; +DROP TABLE `T9`; +DROP TABLE `T10`; +DROP TABLE `T11`; +DROP TABLE `T12`; diff --git a/mysql-test/suite/jp/t/jp_union_ujis.test b/mysql-test/suite/jp/t/jp_union_ujis.test new file mode 100755 index 00000000000..e36d18c85c0 --- /dev/null +++ b/mysql-test/suite/jp/t/jp_union_ujis.test @@ -0,0 +1,129 @@ +--source include/have_ujis.inc + +--disable_warnings +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +--enable_warnings + +# +# Test UNION with Japanese characters in ujis encoding +# + +SET NAMES ujis; +SET character_set_database = ujis; + +#InnoDB +CREATE TABLE `ԣ` (`ã` char(1), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(1), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(1), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +INSERT INTO `ԣ` VALUES(''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES(''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES(''),(''),(''),(''),(''),(''); +SELECT * FROM `ԣ` UNION DISTINCT SELECT * FROM `ԣ` ORDER BY `ã`; +SELECT * FROM `ԣ` UNION ALL SELECT * FROM `ԣ` ORDER BY `ã`; +(SELECT * FROM `ԣ`) UNION (SELECT * FROM `ԣ`) UNION (SELECT '') ORDER BY `ã`; +(SELECT '' AS `ã`) UNION (SELECT * FROM `ԣ`) UNION (SELECT * FROM `ԣ`) ORDER BY `ã`; +SELECT `ã`, COUNT(*) FROM `ԣ` GROUP BY `ã` UNION +SELECT `ã`, COUNT(*) FROM `ԣ` GROUP BY `ã` ORDER BY `ã`; +SELECT * FROM `ԣ` UNION DISTINCT +SELECT * FROM `ԣ` UNION ALL +SELECT * FROM `ԣ` ORDER BY `ã`; +SELECT * FROM `ԣ` UNION ALL +SELECT * FROM `ԣ` UNION DISTINCT +SELECT * FROM `ԣ` ORDER BY `ã`; +SELECT * FROM `ԣ` UNION SELECT REPEAT(`ã`,5) FROM `ԣ` ORDER BY `ã`; +DROP TABLE `ԣ` ; +DROP TABLE `ԣ` ; +DROP TABLE `ԣ` ; + +#MyISAM +CREATE TABLE `ԣ` (`ã` char(1), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = MYISAM; +CREATE TABLE `ԣ` (`ã` char(1), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = MYISAM; +CREATE TABLE `ԣ` (`ã` char(1), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = MYISAM; +INSERT INTO `ԣ` VALUES(''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES(''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES(''),(''),(''),(''),(''),(''); +SELECT * FROM `ԣ` UNION DISTINCT SELECT * FROM `ԣ` ORDER BY `ã`; +SELECT * FROM `ԣ` UNION ALL SELECT * FROM `ԣ` ORDER BY `ã`; +(SELECT * FROM `ԣ`) UNION (SELECT * FROM `ԣ`) UNION (SELECT '') ORDER BY `ã`; +(SELECT '' AS `ã`) UNION (SELECT * FROM `ԣ`) UNION (SELECT * FROM `ԣ`) ORDER BY `ã`; +SELECT `ã`, COUNT(*) FROM `ԣ` GROUP BY `ã` UNION +SELECT `ã`, COUNT(*) FROM `ԣ` GROUP BY `ã` ORDER BY `ã`; +SELECT * FROM `ԣ` UNION DISTINCT +SELECT * FROM `ԣ` UNION ALL +SELECT * FROM `ԣ` ORDER BY `ã`; +SELECT * FROM `ԣ` UNION ALL +SELECT * FROM `ԣ` UNION DISTINCT +SELECT * FROM `ԣ` ORDER BY `ã`; +SELECT * FROM `ԣ` UNION SELECT REPEAT(`ã`,5) FROM `ԣ` ORDER BY `ã`; +DROP TABLE `ԣ` ; +DROP TABLE `ԣ` ; +DROP TABLE `ԣ` ; + +#HEAP +CREATE TABLE `ԣ` (`ã` char(1), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = HEAP; +CREATE TABLE `ԣ` (`ã` char(1), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = HEAP; +CREATE TABLE `ԣ` (`ã` char(1), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = HEAP; +INSERT INTO `ԣ` VALUES(''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES(''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES(''),(''),(''),(''),(''),(''); +SELECT * FROM `ԣ` UNION DISTINCT SELECT * FROM `ԣ` ORDER BY `ã`; +SELECT * FROM `ԣ` UNION ALL SELECT * FROM `ԣ` ORDER BY `ã`; +(SELECT * FROM `ԣ`) UNION (SELECT * FROM `ԣ`) UNION (SELECT '') ORDER BY `ã`; +(SELECT '' AS `ã`) UNION (SELECT * FROM `ԣ`) UNION (SELECT * FROM `ԣ`) ORDER BY `ã`; +SELECT `ã`, COUNT(*) FROM `ԣ` GROUP BY `ã` UNION +SELECT `ã`, COUNT(*) FROM `ԣ` GROUP BY `ã` ORDER BY `ã`; +SELECT * FROM `ԣ` UNION DISTINCT +SELECT * FROM `ԣ` UNION ALL +SELECT * FROM `ԣ` ORDER BY `ã`; +SELECT * FROM `ԣ` UNION ALL +SELECT * FROM `ԣ` UNION DISTINCT +SELECT * FROM `ԣ` ORDER BY `ã`; +SELECT * FROM `ԣ` UNION SELECT REPEAT(`ã`,5) FROM `ԣ` ORDER BY `ã`; +DROP TABLE `ԣ` ; +DROP TABLE `ԣ` ; +DROP TABLE `ԣ` ; + +#BDB +CREATE TABLE `ԣ` (`ã` char(1), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = BDB; +CREATE TABLE `ԣ` (`ã` char(1), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = BDB; +CREATE TABLE `ԣ` (`ã` char(1), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = BDB; +INSERT INTO `ԣ` VALUES(''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES(''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES(''),(''),(''),(''),(''),(''); +SELECT * FROM `ԣ` UNION DISTINCT SELECT * FROM `ԣ` ORDER BY `ã`; +SELECT * FROM `ԣ` UNION ALL SELECT * FROM `ԣ` ORDER BY `ã`; +(SELECT * FROM `ԣ`) UNION (SELECT * FROM `ԣ`) UNION (SELECT '') ORDER BY `ã`; +(SELECT '' AS `ã`) UNION (SELECT * FROM `ԣ`) UNION (SELECT * FROM `ԣ`) ORDER BY `ã`; +SELECT `ã`, COUNT(*) FROM `ԣ` GROUP BY `ã` UNION +SELECT `ã`, COUNT(*) FROM `ԣ` GROUP BY `ã` ORDER BY `ã`; +SELECT * FROM `ԣ` UNION DISTINCT +SELECT * FROM `ԣ` UNION ALL +SELECT * FROM `ԣ` ORDER BY `ã`; +SELECT * FROM `ԣ` UNION ALL +SELECT * FROM `ԣ` UNION DISTINCT +SELECT * FROM `ԣ` ORDER BY `ã`; +SELECT * FROM `ԣ` UNION SELECT REPEAT(`ã`,5) FROM `ԣ` ORDER BY `ã`; +DROP TABLE `ԣ` ; +DROP TABLE `ԣ` ; +DROP TABLE `ԣ` ; + +# Test mixed strage engine +CREATE TABLE `ԣ` (`ã` char(1), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = InnoDB; +CREATE TABLE `ԣ` (`ã` char(1), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = MyISAM; +INSERT INTO `ԣ` VALUES(''),(''),(''),(''),(''),(''); +INSERT INTO `ԣ` VALUES(''),(''),(''),(''),(''),(''); +SELECT * FROM `ԣ` UNION DISTINCT SELECT * FROM `ԣ` ORDER BY `ã`; +SELECT * FROM `ԣ` UNION ALL SELECT * FROM `ԣ` ORDER BY `ã`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; diff --git a/mysql-test/suite/jp/t/jp_update_sjis.test b/mysql-test/suite/jp/t/jp_update_sjis.test new file mode 100755 index 00000000000..0dc7372ae92 --- /dev/null +++ b/mysql-test/suite/jp/t/jp_update_sjis.test @@ -0,0 +1,94 @@ +--character_set sjis +--disable_warnings +drop table if exists `sP`; +drop table if exists `sQ`; +drop table if exists `sR`; +drop table if exists `sS`; +drop table if exists `sT`; +drop table if exists `sU`; +drop table if exists `sV`; +drop table if exists `sW`; +drop table if exists `sX`; +drop table if exists `sPO`; +drop table if exists `sPP`; +drop table if exists `sPQ`; +--enable_warnings + +# +# Test Updating with Japanese characters in sjis encoding +# + +SET NAMES sjis; +SET character_set_database = sjis; + +CREATE TABLE `sP` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sQ` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sR` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sS` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sT` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sU` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sV` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sW` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sX` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sPO` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +CREATE TABLE `sPP` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +CREATE TABLE `sPQ` (`bP` char(5), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; + +INSERT INTO `sP` VALUES (''); +INSERT INTO `sQ` VALUES (''); +INSERT INTO `sR` VALUES ('\\\\\'); +INSERT INTO `sS` VALUES (''); +INSERT INTO `sT` VALUES (''); +INSERT INTO `sU` VALUES ('\\\\\'); +INSERT INTO `sV` VALUES (''); +INSERT INTO `sW` VALUES (''); +INSERT INTO `sX` VALUES ('\\\\\'); +INSERT INTO `sPO` VALUES (''); +INSERT INTO `sPP` VALUES (''); +INSERT INTO `sPQ` VALUES ('\\\\\'); + +UPDATE `sP` SET `bP` = (''); +UPDATE `sQ` SET `bP` = (''); +UPDATE `sR` SET `bP` = ('\\\\\'); +UPDATE `sS` SET `bP` = (''); +UPDATE `sT` SET `bP` = (''); +UPDATE `sU` SET `bP` = ('\\\\\'); +UPDATE `sV` SET `bP` = (''); +UPDATE `sW` SET `bP` = (''); +UPDATE `sX` SET `bP` = ('\\\\\'); +UPDATE `sPO` SET `bP` = (''); +UPDATE `sPP` SET `bP` = (''); +UPDATE `sPQ` SET `bP` = ('\\\\\'); + +#InnoDB +SELECT * FROM `sP`; +SELECT * FROM `sQ`; +SELECT * FROM `sR`; + +#MyISAM +SELECT * FROM `sS`; +SELECT * FROM `sT`; +SELECT * FROM `sU`; + +#HEAP +SELECT * FROM `sV`; +SELECT * FROM `sW`; +SELECT * FROM `sX`; + +#BDB +SELECT * FROM `sPO`; +SELECT * FROM `sPP`; +SELECT * FROM `sPQ`; + +DROP TABLE `sP`; +DROP TABLE `sQ`; +DROP TABLE `sR`; +DROP TABLE `sS`; +DROP TABLE `sT`; +DROP TABLE `sU`; +DROP TABLE `sV`; +DROP TABLE `sW`; +DROP TABLE `sX`; +DROP TABLE `sPO`; +DROP TABLE `sPP`; +DROP TABLE `sPQ`; diff --git a/mysql-test/suite/jp/t/jp_update_ucs2.test b/mysql-test/suite/jp/t/jp_update_ucs2.test new file mode 100755 index 00000000000..7a3c1233210 --- /dev/null +++ b/mysql-test/suite/jp/t/jp_update_ucs2.test @@ -0,0 +1,96 @@ +--source include/have_ucs2.inc + +--disable_warnings +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +--enable_warnings + +# +# Test Updating with Japanese characters in ucs2 encoding +# + +SET NAMES ujis; +SET character_set_database = ucs2; +SET collation_connection = ucs2_general_ci; + +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; + +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); + +UPDATE `ԣ` SET `ã` = (''); +UPDATE `ԣ` SET `ã` = (''); +UPDATE `ԣ` SET `ã` = ('ȏɏʏˏ'); +UPDATE `ԣ` SET `ã` = (''); +UPDATE `ԣ` SET `ã` = (''); +UPDATE `ԣ` SET `ã` = ('ȏɏʏˏ'); +UPDATE `ԣ` SET `ã` = (''); +UPDATE `ԣ` SET `ã` = (''); +UPDATE `ԣ` SET `ã` = ('ȏɏʏˏ'); +UPDATE `ԣ` SET `ã` = (''); +UPDATE `ԣ` SET `ã` = (''); +UPDATE `ԣ` SET `ã` = ('ȏɏʏˏ'); + +#InnoDB +SELECT * FROM `ԣ`; +SELECT * FROM `ԣ`; +SELECT * FROM `ԣ`; + +#MyISAM +SELECT * FROM `ԣ`; +SELECT * FROM `ԣ`; +SELECT * FROM `ԣ`; + +#HEAP +SELECT * FROM `ԣ`; +SELECT * FROM `ԣ`; +SELECT * FROM `ԣ`; + +#BDB +SELECT * FROM `ԣ`; +SELECT * FROM `ԣ`; +SELECT * FROM `ԣ`; + +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; diff --git a/mysql-test/suite/jp/t/jp_update_ujis.test b/mysql-test/suite/jp/t/jp_update_ujis.test new file mode 100755 index 00000000000..852e45b9eeb --- /dev/null +++ b/mysql-test/suite/jp/t/jp_update_ujis.test @@ -0,0 +1,95 @@ +--source include/have_ujis.inc + +--disable_warnings +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +--enable_warnings + +# +# Test Updating with Japanese characters in ujis encoding +# + +SET NAMES ujis; +SET character_set_database = ujis; + +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +CREATE TABLE `ԣ` (`ã` char(5), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; + +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES (''); +INSERT INTO `ԣ` VALUES ('܏ݏޏߏ'); + +UPDATE `ԣ` SET `ã` = (''); +UPDATE `ԣ` SET `ã` = (''); +UPDATE `ԣ` SET `ã` = ('ȏɏʏˏ'); +UPDATE `ԣ` SET `ã` = (''); +UPDATE `ԣ` SET `ã` = (''); +UPDATE `ԣ` SET `ã` = ('ȏɏʏˏ'); +UPDATE `ԣ` SET `ã` = (''); +UPDATE `ԣ` SET `ã` = (''); +UPDATE `ԣ` SET `ã` = ('ȏɏʏˏ'); +UPDATE `ԣ` SET `ã` = (''); +UPDATE `ԣ` SET `ã` = (''); +UPDATE `ԣ` SET `ã` = ('ȏɏʏˏ'); + +#InnoDB +SELECT * FROM `ԣ`; +SELECT * FROM `ԣ`; +SELECT * FROM `ԣ`; + +#MyISAM +SELECT * FROM `ԣ`; +SELECT * FROM `ԣ`; +SELECT * FROM `ԣ`; + +#HEAP +SELECT * FROM `ԣ`; +SELECT * FROM `ԣ`; +SELECT * FROM `ԣ`; + +#BDB +SELECT * FROM `ԣ`; +SELECT * FROM `ԣ`; +SELECT * FROM `ԣ`; + +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; diff --git a/mysql-test/suite/jp/t/jp_update_utf8.test b/mysql-test/suite/jp/t/jp_update_utf8.test new file mode 100755 index 00000000000..b4b3d18ecab --- /dev/null +++ b/mysql-test/suite/jp/t/jp_update_utf8.test @@ -0,0 +1,93 @@ +--disable_warnings +drop table if exists `T1`; +drop table if exists `T2`; +drop table if exists `T3`; +drop table if exists `T4`; +drop table if exists `T5`; +drop table if exists `T6`; +drop table if exists `T7`; +drop table if exists `T8`; +drop table if exists `T9`; +drop table if exists `T10`; +drop table if exists `T11`; +drop table if exists `T12`; +--enable_warnings + +# +# Test Updating with Japanese characters in utf8 encoding +# + +SET NAMES utf8; +SET character_set_database = utf8; + +CREATE TABLE `T1` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T2` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T3` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T4` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T5` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T6` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T7` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T8` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T9` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T10` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +CREATE TABLE `T11` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +CREATE TABLE `T12` (`C1` char(5), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; + +INSERT INTO `T1` VALUES ('アイウエオ'); +INSERT INTO `T2` VALUES ('あいうえお'); +INSERT INTO `T3` VALUES ('龔龖龗龞龡'); +INSERT INTO `T4` VALUES ('アイウエオ'); +INSERT INTO `T5` VALUES ('あいうえお'); +INSERT INTO `T6` VALUES ('龔龖龗龞龡'); +INSERT INTO `T7` VALUES ('アイウエオ'); +INSERT INTO `T8` VALUES ('あいうえお'); +INSERT INTO `T9` VALUES ('龔龖龗龞龡'); +INSERT INTO `T10` VALUES ('アイウエオ'); +INSERT INTO `T11` VALUES ('あいうえお'); +INSERT INTO `T12` VALUES ('龔龖龗龞龡'); + +UPDATE `T1` SET `C1` = ('カキクケコ'); +UPDATE `T2` SET `C1` = ('かきくけこ'); +UPDATE `T3` SET `C1` = ('齗齘齚齝齞'); +UPDATE `T4` SET `C1` = ('カキクケコ'); +UPDATE `T5` SET `C1` = ('かきくけこ'); +UPDATE `T6` SET `C1` = ('齗齘齚齝齞'); +UPDATE `T7` SET `C1` = ('カキクケコ'); +UPDATE `T8` SET `C1` = ('かきくけこ'); +UPDATE `T9` SET `C1` = ('齗齘齚齝齞'); +UPDATE `T10` SET `C1` = ('カキクケコ'); +UPDATE `T11` SET `C1` = ('かきくけこ'); +UPDATE `T12` SET `C1` = ('齗齘齚齝齞'); + +#InnoDB +SELECT * FROM `T1`; +SELECT * FROM `T2`; +SELECT * FROM `T3`; + +#MyISAM +SELECT * FROM `T4`; +SELECT * FROM `T5`; +SELECT * FROM `T6`; + +#HEAP +SELECT * FROM `T7`; +SELECT * FROM `T8`; +SELECT * FROM `T9`; + +#BDB +SELECT * FROM `T10`; +SELECT * FROM `T11`; +SELECT * FROM `T12`; + +DROP TABLE `T1`; +DROP TABLE `T2`; +DROP TABLE `T3`; +DROP TABLE `T4`; +DROP TABLE `T5`; +DROP TABLE `T6`; +DROP TABLE `T7`; +DROP TABLE `T8`; +DROP TABLE `T9`; +DROP TABLE `T10`; +DROP TABLE `T11`; +DROP TABLE `T12`; diff --git a/mysql-test/suite/jp/t/jp_where_sjis.test b/mysql-test/suite/jp/t/jp_where_sjis.test new file mode 100755 index 00000000000..452d137f643 --- /dev/null +++ b/mysql-test/suite/jp/t/jp_where_sjis.test @@ -0,0 +1,104 @@ +--character_set sjis +--disable_warnings +drop table if exists `sP`; +drop table if exists `sQ`; +drop table if exists `sR`; +drop table if exists `sS`; +drop table if exists `sT`; +drop table if exists `sU`; +drop table if exists `sV`; +drop table if exists `sW`; +drop table if exists `sX`; +drop table if exists `sPO`; +drop table if exists `sPP`; +drop table if exists `sPQ`; +--enable_warnings + +# +# Test Displaying Japanese charact using WHERE condtion in sjis encoding +# + +SET NAMES sjis; +SET character_set_database = sjis; + +CREATE TABLE `sP` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sQ` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sR` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = innodb; +CREATE TABLE `sS` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sT` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sU` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = myisam; +CREATE TABLE `sV` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sW` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sX` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = heap; +CREATE TABLE `sPO` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +CREATE TABLE `sPP` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; +CREATE TABLE `sPQ` (`bP` char(20), INDEX(`bP`)) DEFAULT CHARSET = sjis engine = bdb; + +#Load the following data in each table +# jisx0201 hankaku-katakana data +# jisx0208 data +# jisx0212 supplemental character data + +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_sjis.dat' INTO TABLE `sP`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_sjis.dat' INTO TABLE `sQ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_sjis2.dat' INTO TABLE `sR`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_sjis.dat' INTO TABLE `sS`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_sjis.dat' INTO TABLE `sT`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_sjis2.dat' INTO TABLE `sU`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_sjis.dat' INTO TABLE `sV`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_sjis.dat' INTO TABLE `sW`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_sjis2.dat' INTO TABLE `sX`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_sjis.dat' INTO TABLE `sPO`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_sjis.dat' INTO TABLE `sPP`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_sjis2.dat' INTO TABLE `sPQ`; + +#InnoDB +SELECT * FROM `sP` WHERE `bP` = ''; +SELECT * FROM `sQ` WHERE `bP` = 'E'; +SELECT * FROM `sR` WHERE `bP` = '\\\\\\\\\\\\\\\\\\\\'; + +#MyISAM +SELECT * FROM `sS` WHERE `bP` = ''; +SELECT * FROM `sT` WHERE `bP` = 'E'; +SELECT * FROM `sU` WHERE `bP` = '\\\\\\\\\\\\\\\\\\\\'; + +#Heap +SELECT * FROM `sV` WHERE `bP` = ''; +SELECT * FROM `sW` WHERE `bP` = 'E'; +SELECT * FROM `sX` WHERE `bP` = '\\\\\\\\\\\\\\\\\\\\'; + +#BDB +SELECT * FROM `sPO` WHERE `bP` = ''; +SELECT * FROM `sPP` WHERE `bP` = 'E'; +SELECT * FROM `sPQ` WHERE `bP` = '\\\\\\\\\\\\\\\\\\\\'; + +#Test to distinguish 0x9353 and 0x9373 +CREATE TABLE t1(c1 char(1)) default charset = sjis engine=innodb; +CREATE TABLE t2(c1 char(1)) default charset = sjis engine=myisam; +CREATE TABLE t3(c1 char(1)) default charset = sjis engine=heap; +CREATE TABLE t4(c1 char(1)) default charset = sjis engine=bdb; +INSERT INTO t1 VALUES('S'),('s'); +INSERT INTO t2 VALUES('S'),('s'); +INSERT INTO t3 VALUES('S'),('s'); +INSERT INTO t4 VALUES('S'),('s'); +SELECT * FROM t1 WHERE c1 = 'S'; +SELECT * FROM t2 WHERE c1 = 'S'; +SELECT * FROM t3 WHERE c1 = 'S'; +SELECT * FROM t4 WHERE c1 = 'S'; +SELECT * FROM t1 WHERE c1 = 's'; +SELECT * FROM t2 WHERE c1 = 's'; +SELECT * FROM t3 WHERE c1 = 's'; +SELECT * FROM t4 WHERE c1 = 's'; + +DROP TABLE `sP`; +DROP TABLE `sQ`; +DROP TABLE `sR`; +DROP TABLE `sS`; +DROP TABLE `sT`; +DROP TABLE `sU`; +DROP TABLE `sV`; +DROP TABLE `sW`; +DROP TABLE `sX`; +DROP TABLE `sPO`; +DROP TABLE `sPP`; +DROP TABLE `sPQ`; diff --git a/mysql-test/suite/jp/t/jp_where_ucs2.test b/mysql-test/suite/jp/t/jp_where_ucs2.test new file mode 100755 index 00000000000..3b82eacd615 --- /dev/null +++ b/mysql-test/suite/jp/t/jp_where_ucs2.test @@ -0,0 +1,175 @@ +--source include/have_ucs2.inc + +--disable_warnings +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +--enable_warnings + +# +# Test Displaying Japanese charact using WHERE condtion in ucs2 encoding +# + +SET NAMES ujis; +SET character_set_database = ucs2; +SET collation_connection = ucs2_general_ci; + +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = innodb; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = myisam; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = heap; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ucs2 engine = bdb; + +#Insert the following data in each table +# jisx0201 hankaku-katakana data +# jisx0208 data +# jisx0212 supplemental character data + +INSERT INTO `ԣ` VALUES + ('PQRSTUVWXYZ[\\]^_') +,(' ') +,('') +,('ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ') +,('ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ'); + +INSERT INTO `ԣ` VALUES + ('¡áġšơ') +,('ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ') +,('') +,('') +,('') +,('СТУФХЦЧШЩЪЫЬЭЮЯабвг') +,(''); + +INSERT INTO `ԣ` VALUES + ('Ïġ') +,('ÏďŏƏ') +,('ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ') +,('܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰') +,('') +,('ÏďŏƏ') +,('ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ'); + +INSERT INTO `ԣ` VALUES + ('PQRSTUVWXYZ[\\]^_') +,(' ') +,('') +,('ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ') +,('ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ'); + +INSERT INTO `ԣ` VALUES + ('¡áġšơ') +,('ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ') +,('') +,('') +,('') +,('СТУФХЦЧШЩЪЫЬЭЮЯабвг') +,(''); + +INSERT INTO `ԣ` VALUES + ('Ïġ') +,('ÏďŏƏ') +,('ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ') +,('܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰') +,('') +,('ÏďŏƏ') +,('ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ'); + +INSERT INTO `ԣ` VALUES + ('PQRSTUVWXYZ[\\]^_') +,(' ') +,('') +,('ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ') +,('ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ'); + +INSERT INTO `ԣ` VALUES + ('¡áġšơ') +,('ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ') +,('') +,('') +,('') +,('СТУФХЦЧШЩЪЫЬЭЮЯабвг') +,(''); + +INSERT INTO `ԣ` VALUES + ('Ïġ') +,('ÏďŏƏ') +,('ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ') +,('܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰') +,('') +,('ÏďŏƏ') +,('ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ'); + +INSERT INTO `ԣ` VALUES + ('PQRSTUVWXYZ[\\]^_') +,(' ') +,('') +,('ŽÎĎŎƎǎȎɎʎˎ͎̎Ύ') +,('ЎюҎӎԎՎ֎׎؎َڎێ܎ݎގ'); + +INSERT INTO `ԣ` VALUES + ('¡áġšơ') +,('ȡɡʡˡ̡͡ΡϡСѡҡӡԡա֡סء١ڡ') +,('') +,('') +,('') +,('СТУФХЦЧШЩЪЫЬЭЮЯабвг') +,(''); + +INSERT INTO `ԣ` VALUES + ('Ïġ') +,('ÏďŏƏ') +,('ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ') +,('܏ݏޏߏᏰ⏰㏰䏰台揰珰菰鏰ꏰ돰쏰폰') +,('') +,('ÏďŏƏ') +,('ȏɏʏˏ̏͏ΏϏЏяҏӏԏՏ֏׏؏ُڏ'); + +#InnoDB +SELECT * FROM `ԣ` WHERE `ã` = ''; +SELECT * FROM `ԣ` WHERE `ã` = ''; +SELECT * FROM `ԣ` WHERE `ã` = 'ÏďŏƏ'; + +#MyISAM +SELECT * FROM `ԣ` WHERE `ã` = ''; +SELECT * FROM `ԣ` WHERE `ã` = ''; +SELECT * FROM `ԣ` WHERE `ã` = 'ÏďŏƏ'; + +#Heap +SELECT * FROM `ԣ` WHERE `ã` = ''; +SELECT * FROM `ԣ` WHERE `ã` = ''; +SELECT * FROM `ԣ` WHERE `ã` = 'ÏďŏƏ'; + +#BDB +SELECT * FROM `ԣ` WHERE `ã` = ''; +SELECT * FROM `ԣ` WHERE `ã` = ''; +SELECT * FROM `ԣ` WHERE `ã` = 'ÏďŏƏ'; + +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; diff --git a/mysql-test/suite/jp/t/jp_where_ujis.test b/mysql-test/suite/jp/t/jp_where_ujis.test new file mode 100755 index 00000000000..e96404fbb17 --- /dev/null +++ b/mysql-test/suite/jp/t/jp_where_ujis.test @@ -0,0 +1,87 @@ +--source include/have_ujis.inc + +--disable_warnings +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +drop table if exists `ԣ`; +--enable_warnings + +# +# Test Displaying Japanese charact using WHERE condtion in ujis encoding +# + +SET NAMES ujis; +SET character_set_database = ujis; + +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = innodb; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = myisam; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = heap; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; +CREATE TABLE `ԣ` (`ã` char(20), INDEX(`ã`)) DEFAULT CHARSET = ujis engine = bdb; + +#Load the following data in each table +# jisx0201 hankaku-katakana data +# jisx0208 data +# jisx0212 supplemental character data + +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_ujis.dat' INTO TABLE `ԣ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_ujis.dat' INTO TABLE `ԣ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0212_ujis.dat' INTO TABLE `ԣ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_ujis.dat' INTO TABLE `ԣ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_ujis.dat' INTO TABLE `ԣ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0212_ujis.dat' INTO TABLE `ԣ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_ujis.dat' INTO TABLE `ԣ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_ujis.dat' INTO TABLE `ԣ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0212_ujis.dat' INTO TABLE `ԣ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_ujis.dat' INTO TABLE `ԣ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_ujis.dat' INTO TABLE `ԣ`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0212_ujis.dat' INTO TABLE `ԣ`; + +#InnoDB +SELECT * FROM `ԣ` WHERE `ã` = ''; +SELECT * FROM `ԣ` WHERE `ã` = ''; +SELECT * FROM `ԣ` WHERE `ã` = 'ÏďŏƏ'; + +#MyISAM +SELECT * FROM `ԣ` WHERE `ã` = ''; +SELECT * FROM `ԣ` WHERE `ã` = ''; +SELECT * FROM `ԣ` WHERE `ã` = 'ÏďŏƏ'; + +#Heap +SELECT * FROM `ԣ` WHERE `ã` = ''; +SELECT * FROM `ԣ` WHERE `ã` = ''; +SELECT * FROM `ԣ` WHERE `ã` = 'ÏďŏƏ'; + +#BDB +SELECT * FROM `ԣ` WHERE `ã` = ''; +SELECT * FROM `ԣ` WHERE `ã` = ''; +SELECT * FROM `ԣ` WHERE `ã` = 'ÏďŏƏ'; + +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; +DROP TABLE `ԣ`; diff --git a/mysql-test/suite/jp/t/jp_where_utf8.test b/mysql-test/suite/jp/t/jp_where_utf8.test new file mode 100755 index 00000000000..7280bc33f21 --- /dev/null +++ b/mysql-test/suite/jp/t/jp_where_utf8.test @@ -0,0 +1,85 @@ +--disable_warnings +drop table if exists `T1`; +drop table if exists `T2`; +drop table if exists `T3`; +drop table if exists `T4`; +drop table if exists `T5`; +drop table if exists `T6`; +drop table if exists `T7`; +drop table if exists `T8`; +drop table if exists `T9`; +drop table if exists `T10`; +drop table if exists `T11`; +drop table if exists `T12`; +--enable_warnings + +# +# Test Displaying Japanese charact using WHERE condtion in utf8 encoding +# + +SET NAMES utf8; +SET character_set_database = utf8; + +CREATE TABLE `T1` (`C1` char(20), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T2` (`C1` char(20), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T3` (`C1` char(20), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = innodb; +CREATE TABLE `T4` (`C1` char(20), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T5` (`C1` char(20), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T6` (`C1` char(20), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = myisam; +CREATE TABLE `T7` (`C1` char(20), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T8` (`C1` char(20), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T9` (`C1` char(20), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = heap; +CREATE TABLE `T10` (`C1` char(20), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +CREATE TABLE `T11` (`C1` char(20), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; +CREATE TABLE `T12` (`C1` char(20), INDEX(`C1`)) DEFAULT CHARSET = utf8 engine = bdb; + +#Load the following data in each table +# jisx0201 hankaku-katakana data +# jisx0208 data +# jisx0212 supplemental character data + +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_utf8.dat' INTO TABLE `T1`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_utf8.dat' INTO TABLE `T2`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0212_utf8.dat' INTO TABLE `T3`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_utf8.dat' INTO TABLE `T4`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_utf8.dat' INTO TABLE `T5`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0212_utf8.dat' INTO TABLE `T6`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_utf8.dat' INTO TABLE `T7`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_utf8.dat' INTO TABLE `T8`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0212_utf8.dat' INTO TABLE `T9`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0201_utf8.dat' INTO TABLE `T10`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0208_utf8.dat' INTO TABLE `T11`; +LOAD DATA LOCAL INFILE 'suite/jp/std_data/jisx0212_utf8.dat' INTO TABLE `T12`; + +#InnoDB +SELECT * FROM `T1` WHERE `C1` = 'ーアイウエオカキクケコサシスセソ'; +SELECT * FROM `T2` WHERE `C1` = '・ぁあぃいぅうぇえぉおかがきぎくぐけげこ'; +SELECT * FROM `T3` WHERE `C1` = '鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃齄齅齆齇齓齕齖'; + +#MyISAM +SELECT * FROM `T4` WHERE `C1` = 'ーアイウエオカキクケコサシスセソ'; +SELECT * FROM `T5` WHERE `C1` = '・ぁあぃいぅうぇえぉおかがきぎくぐけげこ'; +SELECT * FROM `T6` WHERE `C1` = '鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃齄齅齆齇齓齕齖'; + +#Heap +SELECT * FROM `T7` WHERE `C1` = 'ーアイウエオカキクケコサシスセソ'; +SELECT * FROM `T8` WHERE `C1` = '・ぁあぃいぅうぇえぉおかがきぎくぐけげこ'; +SELECT * FROM `T9` WHERE `C1` = '鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃齄齅齆齇齓齕齖'; + +#BDB +SELECT * FROM `T10` WHERE `C1` = 'ーアイウエオカキクケコサシスセソ'; +SELECT * FROM `T11` WHERE `C1` = '・ぁあぃいぅうぇえぉおかがきぎくぐけげこ'; +SELECT * FROM `T12` WHERE `C1` = '鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃齄齅齆齇齓齕齖'; + +DROP TABLE `T1`; +DROP TABLE `T2`; +DROP TABLE `T3`; +DROP TABLE `T4`; +DROP TABLE `T5`; +DROP TABLE `T6`; +DROP TABLE `T7`; +DROP TABLE `T8`; +DROP TABLE `T9`; +DROP TABLE `T10`; +DROP TABLE `T11`; +DROP TABLE `T12`; From b06480082c8085050eeb3750c56460895666a2b9 Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 7 Jan 2005 11:47:01 +0100 Subject: [PATCH 117/157] bug#7690 - ndb startup with shm, use sigaction to escape SA_RESETHAND configure.in: Check for sigaction used in SHM_Transporter ndb/src/common/transporter/SHM_Transporter.cpp: remove unused variable ndb/src/common/transporter/TransporterRegistry.cpp: 1) remove unused variable 2) Use sigaction instead of signal to install signal handler This as signal uses SA_RESETHAND --- configure.in | 5 +++-- .../common/transporter/SHM_Transporter.cpp | 2 -- .../transporter/TransporterRegistry.cpp | 19 ++++++++++++++++--- 3 files changed, 19 insertions(+), 7 deletions(-) diff --git a/configure.in b/configure.in index 47447913168..f2184ed7be5 100644 --- a/configure.in +++ b/configure.in @@ -1924,7 +1924,7 @@ AC_CHECK_FUNCS(alarm bcmp bfill bmove bzero chsize cuserid fchmod fcntl \ pthread_key_delete pthread_rwlock_rdlock pthread_setprio \ pthread_setprio_np pthread_setschedparam pthread_sigmask readlink \ realpath rename rint rwlock_init setupterm \ - shmget shmat shmdt shmctl \ + shmget shmat shmdt shmctl sigaction \ sighold sigset sigthreadmask \ snprintf socket stpcpy strcasecmp strerror strnlen strpbrk strstr strtol \ strtoll strtoul strtoull tell tempnam thr_setconcurrency vidattr) @@ -3097,7 +3097,8 @@ ndb_transporter_opt_objs="" if test "$ac_cv_func_shmget" = "yes" && test "$ac_cv_func_shmat" = "yes" && test "$ac_cv_func_shmdt" = "yes" && - test "$ac_cv_func_shmctl" = "yes" + test "$ac_cv_func_shmctl" = "yes" && + test "$ac_cv_func_sigaction" = "yes" then AC_DEFINE([NDB_SHM_TRANSPORTER], [1], [Including Ndb Cluster DB shared memory transporter]) diff --git a/ndb/src/common/transporter/SHM_Transporter.cpp b/ndb/src/common/transporter/SHM_Transporter.cpp index ffb51bf1326..f0cbf822e53 100644 --- a/ndb/src/common/transporter/SHM_Transporter.cpp +++ b/ndb/src/common/transporter/SHM_Transporter.cpp @@ -26,8 +26,6 @@ #include #include -extern int g_shm_pid; - SHM_Transporter::SHM_Transporter(TransporterRegistry &t_reg, const char *lHostName, const char *rHostName, diff --git a/ndb/src/common/transporter/TransporterRegistry.cpp b/ndb/src/common/transporter/TransporterRegistry.cpp index 2eb81b2b35d..c80e6bc1489 100644 --- a/ndb/src/common/transporter/TransporterRegistry.cpp +++ b/ndb/src/common/transporter/TransporterRegistry.cpp @@ -50,8 +50,6 @@ #include extern EventLogger g_eventLogger; -int g_shm_pid = 0; - SocketServer::Session * TransporterService::newSession(NDB_SOCKET_TYPE sockfd) { DBUG_ENTER("SocketServer::Session * TransporterService::newSession"); @@ -1322,7 +1320,22 @@ TransporterRegistry::startReceiving() #ifdef NDB_SHM_TRANSPORTER m_shm_own_pid = getpid(); - signal(SIGUSR1, shm_sig_handler); + struct sigaction sa; + sa.sa_handler = shm_sig_handler; + sigemptyset(&sa.sa_mask); + sa.sa_flags = 0; + int ret; + while((ret = sigaction(SIGUSR1, &sa, 0)) == -1 && errno == EINTR); + if(ret != 0) + { + g_eventLogger.error("Failed to install signal handler for SHM transporter" + " errno: %d (%s)", errno, +#ifdef HAVE_STRERROR + strerror(errno)); +#else + ""); +#endif + } #endif } From 0ef65db5d7bba5d1d1aeed4bb11cbf96b226f534 Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 7 Jan 2005 12:29:15 +0100 Subject: [PATCH 118/157] - Updated Do-pkg to include the MySQL Preference Pane into the Mac OS X installation disk images Build-tools/Do-pkg: - added code to include the MySQLPreferencePane into the installation disk image (can be skipped by using --skip-prefpane) --- Build-tools/Do-pkg | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/Build-tools/Do-pkg b/Build-tools/Do-pkg index b9df444a4ba..38c1c47e2f3 100755 --- a/Build-tools/Do-pkg +++ b/Build-tools/Do-pkg @@ -31,6 +31,7 @@ $opt_help= undef; $opt_log= undef; $opt_mail= ""; $opt_skip_dmg= undef; +$opt_skip_prefpane= undef; $opt_skip_si= undef; $opt_suffix= undef; $opt_verbose= undef; @@ -41,6 +42,7 @@ GetOptions( "help|h", "log|l:s", "mail|m=s", + "skip-prefpane|p", "skip-dmg|skip-disk-image|s", "skip-si|skip-startup-item", "suffix=s", @@ -82,6 +84,7 @@ $HOST=~ /^([^.-]*)/; $HOST= $1; $LOGFILE= "$PWD/Logs/$HOST-$MAJOR.$MINOR$SUFFIX.log"; $BUILDDIR= "$PWD/$HOST"; +$PREFPANE= "$PWD/mysql-administrator/source/mac/PreferencePane/build/MySQL.prefPane"; $SRCBASEDIR= <$BUILDDIR/mysql*-$VERSION>; $SUPFILEDIR= <$SRCBASEDIR/support-files/MacOSX>; $TAR= <$BUILDDIR/$NAME-apple-darwin*-powerpc.tar.gz>; @@ -219,6 +222,19 @@ unless ($opt_skip_si) &run_command($command, "Error while building package $SI_NAME.pkg!"); } +# +# Include the MySQL Preference Pane +# +unless ($opt_skip_prefpane) +{ + &abort("Could not find PrefPane helper application. Did you compile and install it?") + unless (-f "$PREFPANE/Contents/Resources/mahelper"); + &logger("Including $PREFPANE in $PKGDEST"); + &run_command("mkdir $PKGDEST/MySQL.prefPane", "Could not create $PKGDEST/MySQL.prefPane!"); + &run_command("ditto $PREFPANE $PKGDEST/MySQL.prefPane", "Could not copy $PREFPANE into $PKGDEST!"); + &run_command("chown -R root:wheel $PKGDEST/MySQL.prefPane", "Cannot chown $PKGDEST/MySQL.prefPane!"); +} + if ($opt_skip_dmg) { &logger("SUCCESS: Package $PKGDEST/$NAME.pkg created"); @@ -254,6 +270,7 @@ chomp($mountpoint=`mount | grep "\/Volumes\/$NAME" | cut -f3 -d" "`) if (!$opt_d &logger("Copying $PKGDEST/$NAME.pkg to Disk image /Volumes/$NAME"); &run_command("ditto $PKGDEST /Volumes/$NAME", "Could not copy $PKGDEST to /Volumes/$NAME!"); &run_command("ditto $SUPFILEDIR/ReadMe.txt /Volumes/$NAME", "Could not copy $SPFILEDIR/ReadMe.txt to /Volumes/$NAME!"); +&run_command("chown root:wheel /Volumes/$NAME/ReadMe.txt", "Could not fix ownerships of /Volumes/$NAME/ReadMe.txt!"); chomp($mountpoint=`mount | grep "\/Volumes\/$NAME" | cut -f1 -d" "`) if (!$opt_dry_run); &abort("/Volumes/$NAME not attached!") if (!$mountpoint && !$opt_dry_run); &logger("Unmounting $mountpoint"); @@ -302,6 +319,7 @@ Options: if logging is enabled) Note that the \@-Sign needs to be quoted! Example: --mail=user\\\@domain.com +-p, --skip-prefpane Skip including the PreferencePane -s, --skip-disk-image, --skip-dmg Just build the PKGs, don't put it into a disk image afterwards --skip-startup-item, --skip-si Skip the creation of the StartupItem PKG From 9ad1b390fcf12ec7aa7b9fad157d6e0a61045b40 Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 7 Jan 2005 14:32:05 +0200 Subject: [PATCH 119/157] Many files: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_alter_sjis.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_alter_ucs2.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_alter_ujis.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_alter_utf8.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_charlength_sjis.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_charlength_ucs2.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_charlength_ujis.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_charlength_utf8.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_charset_sjis.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_charset_ucs2.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_charset_ujis.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_charset_utf8.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_convert_sjis.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_convert_ucs2.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_convert_ujis.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_convert_utf8.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_create_db_sjis.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_create_db_ucs2.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_create_db_ujis.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_create_db_utf8.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_create_tbl_sjis.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_create_tbl_ucs2.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_create_tbl_ujis.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_create_tbl_utf8.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_enum_sjis.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_enum_ucs2.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_enum_ujis.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_enum_utf8.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_insert_sjis.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_insert_ucs2.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_insert_ujis.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_insert_utf8.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_instr_sjis.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_instr_ucs2.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_instr_ujis.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_instr_utf8.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_join_sjis.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_join_ucs2.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_join_ujis.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_join_utf8.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_left_sjis.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_left_ucs2.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_left_ujis.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_left_utf8.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_length_sjis.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_length_ucs2.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_length_ujis.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_length_utf8.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_like_sjis.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_like_ucs2.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_like_ujis.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_like_utf8.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_locate_sjis.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_locate_ucs2.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_locate_ujis.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_locate_utf8.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_lpad_sjis.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_lpad_ucs2.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_lpad_ujis.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_lpad_utf8.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_ltrim_sjis.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_ltrim_ucs2.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_ltrim_ujis.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_ltrim_utf8.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_ps_sjis.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_ps_ujis.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_replace_sjis.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_replace_ucs2.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_replace_ujis.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_replace_utf8.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_reverse_sjis.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_reverse_ucs2.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_reverse_ujis.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_reverse_utf8.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_right_sjis.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_right_ucs2.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_right_ujis.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_right_utf8.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_rpad_sjis.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_rpad_ucs2.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_rpad_ujis.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_rpad_utf8.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_rtrim_sjis.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_rtrim_ucs2.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_rtrim_ujis.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_rtrim_utf8.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_select_sjis.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_select_ucs2.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_select_ujis.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_select_utf8.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_subquery_sjis.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_subquery_ucs2.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_subquery_ujis.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_subquery_utf8.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_substring_sjis.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_substring_ucs2.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_substring_ujis.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_substring_utf8.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_trim_sjis.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_trim_ucs2.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_trim_ujis.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_trim_utf8.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_union_ujis.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_update_sjis.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_update_ucs2.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_update_ujis.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_update_utf8.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_where_sjis.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_where_ucs2.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_where_ujis.result: Change mode to -rw-rw---- mysql-test/suite/jp/r/jp_where_utf8.result: Change mode to -rw-rw---- mysql-test/suite/jp/std_data/jisx0201_sjis.dat: Change mode to -rw-rw---- mysql-test/suite/jp/std_data/jisx0201_ucs2.dat: Change mode to -rw-rw---- mysql-test/suite/jp/std_data/jisx0201_ujis.dat: Change mode to -rw-rw---- mysql-test/suite/jp/std_data/jisx0201_utf8.dat: Change mode to -rw-rw---- mysql-test/suite/jp/std_data/jisx0208_sjis.dat: Change mode to -rw-rw---- mysql-test/suite/jp/std_data/jisx0208_sjis2.dat: Change mode to -rw-rw---- mysql-test/suite/jp/std_data/jisx0208_sjis3.dat: Change mode to -rw-rw---- mysql-test/suite/jp/std_data/jisx0208_ucs2.dat: Change mode to -rw-rw---- mysql-test/suite/jp/std_data/jisx0208_ujis.dat: Change mode to -rw-rw---- mysql-test/suite/jp/std_data/jisx0208_utf8.dat: Change mode to -rw-rw---- mysql-test/suite/jp/std_data/jisx0212_ucs2.dat: Change mode to -rw-rw---- mysql-test/suite/jp/std_data/jisx0212_ujis.dat: Change mode to -rw-rw---- mysql-test/suite/jp/std_data/jisx0212_utf8.dat: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_alter_sjis.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_alter_ucs2.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_alter_ujis.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_alter_utf8.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_charlength_sjis.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_charlength_ucs2.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_charlength_ujis.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_charlength_utf8.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_charset_sjis.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_charset_ucs2.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_charset_ujis.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_charset_utf8.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_convert_sjis.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_convert_ucs2.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_convert_ujis.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_convert_utf8.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_create_db_sjis.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_create_db_ucs2.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_create_db_ujis.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_create_db_utf8.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_create_tbl_sjis.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_create_tbl_ucs2.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_create_tbl_ujis.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_create_tbl_utf8.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_enum_sjis.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_enum_ucs2.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_enum_ujis.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_enum_utf8.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_insert_sjis.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_insert_ucs2.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_insert_ujis.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_insert_utf8.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_instr_sjis.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_instr_ucs2.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_instr_ujis.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_instr_utf8.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_join_sjis.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_join_ucs2.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_join_ujis.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_join_utf8.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_left_sjis.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_left_ucs2.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_left_ujis.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_left_utf8.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_length_sjis.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_length_ucs2.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_length_ujis.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_length_utf8.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_like_sjis.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_like_ucs2.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_like_ujis.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_like_utf8.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_locate_sjis.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_locate_ucs2.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_locate_ujis.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_locate_utf8.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_lpad_sjis.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_lpad_ucs2.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_lpad_ujis.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_lpad_utf8.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_ltrim_sjis.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_ltrim_ucs2.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_ltrim_ujis.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_ltrim_utf8.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_ps_sjis.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_ps_ujis.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_replace_sjis.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_replace_ucs2.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_replace_ujis.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_replace_utf8.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_reverse_sjis.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_reverse_ucs2.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_reverse_ujis.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_reverse_utf8.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_right_sjis.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_right_ucs2.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_right_ujis.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_right_utf8.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_rpad_sjis.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_rpad_ucs2.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_rpad_ujis.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_rpad_utf8.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_rtrim_sjis.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_rtrim_ucs2.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_rtrim_ujis.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_rtrim_utf8.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_select_sjis.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_select_ucs2.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_select_ujis.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_select_utf8.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_subquery_sjis.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_subquery_ucs2.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_subquery_ujis.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_subquery_utf8.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_substring_sjis.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_substring_ucs2.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_substring_ujis.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_substring_utf8.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_trim_sjis.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_trim_ucs2.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_trim_ujis.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_trim_utf8.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_union_ujis.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_update_sjis.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_update_ucs2.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_update_ujis.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_update_utf8.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_where_sjis.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_where_ucs2.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_where_ujis.test: Change mode to -rw-rw---- mysql-test/suite/jp/t/jp_where_utf8.test: Change mode to -rw-rw---- --- mysql-test/suite/jp/r/jp_alter_sjis.result | 0 mysql-test/suite/jp/r/jp_alter_ucs2.result | 0 mysql-test/suite/jp/r/jp_alter_ujis.result | 0 mysql-test/suite/jp/r/jp_alter_utf8.result | 0 mysql-test/suite/jp/r/jp_charlength_sjis.result | 0 mysql-test/suite/jp/r/jp_charlength_ucs2.result | 0 mysql-test/suite/jp/r/jp_charlength_ujis.result | 0 mysql-test/suite/jp/r/jp_charlength_utf8.result | 0 mysql-test/suite/jp/r/jp_charset_sjis.result | 0 mysql-test/suite/jp/r/jp_charset_ucs2.result | 0 mysql-test/suite/jp/r/jp_charset_ujis.result | 0 mysql-test/suite/jp/r/jp_charset_utf8.result | 0 mysql-test/suite/jp/r/jp_convert_sjis.result | 0 mysql-test/suite/jp/r/jp_convert_ucs2.result | 0 mysql-test/suite/jp/r/jp_convert_ujis.result | 0 mysql-test/suite/jp/r/jp_convert_utf8.result | 0 mysql-test/suite/jp/r/jp_create_db_sjis.result | 0 mysql-test/suite/jp/r/jp_create_db_ucs2.result | 0 mysql-test/suite/jp/r/jp_create_db_ujis.result | 0 mysql-test/suite/jp/r/jp_create_db_utf8.result | 0 mysql-test/suite/jp/r/jp_create_tbl_sjis.result | 0 mysql-test/suite/jp/r/jp_create_tbl_ucs2.result | 0 mysql-test/suite/jp/r/jp_create_tbl_ujis.result | 0 mysql-test/suite/jp/r/jp_create_tbl_utf8.result | 0 mysql-test/suite/jp/r/jp_enum_sjis.result | 0 mysql-test/suite/jp/r/jp_enum_ucs2.result | 0 mysql-test/suite/jp/r/jp_enum_ujis.result | 0 mysql-test/suite/jp/r/jp_enum_utf8.result | 0 mysql-test/suite/jp/r/jp_insert_sjis.result | 0 mysql-test/suite/jp/r/jp_insert_ucs2.result | 0 mysql-test/suite/jp/r/jp_insert_ujis.result | 0 mysql-test/suite/jp/r/jp_insert_utf8.result | 0 mysql-test/suite/jp/r/jp_instr_sjis.result | 0 mysql-test/suite/jp/r/jp_instr_ucs2.result | 0 mysql-test/suite/jp/r/jp_instr_ujis.result | 0 mysql-test/suite/jp/r/jp_instr_utf8.result | 0 mysql-test/suite/jp/r/jp_join_sjis.result | 0 mysql-test/suite/jp/r/jp_join_ucs2.result | 0 mysql-test/suite/jp/r/jp_join_ujis.result | 0 mysql-test/suite/jp/r/jp_join_utf8.result | 0 mysql-test/suite/jp/r/jp_left_sjis.result | 0 mysql-test/suite/jp/r/jp_left_ucs2.result | 0 mysql-test/suite/jp/r/jp_left_ujis.result | 0 mysql-test/suite/jp/r/jp_left_utf8.result | 0 mysql-test/suite/jp/r/jp_length_sjis.result | 0 mysql-test/suite/jp/r/jp_length_ucs2.result | 0 mysql-test/suite/jp/r/jp_length_ujis.result | 0 mysql-test/suite/jp/r/jp_length_utf8.result | 0 mysql-test/suite/jp/r/jp_like_sjis.result | 0 mysql-test/suite/jp/r/jp_like_ucs2.result | 0 mysql-test/suite/jp/r/jp_like_ujis.result | 0 mysql-test/suite/jp/r/jp_like_utf8.result | 0 mysql-test/suite/jp/r/jp_locate_sjis.result | 0 mysql-test/suite/jp/r/jp_locate_ucs2.result | 0 mysql-test/suite/jp/r/jp_locate_ujis.result | 0 mysql-test/suite/jp/r/jp_locate_utf8.result | 0 mysql-test/suite/jp/r/jp_lpad_sjis.result | 0 mysql-test/suite/jp/r/jp_lpad_ucs2.result | 0 mysql-test/suite/jp/r/jp_lpad_ujis.result | 0 mysql-test/suite/jp/r/jp_lpad_utf8.result | 0 mysql-test/suite/jp/r/jp_ltrim_sjis.result | 0 mysql-test/suite/jp/r/jp_ltrim_ucs2.result | 0 mysql-test/suite/jp/r/jp_ltrim_ujis.result | 0 mysql-test/suite/jp/r/jp_ltrim_utf8.result | 0 mysql-test/suite/jp/r/jp_ps_sjis.result | 0 mysql-test/suite/jp/r/jp_ps_ujis.result | 0 mysql-test/suite/jp/r/jp_replace_sjis.result | 0 mysql-test/suite/jp/r/jp_replace_ucs2.result | 0 mysql-test/suite/jp/r/jp_replace_ujis.result | 0 mysql-test/suite/jp/r/jp_replace_utf8.result | 0 mysql-test/suite/jp/r/jp_reverse_sjis.result | 0 mysql-test/suite/jp/r/jp_reverse_ucs2.result | 0 mysql-test/suite/jp/r/jp_reverse_ujis.result | 0 mysql-test/suite/jp/r/jp_reverse_utf8.result | 0 mysql-test/suite/jp/r/jp_right_sjis.result | 0 mysql-test/suite/jp/r/jp_right_ucs2.result | 0 mysql-test/suite/jp/r/jp_right_ujis.result | 0 mysql-test/suite/jp/r/jp_right_utf8.result | 0 mysql-test/suite/jp/r/jp_rpad_sjis.result | 0 mysql-test/suite/jp/r/jp_rpad_ucs2.result | 0 mysql-test/suite/jp/r/jp_rpad_ujis.result | 0 mysql-test/suite/jp/r/jp_rpad_utf8.result | 0 mysql-test/suite/jp/r/jp_rtrim_sjis.result | 0 mysql-test/suite/jp/r/jp_rtrim_ucs2.result | 0 mysql-test/suite/jp/r/jp_rtrim_ujis.result | 0 mysql-test/suite/jp/r/jp_rtrim_utf8.result | 0 mysql-test/suite/jp/r/jp_select_sjis.result | 0 mysql-test/suite/jp/r/jp_select_ucs2.result | 0 mysql-test/suite/jp/r/jp_select_ujis.result | 0 mysql-test/suite/jp/r/jp_select_utf8.result | 0 mysql-test/suite/jp/r/jp_subquery_sjis.result | 0 mysql-test/suite/jp/r/jp_subquery_ucs2.result | 0 mysql-test/suite/jp/r/jp_subquery_ujis.result | 0 mysql-test/suite/jp/r/jp_subquery_utf8.result | 0 mysql-test/suite/jp/r/jp_substring_sjis.result | 0 mysql-test/suite/jp/r/jp_substring_ucs2.result | 0 mysql-test/suite/jp/r/jp_substring_ujis.result | 0 mysql-test/suite/jp/r/jp_substring_utf8.result | 0 mysql-test/suite/jp/r/jp_trim_sjis.result | 0 mysql-test/suite/jp/r/jp_trim_ucs2.result | 0 mysql-test/suite/jp/r/jp_trim_ujis.result | 0 mysql-test/suite/jp/r/jp_trim_utf8.result | 0 mysql-test/suite/jp/r/jp_union_ujis.result | 0 mysql-test/suite/jp/r/jp_update_sjis.result | 0 mysql-test/suite/jp/r/jp_update_ucs2.result | 0 mysql-test/suite/jp/r/jp_update_ujis.result | 0 mysql-test/suite/jp/r/jp_update_utf8.result | 0 mysql-test/suite/jp/r/jp_where_sjis.result | 0 mysql-test/suite/jp/r/jp_where_ucs2.result | 0 mysql-test/suite/jp/r/jp_where_ujis.result | 0 mysql-test/suite/jp/r/jp_where_utf8.result | 0 mysql-test/suite/jp/std_data/jisx0201_sjis.dat | 0 mysql-test/suite/jp/std_data/jisx0201_ucs2.dat | Bin mysql-test/suite/jp/std_data/jisx0201_ujis.dat | 0 mysql-test/suite/jp/std_data/jisx0201_utf8.dat | 0 mysql-test/suite/jp/std_data/jisx0208_sjis.dat | 0 mysql-test/suite/jp/std_data/jisx0208_sjis2.dat | 0 mysql-test/suite/jp/std_data/jisx0208_sjis3.dat | 0 mysql-test/suite/jp/std_data/jisx0208_ucs2.dat | Bin mysql-test/suite/jp/std_data/jisx0208_ujis.dat | 0 mysql-test/suite/jp/std_data/jisx0208_utf8.dat | 0 mysql-test/suite/jp/std_data/jisx0212_ucs2.dat | Bin mysql-test/suite/jp/std_data/jisx0212_ujis.dat | 0 mysql-test/suite/jp/std_data/jisx0212_utf8.dat | 0 mysql-test/suite/jp/t/jp_alter_sjis.test | 0 mysql-test/suite/jp/t/jp_alter_ucs2.test | 0 mysql-test/suite/jp/t/jp_alter_ujis.test | 0 mysql-test/suite/jp/t/jp_alter_utf8.test | 0 mysql-test/suite/jp/t/jp_charlength_sjis.test | 0 mysql-test/suite/jp/t/jp_charlength_ucs2.test | 0 mysql-test/suite/jp/t/jp_charlength_ujis.test | 0 mysql-test/suite/jp/t/jp_charlength_utf8.test | 0 mysql-test/suite/jp/t/jp_charset_sjis.test | 0 mysql-test/suite/jp/t/jp_charset_ucs2.test | 0 mysql-test/suite/jp/t/jp_charset_ujis.test | 0 mysql-test/suite/jp/t/jp_charset_utf8.test | 0 mysql-test/suite/jp/t/jp_convert_sjis.test | 0 mysql-test/suite/jp/t/jp_convert_ucs2.test | 0 mysql-test/suite/jp/t/jp_convert_ujis.test | 0 mysql-test/suite/jp/t/jp_convert_utf8.test | 0 mysql-test/suite/jp/t/jp_create_db_sjis.test | 0 mysql-test/suite/jp/t/jp_create_db_ucs2.test | 0 mysql-test/suite/jp/t/jp_create_db_ujis.test | 0 mysql-test/suite/jp/t/jp_create_db_utf8.test | 0 mysql-test/suite/jp/t/jp_create_tbl_sjis.test | 0 mysql-test/suite/jp/t/jp_create_tbl_ucs2.test | 0 mysql-test/suite/jp/t/jp_create_tbl_ujis.test | 0 mysql-test/suite/jp/t/jp_create_tbl_utf8.test | 0 mysql-test/suite/jp/t/jp_enum_sjis.test | 0 mysql-test/suite/jp/t/jp_enum_ucs2.test | 0 mysql-test/suite/jp/t/jp_enum_ujis.test | 0 mysql-test/suite/jp/t/jp_enum_utf8.test | 0 mysql-test/suite/jp/t/jp_insert_sjis.test | 0 mysql-test/suite/jp/t/jp_insert_ucs2.test | 0 mysql-test/suite/jp/t/jp_insert_ujis.test | 0 mysql-test/suite/jp/t/jp_insert_utf8.test | 0 mysql-test/suite/jp/t/jp_instr_sjis.test | 0 mysql-test/suite/jp/t/jp_instr_ucs2.test | 0 mysql-test/suite/jp/t/jp_instr_ujis.test | 0 mysql-test/suite/jp/t/jp_instr_utf8.test | 0 mysql-test/suite/jp/t/jp_join_sjis.test | 0 mysql-test/suite/jp/t/jp_join_ucs2.test | 0 mysql-test/suite/jp/t/jp_join_ujis.test | 0 mysql-test/suite/jp/t/jp_join_utf8.test | 0 mysql-test/suite/jp/t/jp_left_sjis.test | 0 mysql-test/suite/jp/t/jp_left_ucs2.test | 0 mysql-test/suite/jp/t/jp_left_ujis.test | 0 mysql-test/suite/jp/t/jp_left_utf8.test | 0 mysql-test/suite/jp/t/jp_length_sjis.test | 0 mysql-test/suite/jp/t/jp_length_ucs2.test | 0 mysql-test/suite/jp/t/jp_length_ujis.test | 0 mysql-test/suite/jp/t/jp_length_utf8.test | 0 mysql-test/suite/jp/t/jp_like_sjis.test | 0 mysql-test/suite/jp/t/jp_like_ucs2.test | 0 mysql-test/suite/jp/t/jp_like_ujis.test | 0 mysql-test/suite/jp/t/jp_like_utf8.test | 0 mysql-test/suite/jp/t/jp_locate_sjis.test | 0 mysql-test/suite/jp/t/jp_locate_ucs2.test | 0 mysql-test/suite/jp/t/jp_locate_ujis.test | 0 mysql-test/suite/jp/t/jp_locate_utf8.test | 0 mysql-test/suite/jp/t/jp_lpad_sjis.test | 0 mysql-test/suite/jp/t/jp_lpad_ucs2.test | 0 mysql-test/suite/jp/t/jp_lpad_ujis.test | 0 mysql-test/suite/jp/t/jp_lpad_utf8.test | 0 mysql-test/suite/jp/t/jp_ltrim_sjis.test | 0 mysql-test/suite/jp/t/jp_ltrim_ucs2.test | 0 mysql-test/suite/jp/t/jp_ltrim_ujis.test | 0 mysql-test/suite/jp/t/jp_ltrim_utf8.test | 0 mysql-test/suite/jp/t/jp_ps_sjis.test | 0 mysql-test/suite/jp/t/jp_ps_ujis.test | 0 mysql-test/suite/jp/t/jp_replace_sjis.test | 0 mysql-test/suite/jp/t/jp_replace_ucs2.test | 0 mysql-test/suite/jp/t/jp_replace_ujis.test | 0 mysql-test/suite/jp/t/jp_replace_utf8.test | 0 mysql-test/suite/jp/t/jp_reverse_sjis.test | 0 mysql-test/suite/jp/t/jp_reverse_ucs2.test | 0 mysql-test/suite/jp/t/jp_reverse_ujis.test | 0 mysql-test/suite/jp/t/jp_reverse_utf8.test | 0 mysql-test/suite/jp/t/jp_right_sjis.test | 0 mysql-test/suite/jp/t/jp_right_ucs2.test | 0 mysql-test/suite/jp/t/jp_right_ujis.test | 0 mysql-test/suite/jp/t/jp_right_utf8.test | 0 mysql-test/suite/jp/t/jp_rpad_sjis.test | 0 mysql-test/suite/jp/t/jp_rpad_ucs2.test | 0 mysql-test/suite/jp/t/jp_rpad_ujis.test | 0 mysql-test/suite/jp/t/jp_rpad_utf8.test | 0 mysql-test/suite/jp/t/jp_rtrim_sjis.test | 0 mysql-test/suite/jp/t/jp_rtrim_ucs2.test | 0 mysql-test/suite/jp/t/jp_rtrim_ujis.test | 0 mysql-test/suite/jp/t/jp_rtrim_utf8.test | 0 mysql-test/suite/jp/t/jp_select_sjis.test | 0 mysql-test/suite/jp/t/jp_select_ucs2.test | 0 mysql-test/suite/jp/t/jp_select_ujis.test | 0 mysql-test/suite/jp/t/jp_select_utf8.test | 0 mysql-test/suite/jp/t/jp_subquery_sjis.test | 0 mysql-test/suite/jp/t/jp_subquery_ucs2.test | 0 mysql-test/suite/jp/t/jp_subquery_ujis.test | 0 mysql-test/suite/jp/t/jp_subquery_utf8.test | 0 mysql-test/suite/jp/t/jp_substring_sjis.test | 0 mysql-test/suite/jp/t/jp_substring_ucs2.test | 0 mysql-test/suite/jp/t/jp_substring_ujis.test | 0 mysql-test/suite/jp/t/jp_substring_utf8.test | 0 mysql-test/suite/jp/t/jp_trim_sjis.test | 0 mysql-test/suite/jp/t/jp_trim_ucs2.test | 0 mysql-test/suite/jp/t/jp_trim_ujis.test | 0 mysql-test/suite/jp/t/jp_trim_utf8.test | 0 mysql-test/suite/jp/t/jp_union_ujis.test | 0 mysql-test/suite/jp/t/jp_update_sjis.test | 0 mysql-test/suite/jp/t/jp_update_ucs2.test | 0 mysql-test/suite/jp/t/jp_update_ujis.test | 0 mysql-test/suite/jp/t/jp_update_utf8.test | 0 mysql-test/suite/jp/t/jp_where_sjis.test | 0 mysql-test/suite/jp/t/jp_where_ucs2.test | 0 mysql-test/suite/jp/t/jp_where_ujis.test | 0 mysql-test/suite/jp/t/jp_where_utf8.test | 0 235 files changed, 0 insertions(+), 0 deletions(-) mode change 100755 => 100644 mysql-test/suite/jp/r/jp_alter_sjis.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_alter_ucs2.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_alter_ujis.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_alter_utf8.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_charlength_sjis.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_charlength_ucs2.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_charlength_ujis.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_charlength_utf8.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_charset_sjis.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_charset_ucs2.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_charset_ujis.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_charset_utf8.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_convert_sjis.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_convert_ucs2.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_convert_ujis.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_convert_utf8.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_create_db_sjis.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_create_db_ucs2.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_create_db_ujis.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_create_db_utf8.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_create_tbl_sjis.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_create_tbl_ucs2.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_create_tbl_ujis.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_create_tbl_utf8.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_enum_sjis.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_enum_ucs2.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_enum_ujis.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_enum_utf8.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_insert_sjis.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_insert_ucs2.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_insert_ujis.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_insert_utf8.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_instr_sjis.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_instr_ucs2.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_instr_ujis.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_instr_utf8.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_join_sjis.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_join_ucs2.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_join_ujis.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_join_utf8.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_left_sjis.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_left_ucs2.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_left_ujis.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_left_utf8.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_length_sjis.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_length_ucs2.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_length_ujis.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_length_utf8.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_like_sjis.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_like_ucs2.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_like_ujis.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_like_utf8.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_locate_sjis.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_locate_ucs2.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_locate_ujis.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_locate_utf8.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_lpad_sjis.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_lpad_ucs2.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_lpad_ujis.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_lpad_utf8.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_ltrim_sjis.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_ltrim_ucs2.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_ltrim_ujis.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_ltrim_utf8.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_ps_sjis.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_ps_ujis.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_replace_sjis.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_replace_ucs2.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_replace_ujis.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_replace_utf8.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_reverse_sjis.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_reverse_ucs2.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_reverse_ujis.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_reverse_utf8.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_right_sjis.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_right_ucs2.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_right_ujis.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_right_utf8.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_rpad_sjis.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_rpad_ucs2.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_rpad_ujis.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_rpad_utf8.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_rtrim_sjis.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_rtrim_ucs2.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_rtrim_ujis.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_rtrim_utf8.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_select_sjis.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_select_ucs2.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_select_ujis.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_select_utf8.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_subquery_sjis.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_subquery_ucs2.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_subquery_ujis.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_subquery_utf8.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_substring_sjis.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_substring_ucs2.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_substring_ujis.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_substring_utf8.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_trim_sjis.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_trim_ucs2.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_trim_ujis.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_trim_utf8.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_union_ujis.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_update_sjis.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_update_ucs2.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_update_ujis.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_update_utf8.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_where_sjis.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_where_ucs2.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_where_ujis.result mode change 100755 => 100644 mysql-test/suite/jp/r/jp_where_utf8.result mode change 100755 => 100644 mysql-test/suite/jp/std_data/jisx0201_sjis.dat mode change 100755 => 100644 mysql-test/suite/jp/std_data/jisx0201_ucs2.dat mode change 100755 => 100644 mysql-test/suite/jp/std_data/jisx0201_ujis.dat mode change 100755 => 100644 mysql-test/suite/jp/std_data/jisx0201_utf8.dat mode change 100755 => 100644 mysql-test/suite/jp/std_data/jisx0208_sjis.dat mode change 100755 => 100644 mysql-test/suite/jp/std_data/jisx0208_sjis2.dat mode change 100755 => 100644 mysql-test/suite/jp/std_data/jisx0208_sjis3.dat mode change 100755 => 100644 mysql-test/suite/jp/std_data/jisx0208_ucs2.dat mode change 100755 => 100644 mysql-test/suite/jp/std_data/jisx0208_ujis.dat mode change 100755 => 100644 mysql-test/suite/jp/std_data/jisx0208_utf8.dat mode change 100755 => 100644 mysql-test/suite/jp/std_data/jisx0212_ucs2.dat mode change 100755 => 100644 mysql-test/suite/jp/std_data/jisx0212_ujis.dat mode change 100755 => 100644 mysql-test/suite/jp/std_data/jisx0212_utf8.dat mode change 100755 => 100644 mysql-test/suite/jp/t/jp_alter_sjis.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_alter_ucs2.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_alter_ujis.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_alter_utf8.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_charlength_sjis.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_charlength_ucs2.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_charlength_ujis.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_charlength_utf8.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_charset_sjis.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_charset_ucs2.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_charset_ujis.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_charset_utf8.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_convert_sjis.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_convert_ucs2.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_convert_ujis.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_convert_utf8.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_create_db_sjis.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_create_db_ucs2.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_create_db_ujis.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_create_db_utf8.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_create_tbl_sjis.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_create_tbl_ucs2.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_create_tbl_ujis.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_create_tbl_utf8.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_enum_sjis.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_enum_ucs2.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_enum_ujis.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_enum_utf8.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_insert_sjis.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_insert_ucs2.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_insert_ujis.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_insert_utf8.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_instr_sjis.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_instr_ucs2.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_instr_ujis.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_instr_utf8.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_join_sjis.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_join_ucs2.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_join_ujis.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_join_utf8.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_left_sjis.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_left_ucs2.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_left_ujis.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_left_utf8.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_length_sjis.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_length_ucs2.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_length_ujis.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_length_utf8.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_like_sjis.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_like_ucs2.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_like_ujis.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_like_utf8.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_locate_sjis.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_locate_ucs2.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_locate_ujis.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_locate_utf8.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_lpad_sjis.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_lpad_ucs2.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_lpad_ujis.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_lpad_utf8.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_ltrim_sjis.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_ltrim_ucs2.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_ltrim_ujis.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_ltrim_utf8.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_ps_sjis.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_ps_ujis.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_replace_sjis.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_replace_ucs2.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_replace_ujis.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_replace_utf8.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_reverse_sjis.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_reverse_ucs2.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_reverse_ujis.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_reverse_utf8.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_right_sjis.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_right_ucs2.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_right_ujis.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_right_utf8.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_rpad_sjis.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_rpad_ucs2.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_rpad_ujis.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_rpad_utf8.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_rtrim_sjis.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_rtrim_ucs2.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_rtrim_ujis.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_rtrim_utf8.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_select_sjis.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_select_ucs2.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_select_ujis.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_select_utf8.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_subquery_sjis.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_subquery_ucs2.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_subquery_ujis.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_subquery_utf8.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_substring_sjis.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_substring_ucs2.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_substring_ujis.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_substring_utf8.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_trim_sjis.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_trim_ucs2.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_trim_ujis.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_trim_utf8.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_union_ujis.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_update_sjis.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_update_ucs2.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_update_ujis.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_update_utf8.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_where_sjis.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_where_ucs2.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_where_ujis.test mode change 100755 => 100644 mysql-test/suite/jp/t/jp_where_utf8.test diff --git a/mysql-test/suite/jp/r/jp_alter_sjis.result b/mysql-test/suite/jp/r/jp_alter_sjis.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_alter_ucs2.result b/mysql-test/suite/jp/r/jp_alter_ucs2.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_alter_ujis.result b/mysql-test/suite/jp/r/jp_alter_ujis.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_alter_utf8.result b/mysql-test/suite/jp/r/jp_alter_utf8.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_charlength_sjis.result b/mysql-test/suite/jp/r/jp_charlength_sjis.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_charlength_ucs2.result b/mysql-test/suite/jp/r/jp_charlength_ucs2.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_charlength_ujis.result b/mysql-test/suite/jp/r/jp_charlength_ujis.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_charlength_utf8.result b/mysql-test/suite/jp/r/jp_charlength_utf8.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_charset_sjis.result b/mysql-test/suite/jp/r/jp_charset_sjis.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_charset_ucs2.result b/mysql-test/suite/jp/r/jp_charset_ucs2.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_charset_ujis.result b/mysql-test/suite/jp/r/jp_charset_ujis.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_charset_utf8.result b/mysql-test/suite/jp/r/jp_charset_utf8.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_convert_sjis.result b/mysql-test/suite/jp/r/jp_convert_sjis.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_convert_ucs2.result b/mysql-test/suite/jp/r/jp_convert_ucs2.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_convert_ujis.result b/mysql-test/suite/jp/r/jp_convert_ujis.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_convert_utf8.result b/mysql-test/suite/jp/r/jp_convert_utf8.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_create_db_sjis.result b/mysql-test/suite/jp/r/jp_create_db_sjis.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_create_db_ucs2.result b/mysql-test/suite/jp/r/jp_create_db_ucs2.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_create_db_ujis.result b/mysql-test/suite/jp/r/jp_create_db_ujis.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_create_db_utf8.result b/mysql-test/suite/jp/r/jp_create_db_utf8.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_create_tbl_sjis.result b/mysql-test/suite/jp/r/jp_create_tbl_sjis.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_create_tbl_ucs2.result b/mysql-test/suite/jp/r/jp_create_tbl_ucs2.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_create_tbl_ujis.result b/mysql-test/suite/jp/r/jp_create_tbl_ujis.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_create_tbl_utf8.result b/mysql-test/suite/jp/r/jp_create_tbl_utf8.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_enum_sjis.result b/mysql-test/suite/jp/r/jp_enum_sjis.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_enum_ucs2.result b/mysql-test/suite/jp/r/jp_enum_ucs2.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_enum_ujis.result b/mysql-test/suite/jp/r/jp_enum_ujis.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_enum_utf8.result b/mysql-test/suite/jp/r/jp_enum_utf8.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_insert_sjis.result b/mysql-test/suite/jp/r/jp_insert_sjis.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_insert_ucs2.result b/mysql-test/suite/jp/r/jp_insert_ucs2.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_insert_ujis.result b/mysql-test/suite/jp/r/jp_insert_ujis.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_insert_utf8.result b/mysql-test/suite/jp/r/jp_insert_utf8.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_instr_sjis.result b/mysql-test/suite/jp/r/jp_instr_sjis.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_instr_ucs2.result b/mysql-test/suite/jp/r/jp_instr_ucs2.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_instr_ujis.result b/mysql-test/suite/jp/r/jp_instr_ujis.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_instr_utf8.result b/mysql-test/suite/jp/r/jp_instr_utf8.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_join_sjis.result b/mysql-test/suite/jp/r/jp_join_sjis.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_join_ucs2.result b/mysql-test/suite/jp/r/jp_join_ucs2.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_join_ujis.result b/mysql-test/suite/jp/r/jp_join_ujis.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_join_utf8.result b/mysql-test/suite/jp/r/jp_join_utf8.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_left_sjis.result b/mysql-test/suite/jp/r/jp_left_sjis.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_left_ucs2.result b/mysql-test/suite/jp/r/jp_left_ucs2.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_left_ujis.result b/mysql-test/suite/jp/r/jp_left_ujis.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_left_utf8.result b/mysql-test/suite/jp/r/jp_left_utf8.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_length_sjis.result b/mysql-test/suite/jp/r/jp_length_sjis.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_length_ucs2.result b/mysql-test/suite/jp/r/jp_length_ucs2.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_length_ujis.result b/mysql-test/suite/jp/r/jp_length_ujis.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_length_utf8.result b/mysql-test/suite/jp/r/jp_length_utf8.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_like_sjis.result b/mysql-test/suite/jp/r/jp_like_sjis.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_like_ucs2.result b/mysql-test/suite/jp/r/jp_like_ucs2.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_like_ujis.result b/mysql-test/suite/jp/r/jp_like_ujis.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_like_utf8.result b/mysql-test/suite/jp/r/jp_like_utf8.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_locate_sjis.result b/mysql-test/suite/jp/r/jp_locate_sjis.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_locate_ucs2.result b/mysql-test/suite/jp/r/jp_locate_ucs2.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_locate_ujis.result b/mysql-test/suite/jp/r/jp_locate_ujis.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_locate_utf8.result b/mysql-test/suite/jp/r/jp_locate_utf8.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_lpad_sjis.result b/mysql-test/suite/jp/r/jp_lpad_sjis.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_lpad_ucs2.result b/mysql-test/suite/jp/r/jp_lpad_ucs2.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_lpad_ujis.result b/mysql-test/suite/jp/r/jp_lpad_ujis.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_lpad_utf8.result b/mysql-test/suite/jp/r/jp_lpad_utf8.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_ltrim_sjis.result b/mysql-test/suite/jp/r/jp_ltrim_sjis.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_ltrim_ucs2.result b/mysql-test/suite/jp/r/jp_ltrim_ucs2.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_ltrim_ujis.result b/mysql-test/suite/jp/r/jp_ltrim_ujis.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_ltrim_utf8.result b/mysql-test/suite/jp/r/jp_ltrim_utf8.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_ps_sjis.result b/mysql-test/suite/jp/r/jp_ps_sjis.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_ps_ujis.result b/mysql-test/suite/jp/r/jp_ps_ujis.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_replace_sjis.result b/mysql-test/suite/jp/r/jp_replace_sjis.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_replace_ucs2.result b/mysql-test/suite/jp/r/jp_replace_ucs2.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_replace_ujis.result b/mysql-test/suite/jp/r/jp_replace_ujis.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_replace_utf8.result b/mysql-test/suite/jp/r/jp_replace_utf8.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_reverse_sjis.result b/mysql-test/suite/jp/r/jp_reverse_sjis.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_reverse_ucs2.result b/mysql-test/suite/jp/r/jp_reverse_ucs2.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_reverse_ujis.result b/mysql-test/suite/jp/r/jp_reverse_ujis.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_reverse_utf8.result b/mysql-test/suite/jp/r/jp_reverse_utf8.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_right_sjis.result b/mysql-test/suite/jp/r/jp_right_sjis.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_right_ucs2.result b/mysql-test/suite/jp/r/jp_right_ucs2.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_right_ujis.result b/mysql-test/suite/jp/r/jp_right_ujis.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_right_utf8.result b/mysql-test/suite/jp/r/jp_right_utf8.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_rpad_sjis.result b/mysql-test/suite/jp/r/jp_rpad_sjis.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_rpad_ucs2.result b/mysql-test/suite/jp/r/jp_rpad_ucs2.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_rpad_ujis.result b/mysql-test/suite/jp/r/jp_rpad_ujis.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_rpad_utf8.result b/mysql-test/suite/jp/r/jp_rpad_utf8.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_rtrim_sjis.result b/mysql-test/suite/jp/r/jp_rtrim_sjis.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_rtrim_ucs2.result b/mysql-test/suite/jp/r/jp_rtrim_ucs2.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_rtrim_ujis.result b/mysql-test/suite/jp/r/jp_rtrim_ujis.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_rtrim_utf8.result b/mysql-test/suite/jp/r/jp_rtrim_utf8.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_select_sjis.result b/mysql-test/suite/jp/r/jp_select_sjis.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_select_ucs2.result b/mysql-test/suite/jp/r/jp_select_ucs2.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_select_ujis.result b/mysql-test/suite/jp/r/jp_select_ujis.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_select_utf8.result b/mysql-test/suite/jp/r/jp_select_utf8.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_subquery_sjis.result b/mysql-test/suite/jp/r/jp_subquery_sjis.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_subquery_ucs2.result b/mysql-test/suite/jp/r/jp_subquery_ucs2.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_subquery_ujis.result b/mysql-test/suite/jp/r/jp_subquery_ujis.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_subquery_utf8.result b/mysql-test/suite/jp/r/jp_subquery_utf8.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_substring_sjis.result b/mysql-test/suite/jp/r/jp_substring_sjis.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_substring_ucs2.result b/mysql-test/suite/jp/r/jp_substring_ucs2.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_substring_ujis.result b/mysql-test/suite/jp/r/jp_substring_ujis.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_substring_utf8.result b/mysql-test/suite/jp/r/jp_substring_utf8.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_trim_sjis.result b/mysql-test/suite/jp/r/jp_trim_sjis.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_trim_ucs2.result b/mysql-test/suite/jp/r/jp_trim_ucs2.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_trim_ujis.result b/mysql-test/suite/jp/r/jp_trim_ujis.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_trim_utf8.result b/mysql-test/suite/jp/r/jp_trim_utf8.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_union_ujis.result b/mysql-test/suite/jp/r/jp_union_ujis.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_update_sjis.result b/mysql-test/suite/jp/r/jp_update_sjis.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_update_ucs2.result b/mysql-test/suite/jp/r/jp_update_ucs2.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_update_ujis.result b/mysql-test/suite/jp/r/jp_update_ujis.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_update_utf8.result b/mysql-test/suite/jp/r/jp_update_utf8.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_where_sjis.result b/mysql-test/suite/jp/r/jp_where_sjis.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_where_ucs2.result b/mysql-test/suite/jp/r/jp_where_ucs2.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_where_ujis.result b/mysql-test/suite/jp/r/jp_where_ujis.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/r/jp_where_utf8.result b/mysql-test/suite/jp/r/jp_where_utf8.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/std_data/jisx0201_sjis.dat b/mysql-test/suite/jp/std_data/jisx0201_sjis.dat old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/std_data/jisx0201_ucs2.dat b/mysql-test/suite/jp/std_data/jisx0201_ucs2.dat old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/std_data/jisx0201_ujis.dat b/mysql-test/suite/jp/std_data/jisx0201_ujis.dat old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/std_data/jisx0201_utf8.dat b/mysql-test/suite/jp/std_data/jisx0201_utf8.dat old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/std_data/jisx0208_sjis.dat b/mysql-test/suite/jp/std_data/jisx0208_sjis.dat old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/std_data/jisx0208_sjis2.dat b/mysql-test/suite/jp/std_data/jisx0208_sjis2.dat old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/std_data/jisx0208_sjis3.dat b/mysql-test/suite/jp/std_data/jisx0208_sjis3.dat old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/std_data/jisx0208_ucs2.dat b/mysql-test/suite/jp/std_data/jisx0208_ucs2.dat old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/std_data/jisx0208_ujis.dat b/mysql-test/suite/jp/std_data/jisx0208_ujis.dat old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/std_data/jisx0208_utf8.dat b/mysql-test/suite/jp/std_data/jisx0208_utf8.dat old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/std_data/jisx0212_ucs2.dat b/mysql-test/suite/jp/std_data/jisx0212_ucs2.dat old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/std_data/jisx0212_ujis.dat b/mysql-test/suite/jp/std_data/jisx0212_ujis.dat old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/std_data/jisx0212_utf8.dat b/mysql-test/suite/jp/std_data/jisx0212_utf8.dat old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_alter_sjis.test b/mysql-test/suite/jp/t/jp_alter_sjis.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_alter_ucs2.test b/mysql-test/suite/jp/t/jp_alter_ucs2.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_alter_ujis.test b/mysql-test/suite/jp/t/jp_alter_ujis.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_alter_utf8.test b/mysql-test/suite/jp/t/jp_alter_utf8.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_charlength_sjis.test b/mysql-test/suite/jp/t/jp_charlength_sjis.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_charlength_ucs2.test b/mysql-test/suite/jp/t/jp_charlength_ucs2.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_charlength_ujis.test b/mysql-test/suite/jp/t/jp_charlength_ujis.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_charlength_utf8.test b/mysql-test/suite/jp/t/jp_charlength_utf8.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_charset_sjis.test b/mysql-test/suite/jp/t/jp_charset_sjis.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_charset_ucs2.test b/mysql-test/suite/jp/t/jp_charset_ucs2.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_charset_ujis.test b/mysql-test/suite/jp/t/jp_charset_ujis.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_charset_utf8.test b/mysql-test/suite/jp/t/jp_charset_utf8.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_convert_sjis.test b/mysql-test/suite/jp/t/jp_convert_sjis.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_convert_ucs2.test b/mysql-test/suite/jp/t/jp_convert_ucs2.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_convert_ujis.test b/mysql-test/suite/jp/t/jp_convert_ujis.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_convert_utf8.test b/mysql-test/suite/jp/t/jp_convert_utf8.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_create_db_sjis.test b/mysql-test/suite/jp/t/jp_create_db_sjis.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_create_db_ucs2.test b/mysql-test/suite/jp/t/jp_create_db_ucs2.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_create_db_ujis.test b/mysql-test/suite/jp/t/jp_create_db_ujis.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_create_db_utf8.test b/mysql-test/suite/jp/t/jp_create_db_utf8.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_create_tbl_sjis.test b/mysql-test/suite/jp/t/jp_create_tbl_sjis.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_create_tbl_ucs2.test b/mysql-test/suite/jp/t/jp_create_tbl_ucs2.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_create_tbl_ujis.test b/mysql-test/suite/jp/t/jp_create_tbl_ujis.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_create_tbl_utf8.test b/mysql-test/suite/jp/t/jp_create_tbl_utf8.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_enum_sjis.test b/mysql-test/suite/jp/t/jp_enum_sjis.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_enum_ucs2.test b/mysql-test/suite/jp/t/jp_enum_ucs2.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_enum_ujis.test b/mysql-test/suite/jp/t/jp_enum_ujis.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_enum_utf8.test b/mysql-test/suite/jp/t/jp_enum_utf8.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_insert_sjis.test b/mysql-test/suite/jp/t/jp_insert_sjis.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_insert_ucs2.test b/mysql-test/suite/jp/t/jp_insert_ucs2.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_insert_ujis.test b/mysql-test/suite/jp/t/jp_insert_ujis.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_insert_utf8.test b/mysql-test/suite/jp/t/jp_insert_utf8.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_instr_sjis.test b/mysql-test/suite/jp/t/jp_instr_sjis.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_instr_ucs2.test b/mysql-test/suite/jp/t/jp_instr_ucs2.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_instr_ujis.test b/mysql-test/suite/jp/t/jp_instr_ujis.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_instr_utf8.test b/mysql-test/suite/jp/t/jp_instr_utf8.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_join_sjis.test b/mysql-test/suite/jp/t/jp_join_sjis.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_join_ucs2.test b/mysql-test/suite/jp/t/jp_join_ucs2.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_join_ujis.test b/mysql-test/suite/jp/t/jp_join_ujis.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_join_utf8.test b/mysql-test/suite/jp/t/jp_join_utf8.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_left_sjis.test b/mysql-test/suite/jp/t/jp_left_sjis.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_left_ucs2.test b/mysql-test/suite/jp/t/jp_left_ucs2.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_left_ujis.test b/mysql-test/suite/jp/t/jp_left_ujis.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_left_utf8.test b/mysql-test/suite/jp/t/jp_left_utf8.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_length_sjis.test b/mysql-test/suite/jp/t/jp_length_sjis.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_length_ucs2.test b/mysql-test/suite/jp/t/jp_length_ucs2.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_length_ujis.test b/mysql-test/suite/jp/t/jp_length_ujis.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_length_utf8.test b/mysql-test/suite/jp/t/jp_length_utf8.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_like_sjis.test b/mysql-test/suite/jp/t/jp_like_sjis.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_like_ucs2.test b/mysql-test/suite/jp/t/jp_like_ucs2.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_like_ujis.test b/mysql-test/suite/jp/t/jp_like_ujis.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_like_utf8.test b/mysql-test/suite/jp/t/jp_like_utf8.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_locate_sjis.test b/mysql-test/suite/jp/t/jp_locate_sjis.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_locate_ucs2.test b/mysql-test/suite/jp/t/jp_locate_ucs2.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_locate_ujis.test b/mysql-test/suite/jp/t/jp_locate_ujis.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_locate_utf8.test b/mysql-test/suite/jp/t/jp_locate_utf8.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_lpad_sjis.test b/mysql-test/suite/jp/t/jp_lpad_sjis.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_lpad_ucs2.test b/mysql-test/suite/jp/t/jp_lpad_ucs2.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_lpad_ujis.test b/mysql-test/suite/jp/t/jp_lpad_ujis.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_lpad_utf8.test b/mysql-test/suite/jp/t/jp_lpad_utf8.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_ltrim_sjis.test b/mysql-test/suite/jp/t/jp_ltrim_sjis.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_ltrim_ucs2.test b/mysql-test/suite/jp/t/jp_ltrim_ucs2.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_ltrim_ujis.test b/mysql-test/suite/jp/t/jp_ltrim_ujis.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_ltrim_utf8.test b/mysql-test/suite/jp/t/jp_ltrim_utf8.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_ps_sjis.test b/mysql-test/suite/jp/t/jp_ps_sjis.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_ps_ujis.test b/mysql-test/suite/jp/t/jp_ps_ujis.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_replace_sjis.test b/mysql-test/suite/jp/t/jp_replace_sjis.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_replace_ucs2.test b/mysql-test/suite/jp/t/jp_replace_ucs2.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_replace_ujis.test b/mysql-test/suite/jp/t/jp_replace_ujis.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_replace_utf8.test b/mysql-test/suite/jp/t/jp_replace_utf8.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_reverse_sjis.test b/mysql-test/suite/jp/t/jp_reverse_sjis.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_reverse_ucs2.test b/mysql-test/suite/jp/t/jp_reverse_ucs2.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_reverse_ujis.test b/mysql-test/suite/jp/t/jp_reverse_ujis.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_reverse_utf8.test b/mysql-test/suite/jp/t/jp_reverse_utf8.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_right_sjis.test b/mysql-test/suite/jp/t/jp_right_sjis.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_right_ucs2.test b/mysql-test/suite/jp/t/jp_right_ucs2.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_right_ujis.test b/mysql-test/suite/jp/t/jp_right_ujis.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_right_utf8.test b/mysql-test/suite/jp/t/jp_right_utf8.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_rpad_sjis.test b/mysql-test/suite/jp/t/jp_rpad_sjis.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_rpad_ucs2.test b/mysql-test/suite/jp/t/jp_rpad_ucs2.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_rpad_ujis.test b/mysql-test/suite/jp/t/jp_rpad_ujis.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_rpad_utf8.test b/mysql-test/suite/jp/t/jp_rpad_utf8.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_rtrim_sjis.test b/mysql-test/suite/jp/t/jp_rtrim_sjis.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_rtrim_ucs2.test b/mysql-test/suite/jp/t/jp_rtrim_ucs2.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_rtrim_ujis.test b/mysql-test/suite/jp/t/jp_rtrim_ujis.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_rtrim_utf8.test b/mysql-test/suite/jp/t/jp_rtrim_utf8.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_select_sjis.test b/mysql-test/suite/jp/t/jp_select_sjis.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_select_ucs2.test b/mysql-test/suite/jp/t/jp_select_ucs2.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_select_ujis.test b/mysql-test/suite/jp/t/jp_select_ujis.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_select_utf8.test b/mysql-test/suite/jp/t/jp_select_utf8.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_subquery_sjis.test b/mysql-test/suite/jp/t/jp_subquery_sjis.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_subquery_ucs2.test b/mysql-test/suite/jp/t/jp_subquery_ucs2.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_subquery_ujis.test b/mysql-test/suite/jp/t/jp_subquery_ujis.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_subquery_utf8.test b/mysql-test/suite/jp/t/jp_subquery_utf8.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_substring_sjis.test b/mysql-test/suite/jp/t/jp_substring_sjis.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_substring_ucs2.test b/mysql-test/suite/jp/t/jp_substring_ucs2.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_substring_ujis.test b/mysql-test/suite/jp/t/jp_substring_ujis.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_substring_utf8.test b/mysql-test/suite/jp/t/jp_substring_utf8.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_trim_sjis.test b/mysql-test/suite/jp/t/jp_trim_sjis.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_trim_ucs2.test b/mysql-test/suite/jp/t/jp_trim_ucs2.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_trim_ujis.test b/mysql-test/suite/jp/t/jp_trim_ujis.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_trim_utf8.test b/mysql-test/suite/jp/t/jp_trim_utf8.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_union_ujis.test b/mysql-test/suite/jp/t/jp_union_ujis.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_update_sjis.test b/mysql-test/suite/jp/t/jp_update_sjis.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_update_ucs2.test b/mysql-test/suite/jp/t/jp_update_ucs2.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_update_ujis.test b/mysql-test/suite/jp/t/jp_update_ujis.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_update_utf8.test b/mysql-test/suite/jp/t/jp_update_utf8.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_where_sjis.test b/mysql-test/suite/jp/t/jp_where_sjis.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_where_ucs2.test b/mysql-test/suite/jp/t/jp_where_ucs2.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_where_ujis.test b/mysql-test/suite/jp/t/jp_where_ujis.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/jp/t/jp_where_utf8.test b/mysql-test/suite/jp/t/jp_where_utf8.test old mode 100755 new mode 100644 From 0c57a67ce0434fa78e2b64f569a271d166371a32 Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 7 Jan 2005 17:44:18 +0100 Subject: [PATCH 120/157] Correctly truncate integers inserted into field and double columns with a number of decimals specified. (Bug #7361) mysql-test/t/type_float.test: Add test for maximum values of float and double columns with number of decimals mysql-test/r/type_float.result: Add results for new test mysql-test/r/type_float.result.es: Add results for new test sql/field.cc: Use ::store(double nr) from ::store(longlong nr) so we get the same range checking --- mysql-test/r/type_float.result | 36 +++++++++++++++++++++++++++++++ mysql-test/r/type_float.result.es | 36 +++++++++++++++++++++++++++++++ mysql-test/t/type_float.test | 10 +++++++++ sql/field.cc | 36 ++----------------------------- 4 files changed, 84 insertions(+), 34 deletions(-) diff --git a/mysql-test/r/type_float.result b/mysql-test/r/type_float.result index 2f996382586..9dd92c13c98 100644 --- a/mysql-test/r/type_float.result +++ b/mysql-test/r/type_float.result @@ -143,3 +143,39 @@ drop table t1; create table t1 (f float(54)); ERROR 42000: Incorrect column specifier for column 'f' drop table if exists t1; +create table t1 (f float(4,3)); +insert into t1 values (-11.0),(-11),("-11"),(11.0),(11),("11"); +Warnings: +Warning 1264 Data truncated; out of range for column 'f' at row 1 +Warning 1264 Data truncated; out of range for column 'f' at row 2 +Warning 1264 Data truncated; out of range for column 'f' at row 3 +Warning 1264 Data truncated; out of range for column 'f' at row 4 +Warning 1264 Data truncated; out of range for column 'f' at row 5 +Warning 1264 Data truncated; out of range for column 'f' at row 6 +select * from t1; +f +-9.999 +-9.999 +-9.999 +9.999 +9.999 +9.999 +drop table if exists t1; +create table t1 (f double(4,3)); +insert into t1 values (-11.0),(-11),("-11"),(11.0),(11),("11"); +Warnings: +Warning 1264 Data truncated; out of range for column 'f' at row 1 +Warning 1264 Data truncated; out of range for column 'f' at row 2 +Warning 1264 Data truncated; out of range for column 'f' at row 3 +Warning 1264 Data truncated; out of range for column 'f' at row 4 +Warning 1264 Data truncated; out of range for column 'f' at row 5 +Warning 1264 Data truncated; out of range for column 'f' at row 6 +select * from t1; +f +-9.999 +-9.999 +-9.999 +9.999 +9.999 +9.999 +drop table if exists t1; diff --git a/mysql-test/r/type_float.result.es b/mysql-test/r/type_float.result.es index 4bfe644d7fb..64d9be7e30f 100644 --- a/mysql-test/r/type_float.result.es +++ b/mysql-test/r/type_float.result.es @@ -143,3 +143,39 @@ drop table t1; create table t1 (f float(54)); ERROR 42000: Incorrect column specifier for column 'f' drop table if exists t1; +create table t1 (f float(4,3)); +insert into t1 values (-11.0),(-11),("-11"),(11.0),(11),("11"); +Warnings: +Warning 1264 Data truncated; out of range for column 'f' at row 1 +Warning 1264 Data truncated; out of range for column 'f' at row 2 +Warning 1264 Data truncated; out of range for column 'f' at row 3 +Warning 1264 Data truncated; out of range for column 'f' at row 4 +Warning 1264 Data truncated; out of range for column 'f' at row 5 +Warning 1264 Data truncated; out of range for column 'f' at row 6 +select * from t1; +f +-9.999 +-9.999 +-9.999 +9.999 +9.999 +9.999 +drop table if exists t1; +create table t1 (f double(4,3)); +insert into t1 values (-11.0),(-11),("-11"),(11.0),(11),("11"); +Warnings: +Warning 1264 Data truncated; out of range for column 'f' at row 1 +Warning 1264 Data truncated; out of range for column 'f' at row 2 +Warning 1264 Data truncated; out of range for column 'f' at row 3 +Warning 1264 Data truncated; out of range for column 'f' at row 4 +Warning 1264 Data truncated; out of range for column 'f' at row 5 +Warning 1264 Data truncated; out of range for column 'f' at row 6 +select * from t1; +f +-9.999 +-9.999 +-9.999 +9.999 +9.999 +9.999 +drop table if exists t1; diff --git a/mysql-test/t/type_float.test b/mysql-test/t/type_float.test index 26ac272c6d4..3fe3afa3fac 100644 --- a/mysql-test/t/type_float.test +++ b/mysql-test/t/type_float.test @@ -93,3 +93,13 @@ create table t1 (f float(54)); # Should give an error drop table if exists t1; --enable_warnings +# Ensure that maximum values as the result of number of decimals +# being specified in table schema are enforced (Bug #7361) +create table t1 (f float(4,3)); +insert into t1 values (-11.0),(-11),("-11"),(11.0),(11),("11"); +select * from t1; +drop table if exists t1; +create table t1 (f double(4,3)); +insert into t1 values (-11.0),(-11),("-11"),(11.0),(11),("11"); +select * from t1; +drop table if exists t1; diff --git a/sql/field.cc b/sql/field.cc index b27a319b00e..e2c11cc7372 100644 --- a/sql/field.cc +++ b/sql/field.cc @@ -2395,23 +2395,7 @@ int Field_float::store(double nr) int Field_float::store(longlong nr) { - int error= 0; - float j= (float) nr; - if (unsigned_flag && j < 0) - { - set_warning(MYSQL_ERROR::WARN_LEVEL_WARN, ER_WARN_DATA_OUT_OF_RANGE, 1); - j=0; - error= 1; - } -#ifdef WORDS_BIGENDIAN - if (table->db_low_byte_first) - { - float4store(ptr,j); - } - else -#endif - memcpy_fixed(ptr,(byte*) &j,sizeof(j)); - return error; + return store((double)nr); } @@ -2690,23 +2674,7 @@ int Field_double::store(double nr) int Field_double::store(longlong nr) { - double j= (double) nr; - int error= 0; - if (unsigned_flag && j < 0) - { - set_warning(MYSQL_ERROR::WARN_LEVEL_WARN, ER_WARN_DATA_OUT_OF_RANGE, 1); - error= 1; - j=0; - } -#ifdef WORDS_BIGENDIAN - if (table->db_low_byte_first) - { - float8store(ptr,j); - } - else -#endif - doublestore(ptr,j); - return error; + return store((double)nr); } From e167837a6325c388ecc09fb0ecbfbfac7d84a8a5 Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 7 Jan 2005 14:17:08 -0600 Subject: [PATCH 121/157] set_var.cc: Reorder variables to properly alphabetize SHOW VARIABLES output. sql/set_var.cc: Reorder variables to properly alphabetize SHOW VARIABLES output. --- sql/set_var.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sql/set_var.cc b/sql/set_var.cc index 082c55db188..2a5242ece7e 100644 --- a/sql/set_var.cc +++ b/sql/set_var.cc @@ -711,11 +711,11 @@ struct show_var_st init_vars[]= { {"innodb_fast_shutdown", (char*) &innobase_fast_shutdown, SHOW_MY_BOOL}, {"innodb_file_io_threads", (char*) &innobase_file_io_threads, SHOW_LONG }, {"innodb_file_per_table", (char*) &innobase_file_per_table, SHOW_MY_BOOL}, - {"innodb_locks_unsafe_for_binlog", (char*) &innobase_locks_unsafe_for_binlog, SHOW_MY_BOOL}, {"innodb_flush_log_at_trx_commit", (char*) &innobase_flush_log_at_trx_commit, SHOW_INT}, {"innodb_flush_method", (char*) &innobase_unix_file_flush_method, SHOW_CHAR_PTR}, {"innodb_force_recovery", (char*) &innobase_force_recovery, SHOW_LONG }, {"innodb_lock_wait_timeout", (char*) &innobase_lock_wait_timeout, SHOW_LONG }, + {"innodb_locks_unsafe_for_binlog", (char*) &innobase_locks_unsafe_for_binlog, SHOW_MY_BOOL}, {"innodb_log_arch_dir", (char*) &innobase_log_arch_dir, SHOW_CHAR_PTR}, {"innodb_log_archive", (char*) &innobase_log_archive, SHOW_MY_BOOL}, {"innodb_log_buffer_size", (char*) &innobase_log_buffer_size, SHOW_LONG }, @@ -724,10 +724,10 @@ struct show_var_st init_vars[]= { {"innodb_log_group_home_dir", (char*) &innobase_log_group_home_dir, SHOW_CHAR_PTR}, {sys_innodb_max_dirty_pages_pct.name, (char*) &sys_innodb_max_dirty_pages_pct, SHOW_SYS}, {sys_innodb_max_purge_lag.name, (char*) &sys_innodb_max_purge_lag, SHOW_SYS}, - {sys_innodb_table_locks.name, (char*) &sys_innodb_table_locks, SHOW_SYS}, {sys_innodb_max_purge_lag.name, (char*) &sys_innodb_max_purge_lag, SHOW_SYS}, {"innodb_mirrored_log_groups", (char*) &innobase_mirrored_log_groups, SHOW_LONG}, {"innodb_open_files", (char*) &innobase_open_files, SHOW_LONG }, + {sys_innodb_table_locks.name, (char*) &sys_innodb_table_locks, SHOW_SYS}, {"innodb_thread_concurrency", (char*) &innobase_thread_concurrency, SHOW_LONG }, #endif {sys_interactive_timeout.name,(char*) &sys_interactive_timeout, SHOW_SYS}, From 00c4dfec19aba6c40d06e24fd71976226c225ea8 Mon Sep 17 00:00:00 2001 From: unknown Date: Sat, 8 Jan 2005 05:32:47 +0100 Subject: [PATCH 122/157] Fix unportable 'tr' usage in libedit build process. (Bug #7669) cmd-line-utils/libedit/makelist.sh: Spell out the character range for braindead versions of tr (like /usr/xpg4/bin/tr on Sun Solaris 2.10) --- cmd-line-utils/libedit/makelist.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd-line-utils/libedit/makelist.sh b/cmd-line-utils/libedit/makelist.sh index fbce06fcc50..b2502d16ed1 100644 --- a/cmd-line-utils/libedit/makelist.sh +++ b/cmd-line-utils/libedit/makelist.sh @@ -145,7 +145,7 @@ case $FLAG in # -fh) cat $FILES | $AWK '/el_action_t/ { print $3 }' | \ - sort | tr '[a-z]' '[A-Z]' | $AWK ' + sort | tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ | $AWK ' BEGIN { printf("/* Automatically generated file, do not edit */\n"); printf("#ifndef _h_fcns_c\n#define _h_fcns_c\n"); From ce6de604c899167d930d01f8500bbd81d1f0e24b Mon Sep 17 00:00:00 2001 From: unknown Date: Sat, 8 Jan 2005 13:59:57 +0100 Subject: [PATCH 123/157] ndb - wl-1442 bug#7725 datetime ordering mysql-test/t/ndb_index_ordered.test: wl-1442 datetime ordering ndb/src/common/util/NdbSqlUtil.cpp: wl-1442 datetime ordering --- mysql-test/t/ndb_index_ordered.test | 29 +++++++++++++++++++++++++++++ ndb/src/common/util/NdbSqlUtil.cpp | 24 ++++++++++-------------- 2 files changed, 39 insertions(+), 14 deletions(-) diff --git a/mysql-test/t/ndb_index_ordered.test b/mysql-test/t/ndb_index_ordered.test index 53177511bc6..c5d3a83a3ab 100644 --- a/mysql-test/t/ndb_index_ordered.test +++ b/mysql-test/t/ndb_index_ordered.test @@ -172,3 +172,32 @@ SELECT s.SubscrID,l.SbclID FROM test1 s left JOIN test2 l ON l.SbcrID=s.SubscrID WHERE s.UsrID=224 order by 1, 2; drop table test1; drop table test2; + +# bug#7424 + bug#7725 + +create table t1 ( + pk int primary key, + dt datetime not null, + da date not null, + ye year not null, + ti time not null, + ts timestamp not null, + index(dt), + index(da), + index(ye), + index(ti), + index(ts) +) engine=ndb; + +insert into t1 (pk,dt,da,ye,ti) values + (1, '1901-05-05 23:00:59', '1901-05-05', '1901', '23:00:59'), + (2, '1955-12-31 00:00:00', '1955-12-31', '1955', '00:00:00'), + (3, '1999-06-06 06:06:06', '1999-06-06', '1999', '06:06:06'), + (4, '2001-01-01 10:11:11', '2001-01-01', '2001', '10:11:11'), + (5, '2005-01-31 23:59:59', '2005-01-31', '2005', '23:59:59'); + +# datetime +select count(*) from t1 use index (dt) where dt > '1900-01-01 00:00:00'; +select count(*) from t1 use index (dt) where dt > '1955-12-31 00:00:00'; +select count(*) from t1 use index (dt) where dt < '2001-01-01 10:11:11'; +select count(*) from t1 use index (dt) where dt < '2001-01-01 10:11:12'; diff --git a/ndb/src/common/util/NdbSqlUtil.cpp b/ndb/src/common/util/NdbSqlUtil.cpp index 5b2381df50a..8491fa3c4a0 100644 --- a/ndb/src/common/util/NdbSqlUtil.cpp +++ b/ndb/src/common/util/NdbSqlUtil.cpp @@ -469,21 +469,17 @@ int NdbSqlUtil::cmpDatetime(const void* info, const Uint32* p1, const Uint32* p2, Uint32 full, Uint32 size) { assert(full >= size && size > 0); - /* - * Datetime is CC YY MM DD hh mm ss \0 - * - * Not used via MySQL. - */ - union { const Uint32* p; const unsigned char* v; } u1, u2; - u1.p = p1; - u2.p = p2; - // no format check - int k = memcmp(u1.v, u2.v, 4); - if (k != 0) - return k < 0 ? -1 : +1; if (size >= 2) { - k = memcmp(u1.v + 4, u2.v + 4, 4); - return k < 0 ? -1 : k > 0 ? +1 : 0; + union { Uint32 p[2]; Int64 v; } u1, u2; + u1.p[0] = p1[0]; + u1.p[1] = p1[1]; + u2.p[0] = p2[0]; + u2.p[1] = p2[1]; + if (u1.v < u2.v) + return -1; + if (u1.v > u2.v) + return +1; + return 0; } return CmpUnknown; } From 2a3f285eb5a0c3156fc768f886e17d9cc7f1d195 Mon Sep 17 00:00:00 2001 From: unknown Date: Sat, 8 Jan 2005 15:18:24 +0100 Subject: [PATCH 124/157] ndb - wl-1442 updated ndb_index_ordered.result mysql-test/r/ndb_index_ordered.result: wl-1442 missed result file --- mysql-test/r/ndb_index_ordered.result | 31 +++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/mysql-test/r/ndb_index_ordered.result b/mysql-test/r/ndb_index_ordered.result index 50f904af750..a3eb5630131 100644 --- a/mysql-test/r/ndb_index_ordered.result +++ b/mysql-test/r/ndb_index_ordered.result @@ -310,3 +310,34 @@ SubscrID SbclID 3 NULL drop table test1; drop table test2; +create table t1 ( +pk int primary key, +dt datetime not null, +da date not null, +ye year not null, +ti time not null, +ts timestamp not null, +index(dt), +index(da), +index(ye), +index(ti), +index(ts) +) engine=ndb; +insert into t1 (pk,dt,da,ye,ti) values +(1, '1901-05-05 23:00:59', '1901-05-05', '1901', '23:00:59'), +(2, '1955-12-31 00:00:00', '1955-12-31', '1955', '00:00:00'), +(3, '1999-06-06 06:06:06', '1999-06-06', '1999', '06:06:06'), +(4, '2001-01-01 10:11:11', '2001-01-01', '2001', '10:11:11'), +(5, '2005-01-31 23:59:59', '2005-01-31', '2005', '23:59:59'); +select count(*) from t1 use index (dt) where dt > '1900-01-01 00:00:00'; +count(*) +5 +select count(*) from t1 use index (dt) where dt > '1955-12-31 00:00:00'; +count(*) +3 +select count(*) from t1 use index (dt) where dt < '2001-01-01 10:11:11'; +count(*) +3 +select count(*) from t1 use index (dt) where dt < '2001-01-01 10:11:12'; +count(*) +4 From 633ee9b09994333dd4ccdd85daa6aec4594d9346 Mon Sep 17 00:00:00 2001 From: unknown Date: Sat, 8 Jan 2005 16:57:51 +0100 Subject: [PATCH 125/157] ndb - wl-1442 fix Date ordering mysql-test/r/ndb_index_ordered.result: wl-1442 fix Date. reuses old unused Timespec type id mysql-test/t/ndb_index_ordered.test: wl-1442 fix Date. reuses old unused Timespec type id ndb/include/kernel/signaldata/DictTabInfo.hpp: wl-1442 fix Date. reuses old unused Timespec type id ndb/include/ndbapi/NdbDictionary.hpp: wl-1442 fix Date. reuses old unused Timespec type id ndb/include/util/NdbSqlUtil.hpp: wl-1442 fix Date. reuses old unused Timespec type id ndb/src/common/util/NdbSqlUtil.cpp: wl-1442 fix Date. reuses old unused Timespec type id ndb/src/ndbapi/NdbDictionary.cpp: wl-1442 fix Date. reuses old unused Timespec type id ndb/src/ndbapi/NdbDictionaryImpl.cpp: wl-1442 fix Date. reuses old unused Timespec type id ndb/test/include/NdbSchemaOp.hpp: wl-1442 fix Date. reuses old unused Timespec type id ndb/tools/restore/consumer.cpp: wl-1442 fix Date. reuses old unused Timespec type id sql/ha_ndbcluster.cc: wl-1442 fix Date. reuses old unused Timespec type id --- mysql-test/r/ndb_index_ordered.result | 66 ++++++++++++++----- mysql-test/t/ndb_index_ordered.test | 32 ++++++--- ndb/include/kernel/signaldata/DictTabInfo.hpp | 6 +- ndb/include/ndbapi/NdbDictionary.hpp | 2 +- ndb/include/util/NdbSqlUtil.hpp | 4 +- ndb/src/common/util/NdbSqlUtil.cpp | 52 +++++++-------- ndb/src/ndbapi/NdbDictionary.cpp | 4 +- ndb/src/ndbapi/NdbDictionaryImpl.cpp | 4 +- ndb/test/include/NdbSchemaOp.hpp | 2 +- ndb/tools/restore/consumer.cpp | 4 +- sql/ha_ndbcluster.cc | 9 ++- 11 files changed, 118 insertions(+), 67 deletions(-) diff --git a/mysql-test/r/ndb_index_ordered.result b/mysql-test/r/ndb_index_ordered.result index a3eb5630131..466523aafa7 100644 --- a/mysql-test/r/ndb_index_ordered.result +++ b/mysql-test/r/ndb_index_ordered.result @@ -325,19 +325,53 @@ index(ts) ) engine=ndb; insert into t1 (pk,dt,da,ye,ti) values (1, '1901-05-05 23:00:59', '1901-05-05', '1901', '23:00:59'), -(2, '1955-12-31 00:00:00', '1955-12-31', '1955', '00:00:00'), -(3, '1999-06-06 06:06:06', '1999-06-06', '1999', '06:06:06'), -(4, '2001-01-01 10:11:11', '2001-01-01', '2001', '10:11:11'), -(5, '2005-01-31 23:59:59', '2005-01-31', '2005', '23:59:59'); -select count(*) from t1 use index (dt) where dt > '1900-01-01 00:00:00'; -count(*) -5 -select count(*) from t1 use index (dt) where dt > '1955-12-31 00:00:00'; -count(*) -3 -select count(*) from t1 use index (dt) where dt < '2001-01-01 10:11:11'; -count(*) -3 -select count(*) from t1 use index (dt) where dt < '2001-01-01 10:11:12'; -count(*) -4 +(2, '1912-09-05 13:00:59', '1912-09-05', '1912', '13:00:59'), +(3, '1945-12-31 00:00:00', '1945-12-31', '1945', '00:00:00'), +(4, '1955-12-31 00:00:00', '1955-12-31', '1955', '00:00:00'), +(5, '1963-06-06 06:06:06', '1963-06-06', '1963', '06:06:06'), +(6, '1993-06-06 06:06:06', '1993-06-06', '1993', '06:06:06'), +(7, '2001-01-01 10:11:10', '2001-01-01', '2001', '10:11:10'), +(8, '2001-01-01 10:11:11', '2001-01-01', '2001', '10:11:11'), +(9, '2005-01-31 23:59:59', '2005-01-31', '2005', '23:59:59'); +select count(*)-9 from t1 use index (dt) where dt > '1900-01-01 00:00:00'; +count(*)-9 +0 +select count(*)-6 from t1 use index (dt) where dt >= '1955-12-31 00:00:00'; +count(*)-6 +0 +select count(*)-5 from t1 use index (dt) where dt > '1955-12-31 00:00:00'; +count(*)-5 +0 +select count(*)-5 from t1 use index (dt) where dt < '1970-03-03 22:22:22'; +count(*)-5 +0 +select count(*)-7 from t1 use index (dt) where dt < '2001-01-01 10:11:11'; +count(*)-7 +0 +select count(*)-8 from t1 use index (dt) where dt <= '2001-01-01 10:11:11'; +count(*)-8 +0 +select count(*)-9 from t1 use index (dt) where dt <= '2055-01-01 00:00:00'; +count(*)-9 +0 +select count(*)-9 from t1 use index (da) where da > '1900-01-01'; +count(*)-9 +0 +select count(*)-6 from t1 use index (da) where da >= '1955-12-31'; +count(*)-6 +0 +select count(*)-5 from t1 use index (da) where da > '1955-12-31'; +count(*)-5 +0 +select count(*)-5 from t1 use index (da) where da < '1970-03-03'; +count(*)-5 +0 +select count(*)-6 from t1 use index (da) where da < '2001-01-01'; +count(*)-6 +0 +select count(*)-8 from t1 use index (da) where da <= '2001-01-02'; +count(*)-8 +0 +select count(*)-9 from t1 use index (da) where da <= '2055-01-01'; +count(*)-9 +0 diff --git a/mysql-test/t/ndb_index_ordered.test b/mysql-test/t/ndb_index_ordered.test index c5d3a83a3ab..ae2f7db53fb 100644 --- a/mysql-test/t/ndb_index_ordered.test +++ b/mysql-test/t/ndb_index_ordered.test @@ -191,13 +191,29 @@ create table t1 ( insert into t1 (pk,dt,da,ye,ti) values (1, '1901-05-05 23:00:59', '1901-05-05', '1901', '23:00:59'), - (2, '1955-12-31 00:00:00', '1955-12-31', '1955', '00:00:00'), - (3, '1999-06-06 06:06:06', '1999-06-06', '1999', '06:06:06'), - (4, '2001-01-01 10:11:11', '2001-01-01', '2001', '10:11:11'), - (5, '2005-01-31 23:59:59', '2005-01-31', '2005', '23:59:59'); + (2, '1912-09-05 13:00:59', '1912-09-05', '1912', '13:00:59'), + (3, '1945-12-31 00:00:00', '1945-12-31', '1945', '00:00:00'), + (4, '1955-12-31 00:00:00', '1955-12-31', '1955', '00:00:00'), + (5, '1963-06-06 06:06:06', '1963-06-06', '1963', '06:06:06'), + (6, '1993-06-06 06:06:06', '1993-06-06', '1993', '06:06:06'), + (7, '2001-01-01 10:11:10', '2001-01-01', '2001', '10:11:10'), + (8, '2001-01-01 10:11:11', '2001-01-01', '2001', '10:11:11'), + (9, '2005-01-31 23:59:59', '2005-01-31', '2005', '23:59:59'); # datetime -select count(*) from t1 use index (dt) where dt > '1900-01-01 00:00:00'; -select count(*) from t1 use index (dt) where dt > '1955-12-31 00:00:00'; -select count(*) from t1 use index (dt) where dt < '2001-01-01 10:11:11'; -select count(*) from t1 use index (dt) where dt < '2001-01-01 10:11:12'; +select count(*)-9 from t1 use index (dt) where dt > '1900-01-01 00:00:00'; +select count(*)-6 from t1 use index (dt) where dt >= '1955-12-31 00:00:00'; +select count(*)-5 from t1 use index (dt) where dt > '1955-12-31 00:00:00'; +select count(*)-5 from t1 use index (dt) where dt < '1970-03-03 22:22:22'; +select count(*)-7 from t1 use index (dt) where dt < '2001-01-01 10:11:11'; +select count(*)-8 from t1 use index (dt) where dt <= '2001-01-01 10:11:11'; +select count(*)-9 from t1 use index (dt) where dt <= '2055-01-01 00:00:00'; + +# date +select count(*)-9 from t1 use index (da) where da > '1900-01-01'; +select count(*)-6 from t1 use index (da) where da >= '1955-12-31'; +select count(*)-5 from t1 use index (da) where da > '1955-12-31'; +select count(*)-5 from t1 use index (da) where da < '1970-03-03'; +select count(*)-6 from t1 use index (da) where da < '2001-01-01'; +select count(*)-8 from t1 use index (da) where da <= '2001-01-02'; +select count(*)-9 from t1 use index (da) where da <= '2055-01-01'; diff --git a/ndb/include/kernel/signaldata/DictTabInfo.hpp b/ndb/include/kernel/signaldata/DictTabInfo.hpp index ae78c023c2a..392b691ae1e 100644 --- a/ndb/include/kernel/signaldata/DictTabInfo.hpp +++ b/ndb/include/kernel/signaldata/DictTabInfo.hpp @@ -308,7 +308,7 @@ public: ExtBinary = NdbSqlUtil::Type::Binary, ExtVarbinary = NdbSqlUtil::Type::Varbinary, ExtDatetime = NdbSqlUtil::Type::Datetime, - ExtTimespec = NdbSqlUtil::Type::Timespec, + ExtDate = NdbSqlUtil::Type::Date, ExtBlob = NdbSqlUtil::Type::Blob, ExtText = NdbSqlUtil::Type::Text }; @@ -428,10 +428,10 @@ public: AttributeSize = DictTabInfo::an8Bit; AttributeArraySize = 8 * AttributeExtLength; return true; - case DictTabInfo::ExtTimespec: + case DictTabInfo::ExtDate: AttributeType = DictTabInfo::StringType; AttributeSize = DictTabInfo::an8Bit; - AttributeArraySize = 12 * AttributeExtLength; + AttributeArraySize = 3 * AttributeExtLength; return true; case DictTabInfo::ExtBlob: case DictTabInfo::ExtText: diff --git a/ndb/include/ndbapi/NdbDictionary.hpp b/ndb/include/ndbapi/NdbDictionary.hpp index f0c8a10f488..0ca3744a3d9 100644 --- a/ndb/include/ndbapi/NdbDictionary.hpp +++ b/ndb/include/ndbapi/NdbDictionary.hpp @@ -185,7 +185,7 @@ public: Binary, ///< Len Varbinary, ///< Max len Datetime, ///< Precision down to 1 sec (sizeof(Datetime) == 8 bytes ) - Timespec, ///< Precision down to 1 nsec(sizeof(Datetime) == 12 bytes ) + Date, ///< Precision down to 1 day(sizeof(Date) == 4 bytes ) Blob, ///< Binary large object (see NdbBlob) Text ///< Text blob }; diff --git a/ndb/include/util/NdbSqlUtil.hpp b/ndb/include/util/NdbSqlUtil.hpp index 3062d1e4e1b..47bb2157e1a 100644 --- a/ndb/include/util/NdbSqlUtil.hpp +++ b/ndb/include/util/NdbSqlUtil.hpp @@ -81,7 +81,7 @@ public: Binary, // Len Varbinary, // Max len Datetime, // Precision down to 1 sec (size 8 bytes) - Timespec, // Precision down to 1 nsec (size 12 bytes) + Date, // Precision down to 1 day (size 4 bytes) Blob, // Blob Text // Text blob }; @@ -132,7 +132,7 @@ private: static Cmp cmpBinary; static Cmp cmpVarbinary; static Cmp cmpDatetime; - static Cmp cmpTimespec; + static Cmp cmpDate; static Cmp cmpBlob; static Cmp cmpText; }; diff --git a/ndb/src/common/util/NdbSqlUtil.cpp b/ndb/src/common/util/NdbSqlUtil.cpp index 8491fa3c4a0..6f490c7f611 100644 --- a/ndb/src/common/util/NdbSqlUtil.cpp +++ b/ndb/src/common/util/NdbSqlUtil.cpp @@ -153,8 +153,8 @@ NdbSqlUtil::m_typeList[] = { cmpDatetime }, { - Type::Timespec, - cmpTimespec + Type::Date, + cmpDate }, { Type::Blob, @@ -485,36 +485,34 @@ NdbSqlUtil::cmpDatetime(const void* info, const Uint32* p1, const Uint32* p2, Ui } int -NdbSqlUtil::cmpTimespec(const void* info, const Uint32* p1, const Uint32* p2, Uint32 full, Uint32 size) +NdbSqlUtil::cmpDate(const void* info, const Uint32* p1, const Uint32* p2, Uint32 full, Uint32 size) { +#ifdef ndb_date_is_4_byte_native_int + assert(full >= size && size > 0); + union { Uint32 p[2]; Int32 v; } u1, u2; + u1.p[0] = p1[0]; + u2.p[0] = p2[0]; + if (u1.v < u2.v) + return -1; + if (u1.v > u2.v) + return +1; + return 0; +#else assert(full >= size && size > 0); - /* - * Timespec is CC YY MM DD hh mm ss \0 NN NN NN NN - * - * Not used via MySQL. - */ union { const Uint32* p; const unsigned char* v; } u1, u2; u1.p = p1; u2.p = p2; - // no format check - int k = memcmp(u1.v, u2.v, 4); - if (k != 0) - return k < 0 ? -1 : +1; - if (size >= 2) { - k = memcmp(u1.v + 4, u2.v + 4, 4); - if (k != 0) - return k < 0 ? -1 : +1; - if (size >= 3) { - Uint32 n1 = *(const Uint32*)(u1.v + 8); - Uint32 n2 = *(const Uint32*)(u2.v + 8); - if (n1 < n2) - return -1; - if (n2 > n1) - return +1; - return 0; - } - } - return CmpUnknown; + // from Field_newdate::val_int + Uint64 j1 = uint3korr(u1.v); + Uint64 j2 = uint3korr(u2.v); + j1 = (j1 % 32L)+(j1 / 32L % 16L)*100L + (j1/(16L*32L))*10000L; + j2 = (j2 % 32L)+(j2 / 32L % 16L)*100L + (j2/(16L*32L))*10000L; + if (j1 < j2) + return -1; + if (j1 > j2) + return +1; + return 0; +#endif } int diff --git a/ndb/src/ndbapi/NdbDictionary.cpp b/ndb/src/ndbapi/NdbDictionary.cpp index f88bbc907a6..b47f7d2c15c 100644 --- a/ndb/src/ndbapi/NdbDictionary.cpp +++ b/ndb/src/ndbapi/NdbDictionary.cpp @@ -936,8 +936,8 @@ operator<<(NdbOut& out, const NdbDictionary::Column& col) case NdbDictionary::Column::Datetime: out << "Datetime"; break; - case NdbDictionary::Column::Timespec: - out << "Timespec"; + case NdbDictionary::Column::Date: + out << "Date"; break; case NdbDictionary::Column::Blob: out << "Blob(" << col.getInlineSize() << "," << col.getPartSize() diff --git a/ndb/src/ndbapi/NdbDictionaryImpl.cpp b/ndb/src/ndbapi/NdbDictionaryImpl.cpp index 7a293463c94..195fdce7e3f 100644 --- a/ndb/src/ndbapi/NdbDictionaryImpl.cpp +++ b/ndb/src/ndbapi/NdbDictionaryImpl.cpp @@ -130,7 +130,7 @@ NdbColumnImpl::init(Type t) case Binary: case Varbinary: case Datetime: - case Timespec: + case Date: m_precision = 0; m_scale = 0; m_length = 1; @@ -1174,7 +1174,7 @@ columnTypeMapping[] = { { DictTabInfo::ExtBinary, NdbDictionary::Column::Binary }, { DictTabInfo::ExtVarbinary, NdbDictionary::Column::Varbinary }, { DictTabInfo::ExtDatetime, NdbDictionary::Column::Datetime }, - { DictTabInfo::ExtTimespec, NdbDictionary::Column::Timespec }, + { DictTabInfo::ExtDate, NdbDictionary::Column::Date }, { DictTabInfo::ExtBlob, NdbDictionary::Column::Blob }, { DictTabInfo::ExtText, NdbDictionary::Column::Text }, { -1, -1 } diff --git a/ndb/test/include/NdbSchemaOp.hpp b/ndb/test/include/NdbSchemaOp.hpp index ac859f8abe8..b54c011ae8b 100644 --- a/ndb/test/include/NdbSchemaOp.hpp +++ b/ndb/test/include/NdbSchemaOp.hpp @@ -576,7 +576,7 @@ convertColumnTypeToAttrType(NdbDictionary::Column::Type _type) case NdbDictionary::Column::Varbinary: return String; case NdbDictionary::Column::Datetime: - case NdbDictionary::Column::Timespec: + case NdbDictionary::Column::Date: case NdbDictionary::Column::Undefined: default: return NoAttrTypeDef; diff --git a/ndb/tools/restore/consumer.cpp b/ndb/tools/restore/consumer.cpp index e94c31b2666..dc0567803dd 100644 --- a/ndb/tools/restore/consumer.cpp +++ b/ndb/tools/restore/consumer.cpp @@ -71,8 +71,8 @@ BackupConsumer::create_table_string(const TableS & table, case NdbDictionary::Column::Datetime: pos += sprintf(buf+pos, "%s", "datetime"); break; - case NdbDictionary::Column::Timespec: - pos += sprintf(buf+pos, "%s", "time"); + case NdbDictionary::Column::Date: + pos += sprintf(buf+pos, "%s", "date"); break; case NdbDictionary::Column::Undefined: // pos += sprintf(buf+pos, "%s", "varchar binary"); diff --git a/sql/ha_ndbcluster.cc b/sql/ha_ndbcluster.cc index 3c6cd83d5dc..e181b421e29 100644 --- a/sql/ha_ndbcluster.cc +++ b/sql/ha_ndbcluster.cc @@ -2259,9 +2259,9 @@ void ha_ndbcluster::print_results() fprintf(DBUG_FILE, "Datetime\t%llu", value); break; } - case NdbDictionary::Column::Timespec: { + case NdbDictionary::Column::Date: { Uint64 value= (Uint64) *field->ptr; - fprintf(DBUG_FILE, "Timespec\t%llu", value); + fprintf(DBUG_FILE, "Date\t%llu", value); break; } case NdbDictionary::Column::Blob: { @@ -3323,8 +3323,11 @@ static int create_ndb_column(NDBCOL &col, col.setType(NDBCOL::Datetime); col.setLength(1); break; - case MYSQL_TYPE_DATE: case MYSQL_TYPE_NEWDATE: + col.setType(NDBCOL::Date); + col.setLength(1); + break; + case MYSQL_TYPE_DATE: // ? case MYSQL_TYPE_TIME: case MYSQL_TYPE_YEAR: col.setType(NDBCOL::Char); From 3186b340da79252758a4b1c47ea0a3b8b1b0d2a8 Mon Sep 17 00:00:00 2001 From: unknown Date: Sat, 8 Jan 2005 19:28:44 +0100 Subject: [PATCH 126/157] ndb - wl-1442 fix Time ordering mysql-test/r/ndb_index_ordered.result: wl-1442 fix Time. adds new type id 25 mysql-test/t/ndb_index_ordered.test: wl-1442 fix Time. adds new type id 25 ndb/include/kernel/signaldata/DictTabInfo.hpp: wl-1442 fix Time. adds new type id 25 ndb/include/ndbapi/NdbDictionary.hpp: wl-1442 fix Time. adds new type id 25 ndb/include/util/NdbSqlUtil.hpp: wl-1442 fix Time. adds new type id 25 ndb/src/common/util/NdbSqlUtil.cpp: wl-1442 fix Time. adds new type id 25 ndb/src/ndbapi/NdbDictionary.cpp: wl-1442 fix Time. adds new type id 25 ndb/src/ndbapi/NdbDictionaryImpl.cpp: wl-1442 fix Time. adds new type id 25 ndb/test/include/NdbSchemaOp.hpp: wl-1442 fix Time. adds new type id 25 ndb/tools/restore/consumer.cpp: wl-1442 fix Time. adds new type id 25 sql/ha_ndbcluster.cc: wl-1442 fix Time. adds new type id 25 --- mysql-test/r/ndb_index_ordered.result | 45 +++++++++++++++++++ mysql-test/t/ndb_index_ordered.test | 19 ++++++++ ndb/include/kernel/signaldata/DictTabInfo.hpp | 8 +++- ndb/include/ndbapi/NdbDictionary.hpp | 3 +- ndb/include/util/NdbSqlUtil.hpp | 4 +- ndb/src/common/util/NdbSqlUtil.cpp | 33 ++++++++++++++ ndb/src/ndbapi/NdbDictionary.cpp | 3 ++ ndb/src/ndbapi/NdbDictionaryImpl.cpp | 7 +++ ndb/test/include/NdbSchemaOp.hpp | 1 + ndb/tools/restore/consumer.cpp | 3 ++ sql/ha_ndbcluster.cc | 10 ++++- 11 files changed, 132 insertions(+), 4 deletions(-) diff --git a/mysql-test/r/ndb_index_ordered.result b/mysql-test/r/ndb_index_ordered.result index 466523aafa7..75a5e42732b 100644 --- a/mysql-test/r/ndb_index_ordered.result +++ b/mysql-test/r/ndb_index_ordered.result @@ -375,3 +375,48 @@ count(*)-8 select count(*)-9 from t1 use index (da) where da <= '2055-01-01'; count(*)-9 0 +select count(*)-9 from t1 use index (ye) where ye > '1900'; +count(*)-9 +0 +select count(*)-6 from t1 use index (ye) where ye >= '1955'; +count(*)-6 +0 +select count(*)-5 from t1 use index (ye) where ye > '1955'; +count(*)-5 +0 +select count(*)-5 from t1 use index (ye) where ye < '1970'; +count(*)-5 +0 +select count(*)-6 from t1 use index (ye) where ye < '2001'; +count(*)-6 +0 +select count(*)-8 from t1 use index (ye) where ye <= '2001'; +count(*)-8 +0 +select count(*)-9 from t1 use index (ye) where ye <= '2055'; +count(*)-9 +0 +select count(*)-9 from t1 use index (ti) where ti >= '00:00:00'; +count(*)-9 +0 +select count(*)-7 from t1 use index (ti) where ti > '00:00:00'; +count(*)-7 +0 +select count(*)-7 from t1 use index (ti) where ti > '05:05:05'; +count(*)-7 +0 +select count(*)-5 from t1 use index (ti) where ti > '06:06:06'; +count(*)-5 +0 +select count(*)-5 from t1 use index (ti) where ti < '10:11:11'; +count(*)-5 +0 +select count(*)-6 from t1 use index (ti) where ti <= '10:11:11'; +count(*)-6 +0 +select count(*)-8 from t1 use index (ti) where ti < '23:59:59'; +count(*)-8 +0 +select count(*)-9 from t1 use index (ti) where ti <= '23:59:59'; +count(*)-9 +0 diff --git a/mysql-test/t/ndb_index_ordered.test b/mysql-test/t/ndb_index_ordered.test index ae2f7db53fb..71635159604 100644 --- a/mysql-test/t/ndb_index_ordered.test +++ b/mysql-test/t/ndb_index_ordered.test @@ -217,3 +217,22 @@ select count(*)-5 from t1 use index (da) where da < '1970-03-03'; select count(*)-6 from t1 use index (da) where da < '2001-01-01'; select count(*)-8 from t1 use index (da) where da <= '2001-01-02'; select count(*)-9 from t1 use index (da) where da <= '2055-01-01'; + +# year +select count(*)-9 from t1 use index (ye) where ye > '1900'; +select count(*)-6 from t1 use index (ye) where ye >= '1955'; +select count(*)-5 from t1 use index (ye) where ye > '1955'; +select count(*)-5 from t1 use index (ye) where ye < '1970'; +select count(*)-6 from t1 use index (ye) where ye < '2001'; +select count(*)-8 from t1 use index (ye) where ye <= '2001'; +select count(*)-9 from t1 use index (ye) where ye <= '2055'; + +# time +select count(*)-9 from t1 use index (ti) where ti >= '00:00:00'; +select count(*)-7 from t1 use index (ti) where ti > '00:00:00'; +select count(*)-7 from t1 use index (ti) where ti > '05:05:05'; +select count(*)-5 from t1 use index (ti) where ti > '06:06:06'; +select count(*)-5 from t1 use index (ti) where ti < '10:11:11'; +select count(*)-6 from t1 use index (ti) where ti <= '10:11:11'; +select count(*)-8 from t1 use index (ti) where ti < '23:59:59'; +select count(*)-9 from t1 use index (ti) where ti <= '23:59:59'; diff --git a/ndb/include/kernel/signaldata/DictTabInfo.hpp b/ndb/include/kernel/signaldata/DictTabInfo.hpp index 392b691ae1e..3e73ae67ebe 100644 --- a/ndb/include/kernel/signaldata/DictTabInfo.hpp +++ b/ndb/include/kernel/signaldata/DictTabInfo.hpp @@ -310,7 +310,8 @@ public: ExtDatetime = NdbSqlUtil::Type::Datetime, ExtDate = NdbSqlUtil::Type::Date, ExtBlob = NdbSqlUtil::Type::Blob, - ExtText = NdbSqlUtil::Type::Text + ExtText = NdbSqlUtil::Type::Text, + ExtTime = NdbSqlUtil::Type::Time }; // Attribute data interpretation @@ -440,6 +441,11 @@ public: // head + inline part [ attr precision lower half ] AttributeArraySize = (NDB_BLOB_HEAD_SIZE << 2) + (AttributeExtPrecision & 0xFFFF); return true; + case DictTabInfo::ExtTime: + AttributeType = DictTabInfo::StringType; + AttributeSize = DictTabInfo::an8Bit; + AttributeArraySize = 3 * AttributeExtLength; + return true; }; return false; } diff --git a/ndb/include/ndbapi/NdbDictionary.hpp b/ndb/include/ndbapi/NdbDictionary.hpp index 0ca3744a3d9..454b267d1b0 100644 --- a/ndb/include/ndbapi/NdbDictionary.hpp +++ b/ndb/include/ndbapi/NdbDictionary.hpp @@ -187,7 +187,8 @@ public: Datetime, ///< Precision down to 1 sec (sizeof(Datetime) == 8 bytes ) Date, ///< Precision down to 1 day(sizeof(Date) == 4 bytes ) Blob, ///< Binary large object (see NdbBlob) - Text ///< Text blob + Text, ///< Text blob + Time = 25 ///< Time without date }; /** diff --git a/ndb/include/util/NdbSqlUtil.hpp b/ndb/include/util/NdbSqlUtil.hpp index 47bb2157e1a..10024d9b616 100644 --- a/ndb/include/util/NdbSqlUtil.hpp +++ b/ndb/include/util/NdbSqlUtil.hpp @@ -83,7 +83,8 @@ public: Datetime, // Precision down to 1 sec (size 8 bytes) Date, // Precision down to 1 day (size 4 bytes) Blob, // Blob - Text // Text blob + Text, // Text blob + Time = 25 // Time without date }; Enum m_typeId; Cmp* m_cmp; // comparison method @@ -135,6 +136,7 @@ private: static Cmp cmpDate; static Cmp cmpBlob; static Cmp cmpText; + static Cmp cmpTime; }; #endif diff --git a/ndb/src/common/util/NdbSqlUtil.cpp b/ndb/src/common/util/NdbSqlUtil.cpp index 6f490c7f611..233698ae52b 100644 --- a/ndb/src/common/util/NdbSqlUtil.cpp +++ b/ndb/src/common/util/NdbSqlUtil.cpp @@ -163,6 +163,22 @@ NdbSqlUtil::m_typeList[] = { { Type::Text, cmpText + }, + { + Type::Undefined, // 5.0 Bit + NULL + }, + { + Type::Undefined, // 5.0 Longvarchar + NULL + }, + { + Type::Undefined, // 5.0 Longvarbinary + NULL + }, + { + Type::Time, + cmpTime } }; @@ -559,6 +575,23 @@ NdbSqlUtil::cmpText(const void* info, const Uint32* p1, const Uint32* p2, Uint32 return CmpUnknown; } +int +NdbSqlUtil::cmpTime(const void* info, const Uint32* p1, const Uint32* p2, Uint32 full, Uint32 size) +{ + assert(full >= size && size > 0); + union { const Uint32* p; const unsigned char* v; } u1, u2; + u1.p = p1; + u2.p = p2; + // from Field_time::val_int + Int32 j1 = sint3korr(u1.v); + Int32 j2 = sint3korr(u2.v); + if (j1 < j2) + return -1; + if (j1 > j2) + return +1; + return 0; +} + // check charset bool diff --git a/ndb/src/ndbapi/NdbDictionary.cpp b/ndb/src/ndbapi/NdbDictionary.cpp index b47f7d2c15c..0508d8bf277 100644 --- a/ndb/src/ndbapi/NdbDictionary.cpp +++ b/ndb/src/ndbapi/NdbDictionary.cpp @@ -947,6 +947,9 @@ operator<<(NdbOut& out, const NdbDictionary::Column& col) out << "Text(" << col.getInlineSize() << "," << col.getPartSize() << ";" << col.getStripeSize() << ";" << csname << ")"; break; + case NdbDictionary::Column::Time: + out << "Time"; + break; case NdbDictionary::Column::Undefined: out << "Undefined"; break; diff --git a/ndb/src/ndbapi/NdbDictionaryImpl.cpp b/ndb/src/ndbapi/NdbDictionaryImpl.cpp index 195fdce7e3f..59474943f3b 100644 --- a/ndb/src/ndbapi/NdbDictionaryImpl.cpp +++ b/ndb/src/ndbapi/NdbDictionaryImpl.cpp @@ -148,6 +148,12 @@ NdbColumnImpl::init(Type t) m_length = 4; m_cs = default_cs; break; + case Time: + m_precision = 0; + m_scale = 0; + m_length = 1; + m_cs = NULL; + break; case Undefined: assert(false); break; @@ -1177,6 +1183,7 @@ columnTypeMapping[] = { { DictTabInfo::ExtDate, NdbDictionary::Column::Date }, { DictTabInfo::ExtBlob, NdbDictionary::Column::Blob }, { DictTabInfo::ExtText, NdbDictionary::Column::Text }, + { DictTabInfo::ExtTime, NdbDictionary::Column::Time }, { -1, -1 } }; diff --git a/ndb/test/include/NdbSchemaOp.hpp b/ndb/test/include/NdbSchemaOp.hpp index b54c011ae8b..e2fb4015b88 100644 --- a/ndb/test/include/NdbSchemaOp.hpp +++ b/ndb/test/include/NdbSchemaOp.hpp @@ -577,6 +577,7 @@ convertColumnTypeToAttrType(NdbDictionary::Column::Type _type) return String; case NdbDictionary::Column::Datetime: case NdbDictionary::Column::Date: + case NdbDictionary::Column::Time: case NdbDictionary::Column::Undefined: default: return NoAttrTypeDef; diff --git a/ndb/tools/restore/consumer.cpp b/ndb/tools/restore/consumer.cpp index dc0567803dd..4d228230423 100644 --- a/ndb/tools/restore/consumer.cpp +++ b/ndb/tools/restore/consumer.cpp @@ -74,6 +74,9 @@ BackupConsumer::create_table_string(const TableS & table, case NdbDictionary::Column::Date: pos += sprintf(buf+pos, "%s", "date"); break; + case NdbDictionary::Column::Time: + pos += sprintf(buf+pos, "%s", "time"); + break; case NdbDictionary::Column::Undefined: // pos += sprintf(buf+pos, "%s", "varchar binary"); return -1; diff --git a/sql/ha_ndbcluster.cc b/sql/ha_ndbcluster.cc index e181b421e29..e4c45490050 100644 --- a/sql/ha_ndbcluster.cc +++ b/sql/ha_ndbcluster.cc @@ -2264,6 +2264,11 @@ void ha_ndbcluster::print_results() fprintf(DBUG_FILE, "Date\t%llu", value); break; } + case NdbDictionary::Column::Time: { + Uint64 value= (Uint64) *field->ptr; + fprintf(DBUG_FILE, "Time\t%llu", value); + break; + } case NdbDictionary::Column::Blob: { Uint64 len= 0; ndb_blob->getLength(len); @@ -3327,8 +3332,11 @@ static int create_ndb_column(NDBCOL &col, col.setType(NDBCOL::Date); col.setLength(1); break; - case MYSQL_TYPE_DATE: // ? case MYSQL_TYPE_TIME: + col.setType(NDBCOL::Time); + col.setLength(1); + break; + case MYSQL_TYPE_DATE: // ? case MYSQL_TYPE_YEAR: col.setType(NDBCOL::Char); col.setLength(field->pack_length()); From 4c8d52aa80ce2a2131783bc2df5b02f21baa1c96 Mon Sep 17 00:00:00 2001 From: unknown Date: Sat, 8 Jan 2005 21:25:31 +0100 Subject: [PATCH 127/157] few harmless warnings from automated code-checking tools fixed client/mysql.cc: few harmless warnings from automated code-checking tools fixed cleanup --- client/completion_hash.cc | 3 ++- client/mysql.cc | 9 ++++++--- cmd-line-utils/libedit/parse.c | 3 ++- pstack/pstack.c | 2 +- 4 files changed, 11 insertions(+), 6 deletions(-) diff --git a/client/completion_hash.cc b/client/completion_hash.cc index 536e7f9373a..7a3b363c93c 100644 --- a/client/completion_hash.cc +++ b/client/completion_hash.cc @@ -79,7 +79,8 @@ int completion_hash_update(HashTable *ht, char *arKey, uint nKeyLength, if (!memcmp(p->arKey, arKey, nKeyLength)) { entry *n; - n = (entry *) alloc_root(&ht->mem_root,sizeof(entry)); + if (!(n = (entry *) alloc_root(&ht->mem_root,sizeof(entry)))) + return FAILURE; n->pNext = p->pData; n->str = str; p->pData = n; diff --git a/client/mysql.cc b/client/mysql.cc index 0ea0f10f5d7..bfa827a6e95 100644 --- a/client/mysql.cc +++ b/client/mysql.cc @@ -1502,7 +1502,10 @@ You can turn off this feature to get a quicker startup with -A\n\n"); if (!(field_names[i] = (char **) alloc_root(&hash_mem_root, sizeof(char *) * (num_fields*2+1)))) - break; + { + mysql_free_result(fields); + break; + } field_names[i][num_fields*2]= '\0'; j=0; while ((sql_field=mysql_fetch_field(fields))) @@ -2077,10 +2080,10 @@ print_table_data_html(MYSQL_RES *result) } while ((cur = mysql_fetch_row(result))) { + ulong *lengths=mysql_fetch_lengths(result); (void) tee_fputs("", PAGER); for (uint i=0; i < mysql_num_fields(result); i++) { - ulong *lengths=mysql_fetch_lengths(result); (void) tee_fputs("", PAGER); @@ -2106,10 +2109,10 @@ print_table_data_xml(MYSQL_RES *result) fields = mysql_fetch_fields(result); while ((cur = mysql_fetch_row(result))) { + ulong *lengths=mysql_fetch_lengths(result); (void) tee_fputs("\n \n", PAGER); for (uint i=0; i < mysql_num_fields(result); i++) { - ulong *lengths=mysql_fetch_lengths(result); tee_fprintf(PAGER, "\t<%s>", (fields[i].name ? (fields[i].name[0] ? fields[i].name : "   ") : "NULL")); diff --git a/cmd-line-utils/libedit/parse.c b/cmd-line-utils/libedit/parse.c index b113353d464..d09b890c1ab 100644 --- a/cmd-line-utils/libedit/parse.c +++ b/cmd-line-utils/libedit/parse.c @@ -87,7 +87,8 @@ parse_line(EditLine *el, const char *line) int argc; Tokenizer *tok; - tok = tok_init(NULL); + if (!(tok = tok_init(NULL))) + return -1; tok_line(tok, line, &argc, &argv); argc = el_parse(el, argc, argv); tok_end(tok); diff --git a/pstack/pstack.c b/pstack/pstack.c index 75869686e35..4cdd80d68b5 100644 --- a/pstack/pstack.c +++ b/pstack/pstack.c @@ -1663,7 +1663,7 @@ pr_tag_type (p, name, id, kind) { struct pr_handle *info = (struct pr_handle *) p; const char *t, *tag; - char idbuf[20]; + char idbuf[30]; switch (kind) { From fdadfe515f0dfd28c123433d38b19f04d2816b40 Mon Sep 17 00:00:00 2001 From: unknown Date: Sun, 9 Jan 2005 02:19:42 +0100 Subject: [PATCH 128/157] Replace all sprintf() calls with my_snprintf() in client.c. All of the format strings (in all languages) already included field limits on the specifiers, so this is just protection against future mistakes. (Bug #7556) sql-common/client.c: Replace all sprintf() calls with my_snprintf() --- sql-common/client.c | 60 ++++++++++++++++++++++++++++----------------- 1 file changed, 38 insertions(+), 22 deletions(-) diff --git a/sql-common/client.c b/sql-common/client.c index b6813ee4cfc..7264605b247 100644 --- a/sql-common/client.c +++ b/sql-common/client.c @@ -321,8 +321,9 @@ HANDLE create_named_pipe(NET *net, uint connect_timeout, char **arg_host, { net->last_errno=CR_NAMEDPIPEOPEN_ERROR; strmov(net->sqlstate, unknown_sqlstate); - sprintf(net->last_error,ER(net->last_errno),host, unix_socket, - (ulong) GetLastError()); + my_snprintf(net->last_error, sizeof(net->last_error)-1, + ER(net->last_errno), host, unix_socket, + (ulong) GetLastError()); return INVALID_HANDLE_VALUE; } /* wait for for an other instance */ @@ -330,8 +331,9 @@ HANDLE create_named_pipe(NET *net, uint connect_timeout, char **arg_host, { net->last_errno=CR_NAMEDPIPEWAIT_ERROR; strmov(net->sqlstate, unknown_sqlstate); - sprintf(net->last_error,ER(net->last_errno),host, unix_socket, - (ulong) GetLastError()); + my_snprintf(net->last_error, sizeof(net->last_error)-1, + ER(net->last_errno), host, unix_socket, + (ulong) GetLastError()); return INVALID_HANDLE_VALUE; } } @@ -339,8 +341,9 @@ HANDLE create_named_pipe(NET *net, uint connect_timeout, char **arg_host, { net->last_errno=CR_NAMEDPIPEOPEN_ERROR; strmov(net->sqlstate, unknown_sqlstate); - sprintf(net->last_error,ER(net->last_errno),host, unix_socket, - (ulong) GetLastError()); + my_snprintf(net->last_error, sizeof(net->last_error)-1, + ER(net->last_errno), host, unix_socket, + (ulong) GetLastError()); return INVALID_HANDLE_VALUE; } dwMode = PIPE_READMODE_BYTE | PIPE_WAIT; @@ -349,8 +352,9 @@ HANDLE create_named_pipe(NET *net, uint connect_timeout, char **arg_host, CloseHandle( hPipe ); net->last_errno=CR_NAMEDPIPESETSTATE_ERROR; strmov(net->sqlstate, unknown_sqlstate); - sprintf(net->last_error,ER(net->last_errno),host, unix_socket, - (ulong) GetLastError()); + my_snprintf(net->last_error, sizeof(net->last_error)-1, + ER(net->last_errno),host, unix_socket, + (ulong) GetLastError()); return INVALID_HANDLE_VALUE; } *arg_host=host ; *arg_unix_socket=unix_socket; /* connect arg */ @@ -563,9 +567,11 @@ err: net->last_errno=error_allow; strmov(net->sqlstate, unknown_sqlstate); if (error_allow == CR_SHARED_MEMORY_EVENT_ERROR) - sprintf(net->last_error,ER(net->last_errno),suffix_pos,error_code); + my_snprintf(net->last_error,sizeof(net->last_error)-1, + ER(net->last_errno),suffix_pos,error_code); else - sprintf(net->last_error,ER(net->last_errno),error_code); + my_snprintf(net->last_error,sizeof(net->last_error)-1, + ER(net->last_errno),error_code); return(INVALID_HANDLE_VALUE); } return(handle_map); @@ -794,7 +800,8 @@ static int check_license(MYSQL *mysql) if (net->last_errno == ER_UNKNOWN_SYSTEM_VARIABLE) { net->last_errno= CR_WRONG_LICENSE; - sprintf(net->last_error, ER(net->last_errno), required_license); + my_snprintf(net->last_error, sizeof(net->last_error)-1, + ER(net->last_errno), required_license); } return 1; } @@ -811,7 +818,8 @@ static int check_license(MYSQL *mysql) strncmp(row[0], required_license, sizeof(required_license)))) { net->last_errno= CR_WRONG_LICENSE; - sprintf(net->last_error, ER(net->last_errno), required_license); + my_snprintf(net->last_error, sizeof(net->last_error)-1, + ER(net->last_errno), required_license); } mysql_free_result(res); return net->last_errno; @@ -1628,7 +1636,8 @@ CLI_MYSQL_REAL_CONNECT(MYSQL *mysql,const char *host, const char *user, sock=0; unix_socket = 0; host=mysql->options.shared_memory_base_name; - sprintf(host_info=buff, ER(CR_SHARED_MEMORY_CONNECTION), host); + my_snprintf(host_info=buff, sizeof(buff)-1, + ER(CR_SHARED_MEMORY_CONNECTION), host); } } #endif /* HAVE_SMEM */ @@ -1648,7 +1657,8 @@ CLI_MYSQL_REAL_CONNECT(MYSQL *mysql,const char *host, const char *user, { net->last_errno=CR_SOCKET_CREATE_ERROR; strmov(net->sqlstate, unknown_sqlstate); - sprintf(net->last_error,ER(net->last_errno),socket_errno); + my_snprintf(net->last_error,sizeof(net->last_error)-1, + ER(net->last_errno),socket_errno); goto error; } net->vio = vio_new(sock, VIO_TYPE_SOCKET, TRUE); @@ -1662,7 +1672,8 @@ CLI_MYSQL_REAL_CONNECT(MYSQL *mysql,const char *host, const char *user, socket_errno)); net->last_errno=CR_CONNECTION_ERROR; strmov(net->sqlstate, unknown_sqlstate); - sprintf(net->last_error,ER(net->last_errno),unix_socket,socket_errno); + my_snprintf(net->last_error,sizeof(net->last_error)-1, + ER(net->last_errno),unix_socket,socket_errno); goto error; } mysql->options.protocol=MYSQL_PROTOCOL_SOCKET; @@ -1692,7 +1703,8 @@ CLI_MYSQL_REAL_CONNECT(MYSQL *mysql,const char *host, const char *user, else { net->vio=vio_new_win32pipe(hPipe); - sprintf(host_info=buff, ER(CR_NAMEDPIPE_CONNECTION), unix_socket); + my_snprintf(host_info=buff, sizeof(buff)-1, + ER(CR_NAMEDPIPE_CONNECTION), unix_socket); } } #endif @@ -1705,7 +1717,7 @@ CLI_MYSQL_REAL_CONNECT(MYSQL *mysql,const char *host, const char *user, port=mysql_port; if (!host) host=LOCAL_HOST; - sprintf(host_info=buff,ER(CR_TCP_CONNECTION),host); + my_snprintf(host_info=buff,sizeof(buff)-1,ER(CR_TCP_CONNECTION),host); DBUG_PRINT("info",("Server name: '%s'. TCP sock: %d", host,port)); #ifdef MYSQL_SERVER thr_alarm_init(&alarmed); @@ -1720,7 +1732,8 @@ CLI_MYSQL_REAL_CONNECT(MYSQL *mysql,const char *host, const char *user, { net->last_errno=CR_IPSOCK_ERROR; strmov(net->sqlstate, unknown_sqlstate); - sprintf(net->last_error,ER(net->last_errno),socket_errno); + my_snprintf(net->last_error,sizeof(net->last_error)-1, + ER(net->last_errno),socket_errno); goto error; } net->vio = vio_new(sock,VIO_TYPE_TCPIP,FALSE); @@ -1747,7 +1760,8 @@ CLI_MYSQL_REAL_CONNECT(MYSQL *mysql,const char *host, const char *user, my_gethostbyname_r_free(); net->last_errno=CR_UNKNOWN_HOST; strmov(net->sqlstate, unknown_sqlstate); - sprintf(net->last_error, ER(CR_UNKNOWN_HOST), host, tmp_errno); + my_snprintf(net->last_error, sizeof(net->last_error)-1, + ER(CR_UNKNOWN_HOST), host, tmp_errno); goto error; } memcpy(&sock_addr.sin_addr, hp->h_addr, @@ -1762,7 +1776,8 @@ CLI_MYSQL_REAL_CONNECT(MYSQL *mysql,const char *host, const char *user, host)); net->last_errno= CR_CONN_HOST_ERROR; strmov(net->sqlstate, unknown_sqlstate); - sprintf(net->last_error ,ER(CR_CONN_HOST_ERROR), host, socket_errno); + my_snprintf(net->last_error, sizeof(net->last_error)-1, + ER(CR_CONN_HOST_ERROR), host, socket_errno); goto error; } } @@ -1815,8 +1830,9 @@ CLI_MYSQL_REAL_CONNECT(MYSQL *mysql,const char *host, const char *user, { strmov(net->sqlstate, unknown_sqlstate); net->last_errno= CR_VERSION_ERROR; - sprintf(net->last_error, ER(CR_VERSION_ERROR), mysql->protocol_version, - PROTOCOL_VERSION); + my_snprintf(net->last_error, sizeof(net->last_error)-1, + ER(CR_VERSION_ERROR), mysql->protocol_version, + PROTOCOL_VERSION); goto error; } end=strend((char*) net->read_pos+1); From f8f7888b5ce63d363907d3ddb66b9900af92cd10 Mon Sep 17 00:00:00 2001 From: unknown Date: Sat, 8 Jan 2005 19:43:15 -0600 Subject: [PATCH 129/157] set_var.cc: Whack duplicate variable line. (Affects SHOW VARIABLES.) sql/set_var.cc: Whack duplicate variable line. (Affects SHOW VARIABLES.) --- sql/set_var.cc | 1 - 1 file changed, 1 deletion(-) diff --git a/sql/set_var.cc b/sql/set_var.cc index 2a5242ece7e..e44ac742abe 100644 --- a/sql/set_var.cc +++ b/sql/set_var.cc @@ -724,7 +724,6 @@ struct show_var_st init_vars[]= { {"innodb_log_group_home_dir", (char*) &innobase_log_group_home_dir, SHOW_CHAR_PTR}, {sys_innodb_max_dirty_pages_pct.name, (char*) &sys_innodb_max_dirty_pages_pct, SHOW_SYS}, {sys_innodb_max_purge_lag.name, (char*) &sys_innodb_max_purge_lag, SHOW_SYS}, - {sys_innodb_max_purge_lag.name, (char*) &sys_innodb_max_purge_lag, SHOW_SYS}, {"innodb_mirrored_log_groups", (char*) &innobase_mirrored_log_groups, SHOW_LONG}, {"innodb_open_files", (char*) &innobase_open_files, SHOW_LONG }, {sys_innodb_table_locks.name, (char*) &sys_innodb_table_locks, SHOW_SYS}, From 1409b9d7ae030a80aec13939f008c50653b4a32a Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 10 Jan 2005 11:17:01 +0100 Subject: [PATCH 130/157] bug#7761 - ndb does not autocommit during alter table sql/sql_table.cc: Turn off transactions before locking (as locking will need to know) --- sql/sql_table.cc | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/sql/sql_table.cc b/sql/sql_table.cc index 43f466282b1..52f178946c4 100644 --- a/sql/sql_table.cc +++ b/sql/sql_table.cc @@ -3447,6 +3447,19 @@ copy_data_between_tables(TABLE *from,TABLE *to, if (!(copy= new Copy_field[to->fields])) DBUG_RETURN(-1); /* purecov: inspected */ + /* + Turn off recovery logging since rollback of an alter table is to + delete the new table so there is no need to log the changes to it. + + This needs to be done before external_lock + */ + error= ha_enable_transaction(thd,FALSE); + if (error) + { + DBUG_RETURN(-1); + } + + if (to->file->external_lock(thd, F_WRLCK)) DBUG_RETURN(-1); from->file->info(HA_STATUS_VARIABLE); @@ -3502,17 +3515,6 @@ copy_data_between_tables(TABLE *from,TABLE *to, goto err; }; - /* - Turn off recovery logging since rollback of an alter table is to - delete the new table so there is no need to log the changes to it. - */ - error= ha_enable_transaction(thd,FALSE); - if (error) - { - error= 1; - goto err; - } - /* Handler must be told explicitly to retrieve all columns, because this function does not set field->query_id in the columns to the current query id */ From 815f62223aa9892b19916724ca76514cb1d899b2 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 10 Jan 2005 11:33:08 +0100 Subject: [PATCH 131/157] bug#7761 - ndb does not autcommit - postreview fixes sql/sql_table.cc: Move ha_enable to before new Copy, to ensure no memory is leaked --- sql/sql_table.cc | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/sql/sql_table.cc b/sql/sql_table.cc index 52f178946c4..f9f635081cb 100644 --- a/sql/sql_table.cc +++ b/sql/sql_table.cc @@ -3444,21 +3444,18 @@ copy_data_between_tables(TABLE *from,TABLE *to, ulong save_sql_mode; DBUG_ENTER("copy_data_between_tables"); - if (!(copy= new Copy_field[to->fields])) - DBUG_RETURN(-1); /* purecov: inspected */ - /* Turn off recovery logging since rollback of an alter table is to delete the new table so there is no need to log the changes to it. This needs to be done before external_lock */ - error= ha_enable_transaction(thd,FALSE); + error= ha_enable_transaction(thd, FALSE); if (error) - { DBUG_RETURN(-1); - } - + + if (!(copy= new Copy_field[to->fields])) + DBUG_RETURN(-1); /* purecov: inspected */ if (to->file->external_lock(thd, F_WRLCK)) DBUG_RETURN(-1); From d8d9f79e09dfe822586742a62928ce37c44aaa90 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 10 Jan 2005 13:52:32 +0100 Subject: [PATCH 132/157] Fix for BUG#7658 "optimize crashes slave thread (1 in 1000)]": mysql_admin_table() attempted to write to a vio which was 0. I could have fixed mysql_admin_table() but fixing my_net_write() looked more future-proof. sql/net_serv.cc: If no VIO, no write. --- sql/net_serv.cc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sql/net_serv.cc b/sql/net_serv.cc index e5cb4d1e815..cad1f041005 100644 --- a/sql/net_serv.cc +++ b/sql/net_serv.cc @@ -227,6 +227,8 @@ int my_net_write(NET *net,const char *packet,ulong len) { uchar buff[NET_HEADER_SIZE]; + if (unlikely(!net->vio)) // nowhere to write + return 0; /* Big packets are handled by splitting them in packets of MAX_PACKET_LENGTH length. The last packet is always a packet that is < MAX_PACKET_LENGTH. From 2d3c55cd7be8ad9bd2647c3cd8484364d4aefc10 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 10 Jan 2005 15:26:33 +0200 Subject: [PATCH 133/157] os0file.c: Fix compiler error on those OS X platforms where Apple's special file flush trick with fcntl() is not defined innobase/os/os0file.c: Fix compiler error on those OS X platforms where Apple's special file flush trick with fcntl() is not defined --- innobase/os/os0file.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/innobase/os/os0file.c b/innobase/os/os0file.c index f02b81b8fd8..60760d1f8b8 100644 --- a/innobase/os/os0file.c +++ b/innobase/os/os0file.c @@ -1763,7 +1763,7 @@ os_file_flush( #else int ret; -#ifdef HAVE_DARWIN_THREADS +#if defined(HAVE_DARWIN_THREADS) && defined(F_FULLFSYNC) /* Apple has disabled fsync() for internal disk drives in OS X. That caused corruption for a user when he tested a power outage. Let us in OS X use a nonstandard flush method recommended by an Apple From 87e1a296abe9e2962e7047b4f92e57425a858f70 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 10 Jan 2005 15:13:33 +0100 Subject: [PATCH 134/157] A test for the BUG#7658 just fixed in 4.0 (could not put it into 4.0 as in 4.0 we don't replicate OPTIMIZE TABLE). --- mysql-test/r/rpl_many_optimize.result | 9 +++++++++ mysql-test/t/rpl_many_optimize.test | 20 ++++++++++++++++++++ 2 files changed, 29 insertions(+) create mode 100644 mysql-test/r/rpl_many_optimize.result create mode 100644 mysql-test/t/rpl_many_optimize.test diff --git a/mysql-test/r/rpl_many_optimize.result b/mysql-test/r/rpl_many_optimize.result new file mode 100644 index 00000000000..b2148892591 --- /dev/null +++ b/mysql-test/r/rpl_many_optimize.result @@ -0,0 +1,9 @@ +stop slave; +drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; +reset master; +reset slave; +drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; +start slave; +create table t1 (a int not null auto_increment primary key, b int, key(b)); +INSERT INTO t1 (a) VALUES (1),(2); +drop table t1; diff --git a/mysql-test/t/rpl_many_optimize.test b/mysql-test/t/rpl_many_optimize.test new file mode 100644 index 00000000000..525e23abe15 --- /dev/null +++ b/mysql-test/t/rpl_many_optimize.test @@ -0,0 +1,20 @@ +# Test for BUG#7658 "optimize crashes slave thread (1 in 1000)]" + +source include/master-slave.inc; + +create table t1 (a int not null auto_increment primary key, b int, key(b)); +INSERT INTO t1 (a) VALUES (1),(2); +# Now many OPTIMIZE to test if we crash (BUG#7658) +let $1=300; +disable_query_log; +disable_result_log; +while ($1) +{ + eval OPTIMIZE TABLE t1; + dec $1; +} +enable_result_log; +enable_query_log; +drop table t1; +# Bug was that slave segfaulted after ~ a hundred of OPTIMIZE (or ANALYZE) +sync_slave_with_master; From 345e51802d42cf42e794e4b69d5ee8a4e4f18aa8 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 10 Jan 2005 16:03:06 +0100 Subject: [PATCH 135/157] bad merge fixed --- sql/sql_show.cc | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/sql/sql_show.cc b/sql/sql_show.cc index ba13dd1ff04..88a56d26e35 100644 --- a/sql/sql_show.cc +++ b/sql/sql_show.cc @@ -817,6 +817,7 @@ mysqld_show_create(THD *thd, TABLE_LIST *table_list) DBUG_RETURN(1); } + buffer.length(0); if (store_create_info(thd, table, &buffer)) DBUG_RETURN(-1); @@ -830,9 +831,6 @@ mysqld_show_create(THD *thd, TABLE_LIST *table_list) DBUG_RETURN(1); protocol->prepare_for_resend(); protocol->store(table->table_name, system_charset_info); - buffer.length(0); - if (store_create_info(thd, table, &buffer)) - DBUG_RETURN(-1); protocol->store(buffer.ptr(), buffer.length(), buffer.charset()); if (protocol->write()) DBUG_RETURN(1); From cc1c4a99ef3f0f6b2bcd3861a91416f3e509d5d7 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 10 Jan 2005 16:19:01 +0100 Subject: [PATCH 136/157] - removed the mysql-test/suites/jp test suite and marked all files as gone --- BitKeeper/etc/gone | 235 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 235 insertions(+) diff --git a/BitKeeper/etc/gone b/BitKeeper/etc/gone index ad2ffda4d6e..63a759cf131 100644 --- a/BitKeeper/etc/gone +++ b/BitKeeper/etc/gone @@ -841,6 +841,241 @@ serg@serg.mysql.com|mysql-test/t/sel000027.test|20001211130731|23677|ab44bb57a58 serg@serg.mysql.com|mysql-test/t/sel000028.test|20001211130731|28317|db9bfc0a808fb629 serg@serg.mysql.com|mysql-test/t/sel000029.test|20001211130731|32917|6aae34dbb3ee86d9 serg@serg.mysql.com|mysql-test/t/sel000030.test|20001211130732|03110|a29683eac3e7b706 +shuichi@mysql.com|mysql-test/suite/jp/r/jp_alter_sjis.result|20050107081527|04225|2ec1fd4929b5638e +shuichi@mysql.com|mysql-test/suite/jp/r/jp_alter_ucs2.result|20050107081527|11825|f3ac4ae77651d4f4 +shuichi@mysql.com|mysql-test/suite/jp/r/jp_alter_ujis.result|20050107081528|17309|2c37b350cc1614b7 +shuichi@mysql.com|mysql-test/suite/jp/r/jp_alter_utf8.result|20050107081528|57925|2916262ef0a8467c +shuichi@mysql.com|mysql-test/suite/jp/r/jp_charlength_sjis.result|20050107081528|32479|2d7cc0bab6a08fb7 +shuichi@mysql.com|mysql-test/suite/jp/r/jp_charlength_ucs2.result|20050107081529|38657|a904397e286b018d +shuichi@mysql.com|mysql-test/suite/jp/r/jp_charlength_ujis.result|20050107081529|63265|a3e5fab4dda3f63 +shuichi@mysql.com|mysql-test/suite/jp/r/jp_charlength_utf8.result|20050107081529|19050|8f33e213f34b75c4 +shuichi@mysql.com|mysql-test/suite/jp/r/jp_charset_sjis.result|20050107081530|05840|92bcb5996a61c9bc +shuichi@mysql.com|mysql-test/suite/jp/r/jp_charset_ucs2.result|20050107081530|27322|9f3eb425f5a8a94e +shuichi@mysql.com|mysql-test/suite/jp/r/jp_charset_ujis.result|20050107081530|48971|ccce22a3ed33edb +shuichi@mysql.com|mysql-test/suite/jp/r/jp_charset_utf8.result|20050107081530|04766|6be23c27e03aaef +shuichi@mysql.com|mysql-test/suite/jp/r/jp_convert_sjis.result|20050107081530|26438|e16736c277401654 +shuichi@mysql.com|mysql-test/suite/jp/r/jp_convert_ucs2.result|20050107081531|13914|845b174a4e12fdf5 +shuichi@mysql.com|mysql-test/suite/jp/r/jp_convert_ujis.result|20050107081531|35726|ea4382cfe092a050 +shuichi@mysql.com|mysql-test/suite/jp/r/jp_convert_utf8.result|20050107081531|58104|b90186d893390496 +shuichi@mysql.com|mysql-test/suite/jp/r/jp_create_db_sjis.result|20050107081531|14644|d35a81ed738ce5ba +shuichi@mysql.com|mysql-test/suite/jp/r/jp_create_db_ucs2.result|20050107081532|01516|94fe34e7cf948cf4 +shuichi@mysql.com|mysql-test/suite/jp/r/jp_create_db_ujis.result|20050107081532|23036|4d5552d56ab27619 +shuichi@mysql.com|mysql-test/suite/jp/r/jp_create_db_utf8.result|20050107081532|44748|374e13cc2ae5b0fa +shuichi@mysql.com|mysql-test/suite/jp/r/jp_create_tbl_sjis.result|20050107081532|00620|eee512b72025128e +shuichi@mysql.com|mysql-test/suite/jp/r/jp_create_tbl_ucs2.result|20050107081532|22012|c0187e924a3b5cdc +shuichi@mysql.com|mysql-test/suite/jp/r/jp_create_tbl_ujis.result|20050107081533|09019|e8763bd889fa5d1 +shuichi@mysql.com|mysql-test/suite/jp/r/jp_create_tbl_utf8.result|20050107081533|30411|b9afcd7fdbca71bf +shuichi@mysql.com|mysql-test/suite/jp/r/jp_enum_sjis.result|20050107081533|52491|68150e74f7d83182 +shuichi@mysql.com|mysql-test/suite/jp/r/jp_enum_ucs2.result|20050107081533|08926|50375a296eea1a4c +shuichi@mysql.com|mysql-test/suite/jp/r/jp_enum_ujis.result|20050107081533|30516|26c8e1122bdac1f1 +shuichi@mysql.com|mysql-test/suite/jp/r/jp_enum_utf8.result|20050107081534|17587|577e655491905344 +shuichi@mysql.com|mysql-test/suite/jp/r/jp_insert_sjis.result|20050107081534|39290|67147bffbcee5282 +shuichi@mysql.com|mysql-test/suite/jp/r/jp_insert_ucs2.result|20050107081534|61019|2a3faa20c3360cfb +shuichi@mysql.com|mysql-test/suite/jp/r/jp_insert_ujis.result|20050107081534|17136|5e7b2c0407b9eae +shuichi@mysql.com|mysql-test/suite/jp/r/jp_insert_utf8.result|20050107081535|04220|62fa831c2b8a02e9 +shuichi@mysql.com|mysql-test/suite/jp/r/jp_instr_sjis.result|20050107081535|25969|abfcff6cbdae1925 +shuichi@mysql.com|mysql-test/suite/jp/r/jp_instr_ucs2.result|20050107081535|47754|be297a9ec05c0e0a +shuichi@mysql.com|mysql-test/suite/jp/r/jp_instr_ujis.result|20050107081535|03623|f42e09a2a6736f23 +shuichi@mysql.com|mysql-test/suite/jp/r/jp_instr_utf8.result|20050107081535|24952|8fc889df4669cd6 +shuichi@mysql.com|mysql-test/suite/jp/r/jp_join_sjis.result|20050107081536|12369|396a43a5ac83bda3 +shuichi@mysql.com|mysql-test/suite/jp/r/jp_join_ucs2.result|20050107081536|34440|f112f6b3a020dcb5 +shuichi@mysql.com|mysql-test/suite/jp/r/jp_join_ujis.result|20050107081536|56149|dab3a2b2f5e31eb5 +shuichi@mysql.com|mysql-test/suite/jp/r/jp_join_utf8.result|20050107081536|12246|6661d21d7c485970 +shuichi@mysql.com|mysql-test/suite/jp/r/jp_left_sjis.result|20050107081536|33732|c4d6b2814e85710f +shuichi@mysql.com|mysql-test/suite/jp/r/jp_left_ucs2.result|20050107081537|20829|ebc1bcd92b01ba3 +shuichi@mysql.com|mysql-test/suite/jp/r/jp_left_ujis.result|20050107081537|42728|c88e3ddf34290212 +shuichi@mysql.com|mysql-test/suite/jp/r/jp_left_utf8.result|20050107081537|64357|702b2e408597f5ef +shuichi@mysql.com|mysql-test/suite/jp/r/jp_length_sjis.result|20050107081537|20201|ab84fe078f8c50e +shuichi@mysql.com|mysql-test/suite/jp/r/jp_length_ucs2.result|20050107081538|07211|f79c430972fe4242 +shuichi@mysql.com|mysql-test/suite/jp/r/jp_length_ujis.result|20050107081538|28829|92e66a0d987080ab +shuichi@mysql.com|mysql-test/suite/jp/r/jp_length_utf8.result|20050107081538|50725|f3e1ec3c827572ef +shuichi@mysql.com|mysql-test/suite/jp/r/jp_like_sjis.result|20050107081538|07207|497ea317a9779e08 +shuichi@mysql.com|mysql-test/suite/jp/r/jp_like_ucs2.result|20050107081538|29018|dff13e955936a635 +shuichi@mysql.com|mysql-test/suite/jp/r/jp_like_ujis.result|20050107081539|16190|5aaf14c5cc0eb3d7 +shuichi@mysql.com|mysql-test/suite/jp/r/jp_like_utf8.result|20050107081539|38032|e62cf43214334eaf +shuichi@mysql.com|mysql-test/suite/jp/r/jp_locate_sjis.result|20050107081539|59851|f5cd5bb0720f1388 +shuichi@mysql.com|mysql-test/suite/jp/r/jp_locate_ucs2.result|20050107081539|16013|397f3c3ecc929da +shuichi@mysql.com|mysql-test/suite/jp/r/jp_locate_ujis.result|20050107081540|05016|a0746377dc240841 +shuichi@mysql.com|mysql-test/suite/jp/r/jp_locate_utf8.result|20050107081540|26599|65816e1c9ea27fbc +shuichi@mysql.com|mysql-test/suite/jp/r/jp_lpad_sjis.result|20050107081540|48453|be23445a258c2efb +shuichi@mysql.com|mysql-test/suite/jp/r/jp_lpad_ucs2.result|20050107081540|04446|10797352d768da53 +shuichi@mysql.com|mysql-test/suite/jp/r/jp_lpad_ujis.result|20050107081540|26224|75165c42c9da07e8 +shuichi@mysql.com|mysql-test/suite/jp/r/jp_lpad_utf8.result|20050107081541|13606|36ad2d19941abede +shuichi@mysql.com|mysql-test/suite/jp/r/jp_ltrim_sjis.result|20050107081541|35572|2b3b542ec89a8440 +shuichi@mysql.com|mysql-test/suite/jp/r/jp_ltrim_ucs2.result|20050107081541|57615|cab66782e2d918b7 +shuichi@mysql.com|mysql-test/suite/jp/r/jp_ltrim_ujis.result|20050107081541|13734|5e405409e03dca3 +shuichi@mysql.com|mysql-test/suite/jp/r/jp_ltrim_utf8.result|20050107081542|00849|5f64c2575080fb2e +shuichi@mysql.com|mysql-test/suite/jp/r/jp_ps_sjis.result|20050107081542|22464|194a85125571489c +shuichi@mysql.com|mysql-test/suite/jp/r/jp_ps_ujis.result|20050107081542|44552|1d31f04dc3869387 +shuichi@mysql.com|mysql-test/suite/jp/r/jp_replace_sjis.result|20050107081542|00673|76b3f6fab7cce305 +shuichi@mysql.com|mysql-test/suite/jp/r/jp_replace_ucs2.result|20050107081542|22178|40a5c69f7fb9ad70 +shuichi@mysql.com|mysql-test/suite/jp/r/jp_replace_ujis.result|20050107081543|09299|ab8af1803ff6de87 +shuichi@mysql.com|mysql-test/suite/jp/r/jp_replace_utf8.result|20050107081543|31103|34a42201cf18603f +shuichi@mysql.com|mysql-test/suite/jp/r/jp_reverse_sjis.result|20050107081543|53242|2fd638c1bbea9de +shuichi@mysql.com|mysql-test/suite/jp/r/jp_reverse_ucs2.result|20050107081543|09440|bcae1663ff14df06 +shuichi@mysql.com|mysql-test/suite/jp/r/jp_reverse_ujis.result|20050107081543|31543|69792ccfb7d3b59b +shuichi@mysql.com|mysql-test/suite/jp/r/jp_reverse_utf8.result|20050107081544|19023|30e4181e77154299 +shuichi@mysql.com|mysql-test/suite/jp/r/jp_right_sjis.result|20050107081544|40814|84b8e7d33c6cc088 +shuichi@mysql.com|mysql-test/suite/jp/r/jp_right_ucs2.result|20050107081544|62694|20e50c73803406e0 +shuichi@mysql.com|mysql-test/suite/jp/r/jp_right_ujis.result|20050107081544|18674|2bd13ccf7478f32b +shuichi@mysql.com|mysql-test/suite/jp/r/jp_right_utf8.result|20050107081545|06019|b26626fbc0c8fa25 +shuichi@mysql.com|mysql-test/suite/jp/r/jp_rpad_sjis.result|20050107081545|47717|a6cb9a00a34d9280 +shuichi@mysql.com|mysql-test/suite/jp/r/jp_rpad_ucs2.result|20050107081545|03933|6f310a21c6a3ad7f +shuichi@mysql.com|mysql-test/suite/jp/r/jp_rpad_ujis.result|20050107081545|25719|419271caa26c24cd +shuichi@mysql.com|mysql-test/suite/jp/r/jp_rpad_utf8.result|20050107081546|12990|e1cd2ebd6c0208ea +shuichi@mysql.com|mysql-test/suite/jp/r/jp_rtrim_sjis.result|20050107081546|34719|d23e6090f98e8fbc +shuichi@mysql.com|mysql-test/suite/jp/r/jp_rtrim_ucs2.result|20050107081546|56850|f2fe2a72c482aa49 +shuichi@mysql.com|mysql-test/suite/jp/r/jp_rtrim_ujis.result|20050107081546|13304|1e865c1ccf400e23 +shuichi@mysql.com|mysql-test/suite/jp/r/jp_rtrim_utf8.result|20050107081547|00440|8b2e0fffb1bc5cd4 +shuichi@mysql.com|mysql-test/suite/jp/r/jp_select_sjis.result|20050107081547|22111|60535594c5605694 +shuichi@mysql.com|mysql-test/suite/jp/r/jp_select_ucs2.result|20050107081547|44100|71c3558952cbc6ad +shuichi@mysql.com|mysql-test/suite/jp/r/jp_select_ujis.result|20050107081547|00264|f0e2860f90982398 +shuichi@mysql.com|mysql-test/suite/jp/r/jp_select_utf8.result|20050107081547|21895|eeef381fbf2d9c95 +shuichi@mysql.com|mysql-test/suite/jp/r/jp_subquery_sjis.result|20050107081548|09502|b652bee325136852 +shuichi@mysql.com|mysql-test/suite/jp/r/jp_subquery_ucs2.result|20050107081548|31516|8a8aa66dad072fed +shuichi@mysql.com|mysql-test/suite/jp/r/jp_subquery_ujis.result|20050107081548|53490|8add4d2433058e8e +shuichi@mysql.com|mysql-test/suite/jp/r/jp_subquery_utf8.result|20050107081548|09693|cdeb3a8f901a6efb +shuichi@mysql.com|mysql-test/suite/jp/r/jp_substring_sjis.result|20050107081549|05596|fee80f00e654153 +shuichi@mysql.com|mysql-test/suite/jp/r/jp_substring_ucs2.result|20050107081549|28016|238f41941bf1cde2 +shuichi@mysql.com|mysql-test/suite/jp/r/jp_substring_ujis.result|20050107081549|50377|1d6072226dc693ac +shuichi@mysql.com|mysql-test/suite/jp/r/jp_substring_utf8.result|20050107081549|06796|2dba8103bf4ad46d +shuichi@mysql.com|mysql-test/suite/jp/r/jp_trim_sjis.result|20050107081549|28652|8a103fbcece5bf25 +shuichi@mysql.com|mysql-test/suite/jp/r/jp_trim_ucs2.result|20050107081550|15970|ac4cba762dc14e28 +shuichi@mysql.com|mysql-test/suite/jp/r/jp_trim_ujis.result|20050107081550|37865|4df912345aac10f1 +shuichi@mysql.com|mysql-test/suite/jp/r/jp_trim_utf8.result|20050107081550|60045|79cba16887bf3b1f +shuichi@mysql.com|mysql-test/suite/jp/r/jp_union_ujis.result|20050107081550|16675|f0d464252c220c15 +shuichi@mysql.com|mysql-test/suite/jp/r/jp_update_sjis.result|20050107081551|03970|13dc7639ad1ec6e5 +shuichi@mysql.com|mysql-test/suite/jp/r/jp_update_ucs2.result|20050107081551|25688|8fc9b1f31d32a21f +shuichi@mysql.com|mysql-test/suite/jp/r/jp_update_ujis.result|20050107081551|47775|93f6c8b3f5622aff +shuichi@mysql.com|mysql-test/suite/jp/r/jp_update_utf8.result|20050107081551|04259|24a758ee1768afcc +shuichi@mysql.com|mysql-test/suite/jp/r/jp_where_sjis.result|20050107081551|26138|cb97323da2f50869 +shuichi@mysql.com|mysql-test/suite/jp/r/jp_where_ucs2.result|20050107081552|13450|b3dad356facc16be +shuichi@mysql.com|mysql-test/suite/jp/r/jp_where_ujis.result|20050107081552|35250|4e3045c764bfa364 +shuichi@mysql.com|mysql-test/suite/jp/r/jp_where_utf8.result|20050107081552|57088|143422da49ad0cdb +shuichi@mysql.com|mysql-test/suite/jp/std_data/jisx0201_sjis.dat|20050107081552|13191|3b811e51d64f83c7 +shuichi@mysql.com|mysql-test/suite/jp/std_data/jisx0201_ucs2.dat|20050107083211|03894|85975a083dfb7a54 +shuichi@mysql.com|mysql-test/suite/jp/std_data/jisx0201_ujis.dat|20050107081605|05898|699c7c58964df90 +shuichi@mysql.com|mysql-test/suite/jp/std_data/jisx0201_utf8.dat|20050107081606|12116|74d43073bf069bc7 +shuichi@mysql.com|mysql-test/suite/jp/std_data/jisx0208_sjis.dat|20050107081606|52743|9e8273f37d55fc4 +shuichi@mysql.com|mysql-test/suite/jp/std_data/jisx0208_sjis2.dat|20050107083212|14086|38a382ad2316ccf0 +shuichi@mysql.com|mysql-test/suite/jp/std_data/jisx0208_sjis3.dat|20050107081608|13836|8661d7801d6d35c +shuichi@mysql.com|mysql-test/suite/jp/std_data/jisx0208_ucs2.dat|20050107081608|54705|269e953196baf762 +shuichi@mysql.com|mysql-test/suite/jp/std_data/jisx0208_ujis.dat|20050107081608|29492|e5d30a2aadd8062a +shuichi@mysql.com|mysql-test/suite/jp/std_data/jisx0208_utf8.dat|20050107081609|35613|db4e6eadc27ec29e +shuichi@mysql.com|mysql-test/suite/jp/std_data/jisx0212_ucs2.dat|20050107081609|10803|4fbb36024a7d47d0 +shuichi@mysql.com|mysql-test/suite/jp/std_data/jisx0212_ujis.dat|20050107081610|17128|bedeb2aa4cf2103d +shuichi@mysql.com|mysql-test/suite/jp/std_data/jisx0212_utf8.dat|20050107081610|58355|6f46c105f00e6da7 +shuichi@mysql.com|mysql-test/suite/jp/t/jp_alter_sjis.test|20050107081610|33134|f7c41740399a114a +shuichi@mysql.com|mysql-test/suite/jp/t/jp_alter_ucs2.test|20050107081611|40070|8aded01010aa4027 +shuichi@mysql.com|mysql-test/suite/jp/t/jp_alter_ujis.test|20050107081611|04428|ddd8a1d2c2b10744 +shuichi@mysql.com|mysql-test/suite/jp/t/jp_alter_utf8.test|20050107081611|26011|749a0e3b6ba599d2 +shuichi@mysql.com|mysql-test/suite/jp/t/jp_charlength_sjis.test|20050107081612|13318|38dc8c4a77af62a4 +shuichi@mysql.com|mysql-test/suite/jp/t/jp_charlength_ucs2.test|20050107081612|35063|fe5674c6b12d2b1 +shuichi@mysql.com|mysql-test/suite/jp/t/jp_charlength_ujis.test|20050107081612|57379|e901fbd29981385b +shuichi@mysql.com|mysql-test/suite/jp/t/jp_charlength_utf8.test|20050107081612|13800|36ef1b7b55dc4a1b +shuichi@mysql.com|mysql-test/suite/jp/t/jp_charset_sjis.test|20050107081613|01245|daf9bbe53b34f1a8 +shuichi@mysql.com|mysql-test/suite/jp/t/jp_charset_ucs2.test|20050107081613|22978|ea01c4415d5ef4a4 +shuichi@mysql.com|mysql-test/suite/jp/t/jp_charset_ujis.test|20050107081613|45096|ca893d3a1c4a5fab +shuichi@mysql.com|mysql-test/suite/jp/t/jp_charset_utf8.test|20050107081613|01406|9d3ffec1489a799b +shuichi@mysql.com|mysql-test/suite/jp/t/jp_convert_sjis.test|20050107081613|23086|a7fbf85ce0fc9591 +shuichi@mysql.com|mysql-test/suite/jp/t/jp_convert_ucs2.test|20050107081614|10458|84828e6663159064 +shuichi@mysql.com|mysql-test/suite/jp/t/jp_convert_ujis.test|20050107081614|32393|a64465e0725243 +shuichi@mysql.com|mysql-test/suite/jp/t/jp_convert_utf8.test|20050107081614|54260|8f344fb86504b604 +shuichi@mysql.com|mysql-test/suite/jp/t/jp_create_db_sjis.test|20050107081614|10489|40a1631cffd46fe +shuichi@mysql.com|mysql-test/suite/jp/t/jp_create_db_ucs2.test|20050107081614|32422|8f034f1fb0ae644b +shuichi@mysql.com|mysql-test/suite/jp/t/jp_create_db_ujis.test|20050107081615|20478|bbdb04d1a483939b +shuichi@mysql.com|mysql-test/suite/jp/t/jp_create_db_utf8.test|20050107081615|42908|1f4418fddb751c58 +shuichi@mysql.com|mysql-test/suite/jp/t/jp_create_tbl_sjis.test|20050107081615|64880|448ff3eaff962456 +shuichi@mysql.com|mysql-test/suite/jp/t/jp_create_tbl_ucs2.test|20050107081615|21081|b2bafda9e7a3f226 +shuichi@mysql.com|mysql-test/suite/jp/t/jp_create_tbl_ujis.test|20050107081616|08589|1477760d458bb313 +shuichi@mysql.com|mysql-test/suite/jp/t/jp_create_tbl_utf8.test|20050107081616|30689|a1d12ccab39f74f3 +shuichi@mysql.com|mysql-test/suite/jp/t/jp_enum_sjis.test|20050107081616|53230|9b863b7e4728f82a +shuichi@mysql.com|mysql-test/suite/jp/t/jp_enum_ucs2.test|20050107081617|23149|f05f1cbbe3740670 +shuichi@mysql.com|mysql-test/suite/jp/t/jp_enum_ujis.test|20050107081618|10643|ac136bedb31cf9a8 +shuichi@mysql.com|mysql-test/suite/jp/t/jp_enum_utf8.test|20050107081618|46561|43460e3947ac3d24 +shuichi@mysql.com|mysql-test/suite/jp/t/jp_insert_sjis.test|20050107081618|02948|b32f23f3f588ea9a +shuichi@mysql.com|mysql-test/suite/jp/t/jp_insert_ucs2.test|20050107081618|24774|783e8b896271e49e +shuichi@mysql.com|mysql-test/suite/jp/t/jp_insert_ujis.test|20050107081619|12298|3f9c8c41cd92faa3 +shuichi@mysql.com|mysql-test/suite/jp/t/jp_insert_utf8.test|20050107081619|37128|e4ab71ff1f780509 +shuichi@mysql.com|mysql-test/suite/jp/t/jp_instr_sjis.test|20050107081619|59453|25fc516136ca9159 +shuichi@mysql.com|mysql-test/suite/jp/t/jp_instr_ucs2.test|20050107081619|15956|673e221671a2770d +shuichi@mysql.com|mysql-test/suite/jp/t/jp_instr_ujis.test|20050107081620|03773|75c1239ff59d928a +shuichi@mysql.com|mysql-test/suite/jp/t/jp_instr_utf8.test|20050107081620|26260|ed912ad48a1893a8 +shuichi@mysql.com|mysql-test/suite/jp/t/jp_join_sjis.test|20050107081620|49077|59a36a82ee570052 +shuichi@mysql.com|mysql-test/suite/jp/t/jp_join_ucs2.test|20050107081620|05668|7d8665f03f26863d +shuichi@mysql.com|mysql-test/suite/jp/t/jp_join_ujis.test|20050107081620|27737|ecdf5e86cbda74cb +shuichi@mysql.com|mysql-test/suite/jp/t/jp_join_utf8.test|20050107081621|15489|b98f58e8a4a65e7b +shuichi@mysql.com|mysql-test/suite/jp/t/jp_left_sjis.test|20050107081621|41478|91fcd07aaac68648 +shuichi@mysql.com|mysql-test/suite/jp/t/jp_left_ucs2.test|20050107081621|63674|65929b80d0271c86 +shuichi@mysql.com|mysql-test/suite/jp/t/jp_left_ujis.test|20050107081621|20110|2a5ce575491289f4 +shuichi@mysql.com|mysql-test/suite/jp/t/jp_left_utf8.test|20050107081622|07679|932150eea8460d1 +shuichi@mysql.com|mysql-test/suite/jp/t/jp_length_sjis.test|20050107081622|30138|22fc722d29faeb92 +shuichi@mysql.com|mysql-test/suite/jp/t/jp_length_ucs2.test|20050107081622|52718|81dcde6618d6a22d +shuichi@mysql.com|mysql-test/suite/jp/t/jp_length_ujis.test|20050107081622|09451|d5be7e1b3b4fb88b +shuichi@mysql.com|mysql-test/suite/jp/t/jp_length_utf8.test|20050107081622|31964|cfd3ea368b652b5b +shuichi@mysql.com|mysql-test/suite/jp/t/jp_like_sjis.test|20050107081623|19721|1db71ef08ca802d0 +shuichi@mysql.com|mysql-test/suite/jp/t/jp_like_ucs2.test|20050107081623|42415|55eee7f0b2b984cd +shuichi@mysql.com|mysql-test/suite/jp/t/jp_like_ujis.test|20050107081623|64766|4136ccd8cd83eee5 +shuichi@mysql.com|mysql-test/suite/jp/t/jp_like_utf8.test|20050107081623|21529|556e575385ee58f +shuichi@mysql.com|mysql-test/suite/jp/t/jp_locate_sjis.test|20050107081624|09362|ac12c88e8477d736 +shuichi@mysql.com|mysql-test/suite/jp/t/jp_locate_ucs2.test|20050107081624|31699|e6e0cc4752262b9f +shuichi@mysql.com|mysql-test/suite/jp/t/jp_locate_ujis.test|20050107081624|54042|afa7eadd28fa536e +shuichi@mysql.com|mysql-test/suite/jp/t/jp_locate_utf8.test|20050107081624|10934|307d85c4cd318e62 +shuichi@mysql.com|mysql-test/suite/jp/t/jp_lpad_sjis.test|20050107081624|33252|29972178e7d58d93 +shuichi@mysql.com|mysql-test/suite/jp/t/jp_lpad_ucs2.test|20050107081625|21025|b722d1ed662e03c8 +shuichi@mysql.com|mysql-test/suite/jp/t/jp_lpad_ujis.test|20050107081625|44023|c1feeadebdfc0ff9 +shuichi@mysql.com|mysql-test/suite/jp/t/jp_lpad_utf8.test|20050107081625|01097|2f3347de2a42b9d6 +shuichi@mysql.com|mysql-test/suite/jp/t/jp_ltrim_sjis.test|20050107081625|23224|fb954f6d4b2a20ac +shuichi@mysql.com|mysql-test/suite/jp/t/jp_ltrim_ucs2.test|20050107081626|11079|998157355fe96143 +shuichi@mysql.com|mysql-test/suite/jp/t/jp_ltrim_ujis.test|20050107081626|33500|aab63ba3302196a2 +shuichi@mysql.com|mysql-test/suite/jp/t/jp_ltrim_utf8.test|20050107081626|55883|8193f90a6ed58d36 +shuichi@mysql.com|mysql-test/suite/jp/t/jp_ps_sjis.test|20050107081626|12674|2f1450a52f147fec +shuichi@mysql.com|mysql-test/suite/jp/t/jp_ps_ujis.test|20050107081627|00495|7b0eb3ca59abb12 +shuichi@mysql.com|mysql-test/suite/jp/t/jp_replace_sjis.test|20050107081627|23008|a74ce2aca0e5ac66 +shuichi@mysql.com|mysql-test/suite/jp/t/jp_replace_ucs2.test|20050107081627|45674|71b7010127493fb +shuichi@mysql.com|mysql-test/suite/jp/t/jp_replace_ujis.test|20050107081627|02501|cfe2af6b3db381c0 +shuichi@mysql.com|mysql-test/suite/jp/t/jp_replace_utf8.test|20050107081627|24683|57e905b35703072 +shuichi@mysql.com|mysql-test/suite/jp/t/jp_reverse_sjis.test|20050107081628|12962|f40219e9e488fc23 +shuichi@mysql.com|mysql-test/suite/jp/t/jp_reverse_ucs2.test|20050107081628|35555|2c0e7ad52ec9ca65 +shuichi@mysql.com|mysql-test/suite/jp/t/jp_reverse_ujis.test|20050107081628|57942|c353d85f4e92f5df +shuichi@mysql.com|mysql-test/suite/jp/t/jp_reverse_utf8.test|20050107081628|14597|e2588c2a3dcf63a +shuichi@mysql.com|mysql-test/suite/jp/t/jp_right_sjis.test|20050107081629|02304|14af84f068332d50 +shuichi@mysql.com|mysql-test/suite/jp/t/jp_right_ucs2.test|20050107081629|24565|729a8377aa8100e4 +shuichi@mysql.com|mysql-test/suite/jp/t/jp_right_ujis.test|20050107081629|47409|a839209fac19b930 +shuichi@mysql.com|mysql-test/suite/jp/t/jp_right_utf8.test|20050107081629|04400|ada246cab13f1811 +shuichi@mysql.com|mysql-test/suite/jp/t/jp_rpad_sjis.test|20050107081629|26583|9ae895ba98c4d31 +shuichi@mysql.com|mysql-test/suite/jp/t/jp_rpad_ucs2.test|20050107081630|14467|cc7b3b62ee6dae28 +shuichi@mysql.com|mysql-test/suite/jp/t/jp_rpad_ujis.test|20050107081630|37003|9c869c17899db4c7 +shuichi@mysql.com|mysql-test/suite/jp/t/jp_rpad_utf8.test|20050107081630|59835|a8ed7c9ff559c38d +shuichi@mysql.com|mysql-test/suite/jp/t/jp_rtrim_sjis.test|20050107081630|16798|82a8f174f2ac5988 +shuichi@mysql.com|mysql-test/suite/jp/t/jp_rtrim_ucs2.test|20050107081631|04558|1f90bdf68ed4d6d0 +shuichi@mysql.com|mysql-test/suite/jp/t/jp_rtrim_ujis.test|20050107081631|26878|1804ccc6518b5d9 +shuichi@mysql.com|mysql-test/suite/jp/t/jp_rtrim_utf8.test|20050107081631|49568|74375ee1105781bd +shuichi@mysql.com|mysql-test/suite/jp/t/jp_select_sjis.test|20050107081631|06299|b1151637493de45 +shuichi@mysql.com|mysql-test/suite/jp/t/jp_select_ucs2.test|20050107081632|27924|3364d51b3168f562 +shuichi@mysql.com|mysql-test/suite/jp/t/jp_select_ujis.test|20050107081632|50639|721b5841964bf8e6 +shuichi@mysql.com|mysql-test/suite/jp/t/jp_select_utf8.test|20050107081632|07426|37222d28b4cfe7c8 +shuichi@mysql.com|mysql-test/suite/jp/t/jp_subquery_sjis.test|20050107081632|29631|c92ff81669eb652 +shuichi@mysql.com|mysql-test/suite/jp/t/jp_subquery_ucs2.test|20050107084021|10337|4b920d28fc9dc5aa +shuichi@mysql.com|mysql-test/suite/jp/t/jp_subquery_ujis.test|20050107083216|33062|3f51b47de1fb0c17 +shuichi@mysql.com|mysql-test/suite/jp/t/jp_subquery_utf8.test|20050107081637|15503|fe599c9515084385 +shuichi@mysql.com|mysql-test/suite/jp/t/jp_substring_sjis.test|20050107081638|08555|305285c02185f498 +shuichi@mysql.com|mysql-test/suite/jp/t/jp_substring_ucs2.test|20050107081638|36441|ddc58f642ca61418 +shuichi@mysql.com|mysql-test/suite/jp/t/jp_substring_ujis.test|20050107081638|64337|2cc53c02a5cc4879 +shuichi@mysql.com|mysql-test/suite/jp/t/jp_substring_utf8.test|20050107081638|26081|55bb4e11bc747e5d +shuichi@mysql.com|mysql-test/suite/jp/t/jp_trim_sjis.test|20050107081639|19046|ec18bf7845064d09 +shuichi@mysql.com|mysql-test/suite/jp/t/jp_trim_ucs2.test|20050107081639|46660|583edc63a51fd799 +shuichi@mysql.com|mysql-test/suite/jp/t/jp_trim_ujis.test|20050107081639|06910|87aad3c53be879fd +shuichi@mysql.com|mysql-test/suite/jp/t/jp_trim_utf8.test|20050107081639|29347|b35fcc89b5fa47c3 +shuichi@mysql.com|mysql-test/suite/jp/t/jp_union_ujis.test|20050107081640|17665|1eb842f74190b3c1 +shuichi@mysql.com|mysql-test/suite/jp/t/jp_update_sjis.test|20050107081640|40239|d21d19721f975c74 +shuichi@mysql.com|mysql-test/suite/jp/t/jp_update_ucs2.test|20050107081640|62869|3dad27b824548037 +shuichi@mysql.com|mysql-test/suite/jp/t/jp_update_ujis.test|20050107081640|19575|5c3da888e148065b +shuichi@mysql.com|mysql-test/suite/jp/t/jp_update_utf8.test|20050107081641|07967|bc3adabdd5ac865 +shuichi@mysql.com|mysql-test/suite/jp/t/jp_where_sjis.test|20050107081641|30584|e2886fcc8b23152f +shuichi@mysql.com|mysql-test/suite/jp/t/jp_where_ucs2.test|20050107081641|53233|b3c07768684ddfdb +shuichi@mysql.com|mysql-test/suite/jp/t/jp_where_ujis.test|20050107081641|10027|9e123ef3c645b66a +shuichi@mysql.com|mysql-test/suite/jp/t/jp_where_utf8.test|20050107081641|32217|59fb529f60d9d8bc tfr@sarvik.tfr.cafe.ee|Docs/Flags/costarica.eps|20020228162345|64529|31ade79a89683616 tfr@sarvik.tfr.cafe.ee|Docs/Flags/costarica.gif|20020228162348|36945|364ca7338682f71 tfr@sarvik.tfr.cafe.ee|Docs/Flags/costarica.txt|20020228162350|33044|e155c53c10374ff From 4bb238a0546b58cab1e8e2cb0efdc854dcc29752 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 10 Jan 2005 23:59:28 +0100 Subject: [PATCH 137/157] Fix double-initalization of mutex in archive storage engine. (Bug #7762) sql/examples/ha_archive.cc: Fix redundant initialization of share->mutex Fix error handling to always clean up correctly Fix a couple of warnings --- sql/examples/ha_archive.cc | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/sql/examples/ha_archive.cc b/sql/examples/ha_archive.cc index 771bf91d118..59024405bec 100644 --- a/sql/examples/ha_archive.cc +++ b/sql/examples/ha_archive.cc @@ -341,10 +341,8 @@ ARCHIVE_SHARE *ha_archive::get_share(const char *table_name, TABLE *table) if ((share->archive_write= gzopen(share->data_file_name, "ab")) == NULL) goto error2; if (my_hash_insert(&archive_open_tables, (byte*) share)) - goto error2; - thr_lock_init(&share->lock); - if (pthread_mutex_init(&share->mutex,MY_MUTEX_INIT_FAST)) goto error3; + thr_lock_init(&share->lock); } share->use_count++; pthread_mutex_unlock(&archive_mutex); @@ -352,14 +350,13 @@ ARCHIVE_SHARE *ha_archive::get_share(const char *table_name, TABLE *table) return share; error3: - VOID(pthread_mutex_destroy(&share->mutex)); - thr_lock_delete(&share->lock); /* We close, but ignore errors since we already have errors */ (void)gzclose(share->archive_write); error2: my_close(share->meta_file,MYF(0)); error: pthread_mutex_unlock(&archive_mutex); + VOID(pthread_mutex_destroy(&share->mutex)); my_free((gptr) share, MYF(0)); return NULL; @@ -493,23 +490,29 @@ int ha_archive::create(const char *name, TABLE *table_arg, if ((archive= gzdopen(create_file, "ab")) == NULL) { error= errno; - delete_table(name); - goto error; + goto error2; } if (write_data_header(archive)) { - gzclose(archive); + error= errno; + goto error3; + } + + if (gzclose(archive)) { + error= errno; goto error2; } - if (gzclose(archive)) - goto error2; + my_close(create_file, MYF(0)); DBUG_RETURN(0); +error3: + /* We already have an error, so ignore results of gzclose. */ + (void)gzclose(archive); error2: - error= errno; - delete_table(name); + my_close(create_file, MYF(0)); + delete_table(name); error: /* Return error number, if we got one */ DBUG_RETURN(error ? error : -1); @@ -736,7 +739,7 @@ int ha_archive::rebuild_meta_file(char *table_name, File meta_file) if ((rebuild_file= gzopen(data_file_name, "rb")) == NULL) DBUG_RETURN(errno ? errno : -1); - if (rc= read_data_header(rebuild_file)) + if ((rc= read_data_header(rebuild_file))) goto error; /* @@ -800,7 +803,7 @@ int ha_archive::optimize(THD* thd, HA_CHECK_OPT* check_opt) DBUG_RETURN(-1); } - while (read= gzread(reader, block, IO_SIZE)) + while ((read= gzread(reader, block, IO_SIZE))) gzwrite(writer, block, read); gzclose(reader); From 4bd2b5adc4789b76088be0ed202752dad7c64a86 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 11 Jan 2005 01:01:35 +0100 Subject: [PATCH 138/157] Fix style nit sql/examples/ha_archive.cc: Fix style --- sql/examples/ha_archive.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sql/examples/ha_archive.cc b/sql/examples/ha_archive.cc index 59024405bec..ef609513489 100644 --- a/sql/examples/ha_archive.cc +++ b/sql/examples/ha_archive.cc @@ -498,7 +498,8 @@ int ha_archive::create(const char *name, TABLE *table_arg, goto error3; } - if (gzclose(archive)) { + if (gzclose(archive)) + { error= errno; goto error2; } From 7535b07425b29a75effa543f51f25ddf7ac3646a Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 11 Jan 2005 10:02:31 +0100 Subject: [PATCH 139/157] bug#7765 - ndb startup on 64-bit, increase stack on 64-bit ndb/src/common/portlib/NdbThread.c: Use double stack for 64-bit --- ndb/src/common/portlib/NdbThread.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ndb/src/common/portlib/NdbThread.c b/ndb/src/common/portlib/NdbThread.c index 69e39994a9c..d4f6617d2f5 100644 --- a/ndb/src/common/portlib/NdbThread.c +++ b/ndb/src/common/portlib/NdbThread.c @@ -54,7 +54,11 @@ struct NdbThread* NdbThread_Create(NDB_THREAD_FUNC *p_thread_func, strnmov(tmpThread->thread_name,p_thread_name,sizeof(tmpThread->thread_name)); pthread_attr_init(&thread_attr); +#if (SIZEOF_CHARP == 8) + pthread_attr_setstacksize(&thread_attr, 2*thread_stack_size); +#else pthread_attr_setstacksize(&thread_attr, thread_stack_size); +#endif #ifdef USE_PTHREAD_EXTRAS /* Guard stack overflow with a 2k databuffer */ pthread_attr_setguardsize(&thread_attr, 2048); From 1ef48556bd29936095ddd1b59b835f1c8c6bd0b6 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 11 Jan 2005 10:34:36 +0100 Subject: [PATCH 140/157] Bug#7477 --- ndb/src/kernel/blocks/ndbfs/AsyncFile.cpp | 29 ++++++----------------- 1 file changed, 7 insertions(+), 22 deletions(-) diff --git a/ndb/src/kernel/blocks/ndbfs/AsyncFile.cpp b/ndb/src/kernel/blocks/ndbfs/AsyncFile.cpp index a02bfd459b3..a01f094cffd 100644 --- a/ndb/src/kernel/blocks/ndbfs/AsyncFile.cpp +++ b/ndb/src/kernel/blocks/ndbfs/AsyncFile.cpp @@ -14,19 +14,11 @@ along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -/** - * O_DIRECT - */ -#if 0 -//#ifdef NDB_LINUX -#ifndef _GNU_SOURCE -#define _GNU_SOURCE -#endif -#endif - #include +#include +#include -#include "Error.hpp" +#include #include "AsyncFile.hpp" #include @@ -35,15 +27,6 @@ #include #include -#if 0 -#ifdef HAVE_PREAD -// This is for pread and pwrite -#ifndef __USE_UNIX98 -#define __USE_UNIX98 -#endif -#endif -#endif - #if defined NDB_WIN32 || defined NDB_OSE || defined NDB_SOFTOSE #else // For readv and writev @@ -91,6 +74,7 @@ static int numAsyncFiles = 0; extern "C" void * runAsyncFile(void* arg) { + my_thread_init(); ((AsyncFile*)arg)->run(); return (NULL); } @@ -419,7 +403,7 @@ AsyncFile::readBuffer(char * buf, size_t size, off_t offset){ #elif defined NDB_OSE || defined NDB_SOFTOSE return_value = ::read(theFd, buf, size); #else // UNIX - return_value = ::pread(theFd, buf, size, offset); + return_value = my_pread(theFd, buf, size, offset,0); #endif #ifndef NDB_WIN32 if (return_value == -1 && errno == EINTR) { @@ -653,7 +637,7 @@ AsyncFile::writeBuffer(const char * buf, size_t size, off_t offset, #elif defined NDB_OSE || defined NDB_SOFTOSE return_value = ::write(theFd, buf, bytes_to_write); #else // UNIX - return_value = ::pwrite(theFd, buf, bytes_to_write, offset); + return_value = my_pwrite(theFd, buf, bytes_to_write, offset, 0); #endif #ifndef NDB_WIN32 if (return_value == -1 && errno == EINTR) { @@ -889,6 +873,7 @@ void AsyncFile::endReq() { // Thread is ended with return if (theWriteBuffer) NdbMem_Free(theWriteBuffer); + my_thread_end(); NdbThread_Exit(0); } From fe8c6a4a032195ae024cf4a8ede675299789a79b Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 11 Jan 2005 13:12:52 +0300 Subject: [PATCH 141/157] make it compile with -ansi -pedantic --- sql/net_serv.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sql/net_serv.cc b/sql/net_serv.cc index ca82c49b62d..5699b5a2f55 100644 --- a/sql/net_serv.cc +++ b/sql/net_serv.cc @@ -251,7 +251,7 @@ my_bool my_net_write(NET *net,const char *packet,ulong len) { uchar buff[NET_HEADER_SIZE]; - if (unlikely(!net->vio)) // nowhere to write + if (unlikely(!net->vio)) /* nowhere to write */ return 0; /* Big packets are handled by splitting them in packets of MAX_PACKET_LENGTH From 4801c2e62f25240d7c27818cbc46568b07709d68 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 11 Jan 2005 13:53:10 +0300 Subject: [PATCH 142/157] A fix for linking failure of MySQL client when linking with imap libraries (Bug#7428) (renamed: hash_reset -> my_hash_reset) mysys/hash.c: renamed: hash_reset -> my_hash_reset sql/sql_class.h: hash_reset -> my_hash_reset --- mysys/hash.c | 6 +++--- sql/sql_class.h | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/mysys/hash.c b/mysys/hash.c index 451bc1eb7f5..6091ef39a4e 100644 --- a/mysys/hash.c +++ b/mysys/hash.c @@ -122,13 +122,13 @@ void hash_free(HASH *hash) Delete all elements from the hash (the hash itself is to be reused). SYNOPSIS - hash_reset() + my_hash_reset() hash the hash to delete elements of */ -void hash_reset(HASH *hash) +void my_hash_reset(HASH *hash) { - DBUG_ENTER("hash_reset"); + DBUG_ENTER("my_hash_reset"); DBUG_PRINT("enter",("hash: 0x%lxd",hash)); hash_free_elements(hash); diff --git a/sql/sql_class.h b/sql/sql_class.h index 169835f3324..7978aec8f1d 100644 --- a/sql/sql_class.h +++ b/sql/sql_class.h @@ -648,8 +648,8 @@ public: /* Erase all statements (calls Statement destructor) */ void reset() { - hash_reset(&names_hash); - hash_reset(&st_hash); + my_hash_reset(&names_hash); + my_hash_reset(&st_hash); last_found_statement= 0; } From 194937169f340d35a36ef74def972e1699df477c Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 11 Jan 2005 13:57:07 +0300 Subject: [PATCH 143/157] Followup: rename the declaration (hash_reset -> my_hash_reset) --- include/hash.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/hash.h b/include/hash.h index cd7210a290c..9a6d91036e1 100644 --- a/include/hash.h +++ b/include/hash.h @@ -47,7 +47,7 @@ my_bool _hash_init(HASH *hash, CHARSET_INFO *charset, uint key_length, hash_get_key get_key, void (*free_element)(void*), uint flags CALLER_INFO_PROTO); void hash_free(HASH *tree); -void hash_reset(HASH *hash); +void my_hash_reset(HASH *hash); byte *hash_element(HASH *hash,uint idx); gptr hash_search(HASH *info,const byte *key,uint length); gptr hash_next(HASH *info,const byte *key,uint length); From ae7169786e92929680f7b49bb86a2635be8729f9 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 11 Jan 2005 12:50:54 +0100 Subject: [PATCH 144/157] can't use my_pread,my_pwrite since it uses mutexes on the files --- ndb/src/kernel/blocks/ndbfs/AsyncFile.cpp | 57 +++++++++++------------ 1 file changed, 27 insertions(+), 30 deletions(-) diff --git a/ndb/src/kernel/blocks/ndbfs/AsyncFile.cpp b/ndb/src/kernel/blocks/ndbfs/AsyncFile.cpp index a01f094cffd..ddf1681479c 100644 --- a/ndb/src/kernel/blocks/ndbfs/AsyncFile.cpp +++ b/ndb/src/kernel/blocks/ndbfs/AsyncFile.cpp @@ -27,6 +27,14 @@ #include #include +// use this to test broken pread code +//#define HAVE_BROKEN_PREAD + +#ifdef HAVE_BROKEN_PREAD +#undef HAVE_PWRITE +#undef HAVE_PREAD +#endif + #if defined NDB_WIN32 || defined NDB_OSE || defined NDB_SOFTOSE #else // For readv and writev @@ -379,9 +387,12 @@ AsyncFile::readBuffer(char * buf, size_t size, off_t offset){ if(dwSFP != offset) { return GetLastError(); } -#elif defined NDB_OSE || defined NDB_SOFTOSE - return_value = lseek(theFd, offset, SEEK_SET); - if (return_value != offset) { +#elif ! defined(HAVE_PREAD) + off_t seek_val; + while((seek_val= lseek(theFd, offset, SEEK_SET)) == (off_t)-1 + && errno == EINTR); + if(seek_val == (off_t)-1) + { return errno; } #endif @@ -400,10 +411,10 @@ AsyncFile::readBuffer(char * buf, size_t size, off_t offset){ return GetLastError(); } bytes_read = dwBytesRead; -#elif defined NDB_OSE || defined NDB_SOFTOSE +#elif ! defined(HAVE_PREAD) return_value = ::read(theFd, buf, size); #else // UNIX - return_value = my_pread(theFd, buf, size, offset,0); + return_value = ::pread(theFd, buf, size, offset); #endif #ifndef NDB_WIN32 if (return_value == -1 && errno == EINTR) { @@ -453,7 +464,7 @@ AsyncFile::readReq( Request * request) void AsyncFile::readvReq( Request * request) { -#if defined NDB_OSE || defined NDB_SOFTOSE +#if ! defined(HAVE_PREAD) readReq(request); return; #elif defined NDB_WIN32 @@ -483,7 +494,7 @@ AsyncFile::readvReq( Request * request) int AsyncFile::extendfile(Request* request) { -#if defined NDB_OSE || defined NDB_SOFTOSE +#if ! defined(HAVE_PWRITE) // Find max size of this file in this request int maxOffset = 0; int maxSize = 0; @@ -592,27 +603,13 @@ AsyncFile::writeBuffer(const char * buf, size_t size, off_t offset, if(dwSFP != offset) { return GetLastError(); } -#elif defined NDB_OSE || defined NDB_SOFTOSE - return_value = lseek(theFd, offset, SEEK_SET); - if (return_value != offset) { - DEBUG(ndbout_c("AsyncFile::writeReq, err1: return_value=%d, offset=%d\n", - return_value, chunk_offset)); - PRINT_ERRORANDFLAGS(0); - if (errno == 78) { - // Could not write beyond end of file, try to extend file - DEBUG(ndbout_c("AsyncFile::writeReq, Extend. file! filename=\"%s\" \n", - theFileName.c_str())); - return_value = extendfile(request); - if (return_value == -1) { - return errno; - } - return_value = lseek(theFd, offset, SEEK_SET); - if (return_value != offset) { - return errno; - } - } else { - return errno; - } +#elif ! defined(HAVE_PWRITE) + off_t seek_val; + while((seek_val= lseek(theFd, offset, SEEK_SET)) == (off_t)-1 + && errno == EINTR); + if(seek_val == (off_t)-1) + { + return errno; } #endif @@ -634,10 +631,10 @@ AsyncFile::writeBuffer(const char * buf, size_t size, off_t offset, DEBUG(ndbout_c("Warning partial write %d != %d", bytes_written, bytes_to_write)); } -#elif defined NDB_OSE || defined NDB_SOFTOSE +#elif ! defined(HAVE_PWRITE) return_value = ::write(theFd, buf, bytes_to_write); #else // UNIX - return_value = my_pwrite(theFd, buf, bytes_to_write, offset, 0); + return_value = ::pwrite(theFd, buf, bytes_to_write, offset); #endif #ifndef NDB_WIN32 if (return_value == -1 && errno == EINTR) { From d73a4de9b7e7a6e73f5b8e71d6c5e8611adf53cd Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 11 Jan 2005 13:30:11 +0100 Subject: [PATCH 145/157] bug#7798 - ndb - range scan with invalid table version could cause node failure mysql-test/r/ndb_index_ordered.result: Test scan with invalid table version mysql-test/t/ndb_index_ordered.test: Test scan with invalid table version ndb/src/kernel/blocks/dbtc/DbtcMain.cpp: Set apiConnectstate= CS_ABORTING when receving a scan req with invalid table version --- mysql-test/r/ndb_index_ordered.result | 16 ++++++++++++++ mysql-test/t/ndb_index_ordered.test | 18 ++++++++++++++++ ndb/src/kernel/blocks/dbtc/DbtcMain.cpp | 28 ++++++++++++++++++++----- 3 files changed, 57 insertions(+), 5 deletions(-) diff --git a/mysql-test/r/ndb_index_ordered.result b/mysql-test/r/ndb_index_ordered.result index 75a5e42732b..943571aa524 100644 --- a/mysql-test/r/ndb_index_ordered.result +++ b/mysql-test/r/ndb_index_ordered.result @@ -420,3 +420,19 @@ count(*)-8 select count(*)-9 from t1 use index (ti) where ti <= '23:59:59'; count(*)-9 0 +drop table t1; +create table t1(a int primary key, b int not null, index(b)); +insert into t1 values (1,1), (2,2); +set autocommit=0; +begin; +select count(*) from t1; +count(*) +2 +ALTER TABLE t1 ADD COLUMN c int; +select a from t1 where b = 2; +a +2 +show tables; +Tables_in_test +t1 +drop table t1; diff --git a/mysql-test/t/ndb_index_ordered.test b/mysql-test/t/ndb_index_ordered.test index 71635159604..89f1e5b7e9f 100644 --- a/mysql-test/t/ndb_index_ordered.test +++ b/mysql-test/t/ndb_index_ordered.test @@ -236,3 +236,21 @@ select count(*)-5 from t1 use index (ti) where ti < '10:11:11'; select count(*)-6 from t1 use index (ti) where ti <= '10:11:11'; select count(*)-8 from t1 use index (ti) where ti < '23:59:59'; select count(*)-9 from t1 use index (ti) where ti <= '23:59:59'; + +drop table t1; + +# bug#7798 +create table t1(a int primary key, b int not null, index(b)); +insert into t1 values (1,1), (2,2); +connect (con1,localhost,,,test); +connect (con2,localhost,,,test); +connection con1; +set autocommit=0; +begin; +select count(*) from t1; +connection con2; +ALTER TABLE t1 ADD COLUMN c int; +connection con1; +select a from t1 where b = 2; +show tables; +drop table t1; diff --git a/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp b/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp index dd1252b76b9..815d6c9d838 100644 --- a/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp +++ b/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp @@ -1879,7 +1879,6 @@ void Dbtc::packKeyData000Lab(Signal* signal, Uint32 totalLen) { CacheRecord * const regCachePtr = cachePtr.p; - UintR Tmp; jam(); Uint32 len = 0; @@ -8503,14 +8502,16 @@ void Dbtc::execSCAN_TABREQ(Signal* signal) apiConnectptr.i = scanTabReq->apiConnectPtr; tabptr.i = scanTabReq->tableId; - if (apiConnectptr.i >= capiConnectFilesize || - tabptr.i >= ctabrecFilesize) { + if (apiConnectptr.i >= capiConnectFilesize) + { jam(); warningHandlerLab(signal); return; }//if + ptrAss(apiConnectptr, apiConnectRecord); ApiConnectRecord * transP = apiConnectptr.p; + if (transP->apiConnectstate != CS_CONNECTED) { jam(); // could be left over from TCKEYREQ rollback @@ -8524,9 +8525,16 @@ void Dbtc::execSCAN_TABREQ(Signal* signal) } else { jam(); errCode = ZSTATE_ERROR; - goto SCAN_TAB_error; + goto SCAN_TAB_error_no_state_change; } } + + if(tabptr.i >= ctabrecFilesize) + { + errCode = ZUNKNOWN_TABLE_ERROR; + goto SCAN_TAB_error; + } + ptrAss(tabptr, tableRecord); if ((aiLength == 0) || (!tabptr.p->checkTable(schemaVersion)) || @@ -8621,8 +8629,18 @@ void Dbtc::execSCAN_TABREQ(Signal* signal) errCode = ZNO_SCANREC_ERROR; goto SCAN_TAB_error; - SCAN_TAB_error: +SCAN_TAB_error: jam(); + /** + * Prepare for up coming ATTRINFO/KEYINFO + */ + transP->apiConnectstate = CS_ABORTING; + transP->abortState = AS_IDLE; + transP->transid[0] = transid1; + transP->transid[1] = transid2; + +SCAN_TAB_error_no_state_change: + ScanTabRef * ref = (ScanTabRef*)&signal->theData[0]; ref->apiConnectPtr = transP->ndbapiConnect; ref->transId1 = transid1; From 927eef9ea196d7962f6c6ff0bdc750910d0f75b0 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 11 Jan 2005 14:49:35 +0100 Subject: [PATCH 146/157] Backup.cpp: bug#7660 ndb/src/kernel/blocks/backup/Backup.cpp: bug#7660 --- ndb/src/kernel/blocks/backup/Backup.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/ndb/src/kernel/blocks/backup/Backup.cpp b/ndb/src/kernel/blocks/backup/Backup.cpp index 07aeb771c97..d72efdd0a52 100644 --- a/ndb/src/kernel/blocks/backup/Backup.cpp +++ b/ndb/src/kernel/blocks/backup/Backup.cpp @@ -992,7 +992,11 @@ Backup::execUTIL_SEQUENCE_CONF(Signal* signal) }//if ndbrequire(ptr.p->masterData.state.getState() == DEFINING); - ptr.p->backupId = conf->sequenceValue[0]; + { + Uint64 backupId; + memcpy(&backupId,conf->sequenceValue,8); + ptr.p->backupId= (Uint32)backupId; + } ptr.p->backupKey[0] = (getOwnNodeId() << 16) | (ptr.p->backupId & 0xFFFF); ptr.p->backupKey[1] = NdbTick_CurrentMillisecond(); From 5e6debe6b13cf09315b60281c4f665fa5c6c6971 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 11 Jan 2005 14:54:58 +0100 Subject: [PATCH 147/157] Suma.cpp: same as prev fix, wrong read of 64 bit value ndb/src/kernel/blocks/suma/Suma.cpp: same as prev fix, wrong read of 64 bit value --- ndb/src/kernel/blocks/suma/Suma.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/ndb/src/kernel/blocks/suma/Suma.cpp b/ndb/src/kernel/blocks/suma/Suma.cpp index 88e6dea35ac..44ac054dd67 100644 --- a/ndb/src/kernel/blocks/suma/Suma.cpp +++ b/ndb/src/kernel/blocks/suma/Suma.cpp @@ -824,7 +824,8 @@ Suma::execUTIL_SEQUENCE_CONF(Signal* signal) return; } - Uint32 subId = conf->sequenceValue[0]; + Uint64 subId; + memcpy(&subId,conf->sequenceValue,8); Uint32 subData = conf->senderData; SubscriberPtr subbPtr; @@ -832,8 +833,8 @@ Suma::execUTIL_SEQUENCE_CONF(Signal* signal) CreateSubscriptionIdConf * subconf = (CreateSubscriptionIdConf*)conf; - subconf->subscriptionId = subId; - subconf->subscriptionKey =(getOwnNodeId() << 16) | (subId & 0xFFFF); + subconf->subscriptionId = (Uint32)subId; + subconf->subscriptionKey =(getOwnNodeId() << 16) | (Uint32)(subId & 0xFFFF); subconf->subscriberData = subbPtr.p->m_senderData; sendSignal(subbPtr.p->m_subscriberRef, GSN_CREATE_SUBID_CONF, signal, From c9079c1340b6d54be5e3e4323c71d54e264ba588 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 11 Jan 2005 15:38:03 +0100 Subject: [PATCH 148/157] - Housekeeping: removed a few unreferenced variables, noticed while doing Windows builds sql/sql_base.cc: - removed an unreferenced variable sql/strfunc.cc: - removed an unreferenced variable --- sql/sql_base.cc | 1 - sql/strfunc.cc | 4 ++-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/sql/sql_base.cc b/sql/sql_base.cc index 5c71049e565..2f2d9b290ac 100644 --- a/sql/sql_base.cc +++ b/sql/sql_base.cc @@ -2305,7 +2305,6 @@ int setup_wild(THD *thd, TABLE_LIST *tables, List &fields, List *sum_func_list, uint wild_num) { - bool is_stmt_prepare; DBUG_ENTER("setup_wild"); if (!wild_num) DBUG_RETURN(0); diff --git a/sql/strfunc.cc b/sql/strfunc.cc index 3ad6b1155d1..81aca092cec 100644 --- a/sql/strfunc.cc +++ b/sql/strfunc.cc @@ -147,7 +147,7 @@ uint find_type(TYPELIB *lib, const char *find, uint length, bool part_match) uint find_type2(TYPELIB *typelib, const char *x, uint length, CHARSET_INFO *cs) { - int find,pos,findpos; + int find,pos; const char *j; DBUG_ENTER("find_type2"); DBUG_PRINT("enter",("x: '%s' lib: 0x%lx",x,typelib)); @@ -157,7 +157,7 @@ uint find_type2(TYPELIB *typelib, const char *x, uint length, CHARSET_INFO *cs) DBUG_PRINT("exit",("no count")); DBUG_RETURN(0); } - LINT_INIT(findpos); + for (find=0, pos=0 ; (j=typelib->type_names[pos]) ; pos++) { if (!my_strnncoll(cs, (const uchar*) x, length, From 962512ad1b9c250bf87726a3d54c4705695cf7e1 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 11 Jan 2005 15:41:42 +0100 Subject: [PATCH 149/157] - Create the mysqld binaries with the correct file names during the build instead of renaming them in the packaging stage with Do-win-build later: mysqld-opt.exe -> mysqld.exe, mysqld.exe -> mysqld-debug.exe --- VC++Files/sql/mysqld.dsp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/VC++Files/sql/mysqld.dsp b/VC++Files/sql/mysqld.dsp index 9c642c08808..3508e6b31d0 100644 --- a/VC++Files/sql/mysqld.dsp +++ b/VC++Files/sql/mysqld.dsp @@ -58,7 +58,7 @@ BSC32=bscmake.exe # ADD BSC32 /nologo LINK32=xilink6.exe # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib Wsock32.lib ..\lib_release\vio.lib ..\lib_release\isam.lib ..\lib_release\merge.lib ..\lib_release\mysys.lib ..\lib_release\strings.lib ..\lib_release\regex.lib ..\lib_release\heap.lib /nologo /subsystem:console /pdb:none /machine:I386 /out:"../client_release/mysqld-opt.exe" +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib Wsock32.lib ..\lib_release\vio.lib ..\lib_release\isam.lib ..\lib_release\merge.lib ..\lib_release\mysys.lib ..\lib_release\strings.lib ..\lib_release\regex.lib ..\lib_release\heap.lib /nologo /subsystem:console /pdb:none /machine:I386 /out:"../client_release/mysqld.exe" # SUBTRACT LINK32 /debug !ELSEIF "$(CFG)" == "mysqld - Win32 Debug" @@ -84,7 +84,7 @@ BSC32=bscmake.exe # ADD BSC32 /nologo LINK32=xilink6.exe # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib Wsock32.lib ..\lib_debug\dbug.lib ..\lib_debug\vio.lib ..\lib_debug\isam.lib ..\lib_debug\merge.lib ..\lib_debug\mysys.lib ..\lib_debug\strings.lib ..\lib_debug\regex.lib ..\lib_debug\heap.lib ..\lib_debug\bdb.lib ..\lib_debug\innodb.lib /nologo /subsystem:console /incremental:no /debug /machine:I386 /out:"../client_debug/mysqld.exe" /pdbtype:sept +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib Wsock32.lib ..\lib_debug\dbug.lib ..\lib_debug\vio.lib ..\lib_debug\isam.lib ..\lib_debug\merge.lib ..\lib_debug\mysys.lib ..\lib_debug\strings.lib ..\lib_debug\regex.lib ..\lib_debug\heap.lib ..\lib_debug\bdb.lib ..\lib_debug\innodb.lib /nologo /subsystem:console /incremental:no /debug /machine:I386 /out:"../client_debug/mysqld-debug.exe" /pdbtype:sept !ELSEIF "$(CFG)" == "mysqld - Win32 nt" From a31c35022dcf780b9790e9fa7f935faa5b8501c5 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 11 Jan 2005 16:00:11 +0100 Subject: [PATCH 150/157] bug fixed parsing with comments on same line --- mysql-test/ndb/ndb_config_2_node.ini | 6 +++--- ndb/src/mgmsrv/InitConfigFileParser.cpp | 12 ++++++++++-- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/mysql-test/ndb/ndb_config_2_node.ini b/mysql-test/ndb/ndb_config_2_node.ini index 8c89d2aa2cc..c831a5c7ffa 100644 --- a/mysql-test/ndb/ndb_config_2_node.ini +++ b/mysql-test/ndb/ndb_config_2_node.ini @@ -9,13 +9,13 @@ DataDir= CHOOSE_FILESYSTEM MaxNoOfOrderedIndexes= CHOOSE_MaxNoOfOrderedIndexes [ndbd] -HostName= CHOOSE_HOSTNAME_1 +HostName= CHOOSE_HOSTNAME_1 # hostname is a valid network adress [ndbd] -HostName= CHOOSE_HOSTNAME_2 +HostName= CHOOSE_HOSTNAME_2 # hostname is a valid network adress [ndb_mgmd] -DataDir= CHOOSE_FILESYSTEM +DataDir= CHOOSE_FILESYSTEM # PortNumber= CHOOSE_PORT_MGM [mysqld] diff --git a/ndb/src/mgmsrv/InitConfigFileParser.cpp b/ndb/src/mgmsrv/InitConfigFileParser.cpp index 5cc5c3e9b32..822e10c89aa 100644 --- a/ndb/src/mgmsrv/InitConfigFileParser.cpp +++ b/ndb/src/mgmsrv/InitConfigFileParser.cpp @@ -228,13 +228,21 @@ bool InitConfigFileParser::parseNameValuePair(Context& ctx, const char* line) Vector tmp_string_split; if (BaseString(line).split(tmp_string_split, - BaseString("=:"), - 2) != 2) + "=:", 2) != 2) { ctx.reportError("Parse error"); return false; } + // ************************************* + // Remove all after # + // ************************************* + + Vector tmp_string_split2; + tmp_string_split[1].split(tmp_string_split2, + "#", 2); + tmp_string_split[1]=tmp_string_split2[0]; + // ************************************* // Remove leading and trailing chars // ************************************* From 62113c1011ac70b1cb9ad09b475e6e13074bf919 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 11 Jan 2005 18:02:44 +0300 Subject: [PATCH 151/157] A fix for Bug#7365 "embedded server for MacOS: problem with prepared statements": no test case, the test case is there already, libmysqld/examples/client_test.c, we just need to run it on a daily basis. libmysqld/lib_sql.cc: Convert statement id to least significant byte first format, uset for data transmission in MySQL protocol. It's assumed to be in this format by mysql_stmt_execute. --- libmysqld/lib_sql.cc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/libmysqld/lib_sql.cc b/libmysqld/lib_sql.cc index 26d97fa03c8..15fe3a03390 100644 --- a/libmysqld/lib_sql.cc +++ b/libmysqld/lib_sql.cc @@ -219,12 +219,13 @@ static my_bool emb_mysql_read_query_result(MYSQL *mysql) static int emb_stmt_execute(MYSQL_STMT *stmt) { DBUG_ENTER("emb_stmt_execute"); + char header[4]; + int4store(header, stmt->stmt_id); THD *thd= (THD*)stmt->mysql->thd; thd->client_param_count= stmt->param_count; thd->client_params= stmt->params; if (emb_advanced_command(stmt->mysql, COM_EXECUTE,0,0, - (const char*)&stmt->stmt_id,sizeof(stmt->stmt_id), - 1) || + header, sizeof(header), 1) || emb_mysql_read_query_result(stmt->mysql)) { NET *net= &stmt->mysql->net; From 7bb97a4ad8aee442d657de23093d1c9f4a2013d5 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 11 Jan 2005 19:58:53 +0400 Subject: [PATCH 152/157] Bug #7730 Server crash using soundex on an utf8 table Don't use my_tolower: it works only for 8bit charsets. --- mysql-test/r/ctype_utf8.result | 12 ++++++++++++ mysql-test/t/ctype_utf8.test | 9 +++++++++ sql/item_strfunc.cc | 15 ++++++++++----- 3 files changed, 31 insertions(+), 5 deletions(-) diff --git a/mysql-test/r/ctype_utf8.result b/mysql-test/r/ctype_utf8.result index 599d49208e7..ebaa329891c 100644 --- a/mysql-test/r/ctype_utf8.result +++ b/mysql-test/r/ctype_utf8.result @@ -817,3 +817,15 @@ drop table t1; select 'c' like '\_' as want0; want0 0 +create table t1 (id integer, a varchar(100) character set utf8 collate utf8_unicode_ci); +insert into t1 values (1, 'Test'); +select * from t1 where soundex(a) = soundex('Test'); +id a +1 Test +select * from t1 where soundex(a) = soundex('TEST'); +id a +1 Test +select * from t1 where soundex(a) = soundex('test'); +id a +1 Test +drop table t1; diff --git a/mysql-test/t/ctype_utf8.test b/mysql-test/t/ctype_utf8.test index 42031be8f3c..214c2712665 100644 --- a/mysql-test/t/ctype_utf8.test +++ b/mysql-test/t/ctype_utf8.test @@ -666,3 +666,12 @@ drop table t1; # select 'c' like '\_' as want0; +# +# Bug #7730 Server crash using soundex on an utf8 table +# +create table t1 (id integer, a varchar(100) character set utf8 collate utf8_unicode_ci); +insert into t1 values (1, 'Test'); +select * from t1 where soundex(a) = soundex('Test'); +select * from t1 where soundex(a) = soundex('TEST'); +select * from t1 where soundex(a) = soundex('test'); +drop table t1; diff --git a/sql/item_strfunc.cc b/sql/item_strfunc.cc index 2a63c5355a4..d0190af042e 100644 --- a/sql/item_strfunc.cc +++ b/sql/item_strfunc.cc @@ -1562,9 +1562,14 @@ void Item_func_soundex::fix_length_and_dec() else return 0 */ -static char get_scode(CHARSET_INFO *cs,char *ptr) +static char soundex_toupper(char ch) { - uchar ch=my_toupper(cs,*ptr); + return (ch >= 'a' && ch <= 'z') ? ch - 'a' + 'A' : ch; +} + +static char get_scode(char *ptr) +{ + uchar ch= soundex_toupper(*ptr); if (ch < 'A' || ch > 'Z') { // Thread extended alfa (country spec) @@ -1594,8 +1599,8 @@ String *Item_func_soundex::val_str(String *str) from++; /* purecov: inspected */ if (from == end) return &my_empty_string; // No alpha characters. - *to++ = my_toupper(cs,*from); // Copy first letter - last_ch = get_scode(cs,from); // code of the first letter + *to++ = soundex_toupper(*from); // Copy first letter + last_ch = get_scode(from); // code of the first letter // for the first 'double-letter check. // Loop on input letters until // end of input (null) or output @@ -1604,7 +1609,7 @@ String *Item_func_soundex::val_str(String *str) { if (!my_isalpha(cs,*from)) continue; - ch=get_scode(cs,from); + ch=get_scode(from); if ((ch != '0') && (ch != last_ch)) // if not skipped or double { *to++ = ch; // letter, copy to output From 22de48855756432c954069d79e17940fae32b8e6 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 11 Jan 2005 19:40:33 +0200 Subject: [PATCH 153/157] Fixed Bug#2813, "analyse does not quot string values in enams from string". --- mysql-test/r/analyse.result | 6 ++++ mysql-test/t/analyse.test | 4 +++ sql/sql_analyse.cc | 59 ++++++++++++++++++++++++++++++++++++- 3 files changed, 68 insertions(+), 1 deletion(-) diff --git a/mysql-test/r/analyse.result b/mysql-test/r/analyse.result index b51afab5b54..8013bc516bb 100644 --- a/mysql-test/r/analyse.result +++ b/mysql-test/r/analyse.result @@ -96,3 +96,9 @@ select * from t2; Field_name Min_value Max_value Min_length Max_length Empties_or_zeros Nulls Avg_value_or_avg_length Std Optimal_fieldtype test.t1.a 1 2 1 1 0 0 1.5000 0.5000 ENUM('1','2') NOT NULL drop table t1,t2; +create table t1 (v varchar(128)); +insert into t1 values ('abc'),('abc\'def\\hij\"klm\0opq'),('\''),('\"'),('\\'),('a\0'),('b\''),('c\"'),('d\\'),('\'b'),('\"c'),('\\d'),('a\0\0\0b'),('a\'\'\'\'b'),('a\"\"\"\"b'),('a\\\\\\\\b'),('\'\0\\\"'),('\'\''),('\"\"'),('\\\\'),('The\ZEnd'); +select * from t1 procedure analyse(); +Field_name Min_value Max_value Min_length Max_length Empties_or_zeros Nulls Avg_value_or_avg_length Std Optimal_fieldtype +test.t1.v " \\ 1 19 0 0 3.7619 NULL ENUM('"','""','"c','\'\0\\"','\'','\'\'','\'b','a\0\0\0b','a\0','a""""b','a\'\'\'\'b','abc','abc\'def\\hij"klm\0opq','a\\\\\\\\b','b\'','c"','d\\','The\ZEnd','\\','\\d','\\\\') NOT NULL +drop table t1; diff --git a/mysql-test/t/analyse.test b/mysql-test/t/analyse.test index 47f3473584b..34343c2b7bf 100644 --- a/mysql-test/t/analyse.test +++ b/mysql-test/t/analyse.test @@ -38,3 +38,7 @@ select * from t2; insert into t2 select * from t1 procedure analyse(); select * from t2; drop table t1,t2; +create table t1 (v varchar(128)); +insert into t1 values ('abc'),('abc\'def\\hij\"klm\0opq'),('\''),('\"'),('\\'),('a\0'),('b\''),('c\"'),('d\\'),('\'b'),('\"c'),('\\d'),('a\0\0\0b'),('a\'\'\'\'b'),('a\"\"\"\"b'),('a\\\\\\\\b'),('\'\0\\\"'),('\'\''),('\"\"'),('\\\\'),('The\ZEnd'); +select * from t1 procedure analyse(); +drop table t1; diff --git a/sql/sql_analyse.cc b/sql/sql_analyse.cc index 1e0aebbc1ec..5265857f3b1 100644 --- a/sql/sql_analyse.cc +++ b/sql/sql_analyse.cc @@ -59,6 +59,7 @@ int compare_ulonglong2(void* cmp_arg __attribute__((unused)), return compare_ulonglong(s,t); } +static bool append_escaped(String *to_str, String *from_str); Procedure * proc_analyse_init(THD *thd, ORDER *param, select_result *result, @@ -890,7 +891,8 @@ int collect_string(String *element, else info->found = 1; info->str->append('\''); - info->str->append(*element); + if (append_escaped(info->str, element)) + return 1; info->str->append('\''); return 0; } // collect_string @@ -1025,3 +1027,58 @@ uint check_ulonglong(const char *str, uint length) while (*cmp && *cmp++ == *str++) ; return ((uchar) str[-1] <= (uchar) cmp[-1]) ? smaller : bigger; } /* check_ulonlong */ + + + +/* + FUNCTION: append_escaped() + + DESCRIPTION + append_escaped() takes a String type variable, where it appends + escaped the second argument. Only characters that require escaping + will be escaped. + + ARGUMENTS + A pointer to a String variable, where results will be appended + A pointer to a String variable, which is appended to the result + String, escaping those characters that require it. + + RETURN VALUES + 0 Success + 1 Out of memory +*/ + +static bool append_escaped(String *to_str, String *from_str) +{ + char *from, *end, c; + + if (to_str->realloc(to_str->length() + from_str->length())) + return 1; + + from= (char*) from_str->ptr(); + end= from + from_str->length(); + for (; from < end; from++) + { + c= *from; + switch (c) { + case '\0': + c= '0'; + break; + case '\032': + c= 'Z'; + break; + case '\\': + case '\'': + break; + default: + goto normal_character; + } + if (to_str->append('\\')) + return 1; + + normal_character: + if (to_str->append(c)) + return 1; + } + return 0; +} From f214faa8adcb49ba2bd2bc4055d303e5e88404d3 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 11 Jan 2005 21:50:30 +0100 Subject: [PATCH 154/157] Replace ZLIB_LIBS in mysql_config. (Bug #6418) scripts/Makefile.am: Replace ZLIB_LIBS --- scripts/Makefile.am | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/Makefile.am b/scripts/Makefile.am index 4158b5a34dc..71b70fc0e4a 100644 --- a/scripts/Makefile.am +++ b/scripts/Makefile.am @@ -121,6 +121,7 @@ SUFFIXES = .sh -e 's!@''CXXFLAGS''@!@SAVE_CXXFLAGS@!'\ -e 's!@''LDFLAGS''@!@SAVE_LDFLAGS@!'\ -e 's!@''CLIENT_LIBS''@!@CLIENT_LIBS@!' \ + -e 's!@''ZLIB_LIBS''@!@ZLIB_LIBS@!' \ -e 's!@''LIBS''@!@LIBS@!' \ -e 's!@''WRAPLIBS''@!@WRAPLIBS@!' \ -e 's!@''innodb_system_libs''@!@innodb_system_libs@!' \ From d5a3f4a6e3782499f016dd1ca546af5585031b4a Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 11 Jan 2005 23:09:10 +0100 Subject: [PATCH 155/157] ndbcluster.sh: increased timeouts to see if more tests get started automatically mysql-test/ndb/ndbcluster.sh: increased timeouts to see if more tests get started automatically --- mysql-test/ndb/ndbcluster.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mysql-test/ndb/ndbcluster.sh b/mysql-test/ndb/ndbcluster.sh index 848223a091c..2d529f8fe0f 100644 --- a/mysql-test/ndb/ndbcluster.sh +++ b/mysql-test/ndb/ndbcluster.sh @@ -191,7 +191,7 @@ if ( cd "$fs_ndb" ; $exec_mgmtsrvr -f config.ini ) ; then :; else echo "Unable to start $exec_mgmtsrvr from `pwd`" exit 1 fi -if sleep_until_file_created $fs_ndb/ndb_3.pid 30 +if sleep_until_file_created $fs_ndb/ndb_3.pid 120 then :; else exit 1 fi @@ -201,7 +201,7 @@ cat `find "$fs_ndb" -name 'ndb_*.pid'` > "$fs_ndb/$pidfile" echo "Starting ndbd" ( cd "$fs_ndb" ; $exec_ndb $flags_ndb & ) -if sleep_until_file_created $fs_ndb/ndb_1.pid 30 +if sleep_until_file_created $fs_ndb/ndb_1.pid 120 then :; else stop_default_ndbcluster exit 1 @@ -212,7 +212,7 @@ cat `find "$fs_ndb" -name 'ndb_*.pid'` > "$fs_ndb/$pidfile" echo "Starting ndbd" ( cd "$fs_ndb" ; $exec_ndb $flags_ndb & ) -if sleep_until_file_created $fs_ndb/ndb_2.pid 30 +if sleep_until_file_created $fs_ndb/ndb_2.pid 120 then :; else stop_default_ndbcluster exit 1 From 7e36a0b7cbad8ff88ada96913b1b89f202cc3efb Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 12 Jan 2005 11:17:03 +0100 Subject: [PATCH 156/157] ndb - fix 64-bit problem in autotest ndb/test/src/CpcClient.cpp: Fix 64-bit problem --- ndb/test/src/CpcClient.cpp | 42 ++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 22 deletions(-) diff --git a/ndb/test/src/CpcClient.cpp b/ndb/test/src/CpcClient.cpp index 2ef23528360..1d1b4fcb977 100644 --- a/ndb/test/src/CpcClient.cpp +++ b/ndb/test/src/CpcClient.cpp @@ -30,7 +30,7 @@ 0, 0, \ 0, \ (desc), \ - (void *)(value) } + (value) } #define CPC_ARG(name, type, opt, desc) \ { (name), \ @@ -351,17 +351,12 @@ SimpleCpcClient::define_process(Process & p, Properties& reply){ int SimpleCpcClient::list_processes(Vector &procs, Properties& reply) { - enum Proclist { - Proclist_Start, - Proclist_End, - Proclist_Entry - }; + int start, end, entry; const ParserRow_t list_reply[] = { - CPC_CMD("start processes", Proclist_Start, ""), + CPC_CMD("start processes", &start, ""), + CPC_CMD("end processes", &end, ""), - CPC_CMD("end processes", Proclist_End, ""), - - CPC_CMD("process", Proclist_Entry, ""), + CPC_CMD("process", &entry, ""), CPC_ARG("id", Int, Mandatory, "Id of process."), CPC_ARG("name", String, Mandatory, "Name of process"), CPC_ARG("group", String, Mandatory, "Group of process"), @@ -390,26 +385,29 @@ SimpleCpcClient::list_processes(Vector &procs, Properties& reply) { bool done = false; while(!done) { const Properties *proc; - enum Proclist p; - cpc_recv(list_reply, &proc, (void **)&p); + void *p; + cpc_recv(list_reply, &proc, &p); - switch(p) { - case Proclist_Start: + if(p == &start) + { /* do nothing */ - break; - case Proclist_End: + } + else if(p == &end) + { done = true; - break; - case Proclist_Entry: + } + else if(p == &entry) + { if(proc != NULL){ Process p; convert(* proc, p); procs.push_back(p); } - break; - default: - /* ignore */ - break; + } + else + { + ndbout_c("internal error: %d", __LINE__); + return -1; } } return 0; From d862f846439ba582b704298f0f439abf36b88832 Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 12 Jan 2005 13:06:06 +0100 Subject: [PATCH 157/157] - Modified Do-compile to run the test suite with ps-protocol and against the embedded server by default (if included). These additional steps can be skipped by providing "--skip-embedded-test" and "--skip-ps-test" Build-tools/Do-compile: - enabled running the test suite with ps-protocol and against the embedded server by default (if included). These additional steps can be skipped by providing "--skip-embedded-test" and "--skip-ps-test" --- Build-tools/Do-compile | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/Build-tools/Do-compile b/Build-tools/Do-compile index 78dcd634f7c..1e7041e8f7a 100755 --- a/Build-tools/Do-compile +++ b/Build-tools/Do-compile @@ -11,7 +11,7 @@ $opt_distribution=$opt_user=$opt_config_env=$opt_config_extra_env=""; $opt_dbd_options=$opt_perl_options=$opt_config_options=$opt_make_options=$opt_suffix=""; $opt_tmp=$opt_version_suffix=""; $opt_bundled_zlib=$opt_help=$opt_delete=$opt_debug=$opt_stage=$opt_no_test=$opt_no_perl=$opt_one_error=$opt_with_low_memory=$opt_fast_benchmark=$opt_static_client=$opt_static_server=$opt_static_perl=$opt_sur=$opt_with_small_disk=$opt_local_perl=$opt_tcpip=$opt_build_thread=$opt_use_old_distribution=$opt_enable_shared=$opt_no_crash_me=$opt_no_strip=$opt_with_archive=$opt_with_cluster=$opt_with_csv=$opt_with_example=$opt_with_debug=$opt_no_benchmark=$opt_no_mysqltest=$opt_without_embedded=$opt_readline=0; -$opt_embedded_test=$opt_ps_test=$opt_innodb=$opt_bdb=$opt_raid=$opt_libwrap=$opt_clearlogs=0; +$opt_skip_embedded_test=$opt_skip_ps_test=$opt_innodb=$opt_bdb=$opt_raid=$opt_libwrap=$opt_clearlogs=0; GetOptions( "bdb", @@ -25,7 +25,6 @@ GetOptions( "delete", "distribution=s", "enable-shared", - "embedded-test", "fast-benchmark", "help|Information", "innodb", @@ -41,9 +40,10 @@ GetOptions( "one-error", "perl-files=s", "perl-options=s", - "ps-test", "raid", "readline", + "skip-embedded-test", + "skip-ps-test", "stage=i", "static-client", "static-perl", @@ -57,8 +57,8 @@ GetOptions( "version-suffix=s", "with-archive", "with-cluster", - "with-csv", - "with-example", + "with-csv", + "with-example", "with-debug", "with-low-memory", "with-other-libc=s", @@ -278,7 +278,7 @@ if ($opt_stage <= 1) $opt_config_options.= " --with-libedit"; } $opt_config_options.= " --with-embedded-server" unless ($opt_without_embedded); - $opt_embedded_test= 0 if ($opt_without_embedded); + $opt_skip_embedded_test= 1 if ($opt_without_embedded); $opt_config_options.= " --with-archive-storage-engine" if ($opt_with_archive); $opt_config_options.= " --with-ndbcluster" if ($opt_with_cluster); $opt_config_options.= " --with-csv-storage-engine" if ($opt_with_csv); @@ -391,14 +391,14 @@ if ($opt_stage <= 5 && !$opt_no_test && !$opt_no_mysqltest) safe_cd("${test_dir}/mysql-test"); check_system("./mysql-test-run $flags --tmpdir=$bench_tmpdir --master_port=$mysql_tcp_port --slave_port=$slave_port --ndbcluster_port=$ndbcluster_port --manager-port=$manager_port --no-manager --sleep=10", "tests were successful"); - if ($opt_ps_test) + unless ($opt_skip_ps_test) { log_timestamp(); info("Running test suite using prepared statements"); check_system("./mysql-test-run $flags --ps-protocol --tmpdir=$bench_tmpdir --master_port=$mysql_tcp_port --slave_port=$slave_port --ndbcluster_port=$ndbcluster_port --manager-port=$manager_port --no-manager --sleep=10", "tests were successful"); } - if ($opt_embedded_test) + unless ($opt_skip_embedded_test) { log_timestamp(); info("Running embedded server test suite"); @@ -551,9 +551,6 @@ Delete the distribution file. --distribution= Name of the MySQL source distribution file. ---embedded-test -Run the test suite against the embedded server - --enable-shared Compile with shared libraries @@ -602,15 +599,18 @@ Compile and install the given perl modules. --perl-options= Build Perl modules with the additional options ---ps-test -Run an additional test run, using prepared statements - --raid Compile with RAID support --readline Compile against readline library instead of libedit +--skip-embedded-test +Skip running the test suite against the embedded server + +--skip-ps-test +Skip running the additional test run that uses the prepared statement protocol + --stage=[1-6] Start script from some specific point.
", PAGER); safe_put_field(cur[i],lengths[i]); (void) tee_fputs("