Commit 1aee4d9e authored by Mats Kindahl's avatar Mats Kindahl
Browse files

Merging with 5.1-5.1.29-rc

parents 69a8281c f81c25e8
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -93,4 +93,14 @@ c
1,2,3
64
DROP TABLE t1;
CREATE TABLE t1 (
set_unique_utf8 set ('a','b','c','d','e','f','g','h','i','j','k','l',
'm','n','o','p','q','r','s','t','u','v','w','x',
'y','z') CHARACTER SET utf8,
unique (set_unique_utf8)
);
INSERT INTO t1 ( set_unique_utf8 ) VALUES ( '' );
INSERT INTO t1 ( set_unique_utf8 ) VALUES ( '' );
ERROR 23000: Duplicate entry '' for key 'set_unique_utf8'
DROP TABLE t1;
End of 5.0 tests
+19 −0
Original line number Diff line number Diff line
@@ -75,4 +75,23 @@ INSERT INTO t1 VALUES(9223372036854775808);
SELECT * FROM t1;
DROP TABLE t1;

#
# Bug #38701: Crash in String::append when inserting duplicate empty strings
# an uft8 SET col
#

CREATE TABLE t1 (
        set_unique_utf8 set ('a','b','c','d','e','f','g','h','i','j','k','l',
                             'm','n','o','p','q','r','s','t','u','v','w','x',
                             'y','z') CHARACTER SET utf8,
        unique (set_unique_utf8)
);

INSERT INTO t1 ( set_unique_utf8 ) VALUES ( '' );
--error ER_DUP_ENTRY 
INSERT INTO t1 ( set_unique_utf8 ) VALUES ( '' );

DROP TABLE t1;


--echo End of 5.0 tests
+2 −2
Original line number Diff line number Diff line
@@ -2496,7 +2496,7 @@ void handler::print_keydup_error(uint key_nr, const char *msg)
      str.append(STRING_WITH_LEN("..."));
    }
    my_printf_error(ER_DUP_ENTRY, msg,
		    MYF(0), str.c_ptr(), table->key_info[key_nr].name);
		    MYF(0), str.c_ptr_safe(), table->key_info[key_nr].name);
  }
}

@@ -2564,7 +2564,7 @@ void handler::print_error(int error, myf errflag)
        str.append(STRING_WITH_LEN("..."));
      }
      my_error(ER_FOREIGN_DUPLICATE_KEY, MYF(0), table_share->table_name.str,
        str.c_ptr(), key_nr+1);
        str.c_ptr_safe(), key_nr+1);
      DBUG_VOID_RETURN;
    }
    textno= ER_DUP_KEY;