mirror of
https://github.com/MariaDB/server.git
synced 2025-01-15 19:42:28 +01:00
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:
parent
5b2c312627
commit
a07e48eca0
101 changed files with 1483 additions and 1031 deletions
|
@ -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
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
||||
|
|
|
@ -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)))
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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,"-")
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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,'.')
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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) ;
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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'),
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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');
|
||||
|
||||
|
|
|
@ -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));
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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));
|
||||
|
|
|
@ -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');
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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';
|
||||
|
||||
#
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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
|
||||
#
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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]
|
||||
|
|
140
sql/log_event.cc
140
sql/log_event.cc
|
@ -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
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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))
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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)
|
||||
{
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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,
|
||||
};
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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
Loading…
Reference in a new issue