diff options
author | unknown <holyfoot@vva.(none)> | 2006-03-20 17:30:01 +0400 |
---|---|---|
committer | unknown <holyfoot@vva.(none)> | 2006-03-20 17:30:01 +0400 |
commit | afe397ff66299fb0707cf080cbb51bcf3cadace8 (patch) | |
tree | 44832da5b86101dae050c8fe1ccc93c17961b8c1 /sql/sql_partition.cc | |
parent | 723c3a504fcbd2b9fc37ae7369a7eb93ab3d3997 (diff) | |
download | mariadb-git-afe397ff66299fb0707cf080cbb51bcf3cadace8.tar.gz |
bug #17290 (sp with delete, create and rollback causes MySQLD core)
additional fixes
mysql-test/r/partition.result:
result fixed
mysql-test/t/partition.test:
testcase
sql/sql_parse.cc:
part_info cloning moved here
sql/sql_partition.cc:
fixes
sql/sql_table.cc:
part_info cloning removed
Diffstat (limited to 'sql/sql_partition.cc')
-rw-r--r-- | sql/sql_partition.cc | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/sql/sql_partition.cc b/sql/sql_partition.cc index 8cafeb55390..3cd6a87682f 100644 --- a/sql/sql_partition.cc +++ b/sql/sql_partition.cc @@ -3760,7 +3760,7 @@ bool mysql_unpack_partition(THD *thd, const uchar *part_buf, } } else - part_info= old_lex->part_info; + part_info= thd->work_part_info; } table->part_info= part_info; table->file->set_part_info(part_info); @@ -4077,7 +4077,9 @@ uint prep_alter_part_table(THD *thd, TABLE *table, ALTER_INFO *alter_info, if (table->part_info) table->s->version= 0L; - if (!(thd->work_part_info= thd->lex->part_info->get_clone())) + thd->work_part_info= thd->lex->part_info; + if (thd->work_part_info && + !(thd->work_part_info= thd->lex->part_info->get_clone())) DBUG_RETURN(TRUE); if (alter_info->flags & |