diff --git a/sql/ha_ndbcluster.cc b/sql/ha_ndbcluster.cc index 5e4b65f766e..b46a5971666 100644 --- a/sql/ha_ndbcluster.cc +++ b/sql/ha_ndbcluster.cc @@ -9590,8 +9590,12 @@ ndbcluster_show_status(THD* thd, stat_print_fn *stat_print, /* Create a table in NDB Cluster */ -static uint get_no_fragments(ulonglong max_rows) +static uint get_no_fragments(TABLE_SHARE *table_share) { + ha_rows max_rows= table_share->max_rows; + ha_rows min_rows= table_share->min_rows; + if (max_rows < min_rows) + max_rows= min_rows; #if MYSQL_VERSION_ID >= 50000 uint acc_row_size= 25 + /*safety margin*/ 2; #else @@ -9628,10 +9632,10 @@ static bool adjusted_frag_count(uint no_fragments, uint no_nodes, return (reported_frags < no_fragments); } -int ha_ndbcluster::get_default_no_partitions(ulonglong max_rows) +int ha_ndbcluster::get_default_no_partitions(TABLE_SHARE *table_share) { uint reported_frags; - uint no_fragments= get_no_fragments(max_rows); + uint no_fragments= get_no_fragments(table_share); uint no_nodes= g_ndb_cluster_connection->no_db_nodes(); if (adjusted_frag_count(no_fragments, no_nodes, reported_frags)) { diff --git a/sql/ha_ndbcluster.h b/sql/ha_ndbcluster.h index 2e78a00ef94..adc70808f78 100644 --- a/sql/ha_ndbcluster.h +++ b/sql/ha_ndbcluster.h @@ -651,7 +651,7 @@ class ha_ndbcluster: public handler int create(const char *name, TABLE *form, HA_CREATE_INFO *info); int create_handler_files(const char *file, const char *old_name, int action_flag, HA_CREATE_INFO *info); - int get_default_no_partitions(ulonglong max_rows); + int get_default_no_partitions(TABLE_SHARE *); bool get_no_parts(const char *name, uint *no_parts); void set_auto_partitions(partition_info *part_info); diff --git a/sql/handler.h b/sql/handler.h index fb5f0f4ba05..025b76213d7 100644 --- a/sql/handler.h +++ b/sql/handler.h @@ -1335,7 +1335,7 @@ public: virtual const char *table_type() const =0; virtual const char **bas_ext() const =0; - virtual int get_default_no_partitions(ulonglong max_rows) { return 1;} + virtual int get_default_no_partitions(TABLE_SHARE *) { return 1;} virtual void set_auto_partitions(partition_info *part_info) { return; } virtual bool get_no_parts(const char *name, uint *no_parts)