summaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
Diffstat (limited to 'sql')
-rw-r--r--sql/ha_ndbcluster.cc16
-rw-r--r--sql/ha_ndbcluster.h1
-rw-r--r--sql/ha_partition.h2
-rw-r--r--sql/handler.h1
-rw-r--r--sql/sql_partition.cc2
5 files changed, 12 insertions, 10 deletions
diff --git a/sql/ha_ndbcluster.cc b/sql/ha_ndbcluster.cc
index 2ab036ee1a0..09bd48a3cd7 100644
--- a/sql/ha_ndbcluster.cc
+++ b/sql/ha_ndbcluster.cc
@@ -4503,18 +4503,18 @@ int ha_ndbcluster::open(const char *name, int mode, uint test_if_locked)
if (!res)
info(HA_STATUS_VARIABLE | HA_STATUS_CONST);
- if (table->part_info)
- {
- m_part_info= table->part_info;
- if (!(m_part_info->part_type == HASH_PARTITION &&
- m_part_info->list_of_part_fields &&
- !is_sub_partitioned(m_part_info)))
- m_use_partition_function= TRUE;
- }
DBUG_RETURN(res);
}
+void ha_ndbcluster::set_part_info(partition_info *part_info)
+{
+ m_part_info= part_info;
+ if (!(m_part_info->part_type == HASH_PARTITION &&
+ m_part_info->list_of_part_fields &&
+ !is_sub_partitioned(m_part_info)))
+ m_use_partition_function= TRUE;
+}
/*
Close the table
diff --git a/sql/ha_ndbcluster.h b/sql/ha_ndbcluster.h
index 1b3c717009a..fb506375797 100644
--- a/sql/ha_ndbcluster.h
+++ b/sql/ha_ndbcluster.h
@@ -534,6 +534,7 @@ class ha_ndbcluster: public handler
return (HA_CAN_PARTITION | HA_CAN_UPDATE_PARTITION_KEY |
HA_CAN_PARTITION_UNIQUE);
}
+ void set_part_info(partition_info *part_info);
ulong index_flags(uint idx, uint part, bool all_parts) const;
uint max_supported_record_length() const;
uint max_supported_keys() const;
diff --git a/sql/ha_partition.h b/sql/ha_partition.h
index 8109fec9323..a727a278103 100644
--- a/sql/ha_partition.h
+++ b/sql/ha_partition.h
@@ -122,7 +122,7 @@ private:
PARTITION_SHARE *share; /* Shared lock info */
public:
- void set_part_info(partition_info *part_info)
+ virtual void set_part_info(partition_info *part_info)
{
m_part_info= part_info;
m_is_sub_partitioned= is_sub_partitioned(part_info);
diff --git a/sql/handler.h b/sql/handler.h
index 14fcd226da7..dc6e3edc40c 100644
--- a/sql/handler.h
+++ b/sql/handler.h
@@ -1273,6 +1273,7 @@ public:
#ifdef WITH_PARTITION_STORAGE_ENGINE
virtual ulong partition_flags(void) const { return 0;}
virtual int get_default_no_partitions(ulonglong max_rows) { return 1;}
+ virtual void set_part_info(partition_info *part_info) { return; }
#endif
virtual ulong index_flags(uint idx, uint part, bool all_parts) const =0;
virtual ulong index_ddl_flags(KEY *wanted_index) const
diff --git a/sql/sql_partition.cc b/sql/sql_partition.cc
index 2792bda1365..932877c257b 100644
--- a/sql/sql_partition.cc
+++ b/sql/sql_partition.cc
@@ -3128,7 +3128,7 @@ bool mysql_unpack_partition(THD *thd, const uchar *part_buf,
}
part_info= lex.part_info;
table->part_info= part_info;
- ((ha_partition*)table->file)->set_part_info(part_info);
+ table->file->set_part_info(part_info);
if (part_info->default_engine_type == DB_TYPE_UNKNOWN)
part_info->default_engine_type= default_db_type;
else