diff options
author | unknown <mskold/marty@mysql.com/linux.site> | 2006-10-16 10:07:19 +0200 |
---|---|---|
committer | unknown <mskold/marty@mysql.com/linux.site> | 2006-10-16 10:07:19 +0200 |
commit | 8a88e57c28c4020982fa5b2d9a03fd17149cbe3b (patch) | |
tree | 321c29c068b3a9984c08d48de5d5e2e7d9760c7e /sql/handler.cc | |
parent | 0079ce3b2ca38f79fce8fa3779a627149a92d465 (diff) | |
parent | e4cc40f88c23ea3d6649c7ca19380696e413be5f (diff) | |
download | mariadb-git-8a88e57c28c4020982fa5b2d9a03fd17149cbe3b.tar.gz |
Merge mysql.com:/windows/Linux_space/MySQL/mysql-4.1
into mysql.com:/windows/Linux_space/MySQL/mysql-5.0
mysql-test/r/ndb_charset.result:
Auto merged
mysql-test/r/ndb_index_unique.result:
Auto merged
mysql-test/r/ndb_update.result:
Auto merged
sql/ha_ndbcluster.cc:
Merg
sql/handler.cc:
Merge
Diffstat (limited to 'sql/handler.cc')
-rw-r--r-- | sql/handler.cc | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/sql/handler.cc b/sql/handler.cc index 4accc746664..c95102c4bc0 100644 --- a/sql/handler.cc +++ b/sql/handler.cc @@ -1774,12 +1774,22 @@ void handler::print_error(int error, myf errflag) /* Write the dupplicated key in the error message */ char key[MAX_KEY_LENGTH]; String str(key,sizeof(key),system_charset_info); - key_unpack(&str,table,(uint) key_nr); - uint max_length=MYSQL_ERRMSG_SIZE-(uint) strlen(ER(ER_DUP_ENTRY)); - if (str.length() >= max_length) + + if (key_nr == MAX_KEY) + { + /* Key is unknown */ + str.length(0); + key_nr= -1; + } + else { - str.length(max_length-4); - str.append(STRING_WITH_LEN("...")); + key_unpack(&str,table,(uint) key_nr); + uint max_length=MYSQL_ERRMSG_SIZE-(uint) strlen(ER(ER_DUP_ENTRY)); + if (str.length() >= max_length) + { + str.length(max_length-4); + str.append(STRING_WITH_LEN("...")); + } } my_error(ER_DUP_ENTRY, MYF(0), str.c_ptr(), key_nr+1); DBUG_VOID_RETURN; |