mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
Merge sgluhov@bk-internal.mysql.com:/home/bk/mysql-4.1
into mysql.com:/home/gluh/MySQL/Bugs/4.1.6008
This commit is contained in:
@@ -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 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
|
||||||
@@ -232,9 +234,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
|
||||||
@@ -243,9 +249,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
|
||||||
@@ -255,11 +265,15 @@ drop table t1;
|
|||||||
create table t1 (a int not null, b int, primary key (a));
|
create table t1 (a int not null, b int, primary key (a));
|
||||||
insert into t1 values (1,1);
|
insert into t1 values (1,1);
|
||||||
create table if not exists t1 select 2;
|
create table if not exists t1 select 2;
|
||||||
|
Warnings:
|
||||||
|
Note 1050 Table 't1' already exists
|
||||||
select * from t1;
|
select * from t1;
|
||||||
a b
|
a b
|
||||||
1 1
|
1 1
|
||||||
0 2
|
0 2
|
||||||
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:
|
||||||
|
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;
|
||||||
@@ -593,3 +607,17 @@ drop database mysqltest;
|
|||||||
create table test.t1 like x;
|
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 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;
|
||||||
|
@@ -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 ',';
|
||||||
|
@@ -513,4 +513,17 @@ create table test.t1 like x;
|
|||||||
drop table if exists test.t1;
|
drop table if exists test.t1;
|
||||||
--enable_warnings
|
--enable_warnings
|
||||||
|
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
@@ -427,7 +427,11 @@ int 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
|
||||||
{
|
{
|
||||||
|
@@ -1360,6 +1360,9 @@ int 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(0);
|
DBUG_RETURN(0);
|
||||||
}
|
}
|
||||||
my_error(ER_TABLE_EXISTS_ERROR, MYF(0), alias);
|
my_error(ER_TABLE_EXISTS_ERROR, MYF(0), alias);
|
||||||
@@ -1373,11 +1376,7 @@ int 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
|
|
||||||
error= 0;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
my_error(ER_TABLE_EXISTS_ERROR,MYF(0),table_name);
|
my_error(ER_TABLE_EXISTS_ERROR,MYF(0),table_name);
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
@@ -1401,11 +1400,7 @@ int 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
|
|
||||||
error= 0;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
my_error(ER_TABLE_EXISTS_ERROR,MYF(0),table_name);
|
my_error(ER_TABLE_EXISTS_ERROR,MYF(0),table_name);
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
@@ -1447,6 +1442,15 @@ int mysql_create_table(THD *thd,const char *db, const char *table_name,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
error=0;
|
error=0;
|
||||||
|
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));
|
||||||
start_waiting_global_read_lock(thd);
|
start_waiting_global_read_lock(thd);
|
||||||
|
Reference in New Issue
Block a user