Commit 0ab6fd5f authored by unknown's avatar unknown
Browse files

Merge perch.ndb.mysql.com:/home/jonas/src/51-work

into  perch.ndb.mysql.com:/home/jonas/src/mysql-5.1-new-ndb

parents 2318f1bf 12111f95
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -639,3 +639,6 @@ select a, sha1(b) from t1;
a	sha1(b)
1	08f5d02c8b8bc244f275bdfc22c42c5cab0d9d7d
drop table t1;
create table t1(id int not null) engine = NDB;
alter table t1 add constraint uk_test unique (id) using hash;
drop table t1;
+8 −0
Original line number Diff line number Diff line
@@ -329,4 +329,12 @@ select a, sha1(b) from t1;

drop table t1;

# bug#21873 MySQLD Crash on ALTER...ADD..UNIQUE..USING HASH statement for NDB backed table

create table t1(id int not null) engine = NDB;

alter table t1 add constraint uk_test unique (id) using hash;

drop table t1;

# End of 4.1 tests
+2 −3
Original line number Diff line number Diff line
@@ -1399,9 +1399,8 @@ NDB_INDEX_TYPE ha_ndbcluster::get_index_type_from_key(uint inx,
          ORDERED_INDEX);
} 

int ha_ndbcluster::check_index_fields_not_null(uint inx)
int ha_ndbcluster::check_index_fields_not_null(KEY* key_info)
{
  KEY* key_info= table->key_info + inx;
  KEY_PART_INFO* key_part= key_info->key_part;
  KEY_PART_INFO* end= key_part+key_info->key_parts;
  DBUG_ENTER("ha_ndbcluster::check_index_fields_not_null");
@@ -5017,7 +5016,7 @@ int ha_ndbcluster::create_index(const char *name, KEY *key_info,
      error= create_unique_index(unique_name, key_info);
    break;
  case UNIQUE_INDEX:
    if (!(error= check_index_fields_not_null(idx_no)))
    if (!(error= check_index_fields_not_null(key_info)))
      error= create_unique_index(unique_name, key_info);
    break;
  case ORDERED_INDEX:
+1 −1
Original line number Diff line number Diff line
@@ -808,7 +808,7 @@ static void set_tabname(const char *pathname, char *tabname);
  NDB_INDEX_TYPE get_index_type_from_table(uint index_no) const;
  NDB_INDEX_TYPE get_index_type_from_key(uint index_no, KEY *key_info, 
                                         bool primary) const;
  int check_index_fields_not_null(uint index_no);
  int check_index_fields_not_null(KEY *key_info);

  uint set_up_partition_info(partition_info *part_info,
                             TABLE *table,
+1 −0
Original line number Diff line number Diff line
@@ -2036,6 +2036,7 @@ void handler::print_keydup_error(uint key_nr, const char *msg)
  {
    /* Key is unknown */
    str.length(0);
    str.append(STRING_WITH_LEN(""));
    key_nr= -1;
    my_printf_error(ER_DUP_ENTRY, msg,
		    MYF(0), str.c_ptr(), "*UNKNOWN*");
Loading