mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
Merge acurtis@bk-internal.mysql.com:/home/bk/mysql-4.0
into ltantony.mysql.com:/usr/home/antony/work2/megapatch-4.0 BitKeeper/etc/logging_ok: auto-union
This commit is contained in:
5
mysql-test/include/have_outfile.inc
Normal file
5
mysql-test/include/have_outfile.inc
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
-- require r/have_outfile.require
|
||||||
|
disable_query_log;
|
||||||
|
select load_file(concat(@tmpdir,"/outfile.test"));
|
||||||
|
--exec rm $MYSQL_TEST_DIR/var/tmp/outfile.test
|
||||||
|
enable_query_log;
|
1
mysql-test/include/test_outfile.inc
Normal file
1
mysql-test/include/test_outfile.inc
Normal file
@ -0,0 +1 @@
|
|||||||
|
eval select "Outfile OK" into outfile "$MYSQL_TEST_DIR/var/tmp/outfile.test";
|
@ -386,3 +386,23 @@ Incorrect table name 't1\\'
|
|||||||
rename table t1 to `t1\\`;
|
rename table t1 to `t1\\`;
|
||||||
Incorrect table name 't1\\'
|
Incorrect table name 't1\\'
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
drop table if exists t1, t2;
|
||||||
|
create table t1 ( a varchar(10) not null primary key ) engine=myisam;
|
||||||
|
create table t2 ( a varchar(10) not null primary key ) engine=merge union=(t1);
|
||||||
|
flush tables;
|
||||||
|
alter table t1 modify a varchar(10);
|
||||||
|
show create table t2;
|
||||||
|
Table Create Table
|
||||||
|
t2 CREATE TABLE `t2` (
|
||||||
|
`a` varchar(10) NOT NULL default '',
|
||||||
|
PRIMARY KEY (`a`)
|
||||||
|
) TYPE=MRG_MyISAM UNION=(t1)
|
||||||
|
flush tables;
|
||||||
|
alter table t1 modify a varchar(10) not null;
|
||||||
|
show create table t2;
|
||||||
|
Table Create Table
|
||||||
|
t2 CREATE TABLE `t2` (
|
||||||
|
`a` varchar(10) NOT NULL default '',
|
||||||
|
PRIMARY KEY (`a`)
|
||||||
|
) TYPE=MRG_MyISAM UNION=(t1)
|
||||||
|
drop table if exists t1, t2;
|
||||||
|
3
mysql-test/r/have_outfile.require
Normal file
3
mysql-test/r/have_outfile.require
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
load_file(concat(@tmpdir,"/outfile.test"))
|
||||||
|
Outfile OK
|
||||||
|
|
BIN
mysql-test/r/outfile.result
Normal file
BIN
mysql-test/r/outfile.result
Normal file
Binary file not shown.
@ -254,3 +254,16 @@ alter table t1 rename to `t1\\`;
|
|||||||
rename table t1 to `t1\\`;
|
rename table t1 to `t1\\`;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
|
#
|
||||||
|
# BUG#6236 - ALTER TABLE MODIFY should set implicit NOT NULL on PK columns
|
||||||
|
#
|
||||||
|
drop table if exists t1, t2;
|
||||||
|
create table t1 ( a varchar(10) not null primary key ) engine=myisam;
|
||||||
|
create table t2 ( a varchar(10) not null primary key ) engine=merge union=(t1);
|
||||||
|
flush tables;
|
||||||
|
alter table t1 modify a varchar(10);
|
||||||
|
show create table t2;
|
||||||
|
flush tables;
|
||||||
|
alter table t1 modify a varchar(10) not null;
|
||||||
|
show create table t2;
|
||||||
|
drop table if exists t1, t2;
|
||||||
|
@ -1,23 +1,47 @@
|
|||||||
|
disable_query_log;
|
||||||
|
-- source include/test_outfile.inc
|
||||||
|
eval set @tmpdir="$MYSQL_TEST_DIR/var/tmp";
|
||||||
|
enable_query_log;
|
||||||
|
-- source include/have_outfile.inc
|
||||||
#
|
#
|
||||||
# test of into outfile|dumpfile
|
# test of into outfile|dumpfile
|
||||||
#
|
#
|
||||||
|
|
||||||
# We need to check that we have 'file' privilege.
|
drop table if exists t1;
|
||||||
|
create table t1 (`a` blob);
|
||||||
|
insert into t1 values("hello world"),("Hello mars"),(NULL);
|
||||||
|
disable_query_log;
|
||||||
|
eval select * into outfile "$MYSQL_TEST_DIR/var/tmp/outfile-test.1" from t1;
|
||||||
|
enable_query_log;
|
||||||
|
select load_file(concat(@tmpdir,"/outfile-test.1"));
|
||||||
|
disable_query_log;
|
||||||
|
eval select * into dumpfile "$MYSQL_TEST_DIR/var/tmp/outfile-test.2" from t1 limit 1;
|
||||||
|
enable_query_log;
|
||||||
|
select load_file(concat(@tmpdir,"/outfile-test.2"));
|
||||||
|
disable_query_log;
|
||||||
|
eval select * into dumpfile "$MYSQL_TEST_DIR/var/tmp/outfile-test.3" from t1 where a is null;
|
||||||
|
enable_query_log;
|
||||||
|
select load_file(concat(@tmpdir,"/outfile-test.3"));
|
||||||
|
|
||||||
#drop table if exists t1;
|
# the following should give errors
|
||||||
#create table t1 (`a` blob);
|
|
||||||
#insert into t1 values("hello world"),("Hello mars"),(NULL);
|
disable_query_log;
|
||||||
#select * into outfile "/tmp/select-test.1" from t1;
|
--error 1086
|
||||||
#select load_file("/tmp/select-test.1");
|
eval select * into outfile "$MYSQL_TEST_DIR/var/tmp/outfile-test.1" from t1;
|
||||||
#select * into dumpfile "/tmp/select-test.2" from t1 limit 1;
|
--error 1086
|
||||||
#select load_file("/tmp/select-test.2");
|
eval select * into dumpfile "$MYSQL_TEST_DIR/var/tmp/outfile-test.2" from t1;
|
||||||
#select * into dumpfile "/tmp/select-test.3" from t1 where a is null;
|
--error 1086
|
||||||
#select load_file("/tmp/select-test.3");
|
eval select * into dumpfile "$MYSQL_TEST_DIR/var/tmp/outfile-test.3" from t1;
|
||||||
#
|
enable_query_log;
|
||||||
## the following should give errors
|
select load_file(concat(@tmpdir,"/outfile-test.not-exist"));
|
||||||
#
|
--exec rm $MYSQL_TEST_DIR/var/tmp/outfile-test.1
|
||||||
#select * into outfile "/tmp/select-test.1" from t1;
|
--exec rm $MYSQL_TEST_DIR/var/tmp/outfile-test.2
|
||||||
#select * into dumpfile "/tmp/select-test.1" from t1;
|
--exec rm $MYSQL_TEST_DIR/var/tmp/outfile-test.3
|
||||||
#select * into dumpfile "/tmp/select-test.99" from t1;
|
drop table t1;
|
||||||
#select load_file("/tmp/select-test.not-exist");
|
|
||||||
#drop table t1;
|
# Bug#8191
|
||||||
|
disable_query_log;
|
||||||
|
eval select 1 into outfile "$MYSQL_TEST_DIR/var/tmp/outfile-test.4";
|
||||||
|
enable_query_log;
|
||||||
|
select load_file(concat(@tmpdir,"/outfile-test.4"));
|
||||||
|
--exec rm $MYSQL_TEST_DIR/var/tmp/outfile-test.4
|
||||||
|
@ -1795,6 +1795,11 @@ int mysql_alter_table(THD *thd,char *new_db, char *new_name,
|
|||||||
}
|
}
|
||||||
|
|
||||||
KEY_PART_INFO *key_part= key_info->key_part;
|
KEY_PART_INFO *key_part= key_info->key_part;
|
||||||
|
enum Key::Keytype key_type= key_info->flags & HA_NOSAME ?
|
||||||
|
(!my_strcasecmp(key_name, "PRIMARY") ?
|
||||||
|
Key::PRIMARY : Key::UNIQUE) :
|
||||||
|
(key_info->flags & HA_FULLTEXT ?
|
||||||
|
Key::FULLTEXT : Key::MULTIPLE);
|
||||||
key_parts.empty();
|
key_parts.empty();
|
||||||
for (uint j=0 ; j < key_info->key_parts ; j++,key_part++)
|
for (uint j=0 ; j < key_info->key_parts ; j++,key_part++)
|
||||||
{
|
{
|
||||||
@ -1824,16 +1829,22 @@ int mysql_alter_table(THD *thd,char *new_db, char *new_name,
|
|||||||
cfield->pack_length <= key_part_length))
|
cfield->pack_length <= key_part_length))
|
||||||
key_part_length=0; // Use whole field
|
key_part_length=0; // Use whole field
|
||||||
}
|
}
|
||||||
|
if (!(cfield->flags & NOT_NULL_FLAG))
|
||||||
|
{
|
||||||
|
if (key_type == Key::PRIMARY)
|
||||||
|
{
|
||||||
|
/* Implicitly set primary key fields to NOT NULL for ISO conf. */
|
||||||
|
cfield->flags|= NOT_NULL_FLAG;
|
||||||
|
cfield->pack_flag&= ~FIELDFLAG_MAYBE_NULL;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
key_info->flags|= HA_NULL_PART_KEY;
|
||||||
|
}
|
||||||
key_parts.push_back(new key_part_spec(cfield->field_name,
|
key_parts.push_back(new key_part_spec(cfield->field_name,
|
||||||
key_part_length));
|
key_part_length));
|
||||||
}
|
}
|
||||||
if (key_parts.elements)
|
if (key_parts.elements)
|
||||||
key_list.push_back(new Key(key_info->flags & HA_NOSAME ?
|
key_list.push_back(new Key(key_type,key_name,key_parts));
|
||||||
(!my_strcasecmp(key_name, "PRIMARY") ?
|
|
||||||
Key::PRIMARY : Key::UNIQUE) :
|
|
||||||
(key_info->flags & HA_FULLTEXT ?
|
|
||||||
Key::FULLTEXT : Key::MULTIPLE),
|
|
||||||
key_name,key_parts));
|
|
||||||
}
|
}
|
||||||
key_it.rewind();
|
key_it.rewind();
|
||||||
{
|
{
|
||||||
|
@ -1537,9 +1537,10 @@ select_part2:
|
|||||||
|
|
||||||
select_into:
|
select_into:
|
||||||
limit_clause {}
|
limit_clause {}
|
||||||
|
| into
|
||||||
| select_from
|
| select_from
|
||||||
| opt_into select_from
|
| into select_from
|
||||||
| select_from opt_into;
|
| select_from into;
|
||||||
|
|
||||||
select_from:
|
select_from:
|
||||||
FROM join_table_list where_clause group_clause having_clause opt_order_clause limit_clause procedure_clause;
|
FROM join_table_list where_clause group_clause having_clause opt_order_clause limit_clause procedure_clause;
|
||||||
@ -2507,7 +2508,7 @@ procedure_item:
|
|||||||
$2->set_name($1,(uint) ((char*) lex->tok_end - $1));
|
$2->set_name($1,(uint) ((char*) lex->tok_end - $1));
|
||||||
};
|
};
|
||||||
|
|
||||||
opt_into:
|
into:
|
||||||
INTO OUTFILE TEXT_STRING
|
INTO OUTFILE TEXT_STRING
|
||||||
{
|
{
|
||||||
THD *thd= current_thd;
|
THD *thd= current_thd;
|
||||||
|
Reference in New Issue
Block a user