After merge fixes

Added more DBUG statements
Ensure that we are comparing end space with BINARY strings
Use 'any_db' instead of '' to mean any database. (For HANDLER command)
Only strip ' ' when comparing CHAR, not other space-like characters (like \t)


BitKeeper/deleted/.del-ctype_tis620.result-old~3578ceb0b8284685:
  Delete: mysql-test/r/ctype_tis620.result-old
BitKeeper/deleted/.del-ctype_tis620.test-old~ffb1bbd2935d1aba:
  Delete: mysql-test/t/ctype_tis620.test-old
client/mysqlbinlog.cc:
  Added DBUG statements
  Added call of my_end() to free all used memory on exit
heap/hp_info.c:
  After merge fixes
heap/hp_open.c:
  After merge fixes
include/heap.h:
  After merge fixes
include/m_ctype.h:
  Use pchar instead of 'int' for character parameters.
  Added 'my_binary_compare()'
include/m_string.h:
  Fixed wrong define
innobase/ibuf/ibuf0ibuf.c:
  After merge fixes
innobase/srv/srv0start.c:
  After merge fixes
mysql-test/r/alter_table.result:
  Fixed results after merge
mysql-test/r/auto_increment.result:
  Fixed results after merge
mysql-test/r/bdb.result:
  Fixed results after merge
mysql-test/r/binary.result:
  Fixed results after merge
mysql-test/r/create.result:
  Fixed results after merge
mysql-test/r/ctype_mb.result:
  Fixed results after merge
mysql-test/r/ctype_tis620.result:
  Fixed results after merge
mysql-test/r/ctype_utf8.result:
  Fixed results after merge
mysql-test/r/delete.result:
  Fixed results after merge
mysql-test/r/func_compress.result:
  Fixed results after merge
mysql-test/r/func_gconcat.result:
  Fixed results after merge
mysql-test/r/func_group.result:
  Fixed results after merge
mysql-test/r/func_str.result:
  Fixed results after merge
mysql-test/r/innodb.result:
  Fixed results after merge
mysql-test/r/insert.result:
  Fixed results after merge
mysql-test/r/insert_select.result:
  Fixed results after merge
mysql-test/r/key.result:
  Fixed results after merge
mysql-test/r/loaddata.result:
  Fixed results after merge
mysql-test/r/lock.result:
  Fixed results after merge
mysql-test/r/myisam.result:
  Fixed results after merge
mysql-test/r/null.result:
  Fixed results after merge
mysql-test/r/null_key.result:
  Fixed results after merge
mysql-test/r/order_by.result:
  Fixed results after merge
mysql-test/r/query_cache.result:
  Fixed results after merge
mysql-test/r/range.result:
  Fixed results after merge
mysql-test/r/rpl_multi_delete.result:
  Fixed results after merge
mysql-test/r/rpl_until.result:
  Fixed results after merge
mysql-test/r/subselect.result:
  Fixed results after merge
mysql-test/r/subselect_innodb.result:
  Fixed results after merge
mysql-test/r/type_blob.result:
  Fixed results after merge
mysql-test/r/type_datetime.result:
  Fixed results after merge
mysql-test/r/type_decimal.result:
  Fixed results after merge
mysql-test/r/type_enum.result:
  Fixed results after merge
mysql-test/r/type_float.result:
  Fixed results after merge
mysql-test/r/type_ranges.result:
  Fixed results after merge
mysql-test/r/type_time.result:
  Fixed results after merge
mysql-test/r/type_timestamp.result:
  Fixed results after merge
mysql-test/r/type_uint.result:
  Fixed results after merge
mysql-test/r/type_year.result:
  Fixed results after merge
mysql-test/r/variables.result:
  Fixed results after merge
mysql-test/r/warnings.result:
  Fixed results after merge
mysql-test/t/case.test:
  Fixed shifted error messages
mysql-test/t/create.test:
  Fixed shifted error messages
mysql-test/t/ctype_collate.test:
  Fixed shifted error messages
mysql-test/t/ctype_tis620.test:
  Merge with 4.0 ctype_tis620 test
mysql-test/t/delete.test:
  Fixed shifted error messages
mysql-test/t/derived.test:
  Fixed shifted error messages
mysql-test/t/fulltext.test:
  Fixed shifted error messages
mysql-test/t/func_in.test:
  Fixed shifted error messages
mysql-test/t/func_str.test:
  Fixed shifted error messages
mysql-test/t/func_test.test:
  Fixed shifted error messages
mysql-test/t/grant.test:
  Fixed shifted error messages
mysql-test/t/innodb.test:
  Change to 4.1 syntax
mysql-test/t/key_cache.test:
  Fixed shifted error messages
mysql-test/t/myisam.test:
  New test of blob and end space
mysql-test/t/row.test:
  Fixed shifted error messages
mysql-test/t/rpl_until.test:
  Fixed shifted error messages
mysql-test/t/subselect.test:
  Fixed shifted error messages
mysql-test/t/subselect_innodb.test:
  Fix test to take into account foreign key constraints
mysql-test/t/union.test:
  Fixed shifted error messages
mysql-test/t/user_var.test:
  Fixed shifted error messages
mysql-test/t/variables.test:
  Fixed shifted error messages
mysys/my_handler.c:
  Merge with 4.0 code
sql/ha_heap.cc:
  After merge fixes
sql/handler.cc:
  After merge fixes
sql/item.cc:
  After merge fixes
sql/item_cmpfunc.cc:
  Ensure that we are comparing end space with BINARY strings
sql/item_cmpfunc.h:
  Ensure that we are comparing end space with BINARY strings
sql/log_event.cc:
  More DBUG statements
  Ensure that we use all options to LOAD DATA in replication
sql/opt_range.cc:
  After merge fixes
sql/sql_db.cc:
  After merge fixes
sql/sql_handler.cc:
  After merge fixes
  Use 'any_db' instead of '' to mean 'no database comparison'
sql/sql_parse.cc:
  After merge fixes
sql/sql_select.cc:
  After merge fixes
  Added function comment for setup_group()
sql/sql_string.cc:
  Added stringcmp() for binary comparison.
  Added function comments for sortcmp() and stringcmp()
sql/sql_string.h:
  Added stringcmp()
sql/sql_table.cc:
  After merge fixes
sql/sql_update.cc:
  After merge fixes
sql/sql_yacc.yy:
  Use 'any_db' instead of '' to mean any database. Using "" causes a 'wrong db name' error.
strings/ctype-big5.c:
  Strip only end space, not other space characters.
strings/ctype-bin.c:
  Removed some not needed functions.
  Added function comments
  Don't remove end space in comparisons
  Change my_wildcmp_bin() to be 'identical' with other similar code
strings/ctype-czech.c:
  Strip only end space, not other space characters.
strings/ctype-gbk.c:
  Strip only end space, not other space characters.
strings/ctype-latin1.c:
  Strip only end space, not other space characters.
strings/ctype-mb.c:
  Strip only end space, not other space characters.
strings/ctype-simple.c:
  Strip only end space, not other space characters.
strings/ctype-sjis.c:
  Strip only end space, not other space characters.
strings/ctype-tis620.c:
  Added usage of my_instr_simple. This needs to be cleaned up!
strings/ctype-utf8.c:
  Strip only end space, not other space characters.
strings/ctype-win1250ch.c:
  Strip only end space, not other space characters.
  Fixed indentation
strings/strto.c:
  Code cleanup
This commit is contained in:
unknown 2004-02-16 10:03:25 +02:00
parent 5b2c312627
commit a07e48eca0
101 changed files with 1483 additions and 1031 deletions

View file

