summaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
authorunknown <antony@ltantony.mysql.com>2005-05-08 23:24:33 +0100
committerunknown <antony@ltantony.mysql.com>2005-05-08 23:24:33 +0100
commit4d1c68f8d1100239b10aa7cfa08fe60d642c1424 (patch)
treeafbac4f8450273b17337ddd8bef00048ca7e3986 /sql
parent1cdcc4f6b1a3241cdc71d8b648828741220a0733 (diff)
parentcdfc786f693f83396d1588859ee698b27ad1a4f9 (diff)
downloadmariadb-git-4d1c68f8d1100239b10aa7cfa08fe60d642c1424.tar.gz
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
Diffstat (limited to 'sql')
-rw-r--r--sql/sql_table.cc23
-rw-r--r--sql/sql_yacc.yy7
2 files changed, 21 insertions, 9 deletions
diff --git a/sql/sql_table.cc b/sql/sql_table.cc
index cef480fadde..e065e5dfc58 100644
--- a/sql/sql_table.cc
+++ b/sql/sql_table.cc
@@ -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;
+ 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();
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))
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_part_length));
}
if (key_parts.elements)
- key_list.push_back(new Key(key_info->flags & HA_NOSAME ?
- (!my_strcasecmp(key_name, "PRIMARY") ?
- Key::PRIMARY : Key::UNIQUE) :
- (key_info->flags & HA_FULLTEXT ?
- Key::FULLTEXT : Key::MULTIPLE),
- key_name,key_parts));
+ key_list.push_back(new Key(key_type,key_name,key_parts));
}
key_it.rewind();
{
diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy
index 8c5c4d61d1d..68d08b353d9 100644
--- a/sql/sql_yacc.yy
+++ b/sql/sql_yacc.yy
@@ -1537,9 +1537,10 @@ select_part2:
select_into:
limit_clause {}
+ | into
| select_from
- | opt_into select_from
- | select_from opt_into;
+ | into select_from
+ | select_from into;
select_from:
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));
};
-opt_into:
+into:
INTO OUTFILE TEXT_STRING
{
THD *thd= current_thd;