Commit ceb74b35 authored by unknown's avatar unknown
Browse files

Bug #27359 Partition: memory allocation error message

if ndbcluster's nodes aren't set, the handlerton can return zero partitions
in the partitioned table. So we should check for that.


sql/partition_info.cc:
  check for zero return added
mysql-test/r/ndb_partition_error2.result:
  New BitKeeper file ``mysql-test/r/ndb_partition_error2.result''
mysql-test/t/ndb_partition_error2-master.opt:
  New BitKeeper file ``mysql-test/t/ndb_partition_error2-master.opt''
mysql-test/t/ndb_partition_error2.test:
  New BitKeeper file ``mysql-test/t/ndb_partition_error2.test''
parent a88dac08
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
drop table if exists t1;
create table t1 (s1 int) engine=ndbcluster;
ERROR HY000: For the partitioned engine it is necessary to define all partition
+1 −0
Original line number Diff line number Diff line
--ndbcluster
+14 −0
Original line number Diff line number Diff line
disable_query_log;
--require r/true.require
select support = 'Enabled' as `TRUE` from information_schema.engines where engine = 'ndbcluster';
enable_query_log;

--disable_warnings
drop table if exists t1;
--enable_warnings
#
# Bug #27359 Partitions: memory allocation error message 
#
--error ER_PARTITION_NOT_DEFINED_ERROR
create table t1 (s1 int) engine=ndbcluster;
+5 −1
Original line number Diff line number Diff line
@@ -753,7 +753,11 @@ bool partition_info::check_partition_info(THD *thd, handlerton **eng_type,
  }
  if (unlikely(set_up_defaults_for_partitioning(file, info, (uint)0)))
    goto end;
  tot_partitions= get_tot_partitions();
  if (!(tot_partitions= get_tot_partitions()))
  {
    my_error(ER_PARTITION_NOT_DEFINED_ERROR, MYF(0), "partitions");
    goto end;
  }
  if (unlikely(tot_partitions > MAX_PARTITIONS))
  {
    my_error(ER_TOO_MANY_PARTITIONS_ERROR, MYF(0));