mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Merge a193-229-222-105.elisa-laajakaista.fi:/home/my/bk/mysql-4.1
into a193-229-222-105.elisa-laajakaista.fi:/home/my/bk/mysql-5.0 mysql-test/r/temp_table.result: Auto merged mysql-test/r/warnings.result: Auto merged sql/sql_db.cc: Auto merged client/mysqltest.c: Auto merged mysql-test/t/innodb.test: Auto merged sql/filesort.cc: Auto merged sql/sql_select.cc: Auto merged mysql-test/r/create.result: Merged from 4.1 to 5.0 mysql-test/r/innodb.result: Merged from 4.1 to 5.0 mysql-test/t/create.test: Merged from 4.1 to 5.0 sql/item_cmpfunc.cc: Merged from 4.1 to 5.0 sql/sql_table.cc: Merged from 4.1 to 5.0
This commit is contained in:
@ -2382,7 +2382,8 @@ int read_line(char *buf, int size)
|
|||||||
if (feof(cur_file->file))
|
if (feof(cur_file->file))
|
||||||
{
|
{
|
||||||
found_eof:
|
found_eof:
|
||||||
if (cur_file->file != stdin){
|
if (cur_file->file != stdin)
|
||||||
|
{
|
||||||
my_fclose(cur_file->file, MYF(0));
|
my_fclose(cur_file->file, MYF(0));
|
||||||
cur_file->file= 0;
|
cur_file->file= 0;
|
||||||
}
|
}
|
||||||
|
@ -9,6 +9,8 @@ NULL
|
|||||||
drop table if exists t1;
|
drop table if exists t1;
|
||||||
create table t1 (b char(0) not null);
|
create table t1 (b char(0) not null);
|
||||||
create table if not exists t1 (b char(0) not null);
|
create table if not exists t1 (b char(0) not null);
|
||||||
|
Warnings:
|
||||||
|
Note 1050 Table 't1' already exists
|
||||||
insert into t1 values (""),(null);
|
insert into t1 values (""),(null);
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'b' at row 2
|
Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'b' at row 2
|
||||||
@ -244,9 +246,13 @@ create table t1 select x'4132';
|
|||||||
drop table t1;
|
drop table t1;
|
||||||
create table t1 select 1,2,3;
|
create table t1 select 1,2,3;
|
||||||
create table if not exists t1 select 1,2;
|
create table if not exists t1 select 1,2;
|
||||||
|
Warnings:
|
||||||
|
Note 1050 Table 't1' already exists
|
||||||
create table if not exists t1 select 1,2,3,4;
|
create table if not exists t1 select 1,2,3,4;
|
||||||
ERROR 21S01: Column count doesn't match value count at row 1
|
ERROR 21S01: Column count doesn't match value count at row 1
|
||||||
create table if not exists t1 select 1;
|
create table if not exists t1 select 1;
|
||||||
|
Warnings:
|
||||||
|
Note 1050 Table 't1' already exists
|
||||||
select * from t1;
|
select * from t1;
|
||||||
1 2 3
|
1 2 3
|
||||||
1 2 3
|
1 2 3
|
||||||
@ -255,9 +261,13 @@ select * from t1;
|
|||||||
drop table t1;
|
drop table t1;
|
||||||
create table t1 select 1,2,3;
|
create table t1 select 1,2,3;
|
||||||
create table if not exists t1 select 1,2;
|
create table if not exists t1 select 1,2;
|
||||||
|
Warnings:
|
||||||
|
Note 1050 Table 't1' already exists
|
||||||
create table if not exists t1 select 1,2,3,4;
|
create table if not exists t1 select 1,2,3,4;
|
||||||
ERROR 21S01: Column count doesn't match value count at row 1
|
ERROR 21S01: Column count doesn't match value count at row 1
|
||||||
create table if not exists t1 select 1;
|
create table if not exists t1 select 1;
|
||||||
|
Warnings:
|
||||||
|
Note 1050 Table 't1' already exists
|
||||||
select * from t1;
|
select * from t1;
|
||||||
1 2 3
|
1 2 3
|
||||||
1 2 3
|
1 2 3
|
||||||
@ -269,6 +279,7 @@ insert into t1 values (1,1);
|
|||||||
create table if not exists t1 select 2;
|
create table if not exists t1 select 2;
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1364 Field 'a' doesn't have a default value
|
Warning 1364 Field 'a' doesn't have a default value
|
||||||
|
Note 1050 Table 't1' already exists
|
||||||
select * from t1;
|
select * from t1;
|
||||||
a b
|
a b
|
||||||
1 1
|
1 1
|
||||||
@ -276,6 +287,7 @@ a b
|
|||||||
create table if not exists t1 select 3 as 'a',4 as 'b';
|
create table if not exists t1 select 3 as 'a',4 as 'b';
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1364 Field 'a' doesn't have a default value
|
Warning 1364 Field 'a' doesn't have a default value
|
||||||
|
Note 1050 Table 't1' already exists
|
||||||
create table if not exists t1 select 3 as 'a',3 as 'b';
|
create table if not exists t1 select 3 as 'a',3 as 'b';
|
||||||
ERROR 23000: Duplicate entry '3' for key 1
|
ERROR 23000: Duplicate entry '3' for key 1
|
||||||
select * from t1;
|
select * from t1;
|
||||||
@ -609,6 +621,19 @@ create table test.t1 like x;
|
|||||||
ERROR 42000: Incorrect database name 'NULL'
|
ERROR 42000: Incorrect database name 'NULL'
|
||||||
drop table if exists test.t1;
|
drop table if exists test.t1;
|
||||||
create database mysqltest;
|
create database mysqltest;
|
||||||
|
create database if not exists mysqltest character set latin2;
|
||||||
|
Warnings:
|
||||||
|
Note 1007 Can't create database 'mysqltest'; database exists
|
||||||
|
show create database mysqltest;
|
||||||
|
Database Create Database
|
||||||
|
mysqltest CREATE DATABASE `mysqltest` /*!40100 DEFAULT CHARACTER SET latin1 */
|
||||||
|
drop database mysqltest;
|
||||||
|
use test;
|
||||||
|
create table t1 (a int);
|
||||||
|
create table if not exists t1 (a int);
|
||||||
|
Warnings:
|
||||||
|
Note 1050 Table 't1' already exists
|
||||||
|
drop table t1;
|
||||||
use mysqltest;
|
use mysqltest;
|
||||||
create view v1 as select 'foo' from dual;
|
create view v1 as select 'foo' from dual;
|
||||||
create table t1 like v1;
|
create table t1 like v1;
|
||||||
|
@ -1719,6 +1719,17 @@ select * from t1;
|
|||||||
a
|
a
|
||||||
42
|
42
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
create table t1 (a int not null, b int not null, c blob not null, d int not null, e int, primary key (a,b,c(255),d)) engine=innodb;
|
||||||
|
insert into t1 values (2,2,"b",2,2),(1,1,"a",1,1),(3,3,"ab",3,3);
|
||||||
|
select * from t1 order by a,b,c,d;
|
||||||
|
a b c d e
|
||||||
|
1 1 a 1 1
|
||||||
|
2 2 b 2 2
|
||||||
|
3 3 ab 3 3
|
||||||
|
explain select * from t1 order by a,b,c,d;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using filesort
|
||||||
|
drop table t1;
|
||||||
create table t1 (x bigint unsigned not null primary key) engine=innodb;
|
create table t1 (x bigint unsigned not null primary key) engine=innodb;
|
||||||
insert into t1(x) values (0xfffffffffffffff0),(0xfffffffffffffff1);
|
insert into t1(x) values (0xfffffffffffffff0),(0xfffffffffffffff1);
|
||||||
select * from t1;
|
select * from t1;
|
||||||
|
@ -23,6 +23,8 @@ a b
|
|||||||
6 g
|
6 g
|
||||||
create TEMPORARY TABLE t2 engine=heap select * from t1;
|
create TEMPORARY TABLE t2 engine=heap select * from t1;
|
||||||
create TEMPORARY TABLE IF NOT EXISTS t2 (a int) engine=heap;
|
create TEMPORARY TABLE IF NOT EXISTS t2 (a int) engine=heap;
|
||||||
|
Warnings:
|
||||||
|
Note 1050 Table 't2' already exists
|
||||||
CREATE TEMPORARY TABLE t1 (a int not null, b char (10) not null);
|
CREATE TEMPORARY TABLE t1 (a int not null, b char (10) not null);
|
||||||
ERROR 42S01: Table 't1' already exists
|
ERROR 42S01: Table 't1' already exists
|
||||||
ALTER TABLE t1 RENAME t2;
|
ALTER TABLE t1 RENAME t2;
|
||||||
|
@ -63,9 +63,11 @@ show count(*) warnings;
|
|||||||
1
|
1
|
||||||
create table t1(id int);
|
create table t1(id int);
|
||||||
create table if not exists t1(id int);
|
create table if not exists t1(id int);
|
||||||
|
Warnings:
|
||||||
|
Note 1050 Table 't1' already exists
|
||||||
select @@warning_count;
|
select @@warning_count;
|
||||||
@@warning_count
|
@@warning_count
|
||||||
0
|
1
|
||||||
drop table t1;
|
drop table t1;
|
||||||
create table t1(a tinyint, b int not null, c date, d char(5));
|
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 ',';
|
load data infile '../../std_data/warnings_loaddata.dat' into table t1 fields terminated by ',';
|
||||||
|
@ -533,4 +533,16 @@ create view v1 as select 'foo' from dual;
|
|||||||
create table t1 like v1;
|
create table t1 like v1;
|
||||||
drop view v1;
|
drop view v1;
|
||||||
drop database mysqltest;
|
drop database mysqltest;
|
||||||
|
# Bug #6008 MySQL does not create warnings when
|
||||||
|
# creating database and using IF NOT EXISTS
|
||||||
|
#
|
||||||
|
create database mysqltest;
|
||||||
|
create database if not exists mysqltest character set latin2;
|
||||||
|
show create database mysqltest;
|
||||||
|
drop database mysqltest;
|
||||||
|
use test;
|
||||||
|
create table t1 (a int);
|
||||||
|
create table if not exists t1 (a int);
|
||||||
|
drop table t1;
|
||||||
|
|
||||||
# End of 4.1 tests
|
# End of 4.1 tests
|
||||||
|
@ -1249,6 +1249,16 @@ insert into t1 values (42);
|
|||||||
select * from t1;
|
select * from t1;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug #13025 Server crash during filesort
|
||||||
|
#
|
||||||
|
|
||||||
|
create table t1 (a int not null, b int not null, c blob not null, d int not null, e int, primary key (a,b,c(255),d)) engine=innodb;
|
||||||
|
insert into t1 values (2,2,"b",2,2),(1,1,"a",1,1),(3,3,"ab",3,3);
|
||||||
|
select * from t1 order by a,b,c,d;
|
||||||
|
explain select * from t1 order by a,b,c,d;
|
||||||
|
drop table t1;
|
||||||
|
|
||||||
# End of 4.1 tests
|
# End of 4.1 tests
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -466,7 +466,7 @@ static ha_rows find_all_keys(SORTPARAM *param, SQL_SELECT *select,
|
|||||||
my_store_ptr(ref_pos,ref_length,record); // Position to row
|
my_store_ptr(ref_pos,ref_length,record); // Position to row
|
||||||
record+= sort_form->s->db_record_offset;
|
record+= sort_form->s->db_record_offset;
|
||||||
}
|
}
|
||||||
else
|
else if (!error)
|
||||||
file->position(sort_form->record[0]);
|
file->position(sort_form->record[0]);
|
||||||
}
|
}
|
||||||
if (error && error != HA_ERR_RECORD_DELETED)
|
if (error && error != HA_ERR_RECORD_DELETED)
|
||||||
|
@ -1017,8 +1017,8 @@ longlong Item_func_interval::val_int()
|
|||||||
1 got error
|
1 got error
|
||||||
*/
|
*/
|
||||||
|
|
||||||
bool
|
bool Item_func_between::fix_fields(THD *thd, struct st_table_list *tables,
|
||||||
Item_func_between::fix_fields(THD *thd, Item **ref)
|
Item **ref)
|
||||||
{
|
{
|
||||||
if (Item_func_opt_neg::fix_fields(thd, ref))
|
if (Item_func_opt_neg::fix_fields(thd, ref))
|
||||||
return 1;
|
return 1;
|
||||||
@ -1028,8 +1028,9 @@ Item_func_between::fix_fields(THD *thd, Item **ref)
|
|||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
/* not_null_tables_cache == union(T1(e), intersection(T1(e1),T1(e2))) */
|
/* not_null_tables_cache == union(T1(e), intersection(T1(e1),T1(e2))) */
|
||||||
not_null_tables_cache= args[0]->not_null_tables() |
|
not_null_tables_cache= (args[0]->not_null_tables() |
|
||||||
(args[1]->not_null_tables() & args[2]->not_null_tables());
|
(args[1]->not_null_tables() &
|
||||||
|
args[2]->not_null_tables()));
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -1330,8 +1331,8 @@ Item_func_if::fix_fields(THD *thd, Item **ref)
|
|||||||
if (Item_func::fix_fields(thd, ref))
|
if (Item_func::fix_fields(thd, ref))
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
not_null_tables_cache= (args[1]->not_null_tables()
|
not_null_tables_cache= (args[1]->not_null_tables() &
|
||||||
& args[2]->not_null_tables());
|
args[2]->not_null_tables());
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -437,7 +437,11 @@ bool mysql_create_db(THD *thd, char *db, HA_CREATE_INFO *create_info,
|
|||||||
error= -1;
|
error= -1;
|
||||||
goto exit;
|
goto exit;
|
||||||
}
|
}
|
||||||
result= 0;
|
push_warning_printf(thd, MYSQL_ERROR::WARN_LEVEL_NOTE,
|
||||||
|
ER_DB_CREATE_EXISTS, ER(ER_DB_CREATE_EXISTS), db);
|
||||||
|
error= 0;
|
||||||
|
send_ok(thd);
|
||||||
|
goto exit;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -13073,12 +13073,12 @@ static bool change_group_ref(THD *thd, Item_func *expr, ORDER *group_list,
|
|||||||
{
|
{
|
||||||
Name_resolution_context *context= &thd->lex->current_select->context;
|
Name_resolution_context *context= &thd->lex->current_select->context;
|
||||||
Item **arg,**arg_end;
|
Item **arg,**arg_end;
|
||||||
|
bool arg_changed= FALSE;
|
||||||
for (arg= expr->arguments(),
|
for (arg= expr->arguments(),
|
||||||
arg_end= expr->arguments()+expr->arg_count;
|
arg_end= expr->arguments()+expr->arg_count;
|
||||||
arg != arg_end; arg++)
|
arg != arg_end; arg++)
|
||||||
{
|
{
|
||||||
Item *item= *arg;
|
Item *item= *arg;
|
||||||
bool arg_changed= FALSE;
|
|
||||||
if (item->type() == Item::FIELD_ITEM || item->type() == Item::REF_ITEM)
|
if (item->type() == Item::FIELD_ITEM || item->type() == Item::REF_ITEM)
|
||||||
{
|
{
|
||||||
ORDER *group_tmp;
|
ORDER *group_tmp;
|
||||||
@ -13100,11 +13100,11 @@ static bool change_group_ref(THD *thd, Item_func *expr, ORDER *group_list,
|
|||||||
if (change_group_ref(thd, (Item_func *) item, group_list, &arg_changed))
|
if (change_group_ref(thd, (Item_func *) item, group_list, &arg_changed))
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
if (arg_changed)
|
}
|
||||||
{
|
if (arg_changed)
|
||||||
expr->maybe_null= 1;
|
{
|
||||||
*changed= TRUE;
|
expr->maybe_null= 1;
|
||||||
}
|
*changed= TRUE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -1562,6 +1562,9 @@ bool mysql_create_table(THD *thd,const char *db, const char *table_name,
|
|||||||
if (create_info->options & HA_LEX_CREATE_IF_NOT_EXISTS)
|
if (create_info->options & HA_LEX_CREATE_IF_NOT_EXISTS)
|
||||||
{
|
{
|
||||||
create_info->table_existed= 1; // Mark that table existed
|
create_info->table_existed= 1; // Mark that table existed
|
||||||
|
push_warning_printf(thd, MYSQL_ERROR::WARN_LEVEL_NOTE,
|
||||||
|
ER_TABLE_EXISTS_ERROR, ER(ER_TABLE_EXISTS_ERROR),
|
||||||
|
alias);
|
||||||
DBUG_RETURN(FALSE);
|
DBUG_RETURN(FALSE);
|
||||||
}
|
}
|
||||||
my_error(ER_TABLE_EXISTS_ERROR, MYF(0), alias);
|
my_error(ER_TABLE_EXISTS_ERROR, MYF(0), alias);
|
||||||
@ -1575,12 +1578,8 @@ bool mysql_create_table(THD *thd,const char *db, const char *table_name,
|
|||||||
if (!access(path,F_OK))
|
if (!access(path,F_OK))
|
||||||
{
|
{
|
||||||
if (create_info->options & HA_LEX_CREATE_IF_NOT_EXISTS)
|
if (create_info->options & HA_LEX_CREATE_IF_NOT_EXISTS)
|
||||||
{
|
goto warn;
|
||||||
create_info->table_existed= 1; // Mark that table existed
|
my_error(ER_TABLE_EXISTS_ERROR,MYF(0),table_name);
|
||||||
error= FALSE;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
my_error(ER_TABLE_EXISTS_ERROR, MYF(0), table_name);
|
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1603,12 +1602,8 @@ bool mysql_create_table(THD *thd,const char *db, const char *table_name,
|
|||||||
DBUG_PRINT("info", ("Table with same name already existed in handler"));
|
DBUG_PRINT("info", ("Table with same name already existed in handler"));
|
||||||
|
|
||||||
if (create_if_not_exists)
|
if (create_if_not_exists)
|
||||||
{
|
goto warn;
|
||||||
create_info->table_existed= 1; // Mark that table existed
|
my_error(ER_TABLE_EXISTS_ERROR,MYF(0),table_name);
|
||||||
error= FALSE;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
my_error(ER_TABLE_EXISTS_ERROR, MYF(0), table_name);
|
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1641,6 +1636,14 @@ bool mysql_create_table(THD *thd,const char *db, const char *table_name,
|
|||||||
mysql_bin_log.write(&qinfo);
|
mysql_bin_log.write(&qinfo);
|
||||||
}
|
}
|
||||||
error= FALSE;
|
error= FALSE;
|
||||||
|
goto end;
|
||||||
|
|
||||||
|
warn:
|
||||||
|
error= 0;
|
||||||
|
push_warning_printf(thd, MYSQL_ERROR::WARN_LEVEL_NOTE,
|
||||||
|
ER_TABLE_EXISTS_ERROR, ER(ER_TABLE_EXISTS_ERROR),
|
||||||
|
alias);
|
||||||
|
create_info->table_existed= 1; // Mark that table existed
|
||||||
|
|
||||||
end:
|
end:
|
||||||
VOID(pthread_mutex_unlock(&LOCK_open));
|
VOID(pthread_mutex_unlock(&LOCK_open));
|
||||||
|
Reference in New Issue
Block a user