summaryrefslogtreecommitdiff
path: root/sql/sql_table.cc
diff options
context:
space:
mode:
Diffstat (limited to 'sql/sql_table.cc')
-rw-r--r--sql/sql_table.cc29
1 files changed, 7 insertions, 22 deletions
diff --git a/sql/sql_table.cc b/sql/sql_table.cc
index 74d28ede25f..0f6a750c7f5 100644
--- a/sql/sql_table.cc
+++ b/sql/sql_table.cc
@@ -3959,28 +3959,6 @@ mysql_prepare_create_table(THD *thd, HA_CREATE_INFO *create_info,
DBUG_RETURN(TRUE);
}
- switch (key->type) {
- case Key::UNIQUE:
- if (!key->period)
- break;
- /* Fall through:
- WITHOUT OVERLAPS forces fields to be NOT NULL
- */
- case Key::PRIMARY:
- /* Implicitly set primary key fields to NOT NULL for ISO conf. */
- if (!(sql_field->flags & NOT_NULL_FLAG))
- {
- /* Implicitly set primary key fields to NOT NULL for ISO conf. */
- sql_field->flags|= NOT_NULL_FLAG;
- sql_field->pack_flag&= ~FIELDFLAG_MAYBE_NULL;
- null_fields--;
- }
- break;
- default:
- // Fall through
- break;
- }
-
cols2.rewind();
switch(key->type) {
@@ -4018,6 +3996,13 @@ mysql_prepare_create_table(THD *thd, HA_CREATE_INFO *create_info,
*sql_field,
file))
DBUG_RETURN(TRUE);
+ if (!(sql_field->flags & NOT_NULL_FLAG))
+ {
+ /* Implicitly set primary key fields to NOT NULL for ISO conf. */
+ sql_field->flags|= NOT_NULL_FLAG;
+ sql_field->pack_flag&= ~FIELDFLAG_MAYBE_NULL;
+ null_fields--;
+ }
break;
case Key::MULTIPLE: