From 7afb6b58907754697908be4edeee311c56d5f944 Mon Sep 17 00:00:00 2001
From: unknown <malff/marcsql@weblab.(none)>
Date: Mon, 11 Jun 2007 18:08:51 -0600
Subject: [PATCH] Resolved merge conflicts

---
 sql/field.cc  |  2 +-
 sql/field.h   |  2 +-
 sql/sql_lex.h | 37 +++++++++++++++++++++++++++----------
 3 files changed, 29 insertions(+), 12 deletions(-)

diff --git a/sql/field.cc b/sql/field.cc
index 9f412e99223..3e4d27b2e38 100644
--- a/sql/field.cc
+++ b/sql/field.cc
@@ -8264,7 +8264,7 @@ Field *Field_bit::new_key_field(MEM_ROOT *root,
 }
 
 
-uint Field_bit::is_equal(create_field *new_field) 
+uint Field_bit::is_equal(Create_field *new_field) 
 {
   return (new_field->sql_type == real_type() &&
           new_field->length == max_display_length());
diff --git a/sql/field.h b/sql/field.h
index 34ba540d2ea..7a64b04d5e5 100644
--- a/sql/field.h
+++ b/sql/field.h
@@ -1563,7 +1563,7 @@ public:
             bit_ptr == ((Field_bit *)field)->bit_ptr &&
             bit_ofs == ((Field_bit *)field)->bit_ofs);
   }
-  uint is_equal(create_field *new_field);
+  uint is_equal(Create_field *new_field);
   void move_field_offset(my_ptrdiff_t ptr_diff)
   {
     Field::move_field_offset(ptr_diff);
diff --git a/sql/sql_lex.h b/sql/sql_lex.h
index 4d056643e51..2cecf282e7f 100644
--- a/sql/sql_lex.h
+++ b/sql/sql_lex.h
@@ -830,6 +830,13 @@ inline bool st_select_lex_unit::is_union ()
 #define ALTER_REMOVE_PARTITIONING (1L << 25)
 #define ALTER_FOREIGN_KEY         (1L << 26)
 
+enum enum_alter_table_change_level
+{
+  ALTER_TABLE_METADATA_ONLY= 0,
+  ALTER_TABLE_DATA_CHANGED= 1,
+  ALTER_TABLE_INDEX_CHANGED= 2
+};
+
 /**
   @brief Parsing data for CREATE or ALTER TABLE.
 
@@ -840,21 +847,28 @@ inline bool st_select_lex_unit::is_union ()
 class Alter_info
 {
 public:
-  List<Alter_drop>            drop_list;
-  List<Alter_column>          alter_list;
-  List<Key>                   key_list;
-  List<Create_field>          create_list;
-  uint                        flags;
-  enum enum_enable_or_disable keys_onoff;
-  enum tablespace_op_type     tablespace_op;
-  List<char>                  partition_names;
-  uint                        no_parts;
+  List<Alter_drop>              drop_list;
+  List<Alter_column>            alter_list;
+  List<Key>                     key_list;
+  List<Create_field>            create_list;
+  uint                          flags;
+  enum enum_enable_or_disable   keys_onoff;
+  enum tablespace_op_type       tablespace_op;
+  List<char>                    partition_names;
+  uint                          no_parts;
+  enum_alter_table_change_level change_level;
+  Create_field                 *datetime_field;
+  bool                          error_if_not_empty;  
+    
 
   Alter_info() :
     flags(0),
     keys_onoff(LEAVE_AS_IS),
     tablespace_op(NO_TABLESPACE_OP),
-    no_parts(0)
+    no_parts(0),
+    change_level(ALTER_TABLE_METADATA_ONLY),
+    datetime_field(NULL),
+    error_if_not_empty(FALSE)
   {}
 
   void reset()
@@ -868,6 +882,9 @@ public:
     tablespace_op= NO_TABLESPACE_OP;
     no_parts= 0;
     partition_names.empty();
+    change_level= ALTER_TABLE_METADATA_ONLY;
+    datetime_field= 0;
+    error_if_not_empty= FALSE;
   }
   /**
     Construct a copy of this object to be used for mysql_alter_table