@ -233,15 +233,16 @@ int Load_log_processor::process(Create_file_log_event *ce)
int error= 0;
char *fname, *ptr;
File file;
DBUG_ENTER("Load_log_processor::process");
if (set_dynamic(&file_names,(gptr)&ce,ce->file_id))
{
sql_print_error("Could not construct local filename %s%s",
target_dir_name,bname);
return -1;
DBUG_RETURN(-1);
}
if (!(fname= my_malloc(full_len,MYF(MY_WME))))
return -1;
DBUG_RETURN(-1);
memcpy(fname, target_dir_name, target_dir_name_len);
ptr= fname + target_dir_name_len;
@ -253,20 +254,21 @@ int Load_log_processor::process(Create_file_log_event *ce)
{
sql_print_error("Could not construct local filename %s%s",
target_dir_name,bname);
return -1;
DBUG_RETURN(-1);
}
ce->set_fname_outside_temp_buf(fname,strlen(fname));
if (my_write(file,(byte*) ce->block,ce->block_len,MYF(MY_WME|MY_NABP)))
error= -1;
if (my_close(file,MYF(MY_WME)))
if (my_close(file, MYF(MY_WME)))
error= -1;
return error;
DBUG_RETURN(error);
}
int Load_log_processor::process(Append_block_log_event *ae)
{
DBUG_ENTER("Load_log_processor::process");
Create_file_log_event* ce= ((ae->file_id < file_names.elements) ?
*((Create_file_log_event**)file_names.buffer +
ae->file_id) :
@ -278,12 +280,12 @@ int Load_log_processor::process(Append_block_log_event *ae)
int error= 0;
if (((file= my_open(ce->fname,
O_APPEND|O_BINARY|O_WRONLY,MYF(MY_WME))) < 0))
return -1;
DBUG_RETURN(-1);
if (my_write(file,(byte*)ae->block,ae->block_len,MYF(MY_WME|MY_NABP)))
error= -1;
if (my_close(file,MYF(MY_WME)))
error= -1;
return error;
DBUG_RETURN(error);
}
/*
@ -293,7 +295,7 @@ int Load_log_processor::process(Append_block_log_event *ae)
*/
fprintf(stderr,"Warning: ignoring Append_block as there is no \
Create_file event for file_id: %u\n",ae->file_id);
return -1;
DBUG_RETURN(-1);
}
@ -304,6 +306,8 @@ int process_event(ulonglong *rec_count, char *last_db, Log_event *ev,
my_off_t pos, int old_format)
{
char ll_buff[21];
DBUG_ENTER("process_event");
if ((*rec_count) >= offset)
{
if (!short_form)
@ -315,11 +319,7 @@ int process_event(ulonglong *rec_count, char *last_db, Log_event *ev,
{
const char * log_dbname = ((Query_log_event*)ev)->db;
if ((log_dbname != NULL) && (strcmp(log_dbname, database)))
{
(*rec_count)++;
delete ev;
return 0; // Time for next event
}
goto end;
}
ev->print(result_file, short_form, last_db);
break;
@ -336,11 +336,7 @@ int process_event(ulonglong *rec_count, char *last_db, Log_event *ev,
*/
const char * log_dbname = ce->db;
if ((log_dbname != NULL) && (strcmp(log_dbname, database)))
{
(*rec_count)++;
delete ev;
return 0; // next
}
goto end; // Next event
}
/*
We print the event, but with a leading '#': this is just to inform
@ -388,10 +384,12 @@ Create_file event for file_id: %u\n",exv->file_id);
ev->print(result_file, short_form, last_db);
}
}
end:
(*rec_count)++;
if (ev)
delete ev;
return 0;
DBUG_RETURN(0);
}
@ -472,6 +470,7 @@ static void die(const char* fmt, ...)
fprintf(stderr, "\n");
va_end(args);
cleanup();
my_end(0);
exit(1);
}
@ -645,6 +644,8 @@ static int dump_remote_log_entries(const char* logname)
uint len;
NET* net = &mysql->net;
int old_format;
DBUG_ENTER("dump_remote_log_entries");
old_format = check_master_version(mysql);
if (!position)
@ -663,7 +664,7 @@ static int dump_remote_log_entries(const char* logname)
if (simple_command(mysql, COM_BINLOG_DUMP, buf, len + 10, 1))
{
fprintf(stderr,"Got fatal error sending the log dump command\n");
return 1;
DBUG_RETURN(1);
}
my_off_t old_off= 0;
@ -678,7 +679,7 @@ static int dump_remote_log_entries(const char* logname)
{
fprintf(stderr, "Got error reading packet from server: %s\n",
mysql_error(mysql));
return 1;
DBUG_RETURN(1);
}
if (len < 8 && net->read_pos[0] == 254)
break; // end of data
@ -689,14 +690,14 @@ static int dump_remote_log_entries(const char* logname)
if (!ev)
{
fprintf(stderr, "Could not construct log event object\n");
return 1;
DBUG_RETURN(1);
}
Log_event_type type= ev->get_type_code();
if (!old_format || ( type != LOAD_EVENT && type != CREATE_FILE_EVENT))
{
if (process_event(&rec_count,last_db,ev,old_off,old_format))
return 1;
DBUG_RETURN(1);
}
else
{
@ -706,16 +707,17 @@ static int dump_remote_log_entries(const char* logname)
File file;
if ((file= load_processor.prepare_new_file_for_old_format(le,fname)) < 0)
return 1;
DBUG_RETURN(1);
if (process_event(&rec_count,last_db,ev,old_off,old_format))
{
my_close(file,MYF(MY_WME));
return 1;
DBUG_RETURN(1);
}
if (load_processor.load_old_format_file(net,old_fname,old_len,file))
{
my_close(file,MYF(MY_WME));
return 1;
DBUG_RETURN(1);
}
my_close(file,MYF(MY_WME));
}
@ -729,7 +731,7 @@ static int dump_remote_log_entries(const char* logname)
else
old_off= BIN_LOG_HEADER_SIZE;
}
return 0;
DBUG_RETURN(0);
}
@ -738,6 +740,7 @@ static int check_header(IO_CACHE* file)
byte header[BIN_LOG_HEADER_SIZE];
byte buf[PROBE_HEADER_LEN];
int old_format=0;
DBUG_ENTER("check_header");
my_off_t pos = my_b_tell(file);
my_b_seek(file, (my_off_t)0);
@ -755,7 +758,7 @@ static int check_header(IO_CACHE* file)
}
}
my_b_seek(file, pos);
return old_format;
DBUG_RETURN(old_format);
}
@ -857,6 +860,8 @@ int main(int argc, char** argv)
static char **defaults_argv;
int exit_value;
MY_INIT(argv[0]);
DBUG_ENTER("main");
DBUG_PROCESS(argv[0]);
parse_args(&argc, (char***)&argv);
defaults_argv=argv;
@ -905,7 +910,7 @@ int main(int argc, char** argv)
free_defaults(defaults_argv);
my_end(0);
exit(exit_value);
return exit_value; // Keep compilers happy
DBUG_RETURN(exit_value); // Keep compilers happy
}
/*

View file

@ -54,7 +54,6 @@ int heap_info(reg1 HP_INFO *info,reg2 HEAPINFO *x, int flag )
x->index_length = info->s->index_length;
x->max_records = info->s->max_records;
x->errkey = info->errkey;
x->implicit_emptied= info->implicit_emptied;
if (flag & HA_STATUS_AUTO)
x->auto_increment= info->s->auto_increment + 1;
DBUG_RETURN(0);

View file

@ -63,7 +63,6 @@ HP_INFO *heap_open(const char *name, int mode)
#ifndef DBUG_OFF
info->opt_flag= READ_CHECK_USED; /* Check when changing */
#endif
info->implicit_emptied= 0;
DBUG_PRINT("exit",("heap: %lx reclength: %d records_in_block: %d",
info,share->reclength,share->block.records_in_block));
DBUG_RETURN(info);

View file

@ -51,7 +51,6 @@ typedef struct st_heapinfo /* Struct from heap_info */
uint reclength; /* Length of one record */
int errkey;
ulonglong auto_increment;
my_bool implicit_emptied;
} HEAPINFO;

View file

@ -111,7 +111,7 @@ typedef struct my_collation_handler_st
uchar *, uint, const uchar *, uint);
my_bool (*like_range)(struct charset_info_st *,
const char *s, uint s_length,
int w_prefix, int w_one, int w_many,
pchar w_prefix, pchar w_one, pchar w_many,
uint res_length,
char *min_str, char *max_str,
uint *min_len, uint *max_len);
@ -300,7 +300,7 @@ void my_fill_8bit(CHARSET_INFO *cs, char* to, uint l, int fill);
my_bool my_like_range_simple(CHARSET_INFO *cs,
const char *ptr, uint ptr_length,
int escape, int w_one, int w_many,
pbool escape, pbool w_one, pbool w_many,
uint res_length,
char *min_str, char *max_str,
uint *min_length, uint *max_length);
@ -381,6 +381,7 @@ extern my_bool my_parse_charset_xml(const char *bug, uint len,
#define my_isvar(s,c) (my_isalnum(s,c) || (c) == '_')
#define my_isvar_start(s,c) (my_isalpha(s,c) || (c) == '_')
#define my_binary_compare(s) ((s)->state & MY_CS_BINSORT)
#define use_strnxfrm(s) ((s)->state & MY_CS_STRNXFRM)
#define my_strnxfrm(s, a, b, c, d) ((s)->coll->strnxfrm((s), (a), (b), (c), (d)))
#define my_strnncoll(s, a, b, c, d) ((s)->coll->strnncoll((s), (a), (b), (c), (d)))

View file

@ -126,7 +126,7 @@ extern void bmove_align(gptr dst,const gptr src,uint len);
#include <assert.h>
#define memcpy_overlap(A,B,C) \
DBUG_ASSERT((A) == (B) || ((A)+(C)) <= (B) || ((B)+(C)) <= (A)); \
bmove((byte*) key,(byte*) from,(size_t) length);
bmove((byte*) (A),(byte*) (B),(size_t) (C));
#else
#define memcpy_overlap(A,B,C) memcpy((A), (B), (C))
#endif /* HAVE_purify */

View file

@ -3045,14 +3045,6 @@ loop:
goto reset_bit;
}
/* Do NOT merge to the 4.1 code base! */
if (trx_sys_downgrading_from_4_1_1) {
fprintf(stderr,
"InnoDB: Fatal error: you are downgrading from >= 4.1.1 to 4.0, but\n"
"InnoDB: the insert buffer was not empty.\n");
ut_a(0);
}
if (corruption_noticed) {
rec_sprintf(err_buf, 450, ibuf_rec);
fprintf(stderr,

View file

@ -1587,31 +1587,6 @@ NetWare. */
os_fast_mutex_free(&srv_os_test_mutex);
/***********************************************************/
/* Do NOT merge to the 4.1 code base! */
if (trx_sys_downgrading_from_4_1_1) {
fprintf(stderr,
"InnoDB: You are downgrading from an InnoDB version which allows multiple\n"
"InnoDB: tablespaces. Wait that purge and insert buffer merge run to\n"
"InnoDB: completion...\n");
for (;;) {
os_thread_sleep(10000000);
if (0 == strcmp(srv_main_thread_op_info,
"waiting for server activity")) {
break;
}
}
fprintf(stderr,
"InnoDB: Full purge and insert buffer merge completed.\n");
trx_sys_mark_downgraded_from_4_1_1();
fprintf(stderr,
"InnoDB: Downgraded from >= 4.1.1 to 4.0\n");
}
/***********************************************************/
if (srv_print_verbose_log) {
ut_print_timestamp(stderr);
fprintf(stderr,

View file

@ -412,18 +412,6 @@ t1 0 PRIMARY 1 Host A NULL NULL NULL BTREE
t1 0 PRIMARY 2 User A 0 NULL NULL BTREE
t1 1 Host 1 Host A NULL NULL NULL BTREE disabled
DROP TABLE t1;
CREATE TABLE t1 (a int PRIMARY KEY, b INT UNIQUE);
ALTER TABLE t1 DROP PRIMARY KEY;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) NOT NULL default '0',
`b` int(11) default NULL,
UNIQUE KEY `b` (`b`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
ALTER TABLE t1 DROP PRIMARY KEY;
ERROR 42000: Can't DROP 'PRIMARY'. Check that column/key exists
DROP TABLE t1;
create table t1 (name char(15));
insert into t1 (name) values ("current");
create database mysqltest;
@ -436,7 +424,7 @@ select * from mysqltest.t1;
name
mysqltest
alter table t1 rename mysqltest.t1;
Table 't1' already exists
ERROR 42S01: Table 't1' already exists
select * from t1;
name
current
@ -445,3 +433,15 @@ name
mysqltest
drop table t1;
drop database mysqltest;
CREATE TABLE t1 (a int PRIMARY KEY, b INT UNIQUE);
ALTER TABLE t1 DROP PRIMARY KEY;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) NOT NULL default '0',
`b` int(11) default NULL,
UNIQUE KEY `b` (`b`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
ALTER TABLE t1 DROP PRIMARY KEY;
ERROR 42000: Can't DROP 'PRIMARY'. Check that column/key exists
DROP TABLE t1;

View file

@ -162,7 +162,7 @@ last_insert_id()
255
insert into t1 set i = null;
Warnings:
Warning 1263 Data truncated, out of range for column 'i' at row 1
Warning 1264 Data truncated, out of range for column 'i' at row 1
select last_insert_id();
last_insert_id()
255
@ -213,7 +213,7 @@ a b
delete from t1 where a=0;
update t1 set a=NULL where b=6;
Warnings:
Warning 1262 Data truncated, NULL supplied to NOT NULL column 'a' at row 4
Warning 1263 Data truncated, NULL supplied to NOT NULL column 'a' at row 4
update t1 set a=300 where b=7;
SET SQL_MODE='';
insert into t1(a,b)values(NULL,8);
@ -255,7 +255,7 @@ a b
delete from t1 where a=0;
update t1 set a=NULL where b=13;
Warnings:
Warning 1262 Data truncated, NULL supplied to NOT NULL column 'a' at row 9
Warning 1263 Data truncated, NULL supplied to NOT NULL column 'a' at row 9
update t1 set a=500 where b=14;
select * from t1 order by b;
a b

View file

@ -1159,23 +1159,23 @@ drop table t1,t2;
create table t1 (a char(10), key(a), b int not null, key(b)) engine=bdb;
insert into t1 values ('a',1),('A',2);
explain select a from t1;
table type possible_keys key key_len ref rows Extra
t1 ALL NULL NULL NULL NULL 2
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 ALL NULL NULL NULL NULL 2
select a from t1;
a
a
A
explain select b from t1;
table type possible_keys key key_len ref rows Extra
t1 index NULL b 4 NULL 2 Using index
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 index NULL b 4 NULL 2 Using index
select b from t1;
b
1
2
alter table t1 modify a char(10) binary;
explain select a from t1;
table type possible_keys key key_len ref rows Extra
t1 index NULL a 11 NULL 2 Using index
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 index NULL a 11 NULL 2 Using index
select a from t1;
a
A

View file

@ -59,10 +59,8 @@ concat("-",a,"-",b,"-")
-hello-hello-
select concat("-",a,"-",b,"-") from t1 where b="hello ";
concat("-",a,"-",b,"-")
-hello-hello-
select concat("-",a,"-",b,"-") from t1 ignore index (b) where b="hello ";
concat("-",a,"-",b,"-")
-hello-hello-
alter table t1 modify b tinytext not null, drop key b, add key (b(100));
select concat("-",a,"-",b,"-") from t1 where b="hello ";
concat("-",a,"-",b,"-")

View file

@ -11,7 +11,7 @@ create table t1 (b char(0) not null);
create table if not exists t1 (b char(0) not null);
insert into t1 values (""),(null);
Warnings:
Warning 1262 Data truncated, NULL supplied to NOT NULL column 'b' at row 2
Warning 1263 Data truncated, NULL supplied to NOT NULL column 'b' at row 2
select * from t1;
b

View file

@ -17,9 +17,9 @@ t1 CREATE TABLE `t1` (
) ENGINE=MyISAM DEFAULT CHARSET=latin1
INSERT INTO t1 VALUES ('aaaabbbbccccdddd','aaaabbbbccccdddd','aaaabbbbccccdddd');
Warnings:
Warning 1264 Data truncated for column 'c1' at row 1
Warning 1264 Data truncated for column 'c2' at row 1
Warning 1264 Data truncated for column 'c3' at row 1
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
SELECT * FROM t1;
c1 c2 c3
aaaa aaaa aaaa

View file

@ -1,9 +1,129 @@
drop table if exists t1;
SET @pl0= _tis620 0x000102030405060708090A0B0C0D0E0F;
SET @pl1= _tis620 0x101112131415161718191A1B1C1D1E1F;
SET @pl2= _tis620 0x202122232425262728292A2B2C2D2E2F;
SET @pl3= _tis620 0x303132333435363738393A3B3C3D3E3F;
SET @pl4= _tis620 0x404142434445464748494A4B4C4D4E4F;
SET @pl5= _tis620 0x505152535455565758595A5B5C5D5E5F;
SET @pl6= _tis620 0x606162636465666768696A6B6C6D6E6F;
SET @pl7= _tis620 0x707172737475767778797A7B7C7D7E7F;
SET @pl8= _tis620 0x808182838485868788898A8B8C8D8E8F;
SET @pl9= _tis620 0x909192939495969798999A9B9C9D9E9F;
SET @plA= _tis620 0xA0A1A2A3A4A5A6A7A8A9AAABACADAEAF;
SET @plB= _tis620 0xB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBF;
SET @plC= _tis620 0xC0C1C2C3C4C5C6C7C8C9CACBCCCDCECF;
SET @plD= _tis620 0xD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDF;
SET @plE= _tis620 0xE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEF;
SET @plF= _tis620 0xF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF;
SELECT hex(@u0:=convert(@pl0 using utf8));
hex(@u0:=convert(@pl0 using utf8))
000102030405060708090A0B0C0D0E0F
SELECT hex(@u1:=convert(@pl1 using utf8));
hex(@u1:=convert(@pl1 using utf8))
101112131415161718191A1B1C1D1E1F
SELECT hex(@u2:=convert(@pl2 using utf8));
hex(@u2:=convert(@pl2 using utf8))
202122232425262728292A2B2C2D2E2F
SELECT hex(@u3:=convert(@pl3 using utf8));
hex(@u3:=convert(@pl3 using utf8))
303132333435363738393A3B3C3D3E3F
SELECT hex(@u4:=convert(@pl4 using utf8));
hex(@u4:=convert(@pl4 using utf8))
404142434445464748494A4B4C4D4E4F
SELECT hex(@u5:=convert(@pl5 using utf8));
hex(@u5:=convert(@pl5 using utf8))
505152535455565758595A5B5C5D5E5F
SELECT hex(@u6:=convert(@pl6 using utf8));
hex(@u6:=convert(@pl6 using utf8))
606162636465666768696A6B6C6D6E6F
SELECT hex(@u7:=convert(@pl7 using utf8));
hex(@u7:=convert(@pl7 using utf8))
707172737475767778797A7B7C7D7E7F
SELECT hex(@u8:=convert(@pl8 using utf8));
hex(@u8:=convert(@pl8 using utf8))
C280C281C282C283C284C285C286C287C288C289C28AC28BC28CC28DC28EC28F
SELECT hex(@u9:=convert(@pl9 using utf8));
hex(@u9:=convert(@pl9 using utf8))
C290C291C292C293C294C295C296C297C298C299C29AC29BC29CC29DC29EC29F
SELECT hex(@uA:=convert(@plA using utf8));
hex(@uA:=convert(@plA using utf8))
EFBFBDE0B881E0B882E0B883E0B884E0B885E0B886E0B887E0B888E0B889E0B88AE0B88BE0B88CE0B88DE0B88EE0B88F
SELECT hex(@uB:=convert(@plB using utf8));
hex(@uB:=convert(@plB using utf8))
E0B890E0B891E0B892E0B893E0B894E0B895E0B896E0B897E0B898E0B899E0B89AE0B89BE0B89CE0B89DE0B89EE0B89F
SELECT hex(@uC:=convert(@plC using utf8));
hex(@uC:=convert(@plC using utf8))
E0B8A0E0B8A1E0B8A2E0B8A3E0B8A4E0B8A5E0B8A6E0B8A7E0B8A8E0B8A9E0B8AAE0B8ABE0B8ACE0B8ADE0B8AEE0B8AF
SELECT hex(@uD:=convert(@plD using utf8));
hex(@uD:=convert(@plD using utf8))
E0B8B0E0B8B1E0B8B2E0B8B3E0B8B4E0B8B5E0B8B6E0B8B7E0B8B8E0B8B9E0B8BAEFBFBDEFBFBDEFBFBDEFBFBDE0B8BF
SELECT hex(@uE:=convert(@plE using utf8));
hex(@uE:=convert(@plE using utf8))
E0B980E0B981E0B982E0B983E0B984E0B985E0B986E0B987E0B988E0B989E0B98AE0B98BE0B98CE0B98DE0B98EE0B98F
SELECT hex(@uF:=convert(@plF using utf8));
hex(@uF:=convert(@plF using utf8))
E0B990E0B991E0B992E0B993E0B994E0B995E0B996E0B997E0B998E0B999E0B99AE0B99BEFBFBDEFBFBDEFBFBDEFBFBD
SELECT hex(convert(@u0 USING tis620));
hex(convert(@u0 USING tis620))
000102030405060708090A0B0C0D0E0F
SELECT hex(convert(@u1 USING tis620));
hex(convert(@u1 USING tis620))
101112131415161718191A1B1C1D1E1F
SELECT hex(convert(@u2 USING tis620));
hex(convert(@u2 USING tis620))
202122232425262728292A2B2C2D2E2F
SELECT hex(convert(@u3 USING tis620));
hex(convert(@u3 USING tis620))
303132333435363738393A3B3C3D3E3F
SELECT hex(convert(@u4 USING tis620));
hex(convert(@u4 USING tis620))
404142434445464748494A4B4C4D4E4F
SELECT hex(convert(@u5 USING tis620));
hex(convert(@u5 USING tis620))
505152535455565758595A5B5C5D5E5F
SELECT hex(convert(@u6 USING tis620));
hex(convert(@u6 USING tis620))
606162636465666768696A6B6C6D6E6F
SELECT hex(convert(@u7 USING tis620));
hex(convert(@u7 USING tis620))
707172737475767778797A7B7C7D7E7F
SELECT hex(convert(@u8 USING tis620));
hex(convert(@u8 USING tis620))
808182838485868788898A8B8C8D8E8F
SELECT hex(convert(@u9 USING tis620));
hex(convert(@u9 USING tis620))
909192939495969798999A9B9C9D9E9F
SELECT hex(convert(@uA USING tis620));
hex(convert(@uA USING tis620))
FFA1A2A3A4A5A6A7A8A9AAABACADAEAF
SELECT hex(convert(@uB USING tis620));
hex(convert(@uB USING tis620))
B0B1B2B3B4B5B6B7B8B9BABBBCBDBEBF
SELECT hex(convert(@uC USING tis620));
hex(convert(@uC USING tis620))
C0C1C2C3C4C5C6C7C8C9CACBCCCDCECF
SELECT hex(convert(@uD USING tis620));
hex(convert(@uD USING tis620))
D0D1D2D3D4D5D6D7D8D9DAFFFFFFFFDF
SELECT hex(convert(@uE USING tis620));
hex(convert(@uE USING tis620))
E0E1E2E3E4E5E6E7E8E9EAEBECEDEEEF
SELECT hex(convert(@uF USING tis620));
hex(convert(@uF USING tis620))
F0F1F2F3F4F5F6F7F8F9FAFBFFFFFFFF
SET NAMES tis620;
CREATE TABLE t1 (
recid int(11) NOT NULL auto_increment,
dyninfo text,
PRIMARY KEY (recid)
) ENGINE=MyISAM;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`recid` int(11) NOT NULL auto_increment,
`dyninfo` text,
PRIMARY KEY (`recid`)
) ENGINE=MyISAM DEFAULT CHARSET=tis620
INSERT INTO t1 VALUES (1,'color=\"STB,NPG\"\r\nengine=\"J30A13\"\r\nframe=\"MRHCG1640YP4\"\r\ngrade=\"V6\"\r\nmodel=\"ACCORD\"\r\nmodelcode=\"CG164YEN\"\r\ntype=\"VT6\"\r\n');
INSERT INTO t1 VALUES (2,'color=\"HTM,NPG,DEG,RGS\"\r\nengine=\"F23A5YP1\"\r\nframe=\"MRHCF8640YP3\"\r\ngrade=\"EXi AT\"\r\nmodel=\"ACCORD\"\r\nmodelcode=\"CF864YE\"\r\ntype=\"EXA\"\r\n');
SELECT DISTINCT

View file

@ -1,113 +0,0 @@
drop table if exists t1;
SET @pl0= _tis620 0x000102030405060708090A0B0C0D0E0F;
SET @pl1= _tis620 0x101112131415161718191A1B1C1D1E1F;
SET @pl2= _tis620 0x202122232425262728292A2B2C2D2E2F;
SET @pl3= _tis620 0x303132333435363738393A3B3C3D3E3F;
SET @pl4= _tis620 0x404142434445464748494A4B4C4D4E4F;
SET @pl5= _tis620 0x505152535455565758595A5B5C5D5E5F;
SET @pl6= _tis620 0x606162636465666768696A6B6C6D6E6F;
SET @pl7= _tis620 0x707172737475767778797A7B7C7D7E7F;
SET @pl8= _tis620 0x808182838485868788898A8B8C8D8E8F;
SET @pl9= _tis620 0x909192939495969798999A9B9C9D9E9F;
SET @plA= _tis620 0xA0A1A2A3A4A5A6A7A8A9AAABACADAEAF;
SET @plB= _tis620 0xB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBF;
SET @plC= _tis620 0xC0C1C2C3C4C5C6C7C8C9CACBCCCDCECF;
SET @plD= _tis620 0xD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDF;
SET @plE= _tis620 0xE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEF;
SET @plF= _tis620 0xF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF;
SELECT hex(@u0:=convert(@pl0 using utf8));
hex(@u0:=convert(@pl0 using utf8))
000102030405060708090A0B0C0D0E0F
SELECT hex(@u1:=convert(@pl1 using utf8));
hex(@u1:=convert(@pl1 using utf8))
101112131415161718191A1B1C1D1E1F
SELECT hex(@u2:=convert(@pl2 using utf8));
hex(@u2:=convert(@pl2 using utf8))
202122232425262728292A2B2C2D2E2F
SELECT hex(@u3:=convert(@pl3 using utf8));
hex(@u3:=convert(@pl3 using utf8))
303132333435363738393A3B3C3D3E3F
SELECT hex(@u4:=convert(@pl4 using utf8));
hex(@u4:=convert(@pl4 using utf8))
404142434445464748494A4B4C4D4E4F
SELECT hex(@u5:=convert(@pl5 using utf8));
hex(@u5:=convert(@pl5 using utf8))
505152535455565758595A5B5C5D5E5F
SELECT hex(@u6:=convert(@pl6 using utf8));
hex(@u6:=convert(@pl6 using utf8))
606162636465666768696A6B6C6D6E6F
SELECT hex(@u7:=convert(@pl7 using utf8));
hex(@u7:=convert(@pl7 using utf8))
707172737475767778797A7B7C7D7E7F
SELECT hex(@u8:=convert(@pl8 using utf8));
hex(@u8:=convert(@pl8 using utf8))
C280C281C282C283C284C285C286C287C288C289C28AC28BC28CC28DC28EC28F
SELECT hex(@u9:=convert(@pl9 using utf8));
hex(@u9:=convert(@pl9 using utf8))
C290C291C292C293C294C295C296C297C298C299C29AC29BC29CC29DC29EC29F
SELECT hex(@uA:=convert(@plA using utf8));
hex(@uA:=convert(@plA using utf8))
EFBFBDE0B881E0B882E0B883E0B884E0B885E0B886E0B887E0B888E0B889E0B88AE0B88BE0B88CE0B88DE0B88EE0B88F
SELECT hex(@uB:=convert(@plB using utf8));
hex(@uB:=convert(@plB using utf8))
E0B890E0B891E0B892E0B893E0B894E0B895E0B896E0B897E0B898E0B899E0B89AE0B89BE0B89CE0B89DE0B89EE0B89F
SELECT hex(@uC:=convert(@plC using utf8));
hex(@uC:=convert(@plC using utf8))
E0B8A0E0B8A1E0B8A2E0B8A3E0B8A4E0B8A5E0B8A6E0B8A7E0B8A8E0B8A9E0B8AAE0B8ABE0B8ACE0B8ADE0B8AEE0B8AF
SELECT hex(@uD:=convert(@plD using utf8));
hex(@uD:=convert(@plD using utf8))
E0B8B0E0B8B1E0B8B2E0B8B3E0B8B4E0B8B5E0B8B6E0B8B7E0B8B8E0B8B9E0B8BAEFBFBDEFBFBDEFBFBDEFBFBDE0B8BF
SELECT hex(@uE:=convert(@plE using utf8));
hex(@uE:=convert(@plE using utf8))
E0B980E0B981E0B982E0B983E0B984E0B985E0B986E0B987E0B988E0B989E0B98AE0B98BE0B98CE0B98DE0B98EE0B98F
SELECT hex(@uF:=convert(@plF using utf8));
hex(@uF:=convert(@plF using utf8))
E0B990E0B991E0B992E0B993E0B994E0B995E0B996E0B997E0B998E0B999E0B99AE0B99BEFBFBDEFBFBDEFBFBDEFBFBD
SELECT hex(convert(@u0 USING tis620));
hex(convert(@u0 USING tis620))
000102030405060708090A0B0C0D0E0F
SELECT hex(convert(@u1 USING tis620));
hex(convert(@u1 USING tis620))
101112131415161718191A1B1C1D1E1F
SELECT hex(convert(@u2 USING tis620));
hex(convert(@u2 USING tis620))
202122232425262728292A2B2C2D2E2F
SELECT hex(convert(@u3 USING tis620));
hex(convert(@u3 USING tis620))
303132333435363738393A3B3C3D3E3F
SELECT hex(convert(@u4 USING tis620));
hex(convert(@u4 USING tis620))
404142434445464748494A4B4C4D4E4F
SELECT hex(convert(@u5 USING tis620));
hex(convert(@u5 USING tis620))
505152535455565758595A5B5C5D5E5F
SELECT hex(convert(@u6 USING tis620));
hex(convert(@u6 USING tis620))
606162636465666768696A6B6C6D6E6F
SELECT hex(convert(@u7 USING tis620));
hex(convert(@u7 USING tis620))
707172737475767778797A7B7C7D7E7F
SELECT hex(convert(@u8 USING tis620));
hex(convert(@u8 USING tis620))
808182838485868788898A8B8C8D8E8F
SELECT hex(convert(@u9 USING tis620));
hex(convert(@u9 USING tis620))
909192939495969798999A9B9C9D9E9F
SELECT hex(convert(@uA USING tis620));
hex(convert(@uA USING tis620))
FFA1A2A3A4A5A6A7A8A9AAABACADAEAF
SELECT hex(convert(@uB USING tis620));
hex(convert(@uB USING tis620))
B0B1B2B3B4B5B6B7B8B9BABBBCBDBEBF
SELECT hex(convert(@uC USING tis620));
hex(convert(@uC USING tis620))
C0C1C2C3C4C5C6C7C8C9CACBCCCDCECF
SELECT hex(convert(@uD USING tis620));
hex(convert(@uD USING tis620))
D0D1D2D3D4D5D6D7D8D9DAFFFFFFFFDF
SELECT hex(convert(@uE USING tis620));
hex(convert(@uE USING tis620))
E0E1E2E3E4E5E6E7E8E9EAEBECEDEEEF
SELECT hex(convert(@uF USING tis620));
hex(convert(@uF USING tis620))
F0F1F2F3F4F5F6F7F8F9FAFBFFFFFFFF

View file

@ -83,7 +83,7 @@ set names koi8r;
create table t1 (s1 char(1) character set utf8);
insert into t1 values (_koi8r'ÁÂ');
Warnings:
Warning 1264 Data truncated for column 's1' at row 1
Warning 1265 Data truncated for column 's1' at row 1
select s1,hex(s1),char_length(s1),octet_length(s1) from t1;
s1 hex(s1) char_length(s1) octet_length(s1)
Á D0B0 1 2

View file

@ -93,8 +93,8 @@ a b
2 12
delete ignore t11.*, t12.* from t11,t12 where t11.a = t12.a and t11.b <> (select b from t2 where t11.a < t2.a);
Warnings:
Error 1241 Subquery returns more than 1 row
Error 1241 Subquery returns more than 1 row
Error 1242 Subquery returns more than 1 row
Error 1242 Subquery returns more than 1 row
select * from t11;
a b
0 10
@ -113,8 +113,8 @@ a b
2 12
delete ignore from t11 where t11.b <> (select b from t2 where t11.a < t2.a);
Warnings:
Error 1241 Subquery returns more than 1 row
Error 1241 Subquery returns more than 1 row
Error 1242 Subquery returns more than 1 row
Error 1242 Subquery returns more than 1 row
select * from t11;
a b
0 10

View file

@ -65,6 +65,6 @@ NULL
50000
NULL
Warnings:
Error 1258 ZLIB: Input data was corrupted for zlib
Error 1255 Too big size of uncompressed data. The maximum size is 1048576. (probably, length of uncompressed data was corrupted)
Error 1259 ZLIB: Input data was corrupted for zlib
Error 1256 Too big size of uncompressed data. The maximum size is 1048576. (probably, length of uncompressed data was corrupted)
drop table t1;

View file

@ -163,10 +163,10 @@ grp group_concat(c)
4
5 NULL
Warnings:
Warning 1259 1 line(s) was(were) cut by group_concat()
Warning 1260 1 line(s) was(were) cut by group_concat()
show warnings;
Level Code Message
Warning 1259 1 line(s) was(were) cut by group_concat()
Warning 1260 1 line(s) was(were) cut by group_concat()
set group_concat_max_len = 1024;
select group_concat(sum(a)) from t1 group by grp;
ERROR HY000: Invalid use of group function

View file

@ -551,7 +551,7 @@ id select_type table type possible_keys key key_len ref rows Extra
explain
select min(a1) from t1 where a1 between a3 and 'KKK';
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 ALL NULL NULL NULL NULL 14 Using where
1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 14 Using where
explain
select min(a4) from t1 where (a4 + 0.01) between 0.07 and 0.08;
id select_type table type possible_keys key key_len ref rows Extra

View file

@ -263,3 +263,355 @@ SELECT bugdesc, REPLACE(bugdesc, 'xxxxxxxxxxxxxxxxxxxx', 'bbbbbbbbbbbbbbbbbbbb')
bugdesc REPLACE(bugdesc, 'xxxxxxxxxxxxxxxxxxxx', 'bbbbbbbbbbbbbbbbbbbb')
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
drop table t1;
CREATE TABLE t1 (id int(11) NOT NULL auto_increment, tmp text NOT NULL, KEY id (id)) ENGINE=MyISAM;
INSERT INTO t1 VALUES (1, 'a545f661efdd1fb66fdee3aab79945bf');
SELECT 1 FROM t1 WHERE tmp=AES_DECRYPT(tmp,"password");
1
DROP TABLE t1;
CREATE TABLE t1 (
wid int(10) unsigned NOT NULL auto_increment,
data_podp date default NULL,
status_wnio enum('nowy','podp','real','arch') NOT NULL default 'nowy',
PRIMARY KEY(wid),
);
INSERT INTO t1 VALUES (8,NULL,'real');
INSERT INTO t1 VALUES (9,NULL,'nowy');
SELECT elt(status_wnio,data_podp) FROM t1 GROUP BY wid;
elt(status_wnio,data_podp)
NULL
NULL
DROP TABLE t1;
CREATE TABLE t1 (title text) ENGINE=MyISAM;
INSERT INTO t1 VALUES ('Congress reconvenes in September to debate welfare and adult education');
INSERT INTO t1 VALUES ('House passes the CAREERS bill');
SELECT CONCAT("</a>",RPAD("",(55 - LENGTH(title)),".")) from t1;
CONCAT("</a>",RPAD("",(55 - LENGTH(title)),"."))
NULL
</a>..........................
DROP TABLE t1;
CREATE TABLE t1 (i int, j int);
INSERT INTO t1 VALUES (1,1),(2,2);
SELECT DISTINCT i, ELT(j, '345', '34') FROM t1;
i ELT(j, '345', '34')
1 345
2 34
DROP TABLE t1;
select 1=_latin1'1';
1=_latin1'1'
1
select _latin1'1'=1;
_latin1'1'=1
1
select _latin2'1'=1;
_latin2'1'=1
1
select 1=_latin2'1';
1=_latin2'1'
1
select _latin1'1'=_latin2'1';
ERROR HY000: Illegal mix of collations (latin1_swedish_ci,COERCIBLE) and (latin2_general_ci,COERCIBLE) for operation '='
select row('a','b','c') = row('a','b','c');
row('a','b','c') = row('a','b','c')
1
select row('A','b','c') = row('a','b','c');
row('A','b','c') = row('a','b','c')
1
select row('A' COLLATE latin1_bin,'b','c') = row('a','b','c');
row('A' COLLATE latin1_bin,'b','c') = row('a','b','c')
0
select row('A','b','c') = row('a' COLLATE latin1_bin,'b','c');
row('A','b','c') = row('a' COLLATE latin1_bin,'b','c')
0
select row('A' COLLATE latin1_general_ci,'b','c') = row('a' COLLATE latin1_bin,'b','c');
ERROR HY000: Illegal mix of collations (latin1_general_ci,EXPLICIT) and (latin1_bin,EXPLICIT) for operation '='
select concat(_latin1'a',_latin2'a');
ERROR HY000: Illegal mix of collations (latin1_swedish_ci,COERCIBLE) and (latin2_general_ci,COERCIBLE) for operation 'concat'
select concat(_latin1'a',_latin2'a',_latin5'a');
ERROR HY000: Illegal mix of collations (latin1_swedish_ci,COERCIBLE), (latin2_general_ci,COERCIBLE), (latin5_turkish_ci,COERCIBLE) for operation 'concat'
select concat(_latin1'a',_latin2'a',_latin5'a',_latin7'a');
ERROR HY000: Illegal mix of collations for operation 'concat'
select FIELD('b','A','B');
FIELD('b','A','B')
2
select FIELD('B','A','B');
FIELD('B','A','B')
2
select FIELD('b' COLLATE latin1_bin,'A','B');
FIELD('b' COLLATE latin1_bin,'A','B')
0
select FIELD('b','A' COLLATE latin1_bin,'B');
FIELD('b','A' COLLATE latin1_bin,'B')
0
select FIELD(_latin2'b','A','B');
ERROR HY000: Illegal mix of collations (latin2_general_ci,COERCIBLE), (latin1_swedish_ci,COERCIBLE), (latin1_swedish_ci,COERCIBLE) for operation 'field'
select FIELD('b',_latin2'A','B');
ERROR HY000: Illegal mix of collations (latin1_swedish_ci,COERCIBLE), (latin2_general_ci,COERCIBLE), (latin1_swedish_ci,COERCIBLE) for operation 'field'
select FIELD('b',_latin2'A','B',1);
FIELD('b',_latin2'A','B',1)
1
select POSITION(_latin1'B' IN _latin1'abcd');
POSITION(_latin1'B' IN _latin1'abcd')
2
select POSITION(_latin1'B' IN _latin1'abcd' COLLATE latin1_bin);
POSITION(_latin1'B' IN _latin1'abcd' COLLATE latin1_bin)
0
select POSITION(_latin1'B' COLLATE latin1_bin IN _latin1'abcd');
POSITION(_latin1'B' COLLATE latin1_bin IN _latin1'abcd')
0
select POSITION(_latin1'B' COLLATE latin1_general_ci IN _latin1'abcd' COLLATE latin1_bin);
ERROR HY000: Illegal mix of collations (latin1_bin,EXPLICIT) and (latin1_general_ci,EXPLICIT) for operation 'locate'
select POSITION(_latin1'B' IN _latin2'abcd');
ERROR HY000: Illegal mix of collations (latin2_general_ci,COERCIBLE) and (latin1_swedish_ci,COERCIBLE) for operation 'locate'
select FIND_IN_SET(_latin1'B',_latin1'a,b,c,d');
FIND_IN_SET(_latin1'B',_latin1'a,b,c,d')
2
select FIND_IN_SET(_latin1'B' COLLATE latin1_general_ci,_latin1'a,b,c,d' COLLATE latin1_bin);
ERROR HY000: Illegal mix of collations (latin1_general_ci,EXPLICIT) and (latin1_bin,EXPLICIT) for operation 'find_in_set'
select FIND_IN_SET(_latin1'B',_latin2'a,b,c,d');
ERROR HY000: Illegal mix of collations (latin1_swedish_ci,COERCIBLE) and (latin2_general_ci,COERCIBLE) for operation 'find_in_set'
select SUBSTRING_INDEX(_latin1'abcdabcdabcd',_latin1'd',2);
SUBSTRING_INDEX(_latin1'abcdabcdabcd',_latin1'd',2)
abcdabc
select SUBSTRING_INDEX(_latin1'abcdabcdabcd',_latin2'd',2);
ERROR HY000: Illegal mix of collations (latin1_swedish_ci,COERCIBLE) and (latin2_general_ci,COERCIBLE) for operation 'substr_index'
select SUBSTRING_INDEX(_latin1'abcdabcdabcd' COLLATE latin1_general_ci,_latin1'd' COLLATE latin1_bin,2);
ERROR HY000: Illegal mix of collations (latin1_general_ci,EXPLICIT) and (latin1_bin,EXPLICIT) for operation 'substr_index'
select _latin1'B' between _latin1'a' and _latin1'c';
_latin1'B' between _latin1'a' and _latin1'c'
1
select _latin1'B' collate latin1_bin between _latin1'a' and _latin1'c';
_latin1'B' collate latin1_bin between _latin1'a' and _latin1'c'
0
select _latin1'B' between _latin1'a' collate latin1_bin and _latin1'c';
_latin1'B' between _latin1'a' collate latin1_bin and _latin1'c'
0
select _latin1'B' between _latin1'a' and _latin1'c' collate latin1_bin;
_latin1'B' between _latin1'a' and _latin1'c' collate latin1_bin
0
select _latin2'B' between _latin1'a' and _latin1'b';
ERROR HY000: Illegal mix of collations (latin2_general_ci,COERCIBLE), (latin1_swedish_ci,COERCIBLE), (latin1_swedish_ci,COERCIBLE) for operation 'between'
select _latin1'B' between _latin2'a' and _latin1'b';
ERROR HY000: Illegal mix of collations (latin1_swedish_ci,COERCIBLE), (latin2_general_ci,COERCIBLE), (latin1_swedish_ci,COERCIBLE) for operation 'between'
select _latin1'B' between _latin1'a' and _latin2'b';
ERROR HY000: Illegal mix of collations (latin1_swedish_ci,COERCIBLE), (latin1_swedish_ci,COERCIBLE), (latin2_general_ci,COERCIBLE) for operation 'between'
select _latin1'B' collate latin1_general_ci between _latin1'a' collate latin1_bin and _latin1'b';
ERROR HY000: Illegal mix of collations (latin1_general_ci,EXPLICIT), (latin1_bin,EXPLICIT), (latin1_swedish_ci,COERCIBLE) for operation 'between'
select _latin1'B' in (_latin1'a',_latin1'b');
_latin1'B' in (_latin1'a',_latin1'b')
1
select _latin1'B' collate latin1_bin in (_latin1'a',_latin1'b');
_latin1'B' collate latin1_bin in (_latin1'a',_latin1'b')
0
select _latin1'B' in (_latin1'a' collate latin1_bin,_latin1'b');
_latin1'B' in (_latin1'a' collate latin1_bin,_latin1'b')
0
select _latin1'B' in (_latin1'a',_latin1'b' collate latin1_bin);
_latin1'B' in (_latin1'a',_latin1'b' collate latin1_bin)
0
select _latin2'B' in (_latin1'a',_latin1'b');
ERROR HY000: Illegal mix of collations (latin2_general_ci,COERCIBLE), (latin1_swedish_ci,COERCIBLE), (latin1_swedish_ci,COERCIBLE) for operation ' IN '
select _latin1'B' in (_latin2'a',_latin1'b');
ERROR HY000: Illegal mix of collations (latin1_swedish_ci,COERCIBLE), (latin2_general_ci,COERCIBLE), (latin1_swedish_ci,COERCIBLE) for operation ' IN '
select _latin1'B' in (_latin1'a',_latin2'b');
ERROR HY000: Illegal mix of collations (latin1_swedish_ci,COERCIBLE), (latin1_swedish_ci,COERCIBLE), (latin2_general_ci,COERCIBLE) for operation ' IN '
select _latin1'B' COLLATE latin1_general_ci in (_latin1'a' COLLATE latin1_bin,_latin1'b');
ERROR HY000: Illegal mix of collations (latin1_general_ci,EXPLICIT), (latin1_bin,EXPLICIT), (latin1_swedish_ci,COERCIBLE) for operation ' IN '
select _latin1'B' COLLATE latin1_general_ci in (_latin1'a',_latin1'b' COLLATE latin1_bin);
ERROR HY000: Illegal mix of collations (latin1_general_ci,EXPLICIT), (latin1_swedish_ci,COERCIBLE), (latin1_bin,EXPLICIT) for operation ' IN '
select collation(bin(130)), coercibility(bin(130));
collation(bin(130)) coercibility(bin(130))
latin1_swedish_ci 3
select collation(oct(130)), coercibility(oct(130));
collation(oct(130)) coercibility(oct(130))
latin1_swedish_ci 3
select collation(conv(130,16,10)), coercibility(conv(130,16,10));
collation(conv(130,16,10)) coercibility(conv(130,16,10))
latin1_swedish_ci 3
select collation(hex(130)), coercibility(hex(130));
collation(hex(130)) coercibility(hex(130))
latin1_swedish_ci 3
select collation(char(130)), coercibility(hex(130));
collation(char(130)) coercibility(hex(130))
binary 3
select collation(format(130,10)), coercibility(format(130,10));
collation(format(130,10)) coercibility(format(130,10))
latin1_swedish_ci 3
select collation(lcase(_latin2'a')), coercibility(lcase(_latin2'a'));
collation(lcase(_latin2'a')) coercibility(lcase(_latin2'a'))
latin2_general_ci 3
select collation(ucase(_latin2'a')), coercibility(ucase(_latin2'a'));
collation(ucase(_latin2'a')) coercibility(ucase(_latin2'a'))
latin2_general_ci 3
select collation(left(_latin2'a',1)), coercibility(left(_latin2'a',1));
collation(left(_latin2'a',1)) coercibility(left(_latin2'a',1))
latin2_general_ci 3
select collation(right(_latin2'a',1)), coercibility(right(_latin2'a',1));
collation(right(_latin2'a',1)) coercibility(right(_latin2'a',1))
latin2_general_ci 3
select collation(substring(_latin2'a',1,1)), coercibility(substring(_latin2'a',1,1));
collation(substring(_latin2'a',1,1)) coercibility(substring(_latin2'a',1,1))
latin2_general_ci 3
select collation(concat(_latin2'a',_latin2'b')), coercibility(concat(_latin2'a',_latin2'b'));
collation(concat(_latin2'a',_latin2'b')) coercibility(concat(_latin2'a',_latin2'b'))
latin2_general_ci 3
select collation(lpad(_latin2'a',4,_latin2'b')), coercibility(lpad(_latin2'a',4,_latin2'b'));
collation(lpad(_latin2'a',4,_latin2'b')) coercibility(lpad(_latin2'a',4,_latin2'b'))
latin2_general_ci 3
select collation(rpad(_latin2'a',4,_latin2'b')), coercibility(rpad(_latin2'a',4,_latin2'b'));
collation(rpad(_latin2'a',4,_latin2'b')) coercibility(rpad(_latin2'a',4,_latin2'b'))
latin2_general_ci 3
select collation(concat_ws(_latin2'a',_latin2'b')), coercibility(concat_ws(_latin2'a',_latin2'b'));
collation(concat_ws(_latin2'a',_latin2'b')) coercibility(concat_ws(_latin2'a',_latin2'b'))
latin2_general_ci 3
select collation(make_set(255,_latin2'a',_latin2'b',_latin2'c')), coercibility(make_set(255,_latin2'a',_latin2'b',_latin2'c'));
collation(make_set(255,_latin2'a',_latin2'b',_latin2'c')) coercibility(make_set(255,_latin2'a',_latin2'b',_latin2'c'))
latin2_general_ci 3
select collation(export_set(255,_latin2'y',_latin2'n',_latin2' ')), coercibility(export_set(255,_latin2'y',_latin2'n',_latin2' '));
collation(export_set(255,_latin2'y',_latin2'n',_latin2' ')) coercibility(export_set(255,_latin2'y',_latin2'n',_latin2' '))
binary 3
select collation(trim(_latin2' a ')), coercibility(trim(_latin2' a '));
collation(trim(_latin2' a ')) coercibility(trim(_latin2' a '))
latin2_general_ci 3
select collation(ltrim(_latin2' a ')), coercibility(ltrim(_latin2' a '));
collation(ltrim(_latin2' a ')) coercibility(ltrim(_latin2' a '))
latin2_general_ci 3
select collation(rtrim(_latin2' a ')), coercibility(rtrim(_latin2' a '));
collation(rtrim(_latin2' a ')) coercibility(rtrim(_latin2' a '))
latin2_general_ci 3
select collation(trim(LEADING _latin2' ' FROM _latin2'a')), coercibility(trim(LEADING _latin2'a' FROM _latin2'a'));
collation(trim(LEADING _latin2' ' FROM _latin2'a')) coercibility(trim(LEADING _latin2'a' FROM _latin2'a'))
latin2_general_ci 3
select collation(trim(TRAILING _latin2' ' FROM _latin2'a')), coercibility(trim(TRAILING _latin2'a' FROM _latin2'a'));
collation(trim(TRAILING _latin2' ' FROM _latin2'a')) coercibility(trim(TRAILING _latin2'a' FROM _latin2'a'))
latin2_general_ci 3
select collation(trim(BOTH _latin2' ' FROM _latin2'a')), coercibility(trim(BOTH _latin2'a' FROM _latin2'a'));
collation(trim(BOTH _latin2' ' FROM _latin2'a')) coercibility(trim(BOTH _latin2'a' FROM _latin2'a'))
latin2_general_ci 3
select collation(repeat(_latin2'a',10)), coercibility(repeat(_latin2'a',10));
collation(repeat(_latin2'a',10)) coercibility(repeat(_latin2'a',10))
latin2_general_ci 3
select collation(reverse(_latin2'ab')), coercibility(reverse(_latin2'ab'));
collation(reverse(_latin2'ab')) coercibility(reverse(_latin2'ab'))
latin2_general_ci 3
select collation(quote(_latin2'ab')), coercibility(quote(_latin2'ab'));
collation(quote(_latin2'ab')) coercibility(quote(_latin2'ab'))
latin2_general_ci 3
select collation(soundex(_latin2'ab')), coercibility(soundex(_latin2'ab'));
collation(soundex(_latin2'ab')) coercibility(soundex(_latin2'ab'))
latin2_general_ci 3
select collation(substring(_latin2'ab',1)), coercibility(substring(_latin2'ab',1));
collation(substring(_latin2'ab',1)) coercibility(substring(_latin2'ab',1))
latin2_general_ci 3
select collation(insert(_latin2'abcd',2,3,_latin2'ef')), coercibility(insert(_latin2'abcd',2,3,_latin2'ef'));
collation(insert(_latin2'abcd',2,3,_latin2'ef')) coercibility(insert(_latin2'abcd',2,3,_latin2'ef'))
latin2_general_ci 3
select collation(replace(_latin2'abcd',_latin2'b',_latin2'B')), coercibility(replace(_latin2'abcd',_latin2'b',_latin2'B'));
collation(replace(_latin2'abcd',_latin2'b',_latin2'B')) coercibility(replace(_latin2'abcd',_latin2'b',_latin2'B'))
latin2_general_ci 3
create table t1
select
bin(130),
oct(130),
conv(130,16,10),
hex(130),
char(130),
format(130,10),
left(_latin2'a',1),
right(_latin2'a',1),
lcase(_latin2'a'),
ucase(_latin2'a'),
substring(_latin2'a',1,1),
concat(_latin2'a',_latin2'b'),
lpad(_latin2'a',4,_latin2'b'),
rpad(_latin2'a',4,_latin2'b'),
concat_ws(_latin2'a',_latin2'b'),
make_set(255,_latin2'a',_latin2'b',_latin2'c'),
export_set(255,_latin2'y',_latin2'n',_latin2' '),
trim(_latin2' a '),
ltrim(_latin2' a '),
rtrim(_latin2' a '),
trim(LEADING _latin2' ' FROM _latin2' a '),
trim(TRAILING _latin2' ' FROM _latin2' a '),
trim(BOTH _latin2' ' FROM _latin2' a '),
repeat(_latin2'a',10),
reverse(_latin2'ab'),
quote(_latin2'ab'),
soundex(_latin2'ab'),
substring(_latin2'ab',1),
insert(_latin2'abcd',2,3,_latin2'ef'),
replace(_latin2'abcd',_latin2'b',_latin2'B')
;
Warnings:
Warning 1265 Data truncated for column 'format(130,10)' at row 1
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`bin(130)` char(64) NOT NULL default '',
`oct(130)` char(64) NOT NULL default '',
`conv(130,16,10)` char(64) NOT NULL default '',
`hex(130)` char(6) NOT NULL default '',
`char(130)` char(1) NOT NULL default '',
`format(130,10)` char(4) NOT NULL default '',
`left(_latin2'a',1)` char(1) character set latin2 NOT NULL default '',
`right(_latin2'a',1)` char(1) character set latin2 NOT NULL default '',
`lcase(_latin2'a')` char(1) character set latin2 NOT NULL default '',
`ucase(_latin2'a')` char(1) character set latin2 NOT NULL default '',
`substring(_latin2'a',1,1)` char(1) character set latin2 NOT NULL default '',
`concat(_latin2'a',_latin2'b')` char(2) character set latin2 NOT NULL default '',
`lpad(_latin2'a',4,_latin2'b')` char(4) character set latin2 NOT NULL default '',
`rpad(_latin2'a',4,_latin2'b')` char(4) character set latin2 NOT NULL default '',
`concat_ws(_latin2'a',_latin2'b')` char(1) character set latin2 NOT NULL default '',
`make_set(255,_latin2'a',_latin2'b',_latin2'c')` char(5) character set latin2 NOT NULL default '',
`export_set(255,_latin2'y',_latin2'n',_latin2' ')` char(127) character set latin2 NOT NULL default '',
`trim(_latin2' a ')` char(3) character set latin2 NOT NULL default '',
`ltrim(_latin2' a ')` char(3) character set latin2 NOT NULL default '',
`rtrim(_latin2' a ')` char(3) character set latin2 NOT NULL default '',
`trim(LEADING _latin2' ' FROM _latin2' a ')` char(3) character set latin2 NOT NULL default '',
`trim(TRAILING _latin2' ' FROM _latin2' a ')` char(3) character set latin2 NOT NULL default '',
`trim(BOTH _latin2' ' FROM _latin2' a ')` char(3) character set latin2 NOT NULL default '',
`repeat(_latin2'a',10)` char(10) character set latin2 NOT NULL default '',
`reverse(_latin2'ab')` char(2) character set latin2 NOT NULL default '',
`quote(_latin2'ab')` char(6) character set latin2 NOT NULL default '',
`soundex(_latin2'ab')` char(4) character set latin2 NOT NULL default '',
`substring(_latin2'ab',1)` char(2) character set latin2 NOT NULL default '',
`insert(_latin2'abcd',2,3,_latin2'ef')` char(6) character set latin2 NOT NULL default '',
`replace(_latin2'abcd',_latin2'b',_latin2'B')` char(4) character set latin2 NOT NULL default ''
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1;
select SUBSTR('abcdefg',3,2);
SUBSTR('abcdefg',3,2)
cd
select SUBSTRING('abcdefg',3,2);
SUBSTRING('abcdefg',3,2)
cd
select SUBSTR('abcdefg',-3,2) FROM DUAL;
SUBSTR('abcdefg',-3,2)
ef
select SUBSTR('abcdefg',-1,5) FROM DUAL;
SUBSTR('abcdefg',-1,5)
g
select SUBSTR('abcdefg',0,0) FROM DUAL;
SUBSTR('abcdefg',0,0)
select SUBSTR('abcdefg',-1,-1) FROM DUAL;
SUBSTR('abcdefg',-1,-1)
select SUBSTR('abcdefg',1,-1) FROM DUAL;
SUBSTR('abcdefg',1,-1)
create table t7 (s1 char);
select * from t7
where concat(s1 collate latin1_general_ci,s1 collate latin1_swedish_ci) = 'AA';
ERROR HY000: Illegal mix of collations (latin1_general_ci,EXPLICIT) and (latin1_swedish_ci,EXPLICIT) for operation 'concat'
drop table t7;
select substring_index("1abcd;2abcd;3abcd;4abcd", ';', 2),substring_index("1abcd;2abcd;3abcd;4abcd", ';', -2);
substring_index("1abcd;2abcd;3abcd;4abcd", ';', 2) substring_index("1abcd;2abcd;3abcd;4abcd", ';', -2)
1abcd;2abcd 3abcd;4abcd
explain extended select md5('hello'), sha('abc'), sha1('abc'), soundex(''), 'mood' sounds like 'mud', aes_decrypt(aes_encrypt('abc','1'),'1'),concat('*',space(5),'*'), reverse('abc'), rpad('a',4,'1'), lpad('a',4,'1'), concat_ws(',','',NULL,'a'),make_set(255,_latin2'a',_latin2'b',_latin2'c'),elt(2,1),locate("a","b",2),format(130,10),char(0),conv(130,16,10),hex(130),binary 'HE', export_set(255,_latin2'y',_latin2'n',_latin2' '),FIELD('b' COLLATE latin1_bin,'A','B'),FIND_IN_SET(_latin1'B',_latin1'a,b,c,d'),collation(conv(130,16,10)), coercibility(conv(130,16,10)),length('\n\t\r\b\0\_\%\\'),bit_length('\n\t\r\b\0\_\%\\'),bit_length('\n\t\r\b\0\_\%\\'),concat('monty',' was here ','again'),length('hello'),char(ascii('h')),ord('h'),quote(1/0),crc32("123"),replace('aaaa','a','b'),insert('txs',2,1,'hi'),left(_latin2'a',1),right(_latin2'a',1),lcase(_latin2'a'),ucase(_latin2'a'),SUBSTR('abcdefg',3,2),substring_index("1abcd;2abcd;3abcd;4abcd", ';', 2),trim(_latin2' a '),ltrim(_latin2' a '),rtrim(_latin2' a '), decode(encode(repeat("a",100000),"monty"),"monty");
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 high_priority md5(_latin1'hello') AS `md5('hello')`,sha(_latin1'abc') AS `sha('abc')`,sha(_latin1'abc') AS `sha1('abc')`,soundex(_latin1'') AS `soundex('')`,(soundex(_latin1'mood') = soundex(_latin1'mud')) AS `'mood' sounds like 'mud'`,aes_decrypt(aes_encrypt(_latin1'abc',_latin1'1'),_latin1'1') AS `aes_decrypt(aes_encrypt('abc','1'),'1')`,concat(_latin1'*',repeat(_latin1' ',5),_latin1'*') AS `concat('*',space(5),'*')`,reverse(_latin1'abc') AS `reverse('abc')`,rpad(_latin1'a',4,_latin1'1') AS `rpad('a',4,'1')`,lpad(_latin1'a',4,_latin1'1') AS `lpad('a',4,'1')`,concat_ws(_latin1',',_latin1'',NULL,_latin1'a') AS `concat_ws(',','',NULL,'a')`,make_set(255,_latin2'a',_latin2'b',_latin2'c') AS `make_set(255,_latin2'a',_latin2'b',_latin2'c')`,elt(2,1) AS `elt(2,1)`,locate(_latin1'a',_latin1'b',2) AS `locate("a","b",2)`,format(130,10) AS `format(130,10)`,char(0) AS `char(0)`,conv(130,16,10) AS `conv(130,16,10)`,hex(130) AS `hex(130)`,(_latin1'HE' collate _latin1'BINARY') AS `binary 'HE'`,export_set(255,_latin2'y',_latin2'n',_latin2' ') AS `export_set(255,_latin2'y',_latin2'n',_latin2' ')`,field((_latin1'b' collate _latin1'latin1_bin'),_latin1'A',_latin1'B') AS `FIELD('b' COLLATE latin1_bin,'A','B')`,find_in_set(_latin1'B',_latin1'a,b,c,d') AS `FIND_IN_SET(_latin1'B',_latin1'a,b,c,d')`,collation(conv(130,16,10)) AS `collation(conv(130,16,10))`,coercibility(conv(130,16,10)) AS `coercibility(conv(130,16,10))`,length(_latin1'\n \r\0\\_\\%\\') AS `length('\n\t\r\b\0\_\%\\')`,bit_length(_latin1'\n \r\0\\_\\%\\') AS `bit_length('\n\t\r\b\0\_\%\\')`,bit_length(_latin1'\n \r\0\\_\\%\\') AS `bit_length('\n\t\r\b\0\_\%\\')`,concat(_latin1'monty',_latin1' was here ',_latin1'again') AS `concat('monty',' was here ','again')`,length(_latin1'hello') AS `length('hello')`,char(ascii(_latin1'h')) AS `char(ascii('h'))`,ord(_latin1'h') AS `ord('h')`,quote((1 / 0)) AS `quote(1/0)`,crc32(_latin1'123') AS `crc32("123")`,replace(_latin1'aaaa',_latin1'a',_latin1'b') AS `replace('aaaa','a','b')`,insert(_latin1'txs',2,1,_latin1'hi') AS `insert('txs',2,1,'hi')`,left(_latin2'a',1) AS `left(_latin2'a',1)`,right(_latin2'a',1) AS `right(_latin2'a',1)`,lcase(_latin2'a') AS `lcase(_latin2'a')`,ucase(_latin2'a') AS `ucase(_latin2'a')`,substr(_latin1'abcdefg',3,2) AS `SUBSTR('abcdefg',3,2)`,substr_index(_latin1'1abcd;2abcd;3abcd;4abcd',_latin1';',2) AS `substring_index("1abcd;2abcd;3abcd;4abcd", ';', 2)`,trim(_latin2' a ') AS `trim(_latin2' a ')`,ltrim(_latin2' a ') AS `ltrim(_latin2' a ')`,rtrim(_latin2' a ') AS `rtrim(_latin2' a ')`,decode(encode(repeat(_latin1'a',100000))) AS `decode(encode(repeat("a",100000),"monty"),"monty")`
SELECT lpad(12345, 5, "#");
lpad(12345, 5, "#")
12345

View file

@ -1338,7 +1338,7 @@ CREATE TABLE t2 (col1 int(1),stamp TIMESTAMP,INDEX stamp_idx
insert into t1 values (1),(2),(3);
insert into t2 values (1, 20020204130000),(2, 20020204130000),(4,20020204310000 ),(5,20020204230000);
Warnings:
Warning 1264 Data truncated for column 'stamp' at row 3
Warning 1265 Data truncated for column 'stamp' at row 3
SELECT col1 FROM t1 UNION SELECT col1 FROM t2 WHERE stamp <
'20020204120000' GROUP BY col1;
col1

View file

@ -63,7 +63,7 @@ insert into t1 values(NULL);
ERROR 23000: Column 'id' cannot be null
insert into t1 values (1), (NULL), (2);
Warnings:
Warning 1262 Data truncated, NULL supplied to NOT NULL column 'id' at row 2
Warning 1263 Data truncated, NULL supplied to NOT NULL column 'id' at row 2
select * from t1;
id
1

View file

@ -621,6 +621,9 @@ NULL 1 100
NULL 2 100
create table t2(No int not null, Field int not null, Count int not null);
insert into t2 Select null, Field, Count From t1 Where Month=20030901 and Type=2;
Warnings:
Warning 1263 Data truncated, NULL supplied to NOT NULL column 'No' at row 1
Warning 1263 Data truncated, NULL supplied to NOT NULL column 'No' at row 2
select * from t2;
No Field Count
0 1 100

View file

@ -34,10 +34,10 @@ INSERT INTO t1 VALUES (900,'Vancouver','Shared/Roomate','N','N','N','N');
INSERT INTO t1 VALUES (900,'Vancouver','Shared/Roomate','N','N','N','N');
INSERT INTO t1 VALUES (900,'Vancouver','Shared/Roomate','','','','');
Warnings:
Warning 1264 Data truncated for column 'transityes' at row 1
Warning 1264 Data truncated for column 'shopsyes' at row 1
Warning 1264 Data truncated for column 'schoolsyes' at row 1
Warning 1264 Data truncated for column 'petsyes' at row 1
Warning 1265 Data truncated for column 'transityes' at row 1
Warning 1265 Data truncated for column 'shopsyes' at row 1
Warning 1265 Data truncated for column 'schoolsyes' at row 1
Warning 1265 Data truncated for column 'petsyes' at row 1
INSERT INTO t1 VALUES (900,'Vancouver','Shared/Roomate','Y','Y','Y','Y');
INSERT INTO t1 VALUES (900,'Vancouver','Shared/Roomate','Y','Y','Y','Y');
INSERT INTO t1 VALUES (900,'Vancouver','Shared/Roomate','Y','Y','Y','Y');
@ -156,8 +156,8 @@ CREATE TABLE t1 (c CHAR(10) NOT NULL,i INT NOT NULL AUTO_INCREMENT,
UNIQUE (c,i));
INSERT INTO t1 (c) VALUES (NULL),(NULL);
Warnings:
Warning 1262 Data truncated, NULL supplied to NOT NULL column 'c' at row 1
Warning 1262 Data truncated, NULL supplied to NOT NULL column 'c' at row 2
Warning 1263 Data truncated, NULL supplied to NOT NULL column 'c' at row 1
Warning 1263 Data truncated, NULL supplied to NOT NULL column 'c' at row 2
SELECT * FROM t1;
c i
1

View file

@ -2,12 +2,12 @@ drop table if exists t1;
create table t1 (a date, b date, c date not null, d date);
load data infile '../../std_data/loaddata1.dat' into table t1 fields terminated by ',';
Warnings:
Warning 1264 Data truncated for column 'a' at row 1
Warning 1264 Data truncated for column 'c' at row 1
Warning 1264 Data truncated for column 'd' at row 1
Warning 1264 Data truncated for column 'a' at row 2
Warning 1264 Data truncated for column 'b' at row 2
Warning 1264 Data truncated for column 'd' at row 2
Warning 1265 Data truncated for column 'a' at row 1
Warning 1265 Data truncated for column 'c' at row 1
Warning 1265 Data truncated for column 'd' at row 1
Warning 1265 Data truncated for column 'a' at row 2
Warning 1265 Data truncated for column 'b' at row 2
Warning 1265 Data truncated for column 'd' at row 2
load data infile '../../std_data/loaddata1.dat' into table t1 fields terminated by ',' IGNORE 2 LINES;
SELECT * from t1;
a b c d
@ -18,10 +18,10 @@ a b c d
truncate table t1;
load data infile '../../std_data/loaddata1.dat' into table t1 fields terminated by ',' LINES STARTING BY ',' (b,c,d);
Warnings:
Warning 1264 Data truncated for column 'c' at row 1
Warning 1264 Data truncated for column 'd' at row 1
Warning 1264 Data truncated for column 'b' at row 2
Warning 1264 Data truncated for column 'd' at row 2
Warning 1265 Data truncated for column 'c' at row 1
Warning 1265 Data truncated for column 'd' at row 1
Warning 1265 Data truncated for column 'b' at row 2
Warning 1265 Data truncated for column 'd' at row 2
SELECT * from t1;
a b c d
NULL NULL 0000-00-00 0000-00-00
@ -31,7 +31,7 @@ drop table t1;
create table t1 (a text, b text);
load data infile '../../std_data/loaddata2.dat' into table t1 fields terminated by ',' enclosed by '''';
Warnings:
Warning 1260 Row 3 doesn't contain data for all columns
Warning 1261 Row 3 doesn't contain data for all columns
select concat('|',a,'|'), concat('|',b,'|') from t1;
concat('|',a,'|') concat('|',b,'|')
|Field A| |Field B|
@ -43,10 +43,10 @@ drop table t1;
create table t1 (a int, b char(10));
load data infile '../../std_data/loaddata3.dat' into table t1 fields terminated by '' enclosed by '' ignore 1 lines;
Warnings:
Warning 1264 Data truncated for column 'a' at row 3
Warning 1261 Row 3 was truncated; It contained more data than there where input columns
Warning 1264 Data truncated for column 'a' at row 5
Warning 1261 Row 5 was truncated; It contained more data than there where input columns
Warning 1265 Data truncated for column 'a' at row 3
Warning 1262 Row 3 was truncated; It contained more data than there where input columns
Warning 1265 Data truncated for column 'a' at row 5
Warning 1262 Row 5 was truncated; It contained more data than there where input columns
select * from t1;
a b
1 row 1
@ -57,8 +57,8 @@ a b
truncate table t1;
load data infile '../../std_data/loaddata4.dat' into table t1 fields terminated by '' enclosed by '' lines terminated by '' ignore 1 lines;
Warnings:
Warning 1264 Data truncated for column 'a' at row 4
Warning 1260 Row 4 doesn't contain data for all columns
Warning 1265 Data truncated for column 'a' at row 4
Warning 1261 Row 4 doesn't contain data for all columns
select * from t1;
a b
1 row 1

View file

@ -42,7 +42,7 @@ check table t2;
Table Op Msg_type Msg_text
test.t2 check error Table 't2' was not locked with LOCK TABLES
insert into t1 select nr from t1;
Table 't1' was not locked with LOCK TABLES
ERROR HY000: Table 't1' was not locked with LOCK TABLES
unlock tables;
lock tables t1 write, t1 as t1_alias read;
insert into t1 select index1,nr from t1 as t1_alias;

View file

@ -428,6 +428,22 @@ select * from t1 where a='807780' and b='477' and c='165';
a b c
807780 477 165
drop table t1;
create table t1 (a blob);
insert into t1 values('a '),('a');
select concat(a,'.') from t1 where a='a';
concat(a,'.')
a.
select concat(a,'.') from t1 where a='a ';
concat(a,'.')
a .
alter table t1 add key(a(2));
select concat(a,'.') from t1 where a='a';
concat(a,'.')
a.
select concat(a,'.') from t1 where a='a ';
concat(a,'.')
a .
drop table t1;
create table t1 (a int not null auto_increment primary key, b text not null, unique b (b(20)));
insert into t1 (b) values ('a'),('a '),('a ');
select concat(b,'.') from t1;
@ -437,7 +453,7 @@ a .
a .
update t1 set b='b ' where a=2;
update t1 set b='b ' where a > 1;
Duplicate entry 'b ' for key 2
ERROR 23000: Duplicate entry 'b ' for key 2
delete from t1 where b='b';
select a,concat(b,'.') from t1;
a concat(b,'.')

View file

@ -91,45 +91,45 @@ drop table t1;
CREATE TABLE t1 (a varchar(16) NOT NULL, b smallint(6) NOT NULL, c datetime NOT NULL, d smallint(6) NOT NULL);
INSERT INTO t1 SET a = "", d= "2003-01-14 03:54:55";
Warnings:
Warning 1264 Data truncated for column 'd' at row 1
Warning 1265 Data truncated for column 'd' at row 1
UPDATE t1 SET d=1/NULL;
Warnings:
Warning 1264 Data truncated for column 'd' at row 1
Warning 1265 Data truncated for column 'd' at row 1
UPDATE t1 SET d=NULL;
Warnings:
Warning 1262 Data truncated, NULL supplied to NOT NULL column 'd' at row 1
Warning 1263 Data truncated, NULL supplied to NOT NULL column 'd' at row 1
INSERT INTO t1 (a) values (null);
ERROR 23000: Column 'a' cannot be null
INSERT INTO t1 (a) values (1/null);
ERROR 23000: Column 'a' cannot be null
INSERT INTO t1 (a) values (null),(null);
Warnings:
Warning 1262 Data truncated, NULL supplied to NOT NULL column 'a' at row 1
Warning 1262 Data truncated, NULL supplied to NOT NULL column 'a' at row 2
Warning 1263 Data truncated, NULL supplied to NOT NULL column 'a' at row 1
Warning 1263 Data truncated, NULL supplied to NOT NULL column 'a' at row 2
INSERT INTO t1 (b) values (null);
ERROR 23000: Column 'b' cannot be null
INSERT INTO t1 (b) values (1/null);
ERROR 23000: Column 'b' cannot be null
INSERT INTO t1 (b) values (null),(null);
Warnings:
Warning 1262 Data truncated, NULL supplied to NOT NULL column 'b' at row 1
Warning 1262 Data truncated, NULL supplied to NOT NULL column 'b' at row 2
Warning 1263 Data truncated, NULL supplied to NOT NULL column 'b' at row 1
Warning 1263 Data truncated, NULL supplied to NOT NULL column 'b' at row 2
INSERT INTO t1 (c) values (null);
ERROR 23000: Column 'c' cannot be null
INSERT INTO t1 (c) values (1/null);
ERROR 23000: Column 'c' cannot be null
INSERT INTO t1 (c) values (null),(null);
Warnings:
Warning 1262 Data truncated, NULL supplied to NOT NULL column 'c' at row 1
Warning 1262 Data truncated, NULL supplied to NOT NULL column 'c' at row 2
Warning 1263 Data truncated, NULL supplied to NOT NULL column 'c' at row 1
Warning 1263 Data truncated, NULL supplied to NOT NULL column 'c' at row 2
INSERT INTO t1 (d) values (null);
ERROR 23000: Column 'd' cannot be null
INSERT INTO t1 (d) values (1/null);
ERROR 23000: Column 'd' cannot be null
INSERT INTO t1 (d) values (null),(null);
Warnings:
Warning 1262 Data truncated, NULL supplied to NOT NULL column 'd' at row 1
Warning 1262 Data truncated, NULL supplied to NOT NULL column 'd' at row 2
Warning 1263 Data truncated, NULL supplied to NOT NULL column 'd' at row 1
Warning 1263 Data truncated, NULL supplied to NOT NULL column 'd' at row 2
select * from t1;
a b c d
0 0000-00-00 00:00:00 0

View file

@ -337,7 +337,7 @@ index (id2)
);
insert into t1 values(null,null),(1,1);
Warnings:
Warning 1262 Data truncated, NULL supplied to NOT NULL column 'id2' at row 1
Warning 1263 Data truncated, NULL supplied to NOT NULL column 'id2' at row 1
select * from t1;
id id2
NULL 0

View file

@ -333,10 +333,10 @@ a b c
1 NULL NULL
alter table t1 modify b int not null, modify c varchar(10) not null;
Warnings:
Warning 1264 Data truncated for column 'b' at row 1
Warning 1264 Data truncated for column 'c' at row 1
Warning 1264 Data truncated for column 'b' at row 2
Warning 1264 Data truncated for column 'c' at row 3
Warning 1265 Data truncated for column 'b' at row 1
Warning 1265 Data truncated for column 'c' at row 1
Warning 1265 Data truncated for column 'b' at row 2
Warning 1265 Data truncated for column 'c' at row 3
explain select * from t1 order by a, b, c;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 index NULL a 18 NULL 11 Using index

View file

@ -593,7 +593,7 @@ select * from t1;
a
set GLOBAL query_cache_size=1024;
Warnings:
Warning 1281 Query cache failed to set size 1024, new query cache size is 0
Warning 1282 Query cache failed to set size 1024, new query cache size is 0
show global variables like "query_cache_size";
Variable_name Value
query_cache_size 0
@ -601,7 +601,7 @@ select * from t1;
a
set GLOBAL query_cache_size=10240;
Warnings:
Warning 1281 Query cache failed to set size 10240, new query cache size is 0
Warning 1282 Query cache failed to set size 10240, new query cache size is 0
show global variables like "query_cache_size";
Variable_name Value
query_cache_size 0
@ -609,7 +609,7 @@ select * from t1;
a
set GLOBAL query_cache_size=20480;
Warnings:
Warning 1281 Query cache failed to set size 20480, new query cache size is 0
Warning 1282 Query cache failed to set size 20480, new query cache size is 0
show global variables like "query_cache_size";
Variable_name Value
query_cache_size 0
@ -617,7 +617,7 @@ select * from t1;
a
set GLOBAL query_cache_size=40960;
Warnings:
Warning 1281 Query cache failed to set size 40960, new query cache size is 0
Warning 1282 Query cache failed to set size 40960, new query cache size is 0
show global variables like "query_cache_size";
Variable_name Value
query_cache_size 0

View file

@ -302,6 +302,7 @@ WHERE
a b
15 1
47 1
DROP TABLE t1;
create table t1 (id int(10) primary key);
insert into t1 values (1),(2),(3),(4),(5),(6),(7),(8),(9);
select id from t1 where id in (2,5,9) ;

View file

@ -1,9 +1,9 @@
slave stop;
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;
slave start;
start slave;
create table t1 (a int);
create table t2 (a int);
insert into t1 values (1);

View file

@ -69,4 +69,4 @@ ERROR HY000: Wrong parameter or combination of parameters for START SLAVE UNTIL
start slave sql_thread;
start slave until master_log_file='master-bin.000001', master_log_pos=561;
Warnings:
Note 1253 Slave is already running
Note 1254 Slave is already running

View file

@ -6,7 +6,7 @@ explain extended select (select 2);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL No tables used
Warnings:
Note 1248 Select 2 was reduced during optimisation
Note 1249 Select 2 was reduced during optimisation
Note 1003 select high_priority 2 AS `(select 2)`
SELECT (SELECT 1) UNION SELECT (SELECT 2);
(SELECT 1)
@ -17,8 +17,8 @@ id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL No tables used
3 UNION NULL NULL NULL NULL NULL NULL NULL No tables used
Warnings:
Note 1248 Select 2 was reduced during optimisation
Note 1248 Select 4 was reduced during optimisation
Note 1249 Select 2 was reduced during optimisation
Note 1249 Select 4 was reduced during optimisation
Note 1003 select high_priority 1 AS `(SELECT 1)` union select 2 AS `(SELECT 2)`
SELECT (SELECT (SELECT 0 UNION SELECT 0));
(SELECT (SELECT 0 UNION SELECT 0))
@ -29,7 +29,7 @@ id select_type table type possible_keys key key_len ref rows Extra
3 SUBQUERY NULL NULL NULL NULL NULL NULL NULL No tables used
4 UNION NULL NULL NULL NULL NULL NULL NULL No tables used
Warnings:
Note 1248 Select 2 was reduced during optimisation
Note 1249 Select 2 was reduced during optimisation
Note 1003 select high_priority (select 0 AS `0` union select 0 AS `0`) AS `(SELECT (SELECT 0 UNION SELECT 0))`
SELECT (SELECT 1 FROM (SELECT 1) as b HAVING a=1) as a;
ERROR 42S22: Reference 'a' not supported (forward reference in item list)
@ -46,8 +46,8 @@ id select_type table type possible_keys key key_len ref rows Extra
3 DEPENDENT SUBQUERY NULL NULL NULL NULL NULL NULL NULL No tables used
2 DERIVED NULL NULL NULL NULL NULL NULL NULL No tables used
Warnings:
Note 1275 Field or reference 'a' of SELECT #3 was resolved in SELECT #1
Note 1275 Field or reference 'b.a' of SELECT #3 was resolved in SELECT #1
Note 1276 Field or reference 'a' of SELECT #3 was resolved in SELECT #1
Note 1276 Field or reference 'b.a' of SELECT #3 was resolved in SELECT #1
Note 1003 select high_priority 1 AS `1` from (select 1 AS `a`) b having ((select b.a AS `a`) = 1)
SELECT 1 FROM (SELECT 1 as a) as b HAVING (SELECT a)=1;
1
@ -219,7 +219,7 @@ id select_type table type possible_keys key key_len ref rows Extra
2 DEPENDENT SUBQUERY t2 ALL NULL NULL NULL NULL 2
3 DEPENDENT SUBQUERY t3 ALL NULL NULL NULL NULL 3 Using where
Warnings:
Note 1275 Field or reference 't4.a' of SELECT #3 was resolved in SELECT #1
Note 1276 Field or reference 't4.a' of SELECT #3 was resolved in SELECT #1
Note 1003 select high_priority test.t4.b AS `b`,(select avg((test.t2.a + (select min(test.t3.a) AS `min(t3.a)` from test.t3 where (test.t3.a >= test.t4.a)))) AS `avg(t2.a+(select min(t3.a) from t3 where t3.a >= t4.a))` from test.t2) AS `(select avg(t2.a+(select min(t3.a) from t3 where t3.a >= t4.a)) from t2)` from test.t4
select * from t3 where exists (select * from t2 where t2.b=t3.a);
a
@ -307,8 +307,8 @@ id select_type table type possible_keys key key_len ref rows Extra
2 DEPENDENT SUBQUERY t1 system NULL NULL NULL NULL 1
3 DEPENDENT UNION t5 ALL NULL NULL NULL NULL 2 Using where
Warnings:
Note 1275 Field or reference 't2.a' of SELECT #2 was resolved in SELECT #1
Note 1275 Field or reference 't2.a' of SELECT #3 was resolved in SELECT #1
Note 1276 Field or reference 't2.a' of SELECT #2 was resolved in SELECT #1
Note 1276 Field or reference 't2.a' of SELECT #3 was resolved in SELECT #1
Note 1003 select high_priority (select test.t1.a AS `a` from test.t1 where (test.t1.a = test.t2.a) union select test.t5.a AS `a` from test.t5 where (test.t5.a = test.t2.a)) AS `(select a from t1 where t1.a=t2.a union select a from t5 where t5.a=t2.a)`,test.t2.a AS `a` from test.t2
select (select a from t1 where t1.a=t2.a union all select a from t5 where t5.a=t2.a), a from t2;
ERROR 21000: Subquery returns more than 1 row
@ -326,7 +326,7 @@ id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t6 ALL NULL NULL NULL NULL 4 Using where
2 DEPENDENT SUBQUERY t7 eq_ref PRIMARY PRIMARY 4 test.t6.clinic_uq 1
Warnings:
Note 1275 Field or reference 'clinic_uq' of SELECT #2 was resolved in SELECT #1
Note 1276 Field or reference 'clinic_uq' of SELECT #2 was resolved in SELECT #1
Note 1003 select high_priority test.t6.patient_uq AS `patient_uq`,test.t6.clinic_uq AS `clinic_uq` from test.t6 where exists(select test.t7.uq AS `uq`,test.t7.name AS `name` from test.t7 where (test.t7.uq = test.t6.clinic_uq) limit 1)
select * from t1 where a= (select a from t2,t4 where t2.b=t4.b);
ERROR 23000: Column: 'a' in field list is ambiguous
@ -707,7 +707,7 @@ EXPLAIN EXTENDED SELECT * FROM t2 WHERE id IN (SELECT 1);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ref id id 5 const 1 Using where; Using index
Warnings:
Note 1248 Select 2 was reduced during optimisation
Note 1249 Select 2 was reduced during optimisation
Note 1003 select high_priority test.t2.id AS `id` from test.t2 where (test.t2.id = 1)
SELECT * FROM t2 WHERE id IN (SELECT 1 UNION SELECT 3);
id
@ -719,8 +719,8 @@ EXPLAIN EXTENDED SELECT * FROM t2 WHERE id IN (SELECT 1+(select 1));
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ref id id 5 const 1 Using where; Using index
Warnings:
Note 1248 Select 3 was reduced during optimisation
Note 1248 Select 2 was reduced during optimisation
Note 1249 Select 3 was reduced during optimisation
Note 1249 Select 2 was reduced during optimisation
Note 1003 select high_priority test.t2.id AS `id` from test.t2 where (test.t2.id = (1 + 1))
EXPLAIN EXTENDED SELECT * FROM t2 WHERE id IN (SELECT 1 UNION SELECT 3);
id select_type table type possible_keys key key_len ref rows Extra
@ -852,8 +852,8 @@ explain extended select (select a+1) from t1;
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 3
Warnings:
Note 1275 Field or reference 'a' of SELECT #2 was resolved in SELECT #1
Note 1248 Select 2 was reduced during optimisation
Note 1276 Field or reference 'a' of SELECT #2 was resolved in SELECT #1
Note 1249 Select 2 was reduced during optimisation
Note 1003 select high_priority (test.t1.a + 1) AS `(select a+1)` from test.t1
select (select a+1) from t1;
(select a+1)
@ -1041,12 +1041,12 @@ UNIQUE KEY `maxnumrep` (`maxnumrep`)
) ENGINE=MyISAM CHARSET=latin1;
INSERT INTO t1 VALUES ('joce','1','','joce'),('test','2','','test');
Warnings:
Warning 1264 Data truncated for column 'date' at row 1
Warning 1264 Data truncated for column 'date' at row 2
Warning 1265 Data truncated for column 'date' at row 1
Warning 1265 Data truncated for column 'date' at row 2
INSERT INTO t2 VALUES ('joce','1','','joce'),('test','2','','test');
Warnings:
Warning 1264 Data truncated for column 'date' at row 1
Warning 1264 Data truncated for column 'date' at row 2
Warning 1265 Data truncated for column 'date' at row 1
Warning 1265 Data truncated for column 'date' at row 2
INSERT INTO t3 VALUES (1,1);
SELECT DISTINCT topic FROM t2 WHERE NOT EXISTS(SELECT * FROM t3 WHERE
numeropost=topic);
@ -1238,7 +1238,7 @@ insert into t1 values (1,0), (2,0), (3,0);
insert into t2 values (1,1), (2,1), (3,1), (2,2);
update ignore t1 set b=(select b from t2 where t1.a=t2.a);
Warnings:
Error 1241 Subquery returns more than 1 row
Error 1242 Subquery returns more than 1 row
select * from t1;
a b
1 1

View file

@ -62,7 +62,7 @@ processor_id (SELECT y.yod_id FROM t1 p2, t2 y WHERE p2.processor_id = p1.proces
1 1
2 2
3 3
drop table t1,t2,t3;
drop table t2,t1,t3;
CREATE TABLE t1 (
id int(11) NOT NULL default '0',
b int(11) default NULL,

View file

@ -9,9 +9,9 @@ d mediumtext YES NULL
e longtext YES NULL
CREATE TABLE t2 (a char(257), b varchar(70000) binary, c varchar(70000000));
Warnings:
Warning 1245 Converting column 'a' from CHAR to TEXT
Warning 1245 Converting column 'b' from CHAR to BLOB
Warning 1245 Converting column 'c' from CHAR to TEXT
Warning 1246 Converting column 'a' from CHAR to TEXT
Warning 1246 Converting column 'b' from CHAR to BLOB
Warning 1246 Converting column 'c' from CHAR to TEXT
show columns from t2;
Field Type Null Key Default Extra
a text YES NULL

View file

@ -2,11 +2,11 @@ drop table if exists t1;
create table t1 (t datetime);
insert into t1 values(101),(691231),(700101),(991231),(10000101),(99991231),(101000000),(691231000000),(700101000000),(991231235959),(10000101000000),(99991231235959),(20030102030460),(20030102036301),(20030102240401),(20030132030401),(20031302030460);
Warnings:
Warning 1264 Data truncated for column 't' at row 13
Warning 1264 Data truncated for column 't' at row 14
Warning 1264 Data truncated for column 't' at row 15
Warning 1264 Data truncated for column 't' at row 16
Warning 1264 Data truncated for column 't' at row 17
Warning 1265 Data truncated for column 't' at row 13
Warning 1265 Data truncated for column 't' at row 14
Warning 1265 Data truncated for column 't' at row 15
Warning 1265 Data truncated for column 't' at row 16
Warning 1265 Data truncated for column 't' at row 17
select * from t1;
t
2000-01-01 00:00:00

View file

@ -158,17 +158,17 @@ insert into t1 values ("00000000000001"),("+0000000000001"),("-0000000000001");
insert into t1 values ("+111111111.11"),("111111111.11"),("-11111111.11");
insert into t1 values ("-111111111.11"),("+1111111111.11"),("1111111111.11");
Warnings:
Warning 1263 Data truncated, out of range for column 'a' at row 1
Warning 1263 Data truncated, out of range for column 'a' at row 2
Warning 1263 Data truncated, out of range for column 'a' at row 3
Warning 1264 Data truncated, out of range for column 'a' at row 1
Warning 1264 Data truncated, out of range for column 'a' at row 2
Warning 1264 Data truncated, out of range for column 'a' at row 3
insert into t1 values ("1e+1000"),("1e-1000"),("-1e+1000");
Warnings:
Warning 1263 Data truncated, out of range for column 'a' at row 1
Warning 1264 Data truncated for column 'a' at row 2
Warning 1263 Data truncated, out of range for column 'a' at row 3
Warning 1264 Data truncated, out of range for column 'a' at row 1
Warning 1265 Data truncated for column 'a' at row 2
Warning 1264 Data truncated, out of range for column 'a' at row 3
insert into t1 values ("123.4e"),("123.4e+2"),("123.4e-2"),("123e1"),("123e+0");
Warnings:
Warning 1264 Data truncated for column 'a' at row 3
Warning 1265 Data truncated for column 'a' at row 3
select * from t1;
a
0.00
@ -201,32 +201,32 @@ drop table t1;
create table t1 (a decimal(10,2) unsigned);
insert into t1 values ("0.0"),("-0.0"),("+0.0"),("01.0"),("+01.0"),("-01.0");
Warnings:
Warning 1263 Data truncated, out of range for column 'a' at row 2
Warning 1263 Data truncated, out of range for column 'a' at row 6
Warning 1264 Data truncated, out of range for column 'a' at row 2
Warning 1264 Data truncated, out of range for column 'a' at row 6
insert into t1 values ("-.1"),("+.1"),(".1");
Warnings:
Warning 1263 Data truncated, out of range for column 'a' at row 1
Warning 1264 Data truncated, out of range for column 'a' at row 1
insert into t1 values ("00000000000001"),("+0000000000001"),("-0000000000001");
Warnings:
Warning 1263 Data truncated, out of range for column 'a' at row 3
Warning 1264 Data truncated, out of range for column 'a' at row 3
insert into t1 values ("+111111111.11"),("111111111.11"),("-11111111.11");
Warnings:
Warning 1263 Data truncated, out of range for column 'a' at row 1
Warning 1263 Data truncated, out of range for column 'a' at row 2
Warning 1263 Data truncated, out of range for column 'a' at row 3
Warning 1264 Data truncated, out of range for column 'a' at row 1
Warning 1264 Data truncated, out of range for column 'a' at row 2
Warning 1264 Data truncated, out of range for column 'a' at row 3
insert into t1 values ("-111111111.11"),("+1111111111.11"),("1111111111.11");
Warnings:
Warning 1263 Data truncated, out of range for column 'a' at row 1
Warning 1263 Data truncated, out of range for column 'a' at row 2
Warning 1263 Data truncated, out of range for column 'a' at row 3
Warning 1264 Data truncated, out of range for column 'a' at row 1
Warning 1264 Data truncated, out of range for column 'a' at row 2
Warning 1264 Data truncated, out of range for column 'a' at row 3
insert into t1 values ("1e+1000"),("1e-1000"),("-1e+1000");
Warnings:
Warning 1263 Data truncated, out of range for column 'a' at row 1
Warning 1264 Data truncated for column 'a' at row 2
Warning 1263 Data truncated, out of range for column 'a' at row 3
Warning 1264 Data truncated, out of range for column 'a' at row 1
Warning 1265 Data truncated for column 'a' at row 2
Warning 1264 Data truncated, out of range for column 'a' at row 3
insert into t1 values ("123.4e"),("123.4e+2"),("123.4e-2"),("123e1"),("123e+0");
Warnings:
Warning 1264 Data truncated for column 'a' at row 3
Warning 1265 Data truncated for column 'a' at row 3
select * from t1;
a
0.00
@ -259,32 +259,32 @@ drop table t1;
create table t1 (a decimal(10,2) zerofill);
insert into t1 values ("0.0"),("-0.0"),("+0.0"),("01.0"),("+01.0"),("-01.0");
Warnings:
Warning 1263 Data truncated, out of range for column 'a' at row 2
Warning 1263 Data truncated, out of range for column 'a' at row 6
Warning 1264 Data truncated, out of range for column 'a' at row 2
Warning 1264 Data truncated, out of range for column 'a' at row 6
insert into t1 values ("-.1"),("+.1"),(".1");
Warnings:
Warning 1263 Data truncated, out of range for column 'a' at row 1
Warning 1264 Data truncated, out of range for column 'a' at row 1
insert into t1 values ("00000000000001"),("+0000000000001"),("-0000000000001");
Warnings:
Warning 1263 Data truncated, out of range for column 'a' at row 3
Warning 1264 Data truncated, out of range for column 'a' at row 3
insert into t1 values ("+111111111.11"),("111111111.11"),("-11111111.11");
Warnings:
Warning 1263 Data truncated, out of range for column 'a' at row 1
Warning 1263 Data truncated, out of range for column 'a' at row 2
Warning 1263 Data truncated, out of range for column 'a' at row 3
Warning 1264 Data truncated, out of range for column 'a' at row 1
Warning 1264 Data truncated, out of range for column 'a' at row 2
Warning 1264 Data truncated, out of range for column 'a' at row 3
insert into t1 values ("-111111111.11"),("+1111111111.11"),("1111111111.11");
Warnings:
Warning 1263 Data truncated, out of range for column 'a' at row 1
Warning 1263 Data truncated, out of range for column 'a' at row 2
Warning 1263 Data truncated, out of range for column 'a' at row 3
Warning 1264 Data truncated, out of range for column 'a' at row 1
Warning 1264 Data truncated, out of range for column 'a' at row 2
Warning 1264 Data truncated, out of range for column 'a' at row 3
insert into t1 values ("1e+1000"),("1e-1000"),("-1e+1000");
Warnings:
Warning 1263 Data truncated, out of range for column 'a' at row 1
Warning 1264 Data truncated for column 'a' at row 2
Warning 1263 Data truncated, out of range for column 'a' at row 3
Warning 1264 Data truncated, out of range for column 'a' at row 1
Warning 1265 Data truncated for column 'a' at row 2
Warning 1264 Data truncated, out of range for column 'a' at row 3
insert into t1 values ("123.4e"),("123.4e+2"),("123.4e-2"),("123e1"),("123e+0");
Warnings:
Warning 1264 Data truncated for column 'a' at row 3
Warning 1265 Data truncated for column 'a' at row 3
select * from t1;
a
00000000.00
@ -321,13 +321,13 @@ insert into t1 values (00000000000001),(+0000000000001),(-0000000000001);
insert into t1 values (+111111111.11),(111111111.11),(-11111111.11);
insert into t1 values (-111111111.11),(+1111111111.11),(1111111111.11);
Warnings:
Warning 1263 Data truncated, out of range for column 'a' at row 1
Warning 1263 Data truncated, out of range for column 'a' at row 2
Warning 1263 Data truncated, out of range for column 'a' at row 3
Warning 1264 Data truncated, out of range for column 'a' at row 1
Warning 1264 Data truncated, out of range for column 'a' at row 2
Warning 1264 Data truncated, out of range for column 'a' at row 3
insert into t1 values (1e+100),(1e-100),(-1e+100);
Warnings:
Warning 1263 Data truncated, out of range for column 'a' at row 1
Warning 1263 Data truncated, out of range for column 'a' at row 3
Warning 1264 Data truncated, out of range for column 'a' at row 1
Warning 1264 Data truncated, out of range for column 'a' at row 3
insert into t1 values (123.4e0),(123.4e+2),(123.4e-2),(123e1),(123e+0);
select * from t1;
a
@ -361,8 +361,8 @@ drop table t1;
create table t1 (a decimal);
insert into t1 values (-99999999999999),(-1),('+1'),('01'),('+00000000000001'),('+12345678901'),(99999999999999);
Warnings:
Warning 1263 Data truncated, out of range for column 'a' at row 1
Warning 1263 Data truncated, out of range for column 'a' at row 7
Warning 1264 Data truncated, out of range for column 'a' at row 1
Warning 1264 Data truncated, out of range for column 'a' at row 7
select * from t1;
a
-9999999999
@ -376,9 +376,9 @@ drop table t1;
create table t1 (a decimal unsigned);
insert into t1 values (-99999999999999),(-1),('+1'),('01'),('+00000000000001'),('+1234567890'),(99999999999999);
Warnings:
Warning 1263 Data truncated, out of range for column 'a' at row 1
Warning 1263 Data truncated, out of range for column 'a' at row 2
Warning 1263 Data truncated, out of range for column 'a' at row 7
Warning 1264 Data truncated, out of range for column 'a' at row 1
Warning 1264 Data truncated, out of range for column 'a' at row 2
Warning 1264 Data truncated, out of range for column 'a' at row 7
select * from t1;
a
0
@ -392,9 +392,9 @@ drop table t1;
create table t1 (a decimal zerofill);
insert into t1 values (-99999999999999),(-1),('+1'),('01'),('+00000000000001'),('+1234567890'),(99999999999999);
Warnings:
Warning 1263 Data truncated, out of range for column 'a' at row 1
Warning 1263 Data truncated, out of range for column 'a' at row 2
Warning 1263 Data truncated, out of range for column 'a' at row 7
Warning 1264 Data truncated, out of range for column 'a' at row 1
Warning 1264 Data truncated, out of range for column 'a' at row 2
Warning 1264 Data truncated, out of range for column 'a' at row 7
select * from t1;
a
0000000000
@ -408,9 +408,9 @@ drop table t1;
create table t1 (a decimal unsigned zerofill);
insert into t1 values (-99999999999999),(-1),('+1'),('01'),('+00000000000001'),('+1234567890'),(99999999999999);
Warnings:
Warning 1263 Data truncated, out of range for column 'a' at row 1
Warning 1263 Data truncated, out of range for column 'a' at row 2
Warning 1263 Data truncated, out of range for column 'a' at row 7
Warning 1264 Data truncated, out of range for column 'a' at row 1
Warning 1264 Data truncated, out of range for column 'a' at row 2
Warning 1264 Data truncated, out of range for column 'a' at row 7
select * from t1;
a
0000000000
@ -424,16 +424,16 @@ drop table t1;
create table t1(a decimal(10,0));
insert into t1 values ("1e4294967295");
Warnings:
Warning 1264 Data truncated for column 'a' at row 1
Warning 1263 Data truncated, out of range for column 'a' at row 1
Warning 1265 Data truncated for column 'a' at row 1
Warning 1264 Data truncated, out of range for column 'a' at row 1
select * from t1;
a
99999999999
delete from t1;
insert into t1 values("1e4294967297");
Warnings:
Warning 1264 Data truncated for column 'a' at row 1
Warning 1263 Data truncated, out of range for column 'a' at row 1
Warning 1265 Data truncated for column 'a' at row 1
Warning 1264 Data truncated, out of range for column 'a' at row 1
select * from t1;
a
99999999999

View file

@ -1639,13 +1639,13 @@ drop table t1;
create table t1 (a enum ('0','1'));
insert into t1 set a='foobar';
Warnings:
Warning 1264 Data truncated for column 'a' at row 1
Warning 1265 Data truncated for column 'a' at row 1
select * from t1;
a
update t1 set a = replace(a,'x','y');
Warnings:
Warning 1264 Data truncated for column 'a' at row 1
Warning 1265 Data truncated for column 'a' at row 1
select * from t1;
a

View file

@ -15,8 +15,8 @@ f1 float NULL YES NULL select,insert,update,references
f2 double NULL YES NULL select,insert,update,references
insert into t1 values(10,10),(1e+5,1e+5),(1234567890,1234567890),(1e+10,1e+10),(1e+15,1e+15),(1e+20,1e+20),(1e+50,1e+50),(1e+150,1e+150);
Warnings:
Warning 1263 Data truncated, out of range for column 'f1' at row 7
Warning 1263 Data truncated, out of range for column 'f1' at row 8
Warning 1264 Data truncated, out of range for column 'f1' at row 7
Warning 1264 Data truncated, out of range for column 'f1' at row 8
insert into t1 values(-10,-10),(1e-5,1e-5),(1e-10,1e-10),(1e-15,1e-15),(1e-20,1e-20),(1e-50,1e-50),(1e-150,1e-150);
select * from t1;
f1 f2

View file

@ -89,34 +89,34 @@ insert into t1 values (NULL,2,2,2,2,2,2,2,2,2,2,2,2,2,NULL,NULL,NULL,NULL,NULL,N
insert into t1 values (0,1/3,3,3,3,3,3,3,3,3,3,3,3,3,NULL,'19970303','10:10:10','19970303101010','','','','3',3,3);
insert into t1 values (0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,NULL,19970807,080706,19970403090807,-1,-1,-1,'-1',-1,-1);
Warnings:
Warning 1263 Data truncated, out of range for column 'utiny' at row 1
Warning 1263 Data truncated, out of range for column 'ushort' at row 1
Warning 1263 Data truncated, out of range for column 'umedium' at row 1
Warning 1263 Data truncated, out of range for column 'ulong' at row 1
Warning 1264 Data truncated for column 'options' at row 1
Warning 1264 Data truncated for column 'flags' at row 1
Warning 1264 Data truncated, out of range for column 'utiny' at row 1
Warning 1264 Data truncated, out of range for column 'ushort' at row 1
Warning 1264 Data truncated, out of range for column 'umedium' at row 1
Warning 1264 Data truncated, out of range for column 'ulong' at row 1
Warning 1265 Data truncated for column 'options' at row 1
Warning 1265 Data truncated for column 'flags' at row 1
insert into t1 values (0,-4294967295,-4294967295,-4294967295,-4294967295,-4294967295,-4294967295,-4294967295,-4294967295,-4294967295,-4294967295,-4294967295,-4294967295,-4294967295,NULL,0,0,0,-4294967295,-4294967295,-4294967295,'-4294967295',0,"one,two,tree");
Warnings:
Warning 1264 Data truncated for column 'string' at row 1
Warning 1263 Data truncated, out of range for column 'tiny' at row 1
Warning 1263 Data truncated, out of range for column 'short' at row 1
Warning 1263 Data truncated, out of range for column 'medium' at row 1
Warning 1263 Data truncated, out of range for column 'long_int' at row 1
Warning 1263 Data truncated, out of range for column 'utiny' at row 1
Warning 1263 Data truncated, out of range for column 'ushort' at row 1
Warning 1263 Data truncated, out of range for column 'umedium' at row 1
Warning 1263 Data truncated, out of range for column 'ulong' at row 1
Warning 1264 Data truncated for column 'options' at row 1
Warning 1265 Data truncated for column 'string' at row 1
Warning 1264 Data truncated, out of range for column 'tiny' at row 1
Warning 1264 Data truncated, out of range for column 'short' at row 1
Warning 1264 Data truncated, out of range for column 'medium' at row 1
Warning 1264 Data truncated, out of range for column 'long_int' at row 1
Warning 1264 Data truncated, out of range for column 'utiny' at row 1
Warning 1264 Data truncated, out of range for column 'ushort' at row 1
Warning 1264 Data truncated, out of range for column 'umedium' at row 1
Warning 1264 Data truncated, out of range for column 'ulong' at row 1
Warning 1265 Data truncated for column 'options' at row 1
insert into t1 values (0,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,NULL,0,0,0,4294967295,4294967295,4294967295,'4294967295',0,0);
Warnings:
Warning 1263 Data truncated, out of range for column 'tiny' at row 1
Warning 1263 Data truncated, out of range for column 'short' at row 1
Warning 1263 Data truncated, out of range for column 'medium' at row 1
Warning 1263 Data truncated, out of range for column 'long_int' at row 1
Warning 1263 Data truncated, out of range for column 'utiny' at row 1
Warning 1263 Data truncated, out of range for column 'ushort' at row 1
Warning 1263 Data truncated, out of range for column 'umedium' at row 1
Warning 1264 Data truncated for column 'options' at row 1
Warning 1264 Data truncated, out of range for column 'tiny' at row 1
Warning 1264 Data truncated, out of range for column 'short' at row 1
Warning 1264 Data truncated, out of range for column 'medium' at row 1
Warning 1264 Data truncated, out of range for column 'long_int' at row 1
Warning 1264 Data truncated, out of range for column 'utiny' at row 1
Warning 1264 Data truncated, out of range for column 'ushort' at row 1
Warning 1264 Data truncated, out of range for column 'umedium' at row 1
Warning 1265 Data truncated for column 'options' at row 1
insert into t1 (tiny) values (1);
select auto,string,tiny,short,medium,long_int,longlong,real_float,real_double,utiny,ushort,umedium,ulong,ulonglong,mod(floor(time_stamp/1000000),1000000)-mod(curdate(),1000000),date_field,time_field,date_time,blob_col,tinyblob_col,mediumblob_col,longblob_col from t1;
auto string tiny short medium long_int longlong real_float real_double utiny ushort umedium ulong ulonglong mod(floor(time_stamp/1000000),1000000)-mod(curdate(),1000000) date_field time_field date_time blob_col tinyblob_col mediumblob_col longblob_col
@ -165,12 +165,12 @@ PRIMARY KEY (auto)
);
INSERT INTO t2 (string,mediumblob_col,new_field) SELECT string,mediumblob_col,new_field from t1 where auto > 10;
Warnings:
Warning 1264 Data truncated for column 'new_field' at row 2
Warning 1264 Data truncated for column 'new_field' at row 3
Warning 1264 Data truncated for column 'new_field' at row 4
Warning 1264 Data truncated for column 'new_field' at row 5
Warning 1264 Data truncated for column 'new_field' at row 6
Warning 1264 Data truncated for column 'new_field' at row 7
Warning 1265 Data truncated for column 'new_field' at row 2
Warning 1265 Data truncated for column 'new_field' at row 3
Warning 1265 Data truncated for column 'new_field' at row 4
Warning 1265 Data truncated for column 'new_field' at row 5
Warning 1265 Data truncated for column 'new_field' at row 6
Warning 1265 Data truncated for column 'new_field' at row 7
select * from t2;
auto string mediumblob_col new_field
1 2 2 ne
@ -202,9 +202,9 @@ one one
drop table t2;
create table t2 select * from t1;
Warnings:
Warning 1264 Data truncated for column 'options' at row 4
Warning 1264 Data truncated for column 'options' at row 5
Warning 1264 Data truncated for column 'options' at row 6
Warning 1265 Data truncated for column 'options' at row 4
Warning 1265 Data truncated for column 'options' at row 5
Warning 1265 Data truncated for column 'options' at row 6
update t2 set string="changed" where auto=16;
show full columns from t1;
Field Type Collation Null Key Default Extra Privileges Comment

View file

@ -25,9 +25,9 @@ t
36:30:31
insert into t1 values("10.22.22"),(1234567),(123456789),(123456789.10),("10 22:22"),("12.45a");
Warnings:
Warning 1263 Data truncated, out of range for column 't' at row 2
Warning 1263 Data truncated, out of range for column 't' at row 3
Warning 1263 Data truncated, out of range for column 't' at row 4
Warning 1264 Data truncated, out of range for column 't' at row 2
Warning 1264 Data truncated, out of range for column 't' at row 3
Warning 1264 Data truncated, out of range for column 't' at row 4
select * from t1;
t
10:22:33

View file

@ -45,11 +45,11 @@ drop table t1;
create table t1 (ix timestamp);
insert into t1 values (19991101000000),(19990102030405),(19990630232922),(19990601000000),(19990930232922),(19990531232922),(19990501000000),(19991101000000),(19990501000000),(20030101010160),(20030101016001),(20030101240101),(20030132010101),(20031301010101);
Warnings:
Warning 1264 Data truncated for column 'ix' at row 10
Warning 1264 Data truncated for column 'ix' at row 11
Warning 1264 Data truncated for column 'ix' at row 12
Warning 1264 Data truncated for column 'ix' at row 13
Warning 1264 Data truncated for column 'ix' at row 14
Warning 1265 Data truncated for column 'ix' at row 10
Warning 1265 Data truncated for column 'ix' at row 11
Warning 1265 Data truncated for column 'ix' at row 12
Warning 1265 Data truncated for column 'ix' at row 13
Warning 1265 Data truncated for column 'ix' at row 14
select ix+0 from t1;
ix+0
19991101000000
@ -138,31 +138,31 @@ t1 t2
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`t1` timestamp(14) NOT NULL,
`t2` timestamp(14) NOT NULL default '2003-01-01 00:00:00'
) TYPE=MyISAM
`t1` timestamp NOT NULL,
`t2` timestamp NOT NULL default '2003-01-01 00:00:00'
) ENGINE=MyISAM DEFAULT CHARSET=latin1
show columns from t1;
Field Type Null Key Default Extra
t1 timestamp(14) YES NULL
t2 timestamp(14) YES 2003-01-01 00:00:00
t1 timestamp YES NULL
t2 timestamp YES 2003-01-01 00:00:00
show columns from t1 like 't2';
Field Type Null Key Default Extra
t2 timestamp(14) YES 2003-01-01 00:00:00
t2 timestamp YES 2003-01-01 00:00:00
create table t2 (select * from t1);
show create table t2;
Table Create Table
t2 CREATE TABLE `t2` (
`t1` timestamp(14) NOT NULL,
`t2` timestamp(14) NOT NULL default '2003-01-01 00:00:00'
) TYPE=MyISAM
`t1` timestamp NOT NULL,
`t2` timestamp NOT NULL default '2003-01-01 00:00:00'
) ENGINE=MyISAM DEFAULT CHARSET=latin1
alter table t1 add column t0 timestamp first;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`t0` timestamp(14) NOT NULL,
`t1` timestamp(14) NOT NULL default '2003-01-01 00:00:00',
`t2` timestamp(14) NOT NULL default '2003-01-01 00:00:00'
) TYPE=MyISAM
`t0` timestamp NOT NULL,
`t1` timestamp NOT NULL default '2003-01-01 00:00:00',
`t2` timestamp NOT NULL default '2003-01-01 00:00:00'
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1,t2;
create table t1 (ts1 timestamp, ts2 timestamp);
set TIMESTAMP=1000000000;

View file

@ -4,7 +4,7 @@ create table t1 (this int unsigned);
insert into t1 values (1);
insert into t1 values (-1);
Warnings:
Warning 1263 Data truncated, out of range for column 'this' at row 1
Warning 1264 Data truncated, out of range for column 'this' at row 1
select * from t1;
this
1

View file

@ -28,6 +28,8 @@ y y2
drop table t1;
create table t1 (y year);
insert into t1 values (now());
Warnings:
Warning 1265 Data truncated for column 'y' at row 1
select if(y = now(), 1, 0) from t1;
if(y = now(), 1, 0)
1

View file

@ -236,7 +236,7 @@ ERROR HY000: Unknown collation: 'UNKNOWN_COLLATION'
set global autocommit=1;
ERROR HY000: Variable 'autocommit' is a LOCAL variable and can't be used with SET GLOBAL
select @@global.timestamp;
ERROR HY000: Variable 'timestamp' is a LOCAL variable and can't be used with SET GLOBAL
ERROR HY000: Variable 'timestamp' is a LOCAL variable
set @@version='';
ERROR HY000: Unknown system variable 'version'
set @@concurrent_insert=1;
@ -244,7 +244,7 @@ ERROR HY000: Variable 'concurrent_insert' is a GLOBAL variable and should be set
set @@global.sql_auto_is_null=1;
ERROR HY000: Variable 'sql_auto_is_null' is a LOCAL variable and can't be used with SET GLOBAL
select @@global.sql_auto_is_null;
ERROR HY000: Variable 'sql_auto_is_null' is a LOCAL variable and can't be used with SET GLOBAL
ERROR HY000: Variable 'sql_auto_is_null' is a LOCAL variable
set myisam_max_sort_file_size=100;
ERROR HY000: Variable 'myisam_max_sort_file_size' is a GLOBAL variable and should be set with SET GLOBAL
set myisam_max_extra_sort_file_size=100;
@ -381,7 +381,7 @@ select 1;
1
1
select @@session.key_buffer_size;
Variable 'key_buffer_size' is a GLOBAL variable
ERROR HY000: Variable 'key_buffer_size' is a GLOBAL variable
select @@global.max_user_connections,@@local.max_join_size;
@@global.max_user_connections @@session.max_join_size
100 200

View file

@ -4,19 +4,19 @@ create table t1 (a int);
insert into t1 values (1);
insert into t1 values ("hej");
Warnings:
Warning 1264 Data truncated for column 'a' at row 1
Warning 1265 Data truncated for column 'a' at row 1
insert into t1 values ("hej"),("då");
Warnings:
Warning 1264 Data truncated for column 'a' at row 1
Warning 1264 Data truncated for column 'a' at row 2
Warning 1265 Data truncated for column 'a' at row 1
Warning 1265 Data truncated for column 'a' at row 2
set SQL_WARNINGS=1;
insert into t1 values ("hej");
Warnings:
Warning 1264 Data truncated for column 'a' at row 1
Warning 1265 Data truncated for column 'a' at row 1
insert into t1 values ("hej"),("då");
Warnings:
Warning 1264 Data truncated for column 'a' at row 1
Warning 1264 Data truncated for column 'a' at row 2
Warning 1265 Data truncated for column 'a' at row 1
Warning 1265 Data truncated for column 'a' at row 2
drop table t1;
set SQL_WARNINGS=0;
drop temporary table if exists not_exists;
@ -43,13 +43,13 @@ drop table t1;
create table t1(a tinyint, b int not null, c date, d char(5));
load data infile '../../std_data/warnings_loaddata.dat' into table t1 fields terminated by ',';
Warnings:
Warning 1262 Data truncated, NULL supplied to NOT NULL column 'b' at row 2
Warning 1264 Data truncated for column 'd' at row 3
Warning 1264 Data truncated for column 'c' at row 4
Warning 1260 Row 5 doesn't contain data for all columns
Warning 1264 Data truncated for column 'b' at row 6
Warning 1261 Row 7 was truncated; It contained more data than there where input columns
Warning 1263 Data truncated, out of range for column 'a' at row 8
Warning 1263 Data truncated, NULL supplied to NOT NULL column 'b' at row 2
Warning 1265 Data truncated for column 'd' at row 3
Warning 1265 Data truncated for column 'c' at row 4
Warning 1261 Row 5 doesn't contain data for all columns
Warning 1265 Data truncated for column 'b' at row 6
Warning 1262 Row 7 was truncated; It contained more data than there where input columns
Warning 1264 Data truncated, out of range for column 'a' at row 8
select @@warning_count;
@@warning_count
7
@ -57,44 +57,44 @@ drop table t1;
create table t1(a tinyint NOT NULL, b tinyint unsigned, c char(5));
insert into t1 values(NULL,100,'mysql'),(10,-1,'mysql ab'),(500,256,'open source'),(20,NULL,'test');
Warnings:
Warning 1262 Data truncated, NULL supplied to NOT NULL column 'a' at row 1
Warning 1263 Data truncated, out of range for column 'b' at row 2
Warning 1264 Data truncated for column 'c' at row 2
Warning 1263 Data truncated, out of range for column 'a' at row 3
Warning 1263 Data truncated, out of range for column 'b' at row 3
Warning 1264 Data truncated for column 'c' at row 3
Warning 1263 Data truncated, NULL supplied to NOT NULL column 'a' at row 1
Warning 1264 Data truncated, out of range for column 'b' at row 2
Warning 1265 Data truncated for column 'c' at row 2
Warning 1264 Data truncated, out of range for column 'a' at row 3
Warning 1264 Data truncated, out of range for column 'b' at row 3
Warning 1265 Data truncated for column 'c' at row 3
alter table t1 modify c char(4);
Warnings:
Warning 1264 Data truncated for column 'c' at row 1
Warning 1264 Data truncated for column 'c' at row 2
Warning 1265 Data truncated for column 'c' at row 1
Warning 1265 Data truncated for column 'c' at row 2
alter table t1 add d char(2);
update t1 set a=NULL where a=10;
Warnings:
Warning 1262 Data truncated, NULL supplied to NOT NULL column 'a' at row 2
Warning 1263 Data truncated, NULL supplied to NOT NULL column 'a' at row 2
update t1 set c='mysql ab' where c='test';
Warnings:
Warning 1264 Data truncated for column 'c' at row 4
Warning 1265 Data truncated for column 'c' at row 4
update t1 set d=c;
Warnings:
Warning 1264 Data truncated for column 'd' at row 1
Warning 1264 Data truncated for column 'd' at row 2
Warning 1264 Data truncated for column 'd' at row 3
Warning 1264 Data truncated for column 'd' at row 4
Warning 1265 Data truncated for column 'd' at row 1
Warning 1265 Data truncated for column 'd' at row 2
Warning 1265 Data truncated for column 'd' at row 3
Warning 1265 Data truncated for column 'd' at row 4
create table t2(a tinyint NOT NULL, b char(3));
insert into t2 select b,c from t1;
Warnings:
Warning 1264 Data truncated for column 'b' at row 1
Warning 1264 Data truncated for column 'b' at row 2
Warning 1264 Data truncated for column 'b' at row 3
Warning 1262 Data truncated, NULL supplied to NOT NULL column 'a' at row 4
Warning 1264 Data truncated for column 'b' at row 4
Warning 1265 Data truncated for column 'b' at row 1
Warning 1265 Data truncated for column 'b' at row 2
Warning 1265 Data truncated for column 'b' at row 3
Warning 1263 Data truncated, NULL supplied to NOT NULL column 'a' at row 4
Warning 1265 Data truncated for column 'b' at row 4
insert into t2(b) values('mysqlab');
Warnings:
Warning 1264 Data truncated for column 'b' at row 1
Warning 1265 Data truncated for column 'b' at row 1
set sql_warnings=1;
insert into t2(b) values('mysqlab');
Warnings:
Warning 1264 Data truncated for column 'b' at row 1
Warning 1265 Data truncated for column 'b' at row 1
set sql_warnings=0;
drop table t1, t2;
create table t1(a char(10));
@ -102,34 +102,34 @@ alter table t1 add b char;
set max_error_count=10;
update t1 set b=a;
Warnings:
Warning 1264 Data truncated for column 'b' at row 1
Warning 1264 Data truncated for column 'b' at row 2
Warning 1264 Data truncated for column 'b' at row 3
Warning 1264 Data truncated for column 'b' at row 4
Warning 1264 Data truncated for column 'b' at row 5
Warning 1264 Data truncated for column 'b' at row 6
Warning 1264 Data truncated for column 'b' at row 7
Warning 1264 Data truncated for column 'b' at row 8
Warning 1264 Data truncated for column 'b' at row 9
Warning 1264 Data truncated for column 'b' at row 10
Warning 1265 Data truncated for column 'b' at row 1
Warning 1265 Data truncated for column 'b' at row 2
Warning 1265 Data truncated for column 'b' at row 3
Warning 1265 Data truncated for column 'b' at row 4
Warning 1265 Data truncated for column 'b' at row 5
Warning 1265 Data truncated for column 'b' at row 6
Warning 1265 Data truncated for column 'b' at row 7
Warning 1265 Data truncated for column 'b' at row 8
Warning 1265 Data truncated for column 'b' at row 9
Warning 1265 Data truncated for column 'b' at row 10
select @@warning_count;
@@warning_count
50
drop table t1;
create table t1 (id int) engine=isam;
Warnings:
Warning 1265 Using storage engine MyISAM for table 't1'
Warning 1266 Using storage engine MyISAM for table 't1'
alter table t1 engine=isam;
Warnings:
Warning 1265 Using storage engine MyISAM for table 't1'
Warning 1266 Using storage engine MyISAM for table 't1'
drop table t1;
create table t1 (id int) type=heap;
Warnings:
Warning 1286 'TYPE=storage_engine' is deprecated. Use 'ENGINE=storage_engine' instead.
Warning 1287 'TYPE=storage_engine' is deprecated. Use 'ENGINE=storage_engine' instead.
alter table t1 type=myisam;
Warnings:
Warning 1286 'TYPE=storage_engine' is deprecated. Use 'ENGINE=storage_engine' instead.
Warning 1287 'TYPE=storage_engine' is deprecated. Use 'ENGINE=storage_engine' instead.
drop table t1;
set table_type=MYISAM;
Warnings:
Warning 1286 'table_type' is deprecated. Use 'storage_engine' instead.
Warning 1287 'table_type' is deprecated. Use 'storage_engine' instead.

View file

@ -63,14 +63,14 @@ CREATE TABLE t1 SELECT
SHOW CREATE TABLE t1;
DROP TABLE t1;
--error 1266
--error 1267
SELECT CASE
WHEN 1
THEN _latin1'a' COLLATE latin1_danish_ci
ELSE _latin1'a' COLLATE latin1_swedish_ci
END;
--error 1269
--error 1270
SELECT CASE _latin1'a' COLLATE latin1_general_ci
WHEN _latin1'a' COLLATE latin1_danish_ci THEN 1
WHEN _latin1'a' COLLATE latin1_swedish_ci THEN 2
@ -93,9 +93,9 @@ CASE _latin1'a' WHEN _latin1'A' COLLATE latin1_bin THEN '1' ELSE 2 END
#
# Check COALESCE argument types aggregation
--error 1266
--error 1267
CREATE TABLE t1 SELECT COALESCE(_latin1'a',_latin2'a');
--error 1266
--error 1267
CREATE TABLE t1 SELECT COALESCE('a' COLLATE latin1_swedish_ci,'b' COLLATE latin1_bin);
CREATE TABLE t1 SELECT
COALESCE(1), COALESCE(1.0),COALESCE('a'),

View file

@ -74,7 +74,7 @@ create table `` (a int);
drop table if exists ``;
--error 1166
create table t1 (`` int);
--error 1279
--error 1280
create table t1 (i int, index `` (i));
#
@ -157,7 +157,7 @@ SELECT @@storage_engine;
CREATE TABLE t1 (a int not null);
show create table t1;
drop table t1;
--error 1285
--error 1286
SET SESSION storage_engine="gemini";
SELECT @@storage_engine;
CREATE TABLE t1 (a int not null);
@ -277,7 +277,7 @@ SELECT @@storage_engine;
CREATE TABLE t1 (a int not null);
show create table t1;
drop table t1;
--error 1285
--error 1286
SET SESSION storage_engine="gemini";
SELECT @@storage_engine;
CREATE TABLE t1 (a int not null);

View file

@ -7,12 +7,12 @@ CREATE TABLE t1 (
latin1_f CHAR(32) CHARACTER SET latin1 NOT NULL
);
--error 1252
--error 1253
CREATE TABLE t2 (
latin1_f CHAR(32) CHARACTER SET latin1 COLLATE koi8r_general_ci NOT NULL
);
--error 1272
--error 1273
CREATE TABLE t2 (
latin1_f CHAR(32) CHARACTER SET latin1 COLLATE some_non_existing_col NOT NULL
);
@ -66,7 +66,7 @@ SELECT latin1_f FROM t1 ORDER BY latin1_f COLLATE latin1_swedish_ci;
SELECT latin1_f FROM t1 ORDER BY latin1_f COLLATE latin1_german2_ci;
SELECT latin1_f FROM t1 ORDER BY latin1_f COLLATE latin1_general_ci;
SELECT latin1_f FROM t1 ORDER BY latin1_f COLLATE latin1_bin;
--error 1252
--error 1253
SELECT latin1_f FROM t1 ORDER BY latin1_f COLLATE koi8r_general_ci;
--SELECT latin1_f COLLATE koi8r FROM t1 ;
@ -76,7 +76,7 @@ SELECT latin1_f COLLATE latin1_swedish_ci AS latin1_f_as FROM t1 ORDER BY latin1
SELECT latin1_f COLLATE latin1_german2_ci AS latin1_f_as FROM t1 ORDER BY latin1_f_as;
SELECT latin1_f COLLATE latin1_general_ci AS latin1_f_as FROM t1 ORDER BY latin1_f_as;
SELECT latin1_f COLLATE latin1_bin AS latin1_f_as FROM t1 ORDER BY latin1_f_as;
--error 1252
--error 1253
SELECT latin1_f COLLATE koi8r_general_ci AS latin1_f_as FROM t1 ORDER BY latin1_f_as;
@ -87,7 +87,7 @@ SELECT latin1_f,count(*) FROM t1 GROUP BY latin1_f COLLATE latin1_swedish_ci;
SELECT latin1_f,count(*) FROM t1 GROUP BY latin1_f COLLATE latin1_german2_ci;
SELECT latin1_f,count(*) FROM t1 GROUP BY latin1_f COLLATE latin1_general_ci;
SELECT latin1_f,count(*) FROM t1 GROUP BY latin1_f COLLATE latin1_bin;
--error 1252
--error 1253
SELECT latin1_f,count(*) FROM t1 GROUP BY latin1_f COLLATE koi8r_general_ci;
@ -98,7 +98,7 @@ SELECT DISTINCT latin1_f COLLATE latin1_swedish_ci FROM t1;
SELECT DISTINCT latin1_f COLLATE latin1_german2_ci FROM t1;
SELECT DISTINCT latin1_f COLLATE latin1_general_ci FROM t1;
SELECT DISTINCT latin1_f COLLATE latin1_bin FROM t1;
--error 1272
--error 1273
SELECT DISTINCT latin1_f COLLATE koi8r FROM t1;
@ -153,7 +153,7 @@ DROP TABLE t1;
CREATE TABLE t1
(s1 CHAR(5) COLLATE latin1_german1_ci,
s2 CHAR(5) COLLATE latin1_swedish_ci);
--error 1266
--error 1267
SELECT * FROM t1 WHERE s1 = s2;
DROP TABLE t1;

View file

@ -1,13 +1,78 @@
-- source include/have_tis620.inc
#
# Tests with the big5 character set
#
--disable_warnings
drop table if exists t1;
--enable_warnings
#
# Bug 1552: tis620 <-> unicode conversion crashed
# Check tis620 -> utf8 -> tis620 round trip conversion
#
SET @pl0= _tis620 0x000102030405060708090A0B0C0D0E0F;
SET @pl1= _tis620 0x101112131415161718191A1B1C1D1E1F;
SET @pl2= _tis620 0x202122232425262728292A2B2C2D2E2F;
SET @pl3= _tis620 0x303132333435363738393A3B3C3D3E3F;
SET @pl4= _tis620 0x404142434445464748494A4B4C4D4E4F;
SET @pl5= _tis620 0x505152535455565758595A5B5C5D5E5F;
SET @pl6= _tis620 0x606162636465666768696A6B6C6D6E6F;
SET @pl7= _tis620 0x707172737475767778797A7B7C7D7E7F;
SET @pl8= _tis620 0x808182838485868788898A8B8C8D8E8F;
SET @pl9= _tis620 0x909192939495969798999A9B9C9D9E9F;
SET @plA= _tis620 0xA0A1A2A3A4A5A6A7A8A9AAABACADAEAF;
SET @plB= _tis620 0xB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBF;
SET @plC= _tis620 0xC0C1C2C3C4C5C6C7C8C9CACBCCCDCECF;
SET @plD= _tis620 0xD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDF;
SET @plE= _tis620 0xE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEF;
SET @plF= _tis620 0xF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF;
SELECT hex(@u0:=convert(@pl0 using utf8));
SELECT hex(@u1:=convert(@pl1 using utf8));
SELECT hex(@u2:=convert(@pl2 using utf8));
SELECT hex(@u3:=convert(@pl3 using utf8));
SELECT hex(@u4:=convert(@pl4 using utf8));
SELECT hex(@u5:=convert(@pl5 using utf8));
SELECT hex(@u6:=convert(@pl6 using utf8));
SELECT hex(@u7:=convert(@pl7 using utf8));
SELECT hex(@u8:=convert(@pl8 using utf8));
SELECT hex(@u9:=convert(@pl9 using utf8));
SELECT hex(@uA:=convert(@plA using utf8));
SELECT hex(@uB:=convert(@plB using utf8));
SELECT hex(@uC:=convert(@plC using utf8));
SELECT hex(@uD:=convert(@plD using utf8));
SELECT hex(@uE:=convert(@plE using utf8));
SELECT hex(@uF:=convert(@plF using utf8));
SELECT hex(convert(@u0 USING tis620));
SELECT hex(convert(@u1 USING tis620));
SELECT hex(convert(@u2 USING tis620));
SELECT hex(convert(@u3 USING tis620));
SELECT hex(convert(@u4 USING tis620));
SELECT hex(convert(@u5 USING tis620));
SELECT hex(convert(@u6 USING tis620));
SELECT hex(convert(@u7 USING tis620));
SELECT hex(convert(@u8 USING tis620));
SELECT hex(convert(@u9 USING tis620));
SELECT hex(convert(@uA USING tis620));
SELECT hex(convert(@uB USING tis620));
SELECT hex(convert(@uC USING tis620));
SELECT hex(convert(@uD USING tis620));
SELECT hex(convert(@uE USING tis620));
SELECT hex(convert(@uF USING tis620));
SET NAMES tis620;
CREATE TABLE t1 (
recid int(11) NOT NULL auto_increment,
dyninfo text,
PRIMARY KEY (recid)
) ENGINE=MyISAM;
show create table t1;
INSERT INTO t1 VALUES (1,'color=\"STB,NPG\"\r\nengine=\"J30A13\"\r\nframe=\"MRHCG1640YP4\"\r\ngrade=\"V6\"\r\nmodel=\"ACCORD\"\r\nmodelcode=\"CG164YEN\"\r\ntype=\"VT6\"\r\n');
INSERT INTO t1 VALUES (2,'color=\"HTM,NPG,DEG,RGS\"\r\nengine=\"F23A5YP1\"\r\nframe=\"MRHCF8640YP3\"\r\ngrade=\"EXi AT\"\r\nmodel=\"ACCORD\"\r\nmodelcode=\"CF864YE\"\r\ntype=\"EXA\"\r\n');

View file

@ -1,64 +0,0 @@
-- source include/have_tis620.inc
#
# Tests with the big5 character set
#
--disable_warnings
drop table if exists t1;
--enable_warnings
#
# Bug 1552: tis620 <-> unicode conversion crashed
# Check tis620 -> utf8 -> tis620 round trip conversion
#
SET @pl0= _tis620 0x000102030405060708090A0B0C0D0E0F;
SET @pl1= _tis620 0x101112131415161718191A1B1C1D1E1F;
SET @pl2= _tis620 0x202122232425262728292A2B2C2D2E2F;
SET @pl3= _tis620 0x303132333435363738393A3B3C3D3E3F;
SET @pl4= _tis620 0x404142434445464748494A4B4C4D4E4F;
SET @pl5= _tis620 0x505152535455565758595A5B5C5D5E5F;
SET @pl6= _tis620 0x606162636465666768696A6B6C6D6E6F;
SET @pl7= _tis620 0x707172737475767778797A7B7C7D7E7F;
SET @pl8= _tis620 0x808182838485868788898A8B8C8D8E8F;
SET @pl9= _tis620 0x909192939495969798999A9B9C9D9E9F;
SET @plA= _tis620 0xA0A1A2A3A4A5A6A7A8A9AAABACADAEAF;
SET @plB= _tis620 0xB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBF;
SET @plC= _tis620 0xC0C1C2C3C4C5C6C7C8C9CACBCCCDCECF;
SET @plD= _tis620 0xD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDF;
SET @plE= _tis620 0xE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEF;
SET @plF= _tis620 0xF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF;
SELECT hex(@u0:=convert(@pl0 using utf8));
SELECT hex(@u1:=convert(@pl1 using utf8));
SELECT hex(@u2:=convert(@pl2 using utf8));
SELECT hex(@u3:=convert(@pl3 using utf8));
SELECT hex(@u4:=convert(@pl4 using utf8));
SELECT hex(@u5:=convert(@pl5 using utf8));
SELECT hex(@u6:=convert(@pl6 using utf8));
SELECT hex(@u7:=convert(@pl7 using utf8));
SELECT hex(@u8:=convert(@pl8 using utf8));
SELECT hex(@u9:=convert(@pl9 using utf8));
SELECT hex(@uA:=convert(@plA using utf8));
SELECT hex(@uB:=convert(@plB using utf8));
SELECT hex(@uC:=convert(@plC using utf8));
SELECT hex(@uD:=convert(@plD using utf8));
SELECT hex(@uE:=convert(@plE using utf8));
SELECT hex(@uF:=convert(@plF using utf8));
SELECT hex(convert(@u0 USING tis620));
SELECT hex(convert(@u1 USING tis620));
SELECT hex(convert(@u2 USING tis620));
SELECT hex(convert(@u3 USING tis620));
SELECT hex(convert(@u4 USING tis620));
SELECT hex(convert(@u5 USING tis620));
SELECT hex(convert(@u6 USING tis620));
SELECT hex(convert(@u7 USING tis620));
SELECT hex(convert(@u8 USING tis620));
SELECT hex(convert(@u9 USING tis620));
SELECT hex(convert(@uA USING tis620));
SELECT hex(convert(@uB USING tis620));
SELECT hex(convert(@uC USING tis620));
SELECT hex(convert(@uD USING tis620));
SELECT hex(convert(@uE USING tis620));
SELECT hex(convert(@uF USING tis620));

View file

@ -84,7 +84,7 @@ insert into t2 values (1, 21),(2, 12),(3, 23);
select * from t11;
select * from t12;
select * from t2;
-- error 1241
-- error 1242
delete t11.*, t12.* from t11,t12 where t11.a = t12.a and t11.b <> (select b from t2 where t11.a < t2.a);
select * from t11;
select * from t12;
@ -92,7 +92,7 @@ delete ignore t11.*, t12.* from t11,t12 where t11.a = t12.a and t11.b <> (select
select * from t11;
select * from t12;
insert into t11 values (2, 12);
-- error 1241
-- error 1242
delete from t11 where t11.b <> (select b from t2 where t11.a < t2.a);
select * from t11;
delete ignore from t11 where t11.b <> (select b from t2 where t11.a < t2.a);

View file

@ -116,7 +116,7 @@ select mail_id, if(folder.f_description!='', folder.f_description, folder.f_nam
#
create table t1 (a int);
insert into t1 values (1),(2),(3);
-- error 1287
-- error 1288
update (select * from t1) as t1 set a = 5;
-- error 1064
delete from (select * from t1);
@ -151,13 +151,13 @@ CREATE TABLE `t1` (
INSERT INTO `t1` (N, M) VALUES (1, 0),(1, 0),(1, 0),(2, 0),(2, 0),(3, 0);
UPDATE `t1` AS P1 INNER JOIN (SELECT N FROM `t1` GROUP BY N HAVING Count(M) > 1) AS P2 ON P1.N = P2.N SET P1.M = 2;
select * from t1;
-- error 1287
-- error 1288
UPDATE `t1` AS P1 INNER JOIN (SELECT N FROM `t1` GROUP BY N HAVING Count(M) > 1) AS P2 ON P1.N = P2.N SET P1.M = 2, P2.N = 2;
-- error 1054
UPDATE `t1` AS P1 INNER JOIN (SELECT aaaa FROM `t1` GROUP BY N HAVING Count(M) > 1) AS P2 ON P1.N = P2.N SET P1.M = 2;
delete P1.* from `t1` AS P1 INNER JOIN (SELECT N FROM `t1` GROUP BY N HAVING Count(M) > 1) AS P2 ON P1.N = P2.N;
select * from t1;
-- error 1287
-- error 1288
delete P1.*,P2.* from `t1` AS P1 INNER JOIN (SELECT N FROM `t1` GROUP BY N HAVING Count(M) > 1) AS P2 ON P1.N = P2.N;
-- error 1054
delete P1.* from `t1` AS P1 INNER JOIN (SELECT aaa FROM `t1` GROUP BY N HAVING Count(M) > 1) AS P2 ON P1.N = P2.N;

View file

@ -145,9 +145,9 @@ select * from t2 having MATCH inhalt AGAINST ('foobar');
# check of fulltext errors
#
--error 1282
--error 1283
CREATE TABLE t3 (t int(11),i text,fulltext tix (t,i));
--error 1282
--error 1283
CREATE TABLE t3 (t int(11),i text,
j varchar(200) CHARACTER SET latin2,
fulltext tix (i,j));

View file

@ -61,11 +61,11 @@ c char(1) character set latin1 collate latin1_danish_ci
);
insert into t1 values ('A','B','C');
insert into t1 values ('a','c','c');
--error 1266
--error 1267
select * from t1 where a in (b);
--error 1269
select * from t1 where a in (b,c);
--error 1270
select * from t1 where a in (b,c);
--error 1271
select * from t1 where 'a' in (a,b,c);
select * from t1 where 'a' in (a);
select * from t1 where a in ('a');

View file

@ -177,23 +177,22 @@ select 1=_latin1'1';
select _latin1'1'=1;
select _latin2'1'=1;
select 1=_latin2'1';
--error 1266
--error 1267
select _latin1'1'=_latin2'1';
select row('a','b','c') = row('a','b','c');
select row('A','b','c') = row('a','b','c');
select row('A' COLLATE latin1_bin,'b','c') = row('a','b','c');
select row('A','b','c') = row('a' COLLATE latin1_bin,'b','c');
--error 1266
--error 1267
select row('A' COLLATE latin1_general_ci,'b','c') = row('a' COLLATE latin1_bin,'b','c');
--error 1266
--error 1267
select concat(_latin1'a',_latin2'a');
--error 1269
select concat(_latin1'a',_latin2'a',_latin5'a');
--error 1270
select concat(_latin1'a',_latin2'a',_latin5'a');
--error 1271
select concat(_latin1'a',_latin2'a',_latin5'a',_latin7'a');
#
# Test FIELD() and collations
#
@ -201,65 +200,64 @@ select FIELD('b','A','B');
select FIELD('B','A','B');
select FIELD('b' COLLATE latin1_bin,'A','B');
select FIELD('b','A' COLLATE latin1_bin,'B');
--error 1269
--error 1270
select FIELD(_latin2'b','A','B');
--error 1269
--error 1270
select FIELD('b',_latin2'A','B');
select FIELD('b',_latin2'A','B',1);
select POSITION(_latin1'B' IN _latin1'abcd');
select POSITION(_latin1'B' IN _latin1'abcd' COLLATE latin1_bin);
select POSITION(_latin1'B' COLLATE latin1_bin IN _latin1'abcd');
--error 1266
--error 1267
select POSITION(_latin1'B' COLLATE latin1_general_ci IN _latin1'abcd' COLLATE latin1_bin);
--error 1266
--error 1267
select POSITION(_latin1'B' IN _latin2'abcd');
select FIND_IN_SET(_latin1'B',_latin1'a,b,c,d');
--fix this:
--select FIND_IN_SET(_latin1'B',_latin1'a,b,c,d' COLLATE latin1_bin);
--select FIND_IN_SET(_latin1'B' COLLATE latin1_bin,_latin1'a,b,c,d');
--error 1266
--error 1267
select FIND_IN_SET(_latin1'B' COLLATE latin1_general_ci,_latin1'a,b,c,d' COLLATE latin1_bin);
--error 1266
--error 1267
select FIND_IN_SET(_latin1'B',_latin2'a,b,c,d');
select SUBSTRING_INDEX(_latin1'abcdabcdabcd',_latin1'd',2);
--fix this:
--select SUBSTRING_INDEX(_latin1'abcdabcdabcd' COLLATE latin1_bin,_latin1'd',2);
--select SUBSTRING_INDEX(_latin1'abcdabcdabcd',_latin1'd' COLLATE latin1_bin,2);
--error 1266
--error 1267
select SUBSTRING_INDEX(_latin1'abcdabcdabcd',_latin2'd',2);
--error 1266
--error 1267
select SUBSTRING_INDEX(_latin1'abcdabcdabcd' COLLATE latin1_general_ci,_latin1'd' COLLATE latin1_bin,2);
select _latin1'B' between _latin1'a' and _latin1'c';
select _latin1'B' collate latin1_bin between _latin1'a' and _latin1'c';
select _latin1'B' between _latin1'a' collate latin1_bin and _latin1'c';
select _latin1'B' between _latin1'a' and _latin1'c' collate latin1_bin;
--error 1269
--error 1270
select _latin2'B' between _latin1'a' and _latin1'b';
--error 1269
--error 1270
select _latin1'B' between _latin2'a' and _latin1'b';
--error 1269
--error 1270
select _latin1'B' between _latin1'a' and _latin2'b';
--error 1269
--error 1270
select _latin1'B' collate latin1_general_ci between _latin1'a' collate latin1_bin and _latin1'b';
select _latin1'B' in (_latin1'a',_latin1'b');
select _latin1'B' collate latin1_bin in (_latin1'a',_latin1'b');
select _latin1'B' in (_latin1'a' collate latin1_bin,_latin1'b');
select _latin1'B' in (_latin1'a',_latin1'b' collate latin1_bin);
--error 1269
--error 1270
select _latin2'B' in (_latin1'a',_latin1'b');
--error 1269
--error 1270
select _latin1'B' in (_latin2'a',_latin1'b');
--error 1269
--error 1270
select _latin1'B' in (_latin1'a',_latin2'b');
--error 1269
--error 1270
select _latin1'B' COLLATE latin1_general_ci in (_latin1'a' COLLATE latin1_bin,_latin1'b');
--error 1269
--error 1270
select _latin1'B' COLLATE latin1_general_ci in (_latin1'a',_latin1'b' COLLATE latin1_bin);
select collation(bin(130)), coercibility(bin(130));
@ -345,7 +343,7 @@ select SUBSTR('abcdefg',1,-1) FROM DUAL;
# when an error on a lower level (in concat) has accured:
#
create table t7 (s1 char);
--error 1266
--error 1267
select * from t7
where concat(s1 collate latin1_general_ci,s1 collate latin1_swedish_ci) = 'AA';
drop table t7;

View file

@ -51,9 +51,9 @@ explain extended select _koi8r'a' = _koi8r'A' COLLATE koi8r_general_ci;
select _koi8r'a' = _koi8r'A' COLLATE koi8r_bin;
select _koi8r'a' COLLATE koi8r_general_ci = _koi8r'A';
select _koi8r'a' COLLATE koi8r_bin = _koi8r'A';
--error 1266
--error 1267
select _koi8r'a' COLLATE koi8r_bin = _koi8r'A' COLLATE koi8r_general_ci;
--error 1266
--error 1267
select _koi8r'a' = _latin1'A';
select strcmp(_koi8r'a', _koi8r'A');
@ -61,9 +61,9 @@ select strcmp(_koi8r'a', _koi8r'A' COLLATE koi8r_general_ci);
select strcmp(_koi8r'a', _koi8r'A' COLLATE koi8r_bin);
select strcmp(_koi8r'a' COLLATE koi8r_general_ci, _koi8r'A');
select strcmp(_koi8r'a' COLLATE koi8r_bin, _koi8r'A');
--error 1266
--error 1267
select strcmp(_koi8r'a' COLLATE koi8r_general_ci, _koi8r'A' COLLATE koi8r_bin);
--error 1266
--error 1267
select strcmp(_koi8r'a', _latin1'A');
select _koi8r'a' LIKE _koi8r'A';
@ -71,9 +71,9 @@ select _koi8r'a' LIKE _koi8r'A' COLLATE koi8r_general_ci;
select _koi8r'a' LIKE _koi8r'A' COLLATE koi8r_bin;
select _koi8r'a' COLLATE koi8r_general_ci LIKE _koi8r'A';
select _koi8r'a' COLLATE koi8r_bin LIKE _koi8r'A';
--error 1266
--error 1267
select _koi8r'a' COLLATE koi8r_general_ci LIKE _koi8r'A' COLLATE koi8r_bin;
--error 1266
--error 1267
select _koi8r'a' LIKE _latin1'A';
#

View file

@ -110,14 +110,14 @@ show grants for drop_user@localhost;
revoke all privileges, grant from drop_user@localhost;
show grants for drop_user@localhost;
drop user drop_user@localhost;
--error 1268
--error 1269
revoke all privileges, grant from drop_user@localhost;
grant select(a) on test.t1 to drop_user1@localhost;
grant select on test.t1 to drop_user2@localhost;
grant select on test.* to drop_user3@localhost;
grant select on *.* to drop_user4@localhost;
--error 1267
--error 1268
drop user drop_user1@localhost, drop_user2@localhost, drop_user3@localhost,
drop_user4@localhost;
revoke all privileges, grant from drop_user1@localhost, drop_user2@localhost,

View file

@ -936,8 +936,8 @@ drop table t1;
# Test dictionary handling with spaceand quoting
#
CREATE TABLE t1 (`id 1` INT NOT NULL, PRIMARY KEY (`id 1`)) TYPE=INNODB;
CREATE TABLE t2 (id INT PRIMARY KEY, t1_id INT, INDEX par_ind (t1_id), FOREIGN KEY (`t1_id`) REFERENCES `t1`(`id 1`) ON DELETE CASCADE ) TYPE=INNODB;
CREATE TABLE t1 (`id 1` INT NOT NULL, PRIMARY KEY (`id 1`)) ENGINE=INNODB;
CREATE TABLE t2 (id INT PRIMARY KEY, t1_id INT, INDEX par_ind (t1_id), FOREIGN KEY (`t1_id`) REFERENCES `t1`(`id 1`) ON DELETE CASCADE ) ENGINE=INNODB;
#show create table t2;
drop table t2,t1;

View file

@ -41,7 +41,7 @@ SET @@global.key_buffer_size=@save_key_buffer;
--error 1064
SELECT @@default.key_buffer_size;
--error 1271
--error 1272
SELECT @@skr.storage_engine="test";
select @@keycache1.key_cache_block_size;
@ -99,7 +99,7 @@ explain select a from t2;
select a from t2;
# Test some error conditions
--error 1283
--error 1284
cache index t1 in unknown_key_cache;
cache index t1 key (unknown_key) in keycache1;

View file

@ -422,6 +422,18 @@ insert into t1 values('807780', '472', '162');
select * from t1 where a='807780' and b='477' and c='165';
drop table t1;
#
# Verify blob handling
#
create table t1 (a blob);
insert into t1 values('a '),('a');
select concat(a,'.') from t1 where a='a';
select concat(a,'.') from t1 where a='a ';
alter table t1 add key(a(2));
select concat(a,'.') from t1 where a='a';
select concat(a,'.') from t1 where a='a ';
drop table t1;
#
# Test text and unique
#

View file

@ -15,7 +15,7 @@ select row('b',1.5,3) IN (row(3,NULL,3), row('a',1.5,3), row(1,3,3));
select row('b',1.5,3) IN (row('b',NULL,3), row('a',1.5,3), row(1,3,3));
select row('b',1.5,3) IN (row('b',NULL,4), row('a',1.5,3), row(1,3,3));
select (1,2,(3,4)) IN ((3,2,(3,4)), (1,2,(3,4)));
-- error 1240
-- error 1241
select row(1,2,row(3,4)) IN (row(3,2,row(3,4)), row(1,2,4));
select row(1,2,row(3,4)) IN (row(3,2,row(3,4)), row(1,2,row(3,NULL)));
explain extended select row(1,2,row(3,4)) IN (row(3,2,row(3,4)), row(1,2,row(3,NULL)));
@ -37,12 +37,12 @@ SELECT ROW(NULL,2,3)=ROW(NULL,2,3);
SELECT ROW(NULL,2,3)<=>ROW(NULL,2,3);
SELECT ROW(1,2,ROW(3,4,5))=ROW(1,2,ROW(3,4,5));
SELECT ROW('test',2,3.33)=ROW('test',2,3.33);
-- error 1240
-- error 1241
SELECT ROW('test',2,3.33)=ROW('test',2,3.33,4);
SELECT ROW('test',2,ROW(3,33))=ROW('test',2,ROW(3,33));
SELECT ROW('test',2,ROW(3,33))=ROW('test',2,ROW(3,3));
SELECT ROW('test',2,ROW(3,33))=ROW('test',2,ROW(3,NULL));
-- error 1240
-- error 1241
SELECT ROW('test',2,ROW(3,33))=ROW('test',2,4);
create table t1 ( a int, b int, c int);
@ -56,15 +56,15 @@ select ROW(a,b,c) IN(row(1,2,3), row(3,2,1)) from t1;
select ROW(1,2,3) IN(row(a,b,c), row(1,2,3)) from t1;
drop table t1;
-- error 1240
-- error 1241
select ROW(1,1);
create table t1 (i int);
-- error 1240
-- error 1241
select 1 from t1 where ROW(1,1);
-- error 1240
-- error 1241
select count(*) from t1 order by ROW(1,1);
-- error 1240
-- error 1241
select count(*) from t1 having (1,1) order by i;
drop table t1;

View file

@ -67,15 +67,15 @@ real_sleep 4
show slave status;
#testing various error conditions
--error 1276
--error 1277
start slave until master_log_file='master-bin', master_log_pos=561;
--error 1276
--error 1277
start slave until master_log_file='master-bin.000001', master_log_pos=561, relay_log_pos=12;
--error 1276
--error 1277
start slave until master_log_file='master-bin.000001';
--error 1276
--error 1277
start slave until relay_log_file='slave-relay-bin.000002';
--error 1276
--error 1277
start slave until relay_log_file='slave-relay-bin.000002', master_log_pos=561;
start slave sql_thread;

View file

@ -9,12 +9,12 @@ SELECT (SELECT 1) UNION SELECT (SELECT 2);
explain extended SELECT (SELECT 1) UNION SELECT (SELECT 2);
SELECT (SELECT (SELECT 0 UNION SELECT 0));
explain extended SELECT (SELECT (SELECT 0 UNION SELECT 0));
-- error 1246
-- error 1247
SELECT (SELECT 1 FROM (SELECT 1) as b HAVING a=1) as a;
-- error 1246
-- error 1247
SELECT (SELECT 1 FROM (SELECT 1) as b HAVING b=1) as a,(SELECT 1 FROM (SELECT 1) as c HAVING a=1) as b;
SELECT (SELECT 1),MAX(1) FROM (SELECT 1) as a;
-- error 1246
-- error 1247
SELECT (SELECT a) as a;
EXPLAIN EXTENDED SELECT 1 FROM (SELECT 1 as a) as b HAVING (SELECT a)=1;
SELECT 1 FROM (SELECT 1 as a) as b HAVING (SELECT a)=1;
@ -24,7 +24,7 @@ SELECT 1 as a FROM (SELECT 1) as b HAVING (SELECT a)=1;
-- error 1054
SELECT 1 FROM (SELECT (SELECT a) b) c;
SELECT * FROM (SELECT 1 as id) b WHERE id IN (SELECT * FROM (SELECT 1 as id) c ORDER BY id);
-- error 1240
-- error 1241
SELECT * FROM (SELECT 1) a WHERE 1 IN (SELECT 1,1);
SELECT 1 IN (SELECT 1);
SELECT 1 FROM (SELECT 1 as a) b WHERE 1 IN (SELECT (SELECT a));
@ -51,7 +51,7 @@ SELECT (SELECT 'b',2,'a') = ROW(1.5,2,'a');
SELECT (SELECT 1.5,2,'a') = ROW(1.5,'c','a');
SELECT (SELECT 1.5,'c','a') = ROW(1.5,2,'a');
-- error 1240
-- error 1241
SELECT (SELECT * FROM (SELECT 'test' a,'test' b) a);
SELECT 1 as a,(SELECT a+a) b,(SELECT b);
@ -63,7 +63,7 @@ create table t4 (a int not null, b int not null);
insert into t1 values (2);
insert into t2 values (1,7),(2,7);
insert into t4 values (4,8),(3,8),(5,9);
-- error 1246
-- error 1247
select (select a from t1 where t1.a = a1) as a2, (select b from t2 where t2.b=a2) as a1;
select (select a from t1 where t1.a=t2.a), a from t2;
select (select a from t1 where t1.a=t2.b), a from t2;
@ -103,9 +103,9 @@ select * from t3 where a >= any (select b from t2);
explain extended select * from t3 where a >= any (select b from t2);
select * from t3 where a >= all (select b from t2);
delete from t2 where a=100;
-- error 1240
-- error 1241
select * from t3 where a in (select a,b from t2);
-- error 1240
-- error 1241
select * from t3 where a in (select * from t2);
insert into t4 values (12,7),(1,7),(10,9),(9,6),(7,6),(3,9),(1,10);
-- empty set
@ -121,7 +121,7 @@ select (select a from t1 where t1.a=t2.a union select a from t5 where t5.a=t2.a)
insert into t5 values (2);
select (select a from t1 where t1.a=t2.a union select a from t5 where t5.a=t2.a), a from t2;
explain extended select (select a from t1 where t1.a=t2.a union select a from t5 where t5.a=t2.a), a from t2;
-- error 1241
-- error 1242
select (select a from t1 where t1.a=t2.a union all select a from t5 where t5.a=t2.a), a from t2;
create table t6 (patient_uq int, clinic_uq int, index i1 (clinic_uq));
create table t7( uq int primary key, name char(25));
@ -158,14 +158,14 @@ INSERT INTO t8 (pseudo,email) VALUES ('joce','test');
INSERT INTO t8 (pseudo,email) VALUES ('joce1','test1');
INSERT INTO t8 (pseudo,email) VALUES ('2joce1','2test1');
EXPLAIN EXTENDED SELECT pseudo,(SELECT email FROM t8 WHERE pseudo=(SELECT pseudo FROM t8 WHERE pseudo='joce')) FROM t8 WHERE pseudo=(SELECT pseudo FROM t8 WHERE pseudo='joce');
-- error 1240
-- error 1241
SELECT pseudo FROM t8 WHERE pseudo=(SELECT pseudo,email FROM
t8 WHERE pseudo='joce');
-- error 1240
-- error 1241
SELECT pseudo FROM t8 WHERE pseudo=(SELECT * FROM t8 WHERE
pseudo='joce');
SELECT pseudo FROM t8 WHERE pseudo=(SELECT pseudo FROM t8 WHERE pseudo='joce');
-- error 1241
-- error 1242
SELECT pseudo FROM t8 WHERE pseudo=(SELECT pseudo FROM t8 WHERE pseudo LIKE '%joce%');
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8;
@ -185,7 +185,7 @@ EXPLAIN EXTENDED SELECT (SELECT DISTINCT date FROM t1 WHERE date='2002-08-03');
SELECT DISTINCT date FROM t1 WHERE date='2002-08-03';
SELECT (SELECT DISTINCT date FROM t1 WHERE date='2002-08-03');
SELECT 1 FROM t1 WHERE 1=(SELECT 1 UNION SELECT 1) UNION ALL SELECT 1;
-- error 1241
-- error 1242
SELECT 1 FROM t1 WHERE 1=(SELECT 1 UNION ALL SELECT 1) UNION SELECT 1;
EXPLAIN EXTENDED SELECT 1 FROM t1 WHERE 1=(SELECT 1 UNION SELECT 1);
drop table t1;
@ -242,9 +242,9 @@ CREATE TABLE `t1` (
) ENGINE=MyISAM ROW_FORMAT=FIXED;
INSERT INTO t1 (numeropost,maxnumrep) VALUES (1,0),(2,1);
-- error 1241
-- error 1242
select numeropost as a FROM t1 GROUP BY (SELECT 1 FROM t1 HAVING a=1);
-- error 1241
-- error 1242
select numeropost as a FROM t1 ORDER BY (SELECT 1 FROM t1 HAVING a=1);
drop table t1;
@ -256,7 +256,7 @@ drop table t1;
#iftest
CREATE TABLE t1 (field char(1) NOT NULL DEFAULT 'b');
INSERT INTO t1 VALUES ();
-- error 1241
-- error 1242
SELECT field FROM t1 WHERE 1=(SELECT 1 UNION ALL SELECT 1 FROM (SELECT 1) a HAVING field='b');
drop table t1;
@ -269,13 +269,13 @@ CREATE TABLE `t1` (
UNIQUE KEY `numreponse` (`numreponse`),
KEY `pseudo` (`pseudo`,`numeropost`)
) ENGINE=MyISAM;
-- error 1246
-- error 1247
SELECT (SELECT numeropost FROM t1 HAVING numreponse=a),numreponse FROM (SELECT * FROM t1) as a;
-- error 1054
SELECT numreponse, (SELECT numeropost FROM t1 HAVING numreponse=a) FROM (SELECT * FROM t1) as a;
SELECT numreponse, (SELECT numeropost FROM t1 HAVING numreponse=1) FROM (SELECT * FROM t1) as a;
INSERT INTO t1 (numeropost,numreponse,pseudo) VALUES (1,1,'joce'),(1,2,'joce'),(1,3,'test');
-- error 1241
-- error 1242
EXPLAIN EXTENDED SELECT numreponse FROM t1 WHERE numeropost='1' AND numreponse=(SELECT 1 FROM t1 WHERE numeropost='1');
EXPLAIN EXTENDED SELECT MAX(numreponse) FROM t1 WHERE numeropost='1';
EXPLAIN EXTENDED SELECT numreponse FROM t1 WHERE numeropost='1' AND numreponse=(SELECT MAX(numreponse) FROM t1 WHERE numeropost='1');
@ -294,7 +294,7 @@ insert into t2 values (1, 21),(2, 22),(3, 23);
select * from t1;
-- error 1093
update t1 set b= (select b from t1);
-- error 1241
-- error 1242
update t1 set b= (select b from t2);
update t1 set b= (select b from t2 where t1.a = t2.a);
select * from t1;
@ -309,7 +309,7 @@ select * from t1;
select * from t1 where b = (select b from t2 where t1.a = t2.a);
-- error 1093
delete from t1 where b = (select b from t1);
-- error 1241
-- error 1242
delete from t1 where b = (select b from t2);
delete from t1 where b = (select b from t2 where t1.a = t2.a);
select * from t1;
@ -327,7 +327,7 @@ select * from t11;
select * from t12;
-- error 1093
delete t11.*, t12.* from t11,t12 where t11.a = t12.a and t11.b = (select b from t12 where t11.a = t12.a);
-- error 1241
-- error 1242
delete t11.*, t12.* from t11,t12 where t11.a = t12.a and t11.b = (select b from t2);
delete t11.*, t12.* from t11,t12 where t11.a = t12.a and t11.b = (select b from t2 where t11.a = t2.a);
select * from t11;
@ -342,7 +342,7 @@ insert into t2 values (1);
insert into t3 values (1),(2);
-- error 1093
INSERT INTO t1 (x) VALUES ((SELECT x FROM t1));
-- error 1241
-- error 1242
INSERT INTO t1 (x) VALUES ((SELECT b FROM t3));
INSERT INTO t1 (x) VALUES ((SELECT a FROM t2));
select * from t1;
@ -373,7 +373,7 @@ insert into t3 values (1),(2);
select * from t1;
-- error 1093
replace into t1 (x, y) VALUES ((SELECT x FROM t1), (SELECT a+1 FROM t2));
-- error 1241
-- error 1242
replace into t1 (x, y) VALUES ((SELECT a FROM t3), (SELECT a+1 FROM t2));
replace into t1 (x, y) VALUES ((SELECT a FROM t2), (SELECT a+1 FROM t2));
select * from t1;
@ -409,7 +409,7 @@ INSERT INTO t2 VALUES ((SELECT id FROM t2));
SELECT * FROM t2;
CREATE TABLE t1 (id int(11) default NULL, KEY id (id)) ENGINE=MyISAM CHARSET=latin1;
INSERT INTO t1 values (1),(1);
-- error 1241
-- error 1242
UPDATE t2 SET id=(SELECT * FROM t1);
drop table t2, t1;
@ -867,9 +867,9 @@ DROP TABLE t1, t2;
CREATE TABLE t1 (s1 CHAR(5) COLLATE latin1_german1_ci,
s2 CHAR(5) COLLATE latin1_swedish_ci);
INSERT INTO t1 VALUES ('z','?');
-- error 1266
-- error 1267
select * from t1 where s1 > (select max(s2) from t1);
-- error 1266
-- error 1267
select * from t1 where s1 > any (select max(s2) from t1);
drop table t1;
@ -887,7 +887,7 @@ drop table t1, t2;
# row union
#
create table t1 (s1 char(5));
-- error 1240
-- error 1241
select (select 'a','b' from t1 union select 'a','b' from t1) from t1;
insert into t1 values ('tttt');
select * from t1 where ('a','b')=(select 'a','b' from t1 union select 'a','b' from t1);
@ -952,7 +952,7 @@ CREATE TABLE t1 (id int(11) default NULL) ENGINE=MyISAM CHARSET=latin1;
INSERT INTO t1 VALUES (1),(5);
CREATE TABLE t2 (id int(11) default NULL) ENGINE=MyISAM CHARSET=latin1;
INSERT INTO t2 VALUES (2),(6);
-- error 1240
-- error 1241
select * from t1 where (1,2,6) in (select * from t2);
DROP TABLE t1,t2;
@ -962,7 +962,7 @@ DROP TABLE t1,t2;
create table t1 (s1 int);
insert into t1 values (1);
insert into t1 values (2);
-- error 1241
-- error 1242
set sort_buffer_size = (select s1 from t1);
do (select * from t1);
drop table t1;

View file

@ -67,7 +67,7 @@ INSERT INTO t1 VALUES (1),(2),(3);
INSERT INTO t3 VALUES (1,1),(2,2),(3,3);
INSERT INTO t2 VALUES (1,1),(2,2),(3,3);
SELECT distinct p1.processor_id, (SELECT y.yod_id FROM t1 p2, t2 y WHERE p2.processor_id = p1.processor_id and p2.processor_id = y.processor_id) FROM t1 p1;
drop table t1,t2,t3;
drop table t2,t1,t3;
#
# innodb locking

View file

@ -23,7 +23,7 @@ select 't1',b,count(*) from t1 group by b UNION select 't2',b,count(*) from t2 g
(select a,b from t1 limit 2) union all (select a,b from t2 order by a) limit 4;
(select a,b from t1 limit 2) union all (select a,b from t2 order by a limit 1);
(select a,b from t1 limit 2) union all (select a,b from t2 order by a limit 1) order by b desc;
--error 1249
--error 1250
(select a,b from t1 limit 2) union all (select a,b from t2 order by a limit 1) order by t1.b;
explain extended (select a,b from t1 limit 2) union all (select a,b from t2 order by a limit 1) order by b desc;
(select sql_calc_found_rows a,b from t1 limit 2) union all (select a,b from t2 order by a) limit 2;
@ -420,7 +420,7 @@ create table t1 select 1 union select -1;
select * from t1;
show create table t1;
drop table t1;
-- error 1266
-- error 1267
create table t1 select _latin1"test" union select _latin2"testt" ;
create table t1 select _latin2"test" union select _latin2"testt" ;
show create table t1;

View file

@ -84,7 +84,7 @@ select @a=_latin2'TEST' collate latin2_bin;
set @a=_latin2'test' collate latin2_general_ci;
select charset(@a),collation(@a),coercibility(@a);
select @a=_latin2'TEST';
--error 1266
--error 1267
select @a=_latin2'TEST' collate latin2_bin;
#
@ -97,5 +97,5 @@ select collation(@a:=_latin2'test' collate latin2_bin);
select coercibility(@a:=_latin2'test' collate latin2_bin);
select (@a:=_latin2'test' collate latin2_bin) = _latin2'TEST';
select charset(@a),collation(@a),coercibility(@a);
--error 1266
--error 1267
select (@a:=_latin2'test' collate latin2_bin) = _latin2'TEST' collate latin2_general_ci;

View file

@ -124,7 +124,7 @@ set big_tables="OFFF";
set unknown_variable=1;
--error 1232
set max_join_size="hello";
--error 1285
--error 1286
set storage_engine=UNKNOWN_TABLE_TYPE;
--error 1231
set storage_engine=INNODB, big_tables=2;
@ -135,7 +135,7 @@ set SESSION query_cache_size=10000;
set GLOBAL storage_engine=DEFAULT;
--error 1115
set character_set_client=UNKNOWN_CHARACTER_SET;
--error 1272
--error 1273
set collation_connection=UNKNOWN_COLLATION;
--error 1228
set global autocommit=1;
@ -285,4 +285,3 @@ select @@global.max_user_connections,@@local.max_join_size;
set @a=1, @b=2;
set @a=@b, @b=@a;
select @a, @b;

View file

@ -9,7 +9,7 @@
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with this library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
@ -184,12 +184,14 @@ int ha_key_cmp(register HA_KEYSEG *keyseg, register uchar *a,
break;
case HA_KEYTYPE_VARTEXT:
{
int a_length,b_length,pack_length;
int a_length,full_a_length,b_length,full_b_length,pack_length;
get_key_length(a_length,a);
get_key_pack_length(b_length,pack_length,b);
full_a_length= a_length;
full_b_length= b_length;
next_key_length=key_length-b_length-pack_length;
if (!(nextflag & (SEARCH_PREFIX | SEARCH_UPDATE)))
if ((nextflag & (SEARCH_FIND | SEARCH_UPDATE)) == SEARCH_FIND)
{
while (a_length && a[a_length-1] == ' ')
a_length--;
@ -202,8 +204,8 @@ int ha_key_cmp(register HA_KEYSEG *keyseg, register uchar *a,
(my_bool) ((nextflag & SEARCH_PREFIX) &&
next_key_length <= 0))))
return ((keyseg->flag & HA_REVERSE_SORT) ? -flag : flag);
a+=a_length;
b+=b_length;
a+= full_a_length;
b+= full_b_length;
break;
}
break;
@ -308,7 +310,7 @@ int ha_key_cmp(register HA_KEYSEG *keyseg, register uchar *a,
if (keyseg->flag & HA_REVERSE_SORT)
{
swap(uchar*,a,b);
swap(uchar*,a,b);
swap_flag=1; /* Remember swap of a & b */
end= a+ (int) (end-b);
}

View file

@ -38,7 +38,10 @@ int ha_heap::open(const char *name, int mode, uint test_if_locked)
HA_CREATE_INFO create_info;
bzero(&create_info, sizeof(create_info));
if (!create(name, table, &create_info))
{
file= heap_open(name, mode);
implicit_emptied= 1;
}
}
ref_length= sizeof(HEAP_PTR);
return (file ? 0 : 1);
@ -174,7 +177,6 @@ void ha_heap::info(uint flag)
index_file_length=info.index_length;
max_data_file_length= info.max_records* info.reclength;
delete_length= info.deleted * info.reclength;
implicit_emptied= info.implicit_emptied;
if (flag & HA_STATUS_AUTO)
auto_increment_value= info.auto_increment;
}

View file

@ -657,7 +657,7 @@ int ha_delete_table(enum db_type table_type, const char *path)
{
/* Ensure that table handler get path in lower case */
strmov(tmp_path, path);
casedn_str(tmp_path);
my_casedn_str(system_charset_info, tmp_path);
path= tmp_path;
}
int error=file->delete_table(path);
@ -1159,7 +1159,7 @@ int ha_create_table(const char *name, HA_CREATE_INFO *create_info,
{
/* Ensure that handler gets name in lower case */
strmov(name_buff, name);
casedn_str(name_buff);
my_casedn_str(system_charset_info, name_buff);
name= name_buff;
}

View file

@ -175,12 +175,13 @@ bool Item::eq(const Item *item, bool binary_cmp) const
!my_strcasecmp(system_charset_info,name,item->name);
}
bool Item_string::eq(const Item *item, bool binary_cmp) const
{
if (type() == item->type())
{
if (binary_cmp)
return !sortcmp(&str_value, &item->str_value, &my_charset_bin);
return !stringcmp(&str_value, &item->str_value);
return !sortcmp(&str_value, &item->str_value, collation.collation);
}
return 0;
@ -1823,7 +1824,7 @@ bool field_is_equal_to_item(Field *field,Item *item)
if (item->null_value)
return 1; // This must be true
field->val_str(&field_tmp,&field_tmp);
return !sortcmp(&field_tmp,item_result,&my_charset_bin);
return !stringcmp(&field_tmp,item_result);
}
if (res_type == INT_RESULT)
return 1; // Both where of type int

View file

@ -293,6 +293,17 @@ int Arg_comparator::set_compare_func(Item_bool_func2 *item, Item_result type)
my_coll_agg_error((*a)->collation, (*b)->collation, owner->func_name());
return 1;
}
if (my_binary_compare(cmp_collation.collation))
{
/*
We are using binary collation, change to compare byte by byte,
without removing end space
*/
if (func == &Arg_comparator::compare_string)
func= &Arg_comparator::compare_binary_string;
else if (func == &Arg_comparator::compare_e_string)
func= &Arg_comparator::compare_e_binary_string;
}
}
return 0;
}
@ -313,6 +324,39 @@ int Arg_comparator::compare_string()
return -1;
}
/*
Compare strings byte by byte. End spaces are also compared.
RETURN
< 0 *a < *b
0 *b == *b
> 0 *a > *b
*/
int Arg_comparator::compare_binary_string()
{
String *res1,*res2;
if ((res1= (*a)->val_str(&owner->tmp_value1)))
{
if ((res2= (*b)->val_str(&owner->tmp_value2)))
{
owner->null_value= 0;
uint res1_length= res1->length();
uint res2_length= res2->length();
int cmp= memcmp(res1->ptr(), res2->ptr(), min(res1_length,res2_length));
return cmp ? cmp : (int) (res1_length - res2_length);
}
}
owner->null_value= 1;
return -1;
}
/*
Compare strings, but take into account that NULL == NULL
*/
int Arg_comparator::compare_e_string()
{
String *res1,*res2;
@ -324,6 +368,17 @@ int Arg_comparator::compare_e_string()
}
int Arg_comparator::compare_e_binary_string()
{
String *res1,*res2;
res1= (*a)->val_str(&owner->tmp_value1);
res2= (*b)->val_str(&owner->tmp_value2);
if (!res1 || !res2)
return test(res1 == res2);
return test(stringcmp(res1, res2) == 0);
}
int Arg_comparator::compare_real()
{
double val1= (*a)->val();
@ -2132,7 +2187,7 @@ longlong Item_func_regex::val_int()
null_value=1;
return 0;
}
if (!regex_compiled || sortcmp(res2,&prev_regexp,&my_charset_bin))
if (!regex_compiled || stringcmp(res2,&prev_regexp))
{
prev_regexp.copy(*res2);
if (regex_compiled)

View file

@ -63,10 +63,12 @@ public:
inline int compare() { return (this->*func)(); }
int compare_string(); // compare args[0] & args[1]
int compare_binary_string(); // compare args[0] & args[1]
int compare_real(); // compare args[0] & args[1]
int compare_int(); // compare args[0] & args[1]
int compare_row(); // compare args[0] & args[1]
int compare_e_string(); // compare args[0] & args[1]
int compare_e_binary_string(); // compare args[0] & args[1]
int compare_e_real(); // compare args[0] & args[1]
int compare_e_int(); // compare args[0] & args[1]
int compare_e_row(); // compare args[0] & args[1]

View file

@ -1,4 +1,4 @@
/* Copyright (C) 2000-2003 MySQL AB
/* Copyright (C) 2000-2004 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
@ -290,6 +290,8 @@ Log_event::Log_event(const char* buf, bool old_format)
int Log_event::exec_event(struct st_relay_log_info* rli)
{
DBUG_ENTER("Log_event::exec_event");
/*
rli is null when (as far as I (Guilhem) know)
the caller is
@ -342,7 +344,7 @@ int Log_event::exec_event(struct st_relay_log_info* rli)
rli->last_master_timestamp= when;
}
}
return 0;
DBUG_RETURN(0);
}
@ -592,11 +594,13 @@ Error in Log_event::read_log_event(): '%s', data_len: %d, event_type: %d",
Log_event* Log_event::read_log_event(const char* buf, int event_len,
const char **error, bool old_format)
{
DBUG_ENTER("Log_event::read_log_event");
if (event_len < EVENT_LEN_OFFSET ||
(uint) event_len != uint4korr(buf+EVENT_LEN_OFFSET))
{
*error="Sanity check failed"; // Needed to free buffer
return NULL; // general sanity check - will fail on a partial read
DBUG_RETURN(NULL); // general sanity check - will fail on a partial read
}
Log_event* ev = NULL;
@ -658,16 +662,16 @@ Log_event* Log_event::read_log_event(const char* buf, int event_len,
if (!force_opt)
{
*error= "Found invalid event in binary log";
return 0;
DBUG_RETURN(0);
}
ev= new Unknown_log_event(buf, old_format);
#else
*error= "Found invalid event in binary log";
return 0;
DBUG_RETURN(0);
#endif
}
ev->cached_event_len = event_len;
return ev;
DBUG_RETURN(ev);
}
#ifdef MYSQL_CLIENT
@ -1249,38 +1253,21 @@ void Load_log_event::pack_info(Protocol *protocol)
memcpy(pos, table_name, table_name_len);
pos+= table_name_len;
if (sql_ex.field_term_len)
{
pos= strmov(pos, " FIELDS TERMINATED BY ");
pos= pretty_print_str(pos, sql_ex.field_term, sql_ex.field_term_len);
}
/* We have to create all optinal fields as the default is not empty */
pos= strmov(pos, " FIELDS TERMINATED BY ");
pos= pretty_print_str(pos, sql_ex.field_term, sql_ex.field_term_len);
if (sql_ex.opt_flags & OPT_ENCLOSED_FLAG)
pos= strmov(pos, " OPTIONALLY ");
pos= strmov(pos, " ENCLOSED BY ");
pos= pretty_print_str(pos, sql_ex.enclosed, sql_ex.enclosed_len);
if (sql_ex.enclosed_len)
{
if (sql_ex.opt_flags & OPT_ENCLOSED_FLAG)
pos= strmov(pos, " OPTIONALLY ");
pos= strmov(pos, " ENCLOSED BY ");
pos= pretty_print_str(pos, sql_ex.enclosed, sql_ex.enclosed_len);
}
if (sql_ex.escaped_len)
{
pos= strmov(pos, " ESCAPED BY ");
pos= pretty_print_str(pos, sql_ex.escaped, sql_ex.escaped_len);
}
bool line_lexem_added= false;
if (sql_ex.line_term_len)
{
pos= strmov(pos, " LINES TERMINATED BY ");
pos= pretty_print_str(pos, sql_ex.line_term, sql_ex.line_term_len);
line_lexem_added= true;
}
pos= strmov(pos, " ESCAPED BY ");
pos= pretty_print_str(pos, sql_ex.escaped, sql_ex.escaped_len);
pos= strmov(pos, " LINES TERMINATED BY ");
pos= pretty_print_str(pos, sql_ex.line_term, sql_ex.line_term_len);
if (sql_ex.line_start_len)
{
if (!line_lexem_added)
pos= strmov(pos," LINES");
pos= strmov(pos, " STARTING BY ");
pos= pretty_print_str(pos, sql_ex.line_start, sql_ex.line_start_len);
}
@ -1455,9 +1442,10 @@ Load_log_event::Load_log_event(const char *buf, int event_len,
field_lens(0), field_block_len(0),
table_name(0), db(0), fname(0), local_fname(FALSE)
{
if (!event_len) // derived class, will call copy_log_event() itself
return;
copy_log_event(buf, event_len, old_format);
DBUG_ENTER("Load_log_event");
if (event_len) // derived class, will call copy_log_event() itself
copy_log_event(buf, event_len, old_format);
DBUG_VOID_RETURN;
}
@ -1472,6 +1460,8 @@ int Load_log_event::copy_log_event(const char *buf, ulong event_len,
char* buf_end = (char*)buf + event_len;
uint header_len= old_format ? OLD_HEADER_LEN : LOG_EVENT_HEADER_LEN;
const char* data_head = buf + header_len;
DBUG_ENTER("Load_log_event::copy_log_event");
slave_proxy_id= thread_id= uint4korr(data_head + L_THREAD_ID_OFFSET);
exec_time = uint4korr(data_head + L_EXEC_TIME_OFFSET);
skip_lines = uint4korr(data_head + L_SKIP_LINES_OFFSET);
@ -1484,19 +1474,19 @@ int Load_log_event::copy_log_event(const char *buf, ulong event_len,
get_data_body_offset());
if ((int) event_len < body_offset)
return 1;
DBUG_RETURN(1);
/*
Sql_ex.init() on success returns the pointer to the first byte after
the sql_ex structure, which is the start of field lengths array.
*/
if (!(field_lens=(uchar*)sql_ex.init((char*)buf + body_offset,
buf_end,
buf[EVENT_TYPE_OFFSET] != LOAD_EVENT)))
return 1;
buf_end,
buf[EVENT_TYPE_OFFSET] != LOAD_EVENT)))
DBUG_RETURN(1);
data_len = event_len - body_offset;
if (num_fields > data_len) // simple sanity check against corruption
return 1;
DBUG_RETURN(1);
for (uint i = 0; i < num_fields; i++)
field_block_len += (uint)field_lens[i] + 1;
@ -1506,7 +1496,7 @@ int Load_log_event::copy_log_event(const char *buf, ulong event_len,
fname = db + db_len + 1;
fname_len = strlen(fname);
// null termination is accomplished by the caller doing buf[event_len]=0
return 0;
DBUG_RETURN(0);
}
@ -1524,6 +1514,7 @@ void Load_log_event::print(FILE* file, bool short_form, char* last_db)
void Load_log_event::print(FILE* file, bool short_form, char* last_db,
bool commented)
{
DBUG_ENTER("Load_log_event::print");
if (!short_form)
{
print_header(file);
@ -1555,42 +1546,26 @@ void Load_log_event::print(FILE* file, bool short_form, char* last_db,
fprintf(file," IGNORE ");
fprintf(file, "INTO TABLE %s ", table_name);
if (sql_ex.field_term)
{
fprintf(file, " FIELDS TERMINATED BY ");
pretty_print_str(file, sql_ex.field_term, sql_ex.field_term_len);
}
fprintf(file, " FIELDS TERMINATED BY ");
pretty_print_str(file, sql_ex.field_term, sql_ex.field_term_len);
if (sql_ex.enclosed)
{
if (sql_ex.opt_flags & OPT_ENCLOSED_FLAG)
fprintf(file," OPTIONALLY ");
fprintf(file, " ENCLOSED BY ");
pretty_print_str(file, sql_ex.enclosed, sql_ex.enclosed_len);
}
if (sql_ex.opt_flags & OPT_ENCLOSED_FLAG)
fprintf(file," OPTIONALLY ");
fprintf(file, " ENCLOSED BY ");
pretty_print_str(file, sql_ex.enclosed, sql_ex.enclosed_len);
if (sql_ex.escaped)
{
fprintf(file, " ESCAPED BY ");
pretty_print_str(file, sql_ex.escaped, sql_ex.escaped_len);
}
fprintf(file, " ESCAPED BY ");
pretty_print_str(file, sql_ex.escaped, sql_ex.escaped_len);
bool line_lexem_added= false;
if (sql_ex.line_term)
{
fprintf(file," LINES TERMINATED BY ");
pretty_print_str(file, sql_ex.line_term, sql_ex.line_term_len);
line_lexem_added= true;
}
fprintf(file," LINES TERMINATED BY ");
pretty_print_str(file, sql_ex.line_term, sql_ex.line_term_len);
if (sql_ex.line_start)
{
if (!line_lexem_added)
fprintf(file," LINES");
fprintf(file," STARTING BY ");
pretty_print_str(file, sql_ex.line_start, sql_ex.line_start_len);
}
if ((long) skip_lines > 0)
fprintf(file, " IGNORE %ld LINES", (long) skip_lines);
@ -1611,6 +1586,7 @@ void Load_log_event::print(FILE* file, bool short_form, char* last_db,
}
fprintf(file, ";\n");
DBUG_VOID_RETURN;
}
#endif /* MYSQL_CLIENT */
@ -1877,8 +1853,11 @@ Rotate_log_event::Rotate_log_event(const char* buf, int event_len,
// The caller will ensure that event_len is what we have at EVENT_LEN_OFFSET
int header_size = (old_format) ? OLD_HEADER_LEN : LOG_EVENT_HEADER_LEN;
uint ident_offset;
DBUG_ENTER("Rotate_log_event");
if (event_len < header_size)
return;
DBUG_VOID_RETURN;
buf += header_size;
if (old_format)
{
@ -1897,8 +1876,9 @@ Rotate_log_event::Rotate_log_event(const char* buf, int event_len,
ident_offset,
(uint) ident_len,
MYF(MY_WME))))
return;
DBUG_VOID_RETURN;
alloced = 1;
DBUG_VOID_RETURN;
}
@ -2593,7 +2573,9 @@ Create_file_log_event(THD* thd_arg, sql_exchange* ex,
fake_base(0),block(block_arg),block_len(block_len_arg),
file_id(thd_arg->file_id = mysql_bin_log.next_file_id())
{
DBUG_ENTER("Create_file_log_event");
sql_ex.force_new_format();
DBUG_VOID_RETURN;
}
#endif /* !MYSQL_CLIENT */
@ -2650,8 +2632,10 @@ Create_file_log_event::Create_file_log_event(const char* buf, int len,
:Load_log_event(buf,0,old_format),fake_base(0),block(0),inited_from_old(0)
{
int block_offset;
DBUG_ENTER("Create_file_log_event");
if (copy_log_event(buf,len,old_format))
return;
DBUG_VOID_RETURN;
if (!old_format)
{
file_id = uint4korr(buf + LOG_EVENT_HEADER_LEN +
@ -2669,6 +2653,7 @@ Create_file_log_event::Create_file_log_event(const char* buf, int len,
sql_ex.force_new_format();
inited_from_old = 1;
}
DBUG_VOID_RETURN;
}
@ -2821,11 +2806,13 @@ Append_block_log_event::Append_block_log_event(THD* thd_arg, const char* db_arg,
Append_block_log_event::Append_block_log_event(const char* buf, int len)
:Log_event(buf, 0),block(0)
{
DBUG_ENTER("Append_block_log_event");
if ((uint)len < APPEND_BLOCK_EVENT_OVERHEAD)
return;
DBUG_VOID_RETURN;
file_id = uint4korr(buf + LOG_EVENT_HEADER_LEN + AB_FILE_ID_OFFSET);
block = (char*)buf + APPEND_BLOCK_EVENT_OVERHEAD;
block_len = len - APPEND_BLOCK_EVENT_OVERHEAD;
DBUG_VOID_RETURN;
}
@ -2888,6 +2875,7 @@ int Append_block_log_event::exec_event(struct st_relay_log_info* rli)
char *p= slave_load_file_stem(fname, file_id, server_id);
int fd;
int error = 1;
DBUG_ENTER("Append_block_log_event::exec_event");
memcpy(p, ".data", 6);
if ((fd = my_open(fname, O_WRONLY|O_APPEND|O_BINARY, MYF(MY_WME))) < 0)
@ -2905,7 +2893,7 @@ int Append_block_log_event::exec_event(struct st_relay_log_info* rli)
err:
if (fd >= 0)
my_close(fd, MYF(0));
return error ? error : Log_event::exec_event(rli);
DBUG_RETURN(error ? error : Log_event::exec_event(rli));
}
#endif

View file

@ -1064,8 +1064,8 @@ get_mm_leaf(PARAM *param, COND *conf_func, Field *field, KEY_PART *key_part,
like_error= my_like_range(field->charset(),
res->ptr(), res->length(),
((Item_func_like*)(param->cond))->escape
wild_prefix, wild_one, wild_many,
((Item_func_like*)(param->cond))->escape,
wild_one, wild_many,
field_length,
min_str+offset, max_str+offset,
&min_length, &max_length);

View file

@ -363,7 +363,7 @@ int mysql_rm_db(THD *thd,char *db,bool if_exists, bool silent)
{
/* Convert database to lower case */
strmov(tmp_db, db);
casedn_str(tmp_db);
my_casedn_str(system_charset_info, tmp_db);
db= tmp_db;
}

View file

@ -288,12 +288,12 @@ static TABLE **find_table_ptr_by_name(THD *thd, const char *db,
TABLE **ptr;
DBUG_ASSERT(db);
dblen= *db ? strlen(db)+1 : 0;
dblen= strlen(db);
ptr= &(thd->handler_tables);
for (TABLE *table= *ptr; table ; table= *ptr)
{
if ((!dblen || !memcmp(table->table_cache_key, db, dblen)) &&
if ((db == any_db || !memcmp(table->table_cache_key, db, dblen)) &&
!my_strcasecmp(system_charset_info,
(is_alias ? table->table_name : table->real_name),
table_name))

View file

@ -1451,7 +1451,8 @@ bool dispatch_command(enum enum_server_command command, THD *thd,
my_casedn_str(files_charset_info, table_list.real_name);
remove_escape(table_list.real_name); // This can't have wildcards
if (check_access(thd,SELECT_ACL,table_list.db,&table_list.grant.privilege))
if (check_access(thd,SELECT_ACL,table_list.db,&table_list.grant.privilege,
0, 0))
break;
if (grant_option && check_grant(thd,SELECT_ACL,&table_list,2,0))
break;
@ -1771,7 +1772,7 @@ mysql_execute_command(THD *thd)
*/
if (table_rules_on && tables && !tables_ok(thd,tables) &&
((lex->sql_command != SQLCOM_DELETE_MULTI) ||
!tables_ok(thd,(TABLE_LIST *)thd->lex.auxilliary_table_list.first)))
!tables_ok(thd,(TABLE_LIST *)thd->lex->auxilliary_table_list.first)))
{
/* we warn the slave SQL thread */
my_error(ER_SLAVE_IGNORED_TABLE, MYF(0));
@ -2103,7 +2104,7 @@ mysql_execute_command(THD *thd)
ulong want_priv= ((lex->create_info.options & HA_LEX_CREATE_TMP_TABLE) ?
CREATE_TMP_ACL : CREATE_ACL);
lex->create_info.alias= tables->alias;
lex->create_info.alias= create_table->alias;
if (check_access(thd, want_priv, create_table->db,
&create_table->grant.privilege, 0, 0) ||
check_merge_table_access(thd, create_table->db,
@ -2872,7 +2873,7 @@ mysql_execute_command(THD *thd)
remove_escape(db); // Fix escaped '_'
remove_escape(tables->real_name);
if (check_access(thd,SELECT_ACL | EXTRA_ACL,db,
&tables->grant.privilege))
&tables->grant.privilege, 0, 0))
goto error; /* purecov: inspected */
if (grant_option && check_grant(thd,SELECT_ACL,tables,2,0))
goto error;
@ -2977,7 +2978,7 @@ mysql_execute_command(THD *thd)
if (check_access(thd,CREATE_ACL,lex->name,0,1,0))
break;
res= mysql_create_db(thd,(lower_case_table_names == 2 ? alias : lex->name),
lex->create_info.options,0);
&lex->create_info, 0);
break;
}
case SQLCOM_DROP_DB:
@ -3393,7 +3394,7 @@ static int check_one_table_access(THD *thd, ulong privilege,
if (subselects_tables)
{
tables->next= subselects_tables;
if ((*res= check_table_access(thd, SELECT_ACL, subselects_tables,0)))
if ((check_table_access(thd, SELECT_ACL, subselects_tables,0)))
return 1;
}
return 0;

View file

@ -2864,7 +2864,7 @@ find_best(JOIN *join,table_map rest_tables,uint idx,double record_count,
If quick_select was used on a part of this key, we know
the maximum number of rows that the key can match.
*/
if (table->quick_keys & ((key_map) 1 << key) &&
if (table->quick_keys.is_set(key) &&
table->quick_key_parts[key] <= max_key_part &&
records > (double) table->quick_rows[key])
tmp= records= (double) table->quick_rows[key];
@ -6717,8 +6717,11 @@ static bool test_if_ref(Item_field *left_item,Item *right_item)
/*
We can remove binary fields and numerical fields except float,
as float comparison isn't 100 % secure
We have to keep binary strings to be able to check for end spaces
*/
if (field->binary() &&
field->real_type() != FIELD_TYPE_STRING &&
field->real_type() != FIELD_TYPE_VAR_STRING &&
(field->type() != FIELD_TYPE_FLOAT || field->decimals() == 0))
{
return !store_val_in_field(field,right_item);
@ -7931,6 +7934,29 @@ int setup_order(THD *thd, Item **ref_pointer_array, TABLE_LIST *tables,
}
/*
Intitialize the GROUP BY list.
SYNOPSIS
setup_group()
thd Thread handler
ref_pointer_array We store references to all fields that was not in
'fields' here.
fields All fields in the select part. Any item in 'order'
that is part of these list is replaced by a pointer
to this fields.
all_fields Total list of all unique fields used by the select.
All items in 'order' that was not part of fields will
be added first to this list.
order The fields we should do GROUP BY on.
hidden_group_fields Pointer to flag that is set to 1 if we added any fields
to all_fields.
RETURN
0 ok
1 error (probably out of memory)
*/
int
setup_group(THD *thd, Item **ref_pointer_array, TABLE_LIST *tables,
List<Item> &fields, List<Item> &all_fields, ORDER *order,

View file

@ -699,11 +699,56 @@ void String::qs_append(const char &c)
}
int sortcmp(const String *x,const String *y, CHARSET_INFO *cs)
/*
Compare strings according to collation, without end space.
SYNOPSIS
sortcmp()
s First string
t Second string
cs Collation
NOTE:
Normally this is case sensitive comparison
RETURN
< 0 s < t
0 s == t
> 0 s > t
*/
int sortcmp(const String *s,const String *t, CHARSET_INFO *cs)
{
return cs->coll->strnncollsp(cs,
(unsigned char *) x->ptr(),x->length(),
(unsigned char *) y->ptr(),y->length());
(unsigned char *) s->ptr(),s->length(),
(unsigned char *) t->ptr(),t->length());
}
/*
Compare strings byte by byte. End spaces are also compared.
SYNOPSIS
stringcmp()
s First string
t Second string
NOTE:
Strings are compared as a stream of unsigned chars
RETURN
< 0 s < t
0 s == t
> 0 s > t
*/
int stringcmp(const String *s,const String *t)
{
uint32 s_len=s->length(),t_len=t->length(),len=min(s_len,t_len);
int cmp= memcmp(s->ptr(), t->ptr(), len);
return (cmp) ? cmp : (int) (s_len - t_len);
}

View file

@ -221,6 +221,7 @@ public:
inline void caseup() { my_caseup(str_charset,Ptr,str_length); }
inline void casedn() { my_casedn(str_charset,Ptr,str_length); }
friend int sortcmp(const String *a,const String *b, CHARSET_INFO *cs);
friend int stringcmp(const String *a,const String *b);
friend String *copy_if_not_alloced(String *a,String *b,uint32 arg_length);
uint32 numchars();
int charpos(int i,uint32 offset=0);

View file

@ -1152,11 +1152,11 @@ mysql_rename_table(enum db_type base,
{
/* Table handler expects to get all file names as lower case */
strmov(tmp_from, old_name);
casedn_str(tmp_from);
my_casedn_str(system_charset_info, tmp_from);
old_name= tmp_from;
strmov(tmp_to, new_name);
casedn_str(tmp_to);
my_casedn_str(system_charset_info, tmp_to);
new_name= tmp_to;
}
(void) sprintf(from,"%s/%s/%s",mysql_data_home,old_db,old_name);

View file

@ -439,7 +439,14 @@ int mysql_multi_update(THD *thd,
for (tl= table_list ; tl ; tl=tl->next)
{
TABLE *table= tl->table;
table->grant.want_privilege= (UPDATE_ACL & ~table->grant.privilege);
/*
Update of derived tables is checked later
We don't check privileges here, becasue then we would get error
"UPDATE command denided .. for column N" instead of
"Target table ... is not updatable"
*/
if (!tl->derived)
table->grant.want_privilege= (UPDATE_ACL & ~table->grant.privilege);
}
if (thd->lex->derived_tables)

View file

@ -4626,8 +4626,8 @@ table_ident:
;
table_ident_ref:
ident { LEX_STRING db={"",0}; $$=new Table_ident(db,$1,0); }
| ident '.' ident { $$=new Table_ident($1,$3,0);}
ident { LEX_STRING db={(char*) any_db,3}; $$=new Table_ident(YYTHD, db,$1,0); }
| ident '.' ident { $$=new Table_ident(YYTHD, $1,$3,0);}
;
IDENT_sys:

View file

@ -247,8 +247,8 @@ int my_strnncollsp_big5(CHARSET_INFO * cs,
const uchar *s, uint slen,
const uchar *t, uint tlen)
{
for ( ; slen && my_isspace(cs, s[slen-1]) ; slen--);
for ( ; tlen && my_isspace(cs, t[tlen-1]) ; tlen--);
for ( ; slen && s[slen-1] == ' ' ; slen--);
for ( ; tlen && t[tlen-1] == ' ' ; tlen--);
return my_strnncoll_big5(cs,s,slen,t,tlen);
}
@ -343,10 +343,10 @@ static int my_strxfrm_big5(uchar * dest, const uchar * src, int len)
#define max_sort_char ((char) 255)
static my_bool my_like_range_big5(CHARSET_INFO *cs __attribute__((unused)),
const char *ptr,uint ptr_length,
int escape, int w_one, int w_many,
uint res_length, char *min_str,char *max_str,
uint *min_length,uint *max_length)
const char *ptr,uint ptr_length,
pbool escape, pbool w_one, pbool w_many,
uint res_length, char *min_str,char *max_str,
uint *min_length,uint *max_length)
{
const char *end=ptr+ptr_length;
char *min_org=min_str;

View file

@ -67,6 +67,28 @@ static uchar bin_char_array[] =
};
/*
Compare two strings. Result is sign(first_argument - second_argument)
SYNOPSIS
my_strnncoll_binary()
cs Chararacter set
s String to compare
slen Length of 's'
t String to compare
tlen Length of 't'
NOTE
This is used also when comparing with end space removal, as end space
is significant for binary strings
RETURN
< 0 s < t
0 s == t
> 0 s > t
*/
static int my_strnncoll_binary(CHARSET_INFO * cs __attribute__((unused)),
const uchar *s, uint slen,
const uchar *t, uint tlen)
@ -75,59 +97,39 @@ static int my_strnncoll_binary(CHARSET_INFO * cs __attribute__((unused)),
return cmp ? cmp : (int) (slen - tlen);
}
static int my_strnncollsp_binary(CHARSET_INFO * cs,
const uchar *s, uint slen,
const uchar *t, uint tlen)
{
int len, cmp;
for ( ; slen && my_isspace(cs, s[slen-1]) ; slen--);
for ( ; tlen && my_isspace(cs, t[tlen-1]) ; tlen--);
/* This function is used for all conversion functions */
len = ( slen > tlen ) ? tlen : slen;
cmp= memcmp(s,t,len);
return cmp ? cmp : (int) (slen - tlen);
}
static void my_caseup_str_bin(CHARSET_INFO *cs __attribute__((unused)),
char *str __attribute__((unused)))
static void my_case_str_bin(CHARSET_INFO *cs __attribute__((unused)),
char *str __attribute__((unused)))
{
}
static void my_casedn_str_bin(CHARSET_INFO * cs __attribute__((unused)),
char *str __attribute__((unused)))
static void my_case_bin(CHARSET_INFO *cs __attribute__((unused)),
char *str __attribute__((unused)),
uint length __attribute__((unused)))
{
}
static void my_caseup_bin(CHARSET_INFO * cs __attribute__((unused)),
char *str __attribute__((unused)),
uint length __attribute__((unused)))
{
}
static void my_casedn_bin(CHARSET_INFO * cs __attribute__((unused)),
char *str __attribute__((unused)),
uint length __attribute__((unused)))
{
}
static int my_strcasecmp_bin(CHARSET_INFO * cs __attribute__((unused)),
const char *s, const char *t)
const char *s, const char *t)
{
return strcmp(s,t);
}
int my_mbcharlen_8bit(CHARSET_INFO *cs __attribute__((unused)),
uint c __attribute__((unused)))
uint c __attribute__((unused)))
{
return 1;
}
static int my_mb_wc_bin(CHARSET_INFO *cs __attribute__((unused)),
my_wc_t *wc,
const unsigned char *str,
const unsigned char *end __attribute__((unused)))
my_wc_t *wc,
const unsigned char *str,
const unsigned char *end __attribute__((unused)))
{
if (str >= end)
return MY_CS_TOOFEW(0);
@ -136,10 +138,11 @@ static int my_mb_wc_bin(CHARSET_INFO *cs __attribute__((unused)),
return 1;
}
static int my_wc_mb_bin(CHARSET_INFO *cs __attribute__((unused)),
my_wc_t wc,
unsigned char *s,
unsigned char *e __attribute__((unused)))
my_wc_t wc,
unsigned char *s,
unsigned char *e __attribute__((unused)))
{
if (s >= e)
return MY_CS_TOOSMALL;
@ -169,12 +172,21 @@ void my_hash_sort_bin(CHARSET_INFO *cs __attribute__((unused)),
}
/*
The following defines is here to keep the following code identical to
the one in ctype-simple.c
*/
#define likeconv(s,A) (A)
#define INC_PTR(cs,A,B) (A)++
static int my_wildcmp_bin(CHARSET_INFO *cs,
const char *str,const char *str_end,
const char *wildstr,const char *wildend,
int escape, int w_one, int w_many)
{
int result= -1; /* Not found, using wildcards */
int result= -1; /* Not found, using wildcards */
while (wildstr != wildend)
{
@ -182,31 +194,26 @@ static int my_wildcmp_bin(CHARSET_INFO *cs,
{
if (*wildstr == escape && wildstr+1 != wildend)
wildstr++;
if (str == str_end || *wildstr++ != *str++)
{
return(1);
}
if (str == str_end || likeconv(cs,*wildstr++) != likeconv(cs,*str++))
return(1); /* No match */
if (wildstr == wildend)
{
return(str != str_end); /* Match if both are at end */
}
result=1; /* Found an anchor char */
return(str != str_end); /* Match if both are at end */
result=1; /* Found an anchor char */
}
if (*wildstr == w_one)
{
do
{
if (str == str_end) /* Skip one char if possible */
if (str == str_end) /* Skip one char if possible */
return(result);
str++;
} while (*++wildstr == w_one && wildstr != wildend);
INC_PTR(cs,str,str_end);
} while (++wildstr < wildend && *wildstr == w_one);
if (wildstr == wildend)
break;
}
if (*wildstr == w_many)
{ /* Found w_many */
char cmp;
{ /* Found w_many */
uchar cmp;
wildstr++;
/* Remove any '%' and '_' from the wild search string */
for (; wildstr != wildend ; wildstr++)
@ -216,40 +223,33 @@ static int my_wildcmp_bin(CHARSET_INFO *cs,
if (*wildstr == w_one)
{
if (str == str_end)
{
return(-1);
}
str++;
INC_PTR(cs,str,str_end);
continue;
}
break; /* Not a wild character */
break; /* Not a wild character */
}
if (wildstr == wildend)
{
return(0); /* Ok if w_many is last */
}
return(0); /* match if w_many is last */
if (str == str_end)
{
return(-1);
}
if ((cmp= *wildstr) == escape && wildstr+1 != wildend)
cmp= *++wildstr;
wildstr++; /* This is compared trough cmp */
INC_PTR(cs,wildstr,wildend); /* This is compared through cmp */
cmp=likeconv(cs,cmp);
do
{
while (str != str_end && *str != cmp)
while (str != str_end && (uchar) likeconv(cs,*str) != cmp)
str++;
if (str++ == str_end)
{
return(-1);
}
{
int tmp=my_wildcmp_bin(cs,str,str_end,wildstr,wildend,escape,w_one,w_many);
int tmp=my_wildcmp_bin(cs,str,str_end,wildstr,wildend,escape,w_one,
w_many);
if (tmp <= 0)
{
return(tmp);
}
}
} while (str != str_end && wildstr[0] != w_many);
return(-1);
@ -258,6 +258,7 @@ static int my_wildcmp_bin(CHARSET_INFO *cs,
return(str != str_end ? 1 : 0);
}
static int my_strnxfrm_bin(CHARSET_INFO *cs __attribute__((unused)),
uchar * dest, uint len,
const uchar *src,
@ -268,11 +269,12 @@ static int my_strnxfrm_bin(CHARSET_INFO *cs __attribute__((unused)),
return len;
}
static
uint my_instr_bin(CHARSET_INFO *cs __attribute__((unused)),
const char *b, uint b_length,
const char *s, uint s_length,
my_match_t *match, uint nmatch)
const char *b, uint b_length,
const char *s, uint s_length,
my_match_t *match, uint nmatch)
{
register const uchar *str, *search, *end, *search_end;
@ -332,7 +334,7 @@ skip:
MY_COLLATION_HANDLER my_collation_8bit_bin_handler =
{
my_strnncoll_binary,
my_strnncollsp_binary,
my_strnncoll_binary,
my_strnxfrm_bin,
my_like_range_simple,
my_wildcmp_bin,
@ -341,6 +343,7 @@ MY_COLLATION_HANDLER my_collation_8bit_bin_handler =
my_hash_sort_bin
};
static MY_CHARSET_HANDLER my_charset_handler=
{
NULL, /* ismbchar */
@ -351,10 +354,10 @@ static MY_CHARSET_HANDLER my_charset_handler=
my_lengthsp_8bit,
my_mb_wc_bin,
my_wc_mb_bin,
my_caseup_str_bin,
my_casedn_str_bin,
my_caseup_bin,
my_casedn_bin,
my_case_str_bin,
my_case_str_bin,
my_case_bin,
my_case_bin,
my_snprintf_8bit,
my_long10_to_str_8bit,
my_longlong10_to_str_8bit,
@ -367,6 +370,7 @@ static MY_CHARSET_HANDLER my_charset_handler=
my_scan_8bit
};
CHARSET_INFO my_charset_bin =
{
63,0,0, /* number */

View file

@ -379,10 +379,11 @@ static int my_strnxfrm_czech(CHARSET_INFO *cs __attribute__((unused)),
#define EXAMPLE
static my_bool my_like_range_czech(CHARSET_INFO *cs __attribute__((unused)),
const char *ptr,uint ptr_length,
int escape, int w_one, int w_many,
uint res_length, char *min_str,char *max_str,
uint *min_length,uint *max_length)
const char *ptr,uint ptr_length,
pbool escape, pbool w_one, pbool w_many,
uint res_length, char *min_str,
char *max_str,
uint *min_length,uint *max_length)
{
#ifdef EXAMPLE
uchar value;
@ -599,8 +600,8 @@ int my_strnncollsp_czech(CHARSET_INFO * cs,
const uchar *s, uint slen,
const uchar *t, uint tlen)
{
for ( ; slen && my_isspace(cs, s[slen-1]) ; slen--);
for ( ; tlen && my_isspace(cs, t[tlen-1]) ; tlen--);
for ( ; slen && s[slen-1] == ' ' ; slen--);
for ( ; tlen && t[tlen-1] == ' ' ; tlen--);
return my_strnncoll_czech(cs,s,slen,t,tlen);
}

View file

@ -2613,8 +2613,8 @@ int my_strnncollsp_gbk(CHARSET_INFO * cs,
const uchar *s, uint slen,
const uchar *t, uint tlen)
{
for ( ; slen && my_isspace(cs, s[slen-1]) ; slen--);
for ( ; tlen && my_isspace(cs, t[tlen-1]) ; tlen--);
for ( ; slen && s[slen-1] == ' ' ; slen--);
for ( ; tlen && t[tlen-1] == ' ' ; tlen--);
return my_strnncoll_gbk(cs,s,slen,t,tlen);
}
@ -2663,7 +2663,7 @@ static int my_strnxfrm_gbk(CHARSET_INFO *cs __attribute__((unused)),
static my_bool my_like_range_gbk(CHARSET_INFO *cs __attribute__((unused)),
const char *ptr,uint ptr_length,
int escape, int w_one, int w_many,
pbool escape, pbool w_one, pbool w_many,
uint res_length, char *min_str,char *max_str,
uint *min_length,uint *max_length)
{

View file

@ -360,8 +360,8 @@ static int my_strnncollsp_latin1_de(CHARSET_INFO *cs,
const uchar *s, uint slen,
const uchar *t, uint tlen)
{
for ( ; slen && my_isspace(cs, s[slen-1]) ; slen--);
for ( ; tlen && my_isspace(cs, t[tlen-1]) ; tlen--);
for ( ; slen && s[slen-1] == ' ' ; slen--);
for ( ; tlen && t[tlen-1] == ' ' ; tlen--);
return my_strnncoll_latin1_de(cs,s,slen,t,tlen);
}

View file

@ -354,14 +354,14 @@ static int my_strnncoll_mb_bin(CHARSET_INFO * cs __attribute__((unused)),
return cmp ? cmp : (int) (slen - tlen);
}
static int my_strnncollsp_mb_bin(CHARSET_INFO * cs,
const uchar *s, uint slen,
const uchar *t, uint tlen)
static int my_strnncollsp_mb_bin(CHARSET_INFO * cs __attribute__((unused)),
const uchar *s, uint slen,
const uchar *t, uint tlen)
{
int len, cmp;
for ( ; slen && my_isspace(cs, s[slen-1]) ; slen--);
for ( ; tlen && my_isspace(cs, t[tlen-1]) ; tlen--);
for ( ; slen && s[slen-1] == ' ' ; slen--);
for ( ; tlen && t[tlen-1] == ' ' ; tlen--);
len = ( slen > tlen ) ? tlen : slen;

View file

@ -66,8 +66,8 @@ int my_strnncollsp_simple(CHARSET_INFO * cs, const uchar *s, uint slen,
uchar *map= cs->sort_order;
int len;
for ( ; slen && my_isspace(cs, s[slen-1]) ; slen--);
for ( ; tlen && my_isspace(cs, t[tlen-1]) ; tlen--);
for ( ; slen && s[slen-1] == ' ' ; slen--);
for ( ; tlen && t[tlen-1] == ' ' ; tlen--);
len = ( slen > tlen ) ? tlen : slen;
@ -186,9 +186,9 @@ void my_hash_sort_simple(CHARSET_INFO *cs,
}
long my_strntol_8bit(CHARSET_INFO *cs,
const char *nptr, uint l, int base,
char **endptr, int *err)
long my_strntol_8bit(CHARSET_INFO *cs,
const char *nptr, uint l, int base,
char **endptr, int *err)
{
int negative;
register ulong cutoff;
@ -309,9 +309,9 @@ noconv:
}
ulong my_strntoul_8bit(CHARSET_INFO *cs,
const char *nptr, uint l, int base,
char **endptr, int *err)
ulong my_strntoul_8bit(CHARSET_INFO *cs,
const char *nptr, uint l, int base,
char **endptr, int *err)
{
int negative;
register ulong cutoff;
@ -423,9 +423,9 @@ noconv:
}
longlong my_strntoll_8bit(CHARSET_INFO *cs __attribute__((unused)),
const char *nptr, uint l, int base,
char **endptr,int *err)
longlong my_strntoll_8bit(CHARSET_INFO *cs __attribute__((unused)),
const char *nptr, uint l, int base,
char **endptr,int *err)
{
int negative;
register ulonglong cutoff;
@ -825,7 +825,7 @@ cnv:
#define likeconv(s,A) (uchar) (s)->sort_order[(uchar) (A)]
#endif
#define INC_PTR(cs,A,B) A++
#define INC_PTR(cs,A,B) (A)++
int my_wildcmp_8bit(CHARSET_INFO *cs,
@ -833,7 +833,7 @@ int my_wildcmp_8bit(CHARSET_INFO *cs,
const char *wildstr,const char *wildend,
int escape, int w_one, int w_many)
{
int result= -1; /* Not found, using wildcards */
int result= -1; /* Not found, using wildcards */
while (wildstr != wildend)
{
@ -845,7 +845,7 @@ int my_wildcmp_8bit(CHARSET_INFO *cs,
if (str == str_end || likeconv(cs,*wildstr++) != likeconv(cs,*str++))
return(1); /* No match */
if (wildstr == wildend)
return (str != str_end); /* Match if both are at end */
return(str != str_end); /* Match if both are at end */
result=1; /* Found an anchor char */
}
if (*wildstr == w_one)
@ -853,7 +853,7 @@ int my_wildcmp_8bit(CHARSET_INFO *cs,
do
{
if (str == str_end) /* Skip one char if possible */
return (result);
return(result);
INC_PTR(cs,str,str_end);
} while (++wildstr < wildend && *wildstr == w_one);
if (wildstr == wildend)
@ -872,7 +872,7 @@ int my_wildcmp_8bit(CHARSET_INFO *cs,
if (*wildstr == w_one)
{
if (str == str_end)
return (-1);
return(-1);
INC_PTR(cs,str,str_end);
continue;
}
@ -881,28 +881,29 @@ int my_wildcmp_8bit(CHARSET_INFO *cs,
if (wildstr == wildend)
return(0); /* Ok if w_many is last */
if (str == str_end)
return -1;
return(-1);
if ((cmp= *wildstr) == escape && wildstr+1 != wildend)
cmp= *++wildstr;
INC_PTR(cs,wildstr,wildend); /* This is compared trough cmp */
cmp=likeconv(cs,cmp);
INC_PTR(cs,wildstr,wildend); /* This is compared trough cmp */
cmp=likeconv(cs,cmp);
do
{
while (str != str_end && likeconv(cs,*str) != cmp)
str++;
if (str++ == str_end) return (-1);
while (str != str_end && (uchar) likeconv(cs,*str) != cmp)
str++;
if (str++ == str_end) return(-1);
{
int tmp=my_wildcmp_8bit(cs,str,str_end,wildstr,wildend,escape,w_one,w_many);
int tmp=my_wildcmp_8bit(cs,str,str_end,wildstr,wildend,escape,w_one,
w_many);
if (tmp <= 0)
return (tmp);
return(tmp);
}
} while (str != str_end && wildstr[0] != w_many);
return(-1);
}
}
return (str != str_end ? 1 : 0);
return(str != str_end ? 1 : 0);
}
@ -924,11 +925,11 @@ int my_wildcmp_8bit(CHARSET_INFO *cs,
*/
my_bool my_like_range_simple(CHARSET_INFO *cs,
const char *ptr,uint ptr_length,
int escape, int w_one, int w_many,
uint res_length,
char *min_str,char *max_str,
uint *min_length,uint *max_length)
const char *ptr,uint ptr_length,
pbool escape, pbool w_one, pbool w_many,
uint res_length,
char *min_str,char *max_str,
uint *min_length,uint *max_length)
{
const char *end=ptr+ptr_length;
char *min_org=min_str;
@ -953,7 +954,7 @@ my_bool my_like_range_simple(CHARSET_INFO *cs,
*min_length= (uint) (min_str - min_org);
*max_length=res_length;
do {
*min_str++ = ' '; /* Because if key compression */
*min_str++ = ' '; /* Because if key compression */
*max_str++ = cs->max_sort_char;
} while (min_str != min_end);
return 0;
@ -970,7 +971,7 @@ my_bool my_like_range_simple(CHARSET_INFO *cs,
}
while (min_str != min_end)
*min_str++ = *max_str++ = ' '; /* Because if key compression */
*min_str++ = *max_str++ = ' '; /* Because if key compression */
return 0;
}

View file

@ -227,8 +227,8 @@ int my_strnncollsp_sjis(CHARSET_INFO * cs,
const uchar *s, uint slen,
const uchar *t, uint tlen)
{
for ( ; slen && my_isspace(cs, s[slen-1]) ; slen--);
for ( ; tlen && my_isspace(cs, t[tlen-1]) ; tlen--);
for ( ; slen && s[slen-1] == ' ' ; slen--);
for ( ; tlen && t[tlen-1] == ' ' ; tlen--);
return my_strnncoll_sjis(cs,s,slen,t,tlen);
}
@ -270,10 +270,10 @@ static int my_strnxfrm_sjis(CHARSET_INFO *cs __attribute__((unused)),
#define max_sort_char ((char) 255)
static my_bool my_like_range_sjis(CHARSET_INFO *cs __attribute__((unused)),
const char *ptr,uint ptr_length,
int escape, int w_one, int w_many,
uint res_length, char *min_str,char *max_str,
uint *min_length,uint *max_length)
const char *ptr,uint ptr_length,
pbool escape, pbool w_one, pbool w_many,
uint res_length, char *min_str,char *max_str,
uint *min_length,uint *max_length)
{
const char *end=ptr+ptr_length;
char *min_org=min_str;

View file

@ -466,7 +466,7 @@ uchar NEAR sort_order_tis620[]=
static uint thai2sortable(uchar *tstr, uint len)
{
uchar *p;
int len, tlen;
int tlen;
uchar l2bias;
tlen= len;
@ -572,7 +572,8 @@ int my_strnxfrm_tis620(CHARSET_INFO *cs __attribute__((unused)),
uchar * dest, uint len,
const uchar * src, uint srclen)
{
len= (uint) (strmake(dest, src, min(len,srclen))- dest);
len= (uint) (strmake((char*) dest, (char*) src, min(len, srclen)) -
(char*) dest);
return (int) thai2sortable(dest, len);
}
@ -610,7 +611,7 @@ int my_strcoll_tis620(const uchar * s1, const uchar * s2)
my_bool my_like_range_tis620(CHARSET_INFO *cs __attribute__((unused)),
const char *ptr, uint ptr_length,
int escape, int w_one, int w_many,
pbool escape, pbool w_one, pbool w_many,
uint res_length, char *min_str, char *max_str,
uint *min_length, uint *max_length)
{
@ -862,7 +863,7 @@ static MY_COLLATION_HANDLER my_collation_ci_handler =
my_like_range_tis620,
my_wildcmp_8bit, /* wildcmp */
my_strcasecmp_8bit,
NULL,
my_instr_simple, /* QQ: To be fixed */
my_hash_sort_simple,
};

View file

@ -1840,8 +1840,8 @@ int my_strnncollsp_utf8(CHARSET_INFO * cs,
const uchar *s, uint slen,
const uchar *t, uint tlen)
{
for ( ; slen && my_isspace(cs, s[slen-1]) ; slen--);
for ( ; tlen && my_isspace(cs, t[tlen-1]) ; tlen--);
for ( ; slen && s[slen-1] == ' ' ; slen--);
for ( ; tlen && t[tlen-1] == ' ' ; tlen--);
return my_strnncoll_utf8(cs,s,slen,t,tlen);
}

View file

@ -38,7 +38,6 @@
*/
#define REAL_MYSQL
#ifdef REAL_MYSQL
#include "my_global.h"
@ -445,103 +444,65 @@ static struct wordvalue doubles[] = {
break; \
}
#define IS_END(p, src, len) (!(*p))
#if UNUSED
static int my_strcoll_win1250ch(const uchar * s1, const uchar * s2) {
int v1, v2;
const uchar * p1, * p2;
int pass1 = 0, pass2 = 0;
int diff;
p1 = s1; p2 = s2;
do {
NEXT_CMP_VALUE(s1, p1, pass1, v1, 0);
NEXT_CMP_VALUE(s2, p2, pass2, v2, 0);
diff = v1 - v2;
if (diff != 0) return diff;
} while (v1);
return 0;
}
#endif
#ifdef UNUSED
static int my_strxfrm_win1250ch(uchar * dest, const uchar * src, int len) {
int value;
const uchar * p;
int pass = 0;
int totlen = 0;
p = src;
do {
NEXT_CMP_VALUE(src, p, pass, value, 0);
if (totlen <= len)
dest[totlen] = value;
totlen++;
} while (value);
return totlen;
}
#endif
#undef IS_END
#define IS_END(p, src, len) (((char *)p - (char *)src) >= (len))
static int my_strnncoll_win1250ch(CHARSET_INFO *cs __attribute__((unused)),
const uchar * s1, uint len1,
const uchar * s2, uint len2) {
int v1, v2;
const uchar * p1, * p2;
int pass1 = 0, pass2 = 0;
int diff;
const uchar * s1, uint len1,
const uchar * s2, uint len2)
{
int v1, v2;
const uchar * p1, * p2;
int pass1 = 0, pass2 = 0;
int diff;
p1 = s1; p2 = s2;
p1 = s1; p2 = s2;
do {
NEXT_CMP_VALUE(s1, p1, pass1, v1, (int)len1);
NEXT_CMP_VALUE(s2, p2, pass2, v2, (int)len2);
diff = v1 - v2;
if (diff != 0) return diff;
} while (v1);
return 0;
do {
NEXT_CMP_VALUE(s1, p1, pass1, v1, (int)len1);
NEXT_CMP_VALUE(s2, p2, pass2, v2, (int)len2);
diff = v1 - v2;
if (diff != 0) return diff;
} while (v1);
return 0;
}
static
int my_strnncollsp_win1250ch(CHARSET_INFO * cs,
const uchar *s, uint slen,
const uchar *t, uint tlen)
const uchar *s, uint slen,
const uchar *t, uint tlen)
{
for ( ; slen && my_isspace(cs, s[slen-1]) ; slen--);
for ( ; tlen && my_isspace(cs, t[tlen-1]) ; tlen--);
for ( ; slen && s[slen-1] == ' ' ; slen--);
for ( ; tlen && t[tlen-1] == ' ' ; tlen--);
return my_strnncoll_win1250ch(cs,s,slen,t,tlen);
}
static int my_strnxfrm_win1250ch(CHARSET_INFO * cs __attribute__((unused)),
uchar * dest, uint len,
const uchar * src, uint srclen) {
int value;
const uchar * p;
int pass = 0;
uint totlen = 0;
p = src;
uchar * dest, uint len,
const uchar * src, uint srclen)
{
int value;
const uchar * p;
int pass = 0;
uint totlen = 0;
p = src;
do {
NEXT_CMP_VALUE(src, p, pass, value, (int)srclen);
if (totlen <= len)
dest[totlen] = value;
totlen++;
} while (value) ;
return totlen;
do {
NEXT_CMP_VALUE(src, p, pass, value, (int)srclen);
if (totlen <= len)
dest[totlen] = value;
totlen++;
} while (value) ;
return totlen;
}
#undef IS_END
#ifdef REAL_MYSQL
static uchar NEAR like_range_prefix_min_win1250ch[] = {
static uchar NEAR like_range_prefix_min_win1250ch[] =
{
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
@ -598,87 +559,82 @@ static uchar NEAR like_range_prefix_max_win1250ch[] = {
** optimized !
*/
static my_bool my_like_range_win1250ch(CHARSET_INFO *cs __attribute__((unused)),
const char *ptr, uint ptr_length,
int escape, int w_one, int w_many,
uint res_length,
char *min_str, char *max_str,
uint *min_length, uint *max_length) {
static my_bool
my_like_range_win1250ch(CHARSET_INFO *cs __attribute__((unused)),
const char *ptr, uint ptr_length,
pbool escape, pbool w_one, pbool w_many,
uint res_length,
char *min_str, char *max_str,
uint *min_length, uint *max_length)
{
int was_other_than_min = 0;
const char *end = ptr + ptr_length;
char *min_org = min_str;
char *min_end = min_str + res_length;
int only_min_found= 1;
const char *end = ptr + ptr_length;
char *min_org = min_str;
char *min_end = min_str + res_length;
/* return 1; */
/* return 1; */
for (; ptr != end && min_str != min_end ; ptr++) {
if (*ptr == w_one) { /* '_' in SQL */
break;
}
if (*ptr == w_many) { /* '%' in SQL */
break;
}
if (*ptr == escape && ptr + 1 != end) { /* Skip escape */
ptr++;
}
*min_str = like_range_prefix_min_win1250ch[(uint)(*ptr)];
if (*min_str != min_sort_char) {
was_other_than_min = 1;
}
min_str++;
*max_str++ = like_range_prefix_max_win1250ch[(uint)(*ptr)];
}
for (; ptr != end && min_str != min_end ; ptr++)
{
if (*ptr == escape && ptr+1 != end)
ptr++; /* Skip escape */
else if (*ptr == w_one || *ptr == w_many) /* '_' or '%' in SQL */
break;
*min_str = like_range_prefix_min_win1250ch[(uint)(*ptr)];
if (*min_str != min_sort_char)
only_min_found= 0;
min_str++;
*max_str++ = like_range_prefix_max_win1250ch[(uint)(*ptr)];
}
*min_length = (uint) (min_str - min_org);
*max_length = res_length;
while (min_str != min_end) {
*min_str++ = min_sort_char;
*max_str++ = max_sort_char;
}
if (! was_other_than_min) {
return 1;
}
return 0;
*min_length = (uint) (min_str - min_org);
*max_length = res_length;
while (min_str != min_end)
{
*min_str++ = min_sort_char;
*max_str++ = max_sort_char;
}
return (only_min_found);
}
static MY_COLLATION_HANDLER my_collation_czech_ci_handler =
{
my_strnncoll_win1250ch,
my_strnncollsp_win1250ch,
my_strnxfrm_win1250ch,
my_like_range_win1250ch,
my_wildcmp_8bit,
my_strcasecmp_8bit,
my_instr_simple,
my_hash_sort_simple
my_strnncoll_win1250ch,
my_strnncollsp_win1250ch,
my_strnxfrm_win1250ch,
my_like_range_win1250ch,
my_wildcmp_8bit,
my_strcasecmp_8bit,
my_instr_simple,
my_hash_sort_simple
};
CHARSET_INFO my_charset_cp1250_czech_ci =
{
34,0,0, /* number */
MY_CS_COMPILED|MY_CS_STRNXFRM, /* state */
"cp1250", /* cs name */
"cp1250_czech_ci", /* name */
"", /* comment */
ctype_win1250ch,
to_lower_win1250ch,
to_upper_win1250ch,
sort_order_win1250ch,
tab_cp1250_uni, /* tab_to_uni */
idx_uni_cp1250, /* tab_from_uni */
"","",
2, /* strxfrm_multiply */
1, /* mbminlen */
1, /* mbmaxlen */
0,
&my_charset_8bit_handler,
&my_collation_czech_ci_handler
34,0,0, /* number */
MY_CS_COMPILED|MY_CS_STRNXFRM, /* state */
"cp1250", /* cs name */
"cp1250_czech_ci", /* name */
"", /* comment */
ctype_win1250ch,
to_lower_win1250ch,
to_upper_win1250ch,
sort_order_win1250ch,
tab_cp1250_uni, /* tab_to_uni */
idx_uni_cp1250, /* tab_from_uni */
"","",
2, /* strxfrm_multiply */
1, /* mbminlen */
1, /* mbmaxlen */
0,
&my_charset_8bit_handler,
&my_collation_czech_ci_handler
};
#endif
#endif /* REAL_MYSQL */
#endif
#endif /* HAVE_CHARSET_cp1250 */

Some files were not shown because too many files have changed in this diff Show more