3478 magnus.blaudd@stripped 2012-04-19 [merge]
Merge trunk-cluster-base -> trunk-cluster-stage
modified:
include/mysql_com.h
mysql-test/r/tablespace.result
mysql-test/t/tablespace.test
sql/field.h
sql/handler.h
sql/lex.h
sql/sql_show.cc
sql/sql_table.cc
sql/sql_yacc.yy
sql/table.cc
sql/unireg.cc
3477 magnus.blaudd@stripped 2012-04-19
WL#6224 Adapt MySQL Cluster to 5.6
- Update .result files for rpl_ndb since rpl_change_topology.inc
now masks out the warning number in the warnings produced by
CHANGE MASTER
modified:
mysql-test/suite/rpl_ndb/r/rpl_ndb_UUID.result
mysql-test/suite/rpl_ndb/r/rpl_ndb_blob2.result
mysql-test/suite/rpl_ndb/r/rpl_ndb_commit_afterflush.result
mysql-test/suite/rpl_ndb/r/rpl_ndb_ddl.result
mysql-test/suite/rpl_ndb/r/rpl_ndb_delete_nowhere.result
mysql-test/suite/rpl_ndb/r/rpl_ndb_dist_priv.result
mysql-test/suite/rpl_ndb/r/rpl_ndb_extra_col_master.result
mysql-test/suite/rpl_ndb/r/rpl_ndb_extra_col_slave.result
mysql-test/suite/rpl_ndb/r/rpl_ndb_func003.result
mysql-test/suite/rpl_ndb/r/rpl_ndb_insert_ignore.result
mysql-test/suite/rpl_ndb/r/rpl_ndb_mixed_implicit_commit_binlog.result
mysql-test/suite/rpl_ndb/r/rpl_ndb_multi_update2.result
mysql-test/suite/rpl_ndb/r/rpl_ndb_multi_update3.result
mysql-test/suite/rpl_ndb/r/rpl_ndb_not_null.result
mysql-test/suite/rpl_ndb/r/rpl_ndb_relayrotate.result
mysql-test/suite/rpl_ndb/r/rpl_ndb_row_001.result
mysql-test/suite/rpl_ndb/r/rpl_ndb_row_basic.result
mysql-test/suite/rpl_ndb/r/rpl_ndb_sp003.result
mysql-test/suite/rpl_ndb/r/rpl_ndb_sp006.result
mysql-test/suite/rpl_ndb/r/rpl_ndb_trig004.result
mysql-test/suite/rpl_ndb/r/rpl_ndb_typeconv_all.result
mysql-test/suite/rpl_ndb/r/rpl_ndb_typeconv_lossy.result
mysql-test/suite/rpl_ndb/r/rpl_ndb_typeconv_nonlossy.result
mysql-test/suite/rpl_ndb/r/rpl_ndb_typeconv_strict.result
=== modified file 'include/mysql_com.h'
--- a/include/mysql_com.h 2012-04-11 12:33:47 +0000
+++ b/include/mysql_com.h 2012-04-19 11:55:46 +0000
@@ -119,10 +119,10 @@ enum enum_server_command
Was part of old online ALTER API, flag is now unused.
*/
#define FIELD_IS_RENAMED (1<< 21) /* Intern: Field is being renamed */
-#define FIELD_FLAGS_STORAGE_MEDIA 22 /* Field storage media, bit 22-23,
- reserved by MySQL Cluster */
-#define FIELD_FLAGS_COLUMN_FORMAT 24 /* Field column format, bit 24-25,
- reserved by MySQL Cluster */
+#define FIELD_FLAGS_STORAGE_MEDIA 22 /* Field storage media, bit 22-23 */
+#define FIELD_FLAGS_STORAGE_MEDIA_MASK (3 << FIELD_FLAGS_STORAGE_MEDIA)
+#define FIELD_FLAGS_COLUMN_FORMAT 24 /* Field column format, bit 24-25 */
+#define FIELD_FLAGS_COLUMN_FORMAT_MASK (3 << FIELD_FLAGS_COLUMN_FORMAT)
#define REFRESH_GRANT 1 /* Refresh grant tables */
#define REFRESH_LOG 2 /* Start on new log file */
=== modified file 'mysql-test/r/tablespace.result'
--- a/mysql-test/r/tablespace.result 2012-03-28 18:48:25 +0000
+++ b/mysql-test/r/tablespace.result 2012-04-19 11:55:46 +0000
@@ -98,15 +98,144 @@ Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) NOT NULL,
`b` int(11) DEFAULT NULL,
- `c` int(11) /*!50120 STORAGE DISK */ DEFAULT NULL,
- `d` int(11) NOT NULL /*!50120 STORAGE MEMORY */,
- `e` int(11) /*!50120 COLUMN_FORMAT DYNAMIC */ DEFAULT NULL,
- `f` int(11) /*!50120 COLUMN_FORMAT FIXED */ DEFAULT NULL,
+ `c` int(11) /*!50606 STORAGE DISK */ DEFAULT NULL,
+ `d` int(11) NOT NULL /*!50606 STORAGE MEMORY */,
+ `e` int(11) /*!50606 COLUMN_FORMAT DYNAMIC */ DEFAULT NULL,
+ `f` int(11) /*!50606 COLUMN_FORMAT FIXED */ DEFAULT NULL,
`g` int(11) DEFAULT NULL,
- `h` int(11) NOT NULL /*!50120 STORAGE DISK */ /*!50120 COLUMN_FORMAT DYNAMIC */,
- `i` int(11) /*!50120 STORAGE MEMORY */ /*!50120 COLUMN_FORMAT DYNAMIC */ DEFAULT NULL,
- `j` int(11) /*!50120 STORAGE DISK */ /*!50120 COLUMN_FORMAT FIXED */ DEFAULT NULL,
- `k` int(11) /*!50120 STORAGE MEMORY */ /*!50120 COLUMN_FORMAT FIXED */ DEFAULT NULL,
+ `h` int(11) NOT NULL /*!50606 STORAGE DISK */ /*!50606 COLUMN_FORMAT DYNAMIC */,
+ `i` int(11) /*!50606 STORAGE MEMORY */ /*!50606 COLUMN_FORMAT DYNAMIC */ DEFAULT NULL,
+ `j` int(11) /*!50606 STORAGE DISK */ /*!50606 COLUMN_FORMAT FIXED */ DEFAULT NULL,
+ `k` int(11) /*!50606 STORAGE MEMORY */ /*!50606 COLUMN_FORMAT FIXED */ DEFAULT NULL,
PRIMARY KEY (`a`)
) /*!50100 TABLESPACE the_tablespacename STORAGE DISK */ ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1;
+#
+# WL#3627 Add COLUMN_FORMAT and STORAGE for fields
+#
+CREATE TABLE t1 (
+a int STORAGE DISK,
+b int STORAGE MEMORY NOT NULL,
+c int COLUMN_FORMAT DYNAMIC,
+d int COLUMN_FORMAT FIXED,
+e int COLUMN_FORMAT DEFAULT,
+f int STORAGE DISK COLUMN_FORMAT DYNAMIC NOT NULL,
+g int STORAGE MEMORY COLUMN_FORMAT DYNAMIC,
+h int STORAGE DISK COLUMN_FORMAT FIXED,
+i int STORAGE MEMORY COLUMN_FORMAT FIXED
+);
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `a` int(11) /*!50606 STORAGE DISK */ DEFAULT NULL,
+ `b` int(11) NOT NULL /*!50606 STORAGE MEMORY */,
+ `c` int(11) /*!50606 COLUMN_FORMAT DYNAMIC */ DEFAULT NULL,
+ `d` int(11) /*!50606 COLUMN_FORMAT FIXED */ DEFAULT NULL,
+ `e` int(11) DEFAULT NULL,
+ `f` int(11) NOT NULL /*!50606 STORAGE DISK */ /*!50606 COLUMN_FORMAT DYNAMIC */,
+ `g` int(11) /*!50606 STORAGE MEMORY */ /*!50606 COLUMN_FORMAT DYNAMIC */ DEFAULT NULL,
+ `h` int(11) /*!50606 STORAGE DISK */ /*!50606 COLUMN_FORMAT FIXED */ DEFAULT NULL,
+ `i` int(11) /*!50606 STORAGE MEMORY */ /*!50606 COLUMN_FORMAT FIXED */ DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+ALTER TABLE t1
+ADD COLUMN j int STORAGE DISK,
+ADD COLUMN k int STORAGE MEMORY NOT NULL,
+ADD COLUMN l int COLUMN_FORMAT DYNAMIC,
+ADD COLUMN m int COLUMN_FORMAT FIXED,
+ADD COLUMN n int COLUMN_FORMAT DEFAULT,
+ADD COLUMN o int STORAGE DISK COLUMN_FORMAT DYNAMIC NOT NULL,
+ADD COLUMN p int STORAGE MEMORY COLUMN_FORMAT DYNAMIC,
+ADD COLUMN q int STORAGE DISK COLUMN_FORMAT FIXED,
+ADD COLUMN r int STORAGE MEMORY COLUMN_FORMAT FIXED;
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `a` int(11) /*!50606 STORAGE DISK */ DEFAULT NULL,
+ `b` int(11) NOT NULL /*!50606 STORAGE MEMORY */,
+ `c` int(11) /*!50606 COLUMN_FORMAT DYNAMIC */ DEFAULT NULL,
+ `d` int(11) /*!50606 COLUMN_FORMAT FIXED */ DEFAULT NULL,
+ `e` int(11) DEFAULT NULL,
+ `f` int(11) NOT NULL /*!50606 STORAGE DISK */ /*!50606 COLUMN_FORMAT DYNAMIC */,
+ `g` int(11) /*!50606 STORAGE MEMORY */ /*!50606 COLUMN_FORMAT DYNAMIC */ DEFAULT NULL,
+ `h` int(11) /*!50606 STORAGE DISK */ /*!50606 COLUMN_FORMAT FIXED */ DEFAULT NULL,
+ `i` int(11) /*!50606 STORAGE MEMORY */ /*!50606 COLUMN_FORMAT FIXED */ DEFAULT NULL,
+ `j` int(11) /*!50606 STORAGE DISK */ DEFAULT NULL,
+ `k` int(11) NOT NULL /*!50606 STORAGE MEMORY */,
+ `l` int(11) /*!50606 COLUMN_FORMAT DYNAMIC */ DEFAULT NULL,
+ `m` int(11) /*!50606 COLUMN_FORMAT FIXED */ DEFAULT NULL,
+ `n` int(11) DEFAULT NULL,
+ `o` int(11) NOT NULL /*!50606 STORAGE DISK */ /*!50606 COLUMN_FORMAT DYNAMIC */,
+ `p` int(11) /*!50606 STORAGE MEMORY */ /*!50606 COLUMN_FORMAT DYNAMIC */ DEFAULT NULL,
+ `q` int(11) /*!50606 STORAGE DISK */ /*!50606 COLUMN_FORMAT FIXED */ DEFAULT NULL,
+ `r` int(11) /*!50606 STORAGE MEMORY */ /*!50606 COLUMN_FORMAT FIXED */ DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+ALTER TABLE t1
+MODIFY COLUMN j int STORAGE MEMORY NOT NULL,
+MODIFY COLUMN k int COLUMN_FORMAT DYNAMIC,
+MODIFY COLUMN l int COLUMN_FORMAT FIXED,
+MODIFY COLUMN m int COLUMN_FORMAT DEFAULT,
+MODIFY COLUMN n int STORAGE DISK COLUMN_FORMAT DYNAMIC NOT NULL,
+MODIFY COLUMN o int STORAGE MEMORY COLUMN_FORMAT DYNAMIC,
+MODIFY COLUMN p int STORAGE DISK COLUMN_FORMAT FIXED,
+MODIFY COLUMN q int STORAGE MEMORY COLUMN_FORMAT FIXED,
+MODIFY COLUMN r int STORAGE DISK;
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `a` int(11) /*!50606 STORAGE DISK */ DEFAULT NULL,
+ `b` int(11) NOT NULL /*!50606 STORAGE MEMORY */,
+ `c` int(11) /*!50606 COLUMN_FORMAT DYNAMIC */ DEFAULT NULL,
+ `d` int(11) /*!50606 COLUMN_FORMAT FIXED */ DEFAULT NULL,
+ `e` int(11) DEFAULT NULL,
+ `f` int(11) NOT NULL /*!50606 STORAGE DISK */ /*!50606 COLUMN_FORMAT DYNAMIC */,
+ `g` int(11) /*!50606 STORAGE MEMORY */ /*!50606 COLUMN_FORMAT DYNAMIC */ DEFAULT NULL,
+ `h` int(11) /*!50606 STORAGE DISK */ /*!50606 COLUMN_FORMAT FIXED */ DEFAULT NULL,
+ `i` int(11) /*!50606 STORAGE MEMORY */ /*!50606 COLUMN_FORMAT FIXED */ DEFAULT NULL,
+ `j` int(11) NOT NULL /*!50606 STORAGE MEMORY */,
+ `k` int(11) /*!50606 COLUMN_FORMAT DYNAMIC */ DEFAULT NULL,
+ `l` int(11) /*!50606 COLUMN_FORMAT FIXED */ DEFAULT NULL,
+ `m` int(11) DEFAULT NULL,
+ `n` int(11) NOT NULL /*!50606 STORAGE DISK */ /*!50606 COLUMN_FORMAT DYNAMIC */,
+ `o` int(11) /*!50606 STORAGE MEMORY */ /*!50606 COLUMN_FORMAT DYNAMIC */ DEFAULT NULL,
+ `p` int(11) /*!50606 STORAGE DISK */ /*!50606 COLUMN_FORMAT FIXED */ DEFAULT NULL,
+ `q` int(11) /*!50606 STORAGE MEMORY */ /*!50606 COLUMN_FORMAT FIXED */ DEFAULT NULL,
+ `r` int(11) /*!50606 STORAGE DISK */ DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+ALTER TABLE t1
+MODIFY COLUMN h int COLUMN_FORMAT DYNAMIC COLUMN_FORMAT FIXED,
+MODIFY COLUMN i int COLUMN_FORMAT DYNAMIC COLUMN_FORMAT DEFAULT,
+MODIFY COLUMN j int COLUMN_FORMAT FIXED COLUMN_FORMAT DYNAMIC,
+MODIFY COLUMN k int COLUMN_FORMAT FIXED COLUMN_FORMAT DEFAULT,
+MODIFY COLUMN l int STORAGE DISK STORAGE MEMORY,
+MODIFY COLUMN m int STORAGE DISK STORAGE DEFAULT,
+MODIFY COLUMN n int STORAGE MEMORY STORAGE DISK,
+MODIFY COLUMN o int STORAGE MEMORY STORAGE DEFAULT,
+MODIFY COLUMN p int STORAGE DISK STORAGE MEMORY
+COLUMN_FORMAT FIXED COLUMN_FORMAT DYNAMIC,
+MODIFY COLUMN q int STORAGE DISK STORAGE MEMORY STORAGE DEFAULT
+COLUMN_FORMAT FIXED COLUMN_FORMAT DYNAMIC COLUMN_FORMAT DEFAULT,
+MODIFY COLUMN r int STORAGE DEFAULT STORAGE DEFAULT STORAGE MEMORY
+STORAGE DISK STORAGE MEMORY STORAGE DISK STORAGE DISK;
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `a` int(11) /*!50606 STORAGE DISK */ DEFAULT NULL,
+ `b` int(11) NOT NULL /*!50606 STORAGE MEMORY */,
+ `c` int(11) /*!50606 COLUMN_FORMAT DYNAMIC */ DEFAULT NULL,
+ `d` int(11) /*!50606 COLUMN_FORMAT FIXED */ DEFAULT NULL,
+ `e` int(11) DEFAULT NULL,
+ `f` int(11) NOT NULL /*!50606 STORAGE DISK */ /*!50606 COLUMN_FORMAT DYNAMIC */,
+ `g` int(11) /*!50606 STORAGE MEMORY */ /*!50606 COLUMN_FORMAT DYNAMIC */ DEFAULT NULL,
+ `h` int(11) /*!50606 COLUMN_FORMAT FIXED */ DEFAULT NULL,
+ `i` int(11) DEFAULT NULL,
+ `j` int(11) /*!50606 COLUMN_FORMAT DYNAMIC */ DEFAULT NULL,
+ `k` int(11) DEFAULT NULL,
+ `l` int(11) /*!50606 STORAGE MEMORY */ DEFAULT NULL,
+ `m` int(11) DEFAULT NULL,
+ `n` int(11) /*!50606 STORAGE DISK */ DEFAULT NULL,
+ `o` int(11) DEFAULT NULL,
+ `p` int(11) /*!50606 STORAGE MEMORY */ /*!50606 COLUMN_FORMAT DYNAMIC */ DEFAULT NULL,
+ `q` int(11) DEFAULT NULL,
+ `r` int(11) /*!50606 STORAGE DISK */ DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+DROP TABLE t1;
=== modified file 'mysql-test/t/tablespace.test'
--- a/mysql-test/t/tablespace.test 2011-11-14 13:01:55 +0000
+++ b/mysql-test/t/tablespace.test 2012-04-19 11:17:29 +0000
@@ -107,10 +107,6 @@ DROP TABLE t1;
# k int STORAGE MEMORY COLUMN_FORMAT FIXED
# ) STORAGE DISK TABLESPACE the_tablespacename ENGINE=MyISAM;
#
-# NOTE! The column level properties will not yet show up
-# in SHOW CREATE TABLE of MySQL Server(although they are
-# visible in .trace file)
-#
let $MYSQLD_DATADIR= `SELECT @@datadir`;
copy_file std_data/cluster_7022_table.frm $MYSQLD_DATADIR/test/t1.frm;
@@ -121,3 +117,69 @@ SHOW CREATE TABLE t1;
DROP TABLE t1;
+--echo #
+--echo # WL#3627 Add COLUMN_FORMAT and STORAGE for fields
+--echo #
+
+CREATE TABLE t1 (
+ a int STORAGE DISK,
+ b int STORAGE MEMORY NOT NULL,
+ c int COLUMN_FORMAT DYNAMIC,
+ d int COLUMN_FORMAT FIXED,
+ e int COLUMN_FORMAT DEFAULT,
+ f int STORAGE DISK COLUMN_FORMAT DYNAMIC NOT NULL,
+ g int STORAGE MEMORY COLUMN_FORMAT DYNAMIC,
+ h int STORAGE DISK COLUMN_FORMAT FIXED,
+ i int STORAGE MEMORY COLUMN_FORMAT FIXED
+);
+SHOW CREATE TABLE t1;
+
+# Add new columns with all variations of the new column
+# level attributes
+ALTER TABLE t1
+ ADD COLUMN j int STORAGE DISK,
+ ADD COLUMN k int STORAGE MEMORY NOT NULL,
+ ADD COLUMN l int COLUMN_FORMAT DYNAMIC,
+ ADD COLUMN m int COLUMN_FORMAT FIXED,
+ ADD COLUMN n int COLUMN_FORMAT DEFAULT,
+ ADD COLUMN o int STORAGE DISK COLUMN_FORMAT DYNAMIC NOT NULL,
+ ADD COLUMN p int STORAGE MEMORY COLUMN_FORMAT DYNAMIC,
+ ADD COLUMN q int STORAGE DISK COLUMN_FORMAT FIXED,
+ ADD COLUMN r int STORAGE MEMORY COLUMN_FORMAT FIXED;
+SHOW CREATE TABLE t1;
+
+# Use MODIFY COLUMN to "shift" all new attributes to the next column
+ALTER TABLE t1
+ MODIFY COLUMN j int STORAGE MEMORY NOT NULL,
+ MODIFY COLUMN k int COLUMN_FORMAT DYNAMIC,
+ MODIFY COLUMN l int COLUMN_FORMAT FIXED,
+ MODIFY COLUMN m int COLUMN_FORMAT DEFAULT,
+ MODIFY COLUMN n int STORAGE DISK COLUMN_FORMAT DYNAMIC NOT NULL,
+ MODIFY COLUMN o int STORAGE MEMORY COLUMN_FORMAT DYNAMIC,
+ MODIFY COLUMN p int STORAGE DISK COLUMN_FORMAT FIXED,
+ MODIFY COLUMN q int STORAGE MEMORY COLUMN_FORMAT FIXED,
+ MODIFY COLUMN r int STORAGE DISK;
+SHOW CREATE TABLE t1;
+
+# Check behaviour of multiple COLUMN_FORMAT and/or STORAGE definitions
+ALTER TABLE t1
+ MODIFY COLUMN h int COLUMN_FORMAT DYNAMIC COLUMN_FORMAT FIXED,
+ MODIFY COLUMN i int COLUMN_FORMAT DYNAMIC COLUMN_FORMAT DEFAULT,
+ MODIFY COLUMN j int COLUMN_FORMAT FIXED COLUMN_FORMAT DYNAMIC,
+ MODIFY COLUMN k int COLUMN_FORMAT FIXED COLUMN_FORMAT DEFAULT,
+ MODIFY COLUMN l int STORAGE DISK STORAGE MEMORY,
+ MODIFY COLUMN m int STORAGE DISK STORAGE DEFAULT,
+ MODIFY COLUMN n int STORAGE MEMORY STORAGE DISK,
+ MODIFY COLUMN o int STORAGE MEMORY STORAGE DEFAULT,
+ MODIFY COLUMN p int STORAGE DISK STORAGE MEMORY
+ COLUMN_FORMAT FIXED COLUMN_FORMAT DYNAMIC,
+ MODIFY COLUMN q int STORAGE DISK STORAGE MEMORY STORAGE DEFAULT
+ COLUMN_FORMAT FIXED COLUMN_FORMAT DYNAMIC COLUMN_FORMAT DEFAULT,
+ MODIFY COLUMN r int STORAGE DEFAULT STORAGE DEFAULT STORAGE MEMORY
+ STORAGE DISK STORAGE MEMORY STORAGE DISK STORAGE DISK;
+SHOW CREATE TABLE t1;
+
+
+
+DROP TABLE t1;
+
=== modified file 'sql/field.h'
--- a/sql/field.h 2012-03-28 18:48:25 +0000
+++ b/sql/field.h 2012-04-19 11:55:46 +0000
@@ -1018,16 +1018,16 @@ public:
}
#endif
-#ifndef MCP_WL3627
ha_storage_media field_storage_type() const
{
return (ha_storage_media)
((flags >> FIELD_FLAGS_STORAGE_MEDIA) & 3);
}
- void set_storage_type(ha_storage_media storage_type)
+ void set_storage_type(ha_storage_media storage_type_arg)
{
- flags |= (storage_type << FIELD_FLAGS_STORAGE_MEDIA);
+ DBUG_ASSERT(field_storage_type() == HA_SM_DEFAULT);
+ flags |= (storage_type_arg << FIELD_FLAGS_STORAGE_MEDIA);
}
column_format_type column_format() const
@@ -1036,11 +1036,11 @@ public:
((flags >> FIELD_FLAGS_COLUMN_FORMAT) & 3);
}
- void set_column_format(column_format_type column_format)
+ void set_column_format(column_format_type column_format_arg)
{
- flags |= (column_format << FIELD_FLAGS_COLUMN_FORMAT);
+ DBUG_ASSERT(column_format() == COLUMN_FORMAT_TYPE_DEFAULT);
+ flags |= (column_format_arg << FIELD_FLAGS_COLUMN_FORMAT);
}
-#endif
/* Hash value */
virtual void hash(ulong *nr, ulong *nr2);
@@ -3507,7 +3507,6 @@ public:
return (flags & (BINCMP_FLAG | BINARY_FLAG)) != 0;
}
-#ifndef MCP_WL3627
ha_storage_media field_storage_type() const
{
return (ha_storage_media)
@@ -3519,7 +3518,6 @@ public:
return (column_format_type)
((flags >> FIELD_FLAGS_COLUMN_FORMAT) & 3);
}
-#endif
};
=== modified file 'sql/handler.h'
--- a/sql/handler.h 2012-04-11 12:33:47 +0000
+++ b/sql/handler.h 2012-04-19 11:55:46 +0000
@@ -347,13 +347,12 @@ enum row_type { ROW_TYPE_NOT_USED=-1, RO
/** Unused. Reserved for future versions. */
ROW_TYPE_PAGE };
-#ifndef MCP_WL3627
+/* Specifies data storage format for individual columns */
enum column_format_type {
- COLUMN_FORMAT_TYPE_DEFAULT= 0,
- COLUMN_FORMAT_TYPE_FIXED= 1,
- COLUMN_FORMAT_TYPE_DYNAMIC= 2
+ COLUMN_FORMAT_TYPE_DEFAULT= 0, /* Not specified (use engine default) */
+ COLUMN_FORMAT_TYPE_FIXED= 1, /* FIXED format */
+ COLUMN_FORMAT_TYPE_DYNAMIC= 2 /* DYNAMIC format */
};
-#endif
enum enum_binlog_func {
BFN_RESET_LOGS= 1,
@@ -1062,6 +1061,12 @@ public:
// Table is renamed
static const HA_ALTER_FLAGS ALTER_RENAME = 1L << 18;
+ // Change the storage type of column
+ static const HA_ALTER_FLAGS ALTER_COLUMN_STORAGE_TYPE = 1L << 19;
+
+ // Change the column format of column
+ static const HA_ALTER_FLAGS ALTER_COLUMN_COLUMN_FORMAT = 1L << 20;
+
/**
Create options (like MAX_ROWS) for the new version of table.
=== modified file 'sql/lex.h'
--- a/sql/lex.h 2012-03-28 18:48:25 +0000
+++ b/sql/lex.h 2012-04-19 11:55:46 +0000
@@ -117,9 +117,7 @@ static SYMBOL symbols[] = {
{ "COLLATE", SYM(COLLATE_SYM)},
{ "COLLATION", SYM(COLLATION_SYM)},
{ "COLUMN", SYM(COLUMN_SYM)},
-#ifndef MCP_WL3627
{ "COLUMN_FORMAT", SYM(COLUMN_FORMAT_SYM)},
-#endif
{ "COLUMN_NAME", SYM(COLUMN_NAME_SYM)},
{ "COLUMNS", SYM(COLUMNS)},
{ "COMMENT", SYM(COMMENT_SYM)},
=== modified file 'sql/sql_show.cc'
--- a/sql/sql_show.cc 2012-04-11 12:33:47 +0000
+++ b/sql/sql_show.cc 2012-04-19 11:55:46 +0000
@@ -1543,29 +1543,33 @@ int store_create_info(THD *thd, TABLE_LI
packet->append(STRING_WITH_LEN(" NULL"));
}
-#ifndef MCP_WL3627
switch(field->field_storage_type()){
+ case HA_SM_DEFAULT:
+ break;
case HA_SM_DISK:
- packet->append(STRING_WITH_LEN(" /*!50120 STORAGE DISK */"));
+ packet->append(STRING_WITH_LEN(" /*!50606 STORAGE DISK */"));
break;
case HA_SM_MEMORY:
- packet->append(STRING_WITH_LEN(" /*!50120 STORAGE MEMORY */"));
+ packet->append(STRING_WITH_LEN(" /*!50606 STORAGE MEMORY */"));
break;
default:
+ DBUG_ASSERT(0);
break;
}
switch(field->column_format()){
+ case COLUMN_FORMAT_TYPE_DEFAULT:
+ break;
case COLUMN_FORMAT_TYPE_FIXED:
- packet->append(STRING_WITH_LEN(" /*!50120 COLUMN_FORMAT FIXED */"));
+ packet->append(STRING_WITH_LEN(" /*!50606 COLUMN_FORMAT FIXED */"));
break;
case COLUMN_FORMAT_TYPE_DYNAMIC:
- packet->append(STRING_WITH_LEN(" /*!50120 COLUMN_FORMAT DYNAMIC */"));
+ packet->append(STRING_WITH_LEN(" /*!50606 COLUMN_FORMAT DYNAMIC */"));
break;
default:
+ DBUG_ASSERT(0);
break;
}
-#endif
if (print_default_clause(thd, field, &def_value, true))
{
=== modified file 'sql/sql_table.cc'
--- a/sql/sql_table.cc 2012-04-11 12:33:47 +0000
+++ b/sql/sql_table.cc 2012-04-19 11:55:46 +0000
@@ -5381,6 +5381,16 @@ static bool fill_alter_inplace_info(THD
*/
if (field->field_index != new_field_index)
ha_alter_info->handler_flags|= Alter_inplace_info::ALTER_COLUMN_ORDER;
+
+ /* Detect changes in storage type of column */
+ if (new_field->field_storage_type() != field->field_storage_type())
+ ha_alter_info->handler_flags|=
+ Alter_inplace_info::ALTER_COLUMN_STORAGE_TYPE;
+
+ /* Detect changes in column format of column */
+ if (new_field->column_format() != field->column_format())
+ ha_alter_info->handler_flags|=
+ Alter_inplace_info::ALTER_COLUMN_COLUMN_FORMAT;
}
else
{
=== modified file 'sql/sql_yacc.yy'
--- a/sql/sql_yacc.yy 2012-04-11 12:33:47 +0000
+++ b/sql/sql_yacc.yy 2012-04-19 11:55:46 +0000
@@ -1085,7 +1085,7 @@ bool my_yyoverflow(short **a, YYSTYPE **
%token COLLATION_SYM /* SQL-2003-N */
%token COLUMNS
%token COLUMN_SYM /* SQL-2003-R */
-%token COLUMN_FORMAT_SYM /* MCP_WL3627 */
+%token COLUMN_FORMAT_SYM
%token COLUMN_NAME_SYM /* SQL-2003-N */
%token COMMENT_SYM
%token COMMITTED_SYM /* SQL-2003-N */
@@ -6293,35 +6293,39 @@ attribute:
Lex->charset=$2;
}
}
-/* MCP_WL3627 -> */
| COLUMN_FORMAT_SYM DEFAULT
{
+ Lex->type&= ~(FIELD_FLAGS_COLUMN_FORMAT_MASK);
Lex->type|=
(COLUMN_FORMAT_TYPE_DEFAULT << FIELD_FLAGS_COLUMN_FORMAT);
}
| COLUMN_FORMAT_SYM FIXED_SYM
{
+ Lex->type&= ~(FIELD_FLAGS_COLUMN_FORMAT_MASK);
Lex->type|=
(COLUMN_FORMAT_TYPE_FIXED << FIELD_FLAGS_COLUMN_FORMAT);
}
| COLUMN_FORMAT_SYM DYNAMIC_SYM
{
+ Lex->type&= ~(FIELD_FLAGS_COLUMN_FORMAT_MASK);
Lex->type|=
(COLUMN_FORMAT_TYPE_DYNAMIC << FIELD_FLAGS_COLUMN_FORMAT);
}
| STORAGE_SYM DEFAULT
{
+ Lex->type&= ~(FIELD_FLAGS_STORAGE_MEDIA_MASK);
Lex->type|= (HA_SM_DEFAULT << FIELD_FLAGS_STORAGE_MEDIA);
}
| STORAGE_SYM DISK_SYM
{
+ Lex->type&= ~(FIELD_FLAGS_STORAGE_MEDIA_MASK);
Lex->type|= (HA_SM_DISK << FIELD_FLAGS_STORAGE_MEDIA);
}
| STORAGE_SYM MEMORY_SYM
{
+ Lex->type&= ~(FIELD_FLAGS_STORAGE_MEDIA_MASK);
Lex->type|= (HA_SM_MEMORY << FIELD_FLAGS_STORAGE_MEDIA);
}
-/* MCP_WL3627 <- */
;
@@ -13503,7 +13507,7 @@ keyword_sp:
| CODE_SYM {}
| COLLATION_SYM {}
| COLUMN_NAME_SYM {}
- | COLUMN_FORMAT_SYM {} /* MCP_WL3627 */
+ | COLUMN_FORMAT_SYM {}
| COLUMNS {}
| COMMITTED_SYM {}
| COMPACT_SYM {}
=== modified file 'sql/table.cc'
--- a/sql/table.cc 2012-04-11 12:33:47 +0000
+++ b/sql/table.cc 2012-04-19 11:55:46 +0000
@@ -1582,13 +1582,8 @@ static int open_binary_frm(THD *thd, TAB
((field_flags >> COLUMN_FORMAT_SHIFT)& COLUMN_FORMAT_MASK);
DBUG_PRINT("debug", ("field flags: %u, storage: %u, column_format: %u",
field_flags, field_storage, field_column_format));
-#ifndef MCP_WL3627
reg_field->set_storage_type((ha_storage_media)field_storage);
reg_field->set_column_format((column_format_type)field_column_format);
-#else
- (void)field_storage; /* Reserved by and used in MySQL Cluster */
- (void)field_column_format; /* Reserved by and used in MySQL Cluster */
-#endif
}
}
*field_ptr=0; // End marker
=== modified file 'sql/unireg.cc'
--- a/sql/unireg.cc 2012-04-11 12:33:47 +0000
+++ b/sql/unireg.cc 2012-04-19 11:55:46 +0000
@@ -390,13 +390,8 @@ bool mysql_create_frm(THD *thd, const ch
List_iterator<Create_field> it(create_fields);
while ((field=it++))
{
-#ifndef MCP_WL3627
const uchar field_storage= field->field_storage_type();
const uchar field_column_format= field->column_format();
-#else
- const uchar field_storage= 0; /* Used in MySQL Cluster */
- const uchar field_column_format= 0; /* Used in MySQL Cluster */
-#endif
const uchar field_flags=
field_storage + (field_column_format << COLUMN_FORMAT_SHIFT);
*ptr= field_flags;
No bundle (reason: useless for push emails).
| Thread |
|---|
| • bzr push into mysql-trunk-cluster branch (magnus.blaudd:3477 to 3478) | magnus.blaudd | 20 Apr |