From: Maitrayi Sabaratnam Date: November 1 2010 9:13am Subject: bzr commit into mysql-5.1-telco-7.0 branch (maitrayi.sabaratnam:3901) Bug#53354 List-Archive: http://lists.mysql.com/commits/122402 X-Bug: 53354 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============0714981653==" --===============0714981653== MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline #At file:///export/tmp/maitrayi/mysql-src/repo-7.0/mysql-5.1-telco-7.0-bug53354/ based on revid:jonas@stripped 3901 Maitrayi Sabaratnam 2010-11-01 Bug#53354 crash when creating partitioned table with multiple columns in the partition key modified: mysql-test/suite/ndb/r/ndb_basic.result mysql-test/suite/ndb/t/ndb_basic.test sql/sql_partition.cc === modified file 'mysql-test/suite/ndb/r/ndb_basic.result' === modified file 'mysql-test/suite/ndb/r/ndb_basic.result' --- a/mysql-test/suite/ndb/r/ndb_basic.result 2010-10-11 11:19:57 +0000 +++ b/mysql-test/suite/ndb/r/ndb_basic.result 2010-11-01 09:13:06 +0000 @@ -985,6 +985,8 @@ alter online table t1 add column c500 bit(1) column_format DYNAMIC; delete from t1; drop table t1; +create table `t1` (`a` int, b int, primary key (a,b)) engine=ndb partition by key(`a`,`b`,`a`); +ERROR HY000: Field in list of fields for partition function not found in table create table t1 ( a1234567890123456789012345678901234567890 int primary key, a12345678901234567890123456789a1234567890 int, === modified file 'mysql-test/suite/ndb/t/ndb_basic.test' --- a/mysql-test/suite/ndb/t/ndb_basic.test 2010-05-03 04:49:08 +0000 +++ b/mysql-test/suite/ndb/t/ndb_basic.test 2010-11-01 09:13:06 +0000 @@ -923,6 +923,13 @@ drop table t1; # +# test bug#53354 - crash when creating partitioned table with multiple columns in the partition key +# + +--error ER_FIELD_NOT_FOUND_PART_ERROR +create table `t1` (`a` int, b int, primary key (a,b)) engine=ndb partition by key(`a`,`b`,`a`); + +# # test max size of attribute name and truncation # === modified file 'sql/sql_partition.cc' --- a/sql/sql_partition.cc 2010-10-12 14:53:28 +0000 +++ b/sql/sql_partition.cc 2010-11-01 09:13:06 +0000 @@ -764,6 +764,11 @@ bool result; char *field_name; bool is_list_empty= TRUE; +#ifndef MCP_BUG53354 + int fields_handled = 0; + char* field_name_array[MAX_KEY]; +#endif + DBUG_ENTER("handle_list_of_fields"); while ((field_name= it++)) @@ -779,6 +784,25 @@ result= TRUE; goto end; } + +#ifndef MCP_BUG53354 + /* Check for duplicate fields in the list. + * Assuming that there are not many fields in the partition key list. + * If there were, it would be better to replace the for-loop + * with a more efficient algorithm. + */ + + field_name_array[fields_handled] = field_name; + for (int i = 0; i < fields_handled; ++i) + { + if (strcmp(field_name_array[i], field_name) == 0) + { + my_error(ER_FIELD_NOT_FOUND_PART_ERROR, MYF(0)); + DBUG_RETURN(TRUE); + } + } + fields_handled++; +#endif } if (is_list_empty) { --===============0714981653== MIME-Version: 1.0 Content-Type: text/bzr-bundle; charset="us-ascii"; name="bzr/maitrayi.sabaratnam@stripped" Content-Transfer-Encoding: 7bit Content-Disposition: inline # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: maitrayi.sabaratnam@stripped\ # gsng2kouj6y5mhgt # target_branch: file:///export/tmp/maitrayi/mysql-src/repo-7.0/mysql-\ # 5.1-telco-7.0-bug53354/ # testament_sha1: 7ca80e7dd5a6ca4762c2fb305db0431f5db86184 # timestamp: 2010-11-01 10:13:15 +0100 # base_revision_id: jonas@stripped # # Begin bundle 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 --===============0714981653==--