diff options
author | Chris Calender <chris@mariadb.com> | 2018-04-17 15:00:15 -0400 |
---|---|---|
committer | Sergey Vojtovich <svoj@mariadb.org> | 2018-06-07 17:21:14 +0400 |
commit | d9b159a2027c56c5c87385cfe1ae43b8c73a97b6 (patch) | |
tree | b459a45cea9cca0f5183aa36dd601a4bda7f7e85 /client | |
parent | 75b4eb5cc969a1f5fc221d03c62987b8e57d6332 (diff) | |
download | mariadb-git-d9b159a2027c56c5c87385cfe1ae43b8c73a97b6.tar.gz |
MDEV-15789 - mysqlslap use incorrect table def
The bug arises when one uses --auto-generate-sql-guid-primary (and
--auto-generate-sql-secondary-indexes) with mysqlslap and also have
sql_mode=STRICT_TRANS_TABLE.
When using this option, mysqlslap should create a column with varchar(36),
but it appears to create it as a varchar(32) only. Then if one has
sql_mode=STRICT_TRANS_TABLES, it throws an error, like:
mysqlslap: Cannot run query INSERT INTO t1 VALUES (...)
ERROR : Data too long for column 'id' at row 1
Upstream bug report: BUG#80329.
Diffstat (limited to 'client')
-rw-r--r-- | client/mysqlslap.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/client/mysqlslap.c b/client/mysqlslap.c index a9746916411..ba7b8cea6a9 100644 --- a/client/mysqlslap.c +++ b/client/mysqlslap.c @@ -840,7 +840,7 @@ build_table_string(void) if (auto_generate_sql_guid_primary) { - dynstr_append(&table_string, "id varchar(32) primary key"); + dynstr_append(&table_string, "id varchar(36) primary key"); if (num_int_cols || num_char_cols || auto_generate_sql_guid_primary) dynstr_append(&table_string, ","); @@ -855,7 +855,7 @@ build_table_string(void) if (count) /* Except for the first pass we add a comma */ dynstr_append(&table_string, ","); - if (snprintf(buf, HUGE_STRING_LENGTH, "id%d varchar(32) unique key", count) + if (snprintf(buf, HUGE_STRING_LENGTH, "id%d varchar(36) unique key", count) > HUGE_STRING_LENGTH) { fprintf(stderr, "Memory Allocation error in create table\n"); |