Commit 40bf7b0a authored by unknown's avatar unknown

This patch updates to remove most global hton needs. Cleans up wrong message in partition.


mysql-test/r/partition.result:
  Updated results
sql/ha_ndbcluster.cc:
  Updated hton
sql/ha_partition.cc:
  Removed need for global internal hton.
sql/handler.cc:
  Removed need for global mrg
sql/mysql_priv.h:
  Updated needs for global variables.
sql/mysqld.cc:
  Removed needs around hton
sql/partition_info.cc:
  Removed bug.... aka what happens if tables are neither?
sql/share/errmsg.txt:
  Made error message more generic.
sql/sql_cache.cc:
  Removed specific hton reference
parent 76b83865
...@@ -68,7 +68,7 @@ create table t1 (a int) ...@@ -68,7 +68,7 @@ create table t1 (a int)
engine = csv engine = csv
partition by list (a) partition by list (a)
(partition p0 values in (null)); (partition p0 values in (null));
ERROR HY000: CSV handler cannot be used in partitioned tables ERROR HY000: Engine cannot be used in partitioned tables
create table t1 (a bigint) create table t1 (a bigint)
partition by range (a) partition by range (a)
(partition p0 values less than (0xFFFFFFFFFFFFFFFF), (partition p0 values less than (0xFFFFFFFFFFFFFFFF),
...@@ -102,7 +102,7 @@ create table t1 (a int) ...@@ -102,7 +102,7 @@ create table t1 (a int)
engine = csv engine = csv
partition by list (a) partition by list (a)
(partition p0 values in (null)); (partition p0 values in (null));
ERROR HY000: CSV handler cannot be used in partitioned tables ERROR HY000: Engine cannot be used in partitioned tables
create table t1 (a int) create table t1 (a int)
partition by key(a) partition by key(a)
(partition p0 engine = MEMORY); (partition p0 engine = MEMORY);
...@@ -1054,7 +1054,7 @@ drop table t1; ...@@ -1054,7 +1054,7 @@ drop table t1;
create table t1 (a int) create table t1 (a int)
partition by key (a) partition by key (a)
(partition p0 engine = MERGE); (partition p0 engine = MERGE);
ERROR HY000: MyISAM Merge handler cannot be used in partitioned tables ERROR HY000: Engine cannot be used in partitioned tables
create table t1 (a varchar(1)) create table t1 (a varchar(1))
partition by key (a) partition by key (a)
as select 'a'; as select 'a';
......
...@@ -87,7 +87,7 @@ static int ndbcluster_fill_files_table(handlerton *hton, ...@@ -87,7 +87,7 @@ static int ndbcluster_fill_files_table(handlerton *hton,
TABLE_LIST *tables, TABLE_LIST *tables,
COND *cond); COND *cond);
handlerton *ndbcluster_hton; static handlerton *ndbcluster_hton;
static handler *ndbcluster_create_handler(handlerton *hton, static handler *ndbcluster_create_handler(handlerton *hton,
TABLE_SHARE *table, TABLE_SHARE *table,
......
...@@ -75,11 +75,11 @@ static handler *partition_create_handler(handlerton *hton, ...@@ -75,11 +75,11 @@ static handler *partition_create_handler(handlerton *hton,
static uint partition_flags(); static uint partition_flags();
static uint alter_table_flags(uint flags); static uint alter_table_flags(uint flags);
handlerton *partition_hton;
static int partition_initialize(void *p) static int partition_initialize(void *p)
{ {
handlerton *partition_hton;
partition_hton= (handlerton *)p; partition_hton= (handlerton *)p;
partition_hton->state= SHOW_OPTION_YES; partition_hton->state= SHOW_OPTION_YES;
......
...@@ -467,13 +467,11 @@ int ha_initialize_handlerton(st_plugin_int *plugin) ...@@ -467,13 +467,11 @@ int ha_initialize_handlerton(st_plugin_int *plugin)
} }
/* /*
This is entirely for legacy. We will create a new "disk based" hton and a "memory" hton This is entirely for legacy. We will create a new "disk based" hton and a
which will be configurable longterm. "memory" hton which will be configurable longterm. We should be able to
remove partition and myisammrg.
*/ */
switch (hton->db_type) { switch (hton->db_type) {
case DB_TYPE_MRG_ISAM:
myisammrg_hton= hton;
break;
case DB_TYPE_HEAP: case DB_TYPE_HEAP:
heap_hton= hton; heap_hton= hton;
break; break;
......
...@@ -1638,11 +1638,7 @@ extern SHOW_COMP_OPTION have_ndbcluster; ...@@ -1638,11 +1638,7 @@ extern SHOW_COMP_OPTION have_ndbcluster;
extern SHOW_COMP_OPTION have_partition_db; extern SHOW_COMP_OPTION have_partition_db;
extern SHOW_COMP_OPTION have_merge_db; extern SHOW_COMP_OPTION have_merge_db;
#ifdef WITH_NDBCLUSTER_STORAGE_ENGINE
extern handlerton *ndbcluster_hton;
#endif
extern handlerton *partition_hton; extern handlerton *partition_hton;
extern handlerton *myisammrg_hton;
extern handlerton *myisam_hton; extern handlerton *myisam_hton;
extern handlerton *heap_hton; extern handlerton *heap_hton;
......
...@@ -358,10 +358,9 @@ my_bool opt_innodb; ...@@ -358,10 +358,9 @@ my_bool opt_innodb;
/* /*
Legacy global handlerton. These will be removed (please do not add more). Legacy global handlerton. These will be removed (please do not add more).
*/ */
handlerton *ndbclusert_hton;
handlerton *myisammrg_hton;
handlerton *heap_hton; handlerton *heap_hton;
handlerton *myisam_hton; handlerton *myisam_hton;
handlerton *partition_hton;
#ifdef WITH_INNOBASE_STORAGE_ENGINE #ifdef WITH_INNOBASE_STORAGE_ENGINE
extern ulong innobase_fast_shutdown; extern ulong innobase_fast_shutdown;
......
...@@ -445,8 +445,7 @@ bool partition_info::check_engine_mix(handlerton **engine_array, uint no_parts) ...@@ -445,8 +445,7 @@ bool partition_info::check_engine_mix(handlerton **engine_array, uint no_parts)
} while (++i < no_parts); } while (++i < no_parts);
if (engine_array[0]->flags & HTON_NO_PARTITION) if (engine_array[0]->flags & HTON_NO_PARTITION)
{ {
my_error(ER_PARTITION_MERGE_ERROR, MYF(0), my_error(ER_PARTITION_MERGE_ERROR, MYF(0));
engine_array[0] == myisammrg_hton ? "MyISAM Merge" : "CSV");
DBUG_RETURN(TRUE); DBUG_RETURN(TRUE);
} }
DBUG_RETURN(FALSE); DBUG_RETURN(FALSE);
......
...@@ -5960,9 +5960,9 @@ ER_EVENT_SET_VAR_ERROR ...@@ -5960,9 +5960,9 @@ ER_EVENT_SET_VAR_ERROR
eng "Error during starting/stopping of the scheduler. Error code %u" eng "Error during starting/stopping of the scheduler. Error code %u"
ger "Fehler whrend des Startens oder Anhalten des Schedulers. Fehlercode %u" ger "Fehler whrend des Startens oder Anhalten des Schedulers. Fehlercode %u"
ER_PARTITION_MERGE_ERROR ER_PARTITION_MERGE_ERROR
eng "%s handler cannot be used in partitioned tables" eng "Engine cannot be used in partitioned tables"
ger "%s-Handler kann in partitionierten Tabellen nicht verwendet werden" ger "Engine kann in partitionierten Tabellen nicht verwendet werden"
swe "%s kan inte anvndas i en partitionerad tabell" swe "Engine inte anvndas i en partitionerad tabell"
ER_CANT_ACTIVATE_LOG ER_CANT_ACTIVATE_LOG
eng "Cannot activate '%-.64s' log" eng "Cannot activate '%-.64s' log"
ger "Kann Logdatei '%-.64s' nicht aktivieren" ger "Kann Logdatei '%-.64s' nicht aktivieren"
......
...@@ -2389,7 +2389,7 @@ Query_cache::register_tables_from_list(TABLE_LIST *tables_used, ...@@ -2389,7 +2389,7 @@ Query_cache::register_tables_from_list(TABLE_LIST *tables_used,
tables_used->engine_data)) tables_used->engine_data))
DBUG_RETURN(0); DBUG_RETURN(0);
if (tables_used->table->s->db_type == myisammrg_hton) if (tables_used->table->s->db_type->db_type == DB_TYPE_MRG_MYISAM)
{ {
ha_myisammrg *handler = (ha_myisammrg *) tables_used->table->file; ha_myisammrg *handler = (ha_myisammrg *) tables_used->table->file;
MYRG_INFO *file = handler->myrg_info(); MYRG_INFO *file = handler->myrg_info();
...@@ -3013,7 +3013,7 @@ static TABLE_COUNTER_TYPE process_and_count_tables(TABLE_LIST *tables_used, ...@@ -3013,7 +3013,7 @@ static TABLE_COUNTER_TYPE process_and_count_tables(TABLE_LIST *tables_used,
"other non-cacheable table(s)")); "other non-cacheable table(s)"));
DBUG_RETURN(0); DBUG_RETURN(0);
} }
if (tables_used->table->s->db_type == myisammrg_hton) if (tables_used->table->s->db_type->db_type == DB_TYPE_MRG_MYISAM)
{ {
ha_myisammrg *handler = (ha_myisammrg *)tables_used->table->file; ha_myisammrg *handler = (ha_myisammrg *)tables_used->table->file;
MYRG_INFO *file = handler->myrg_info(); MYRG_INFO *file = handler->myrg_info();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment