bug #26074 Mysql crash creating partition

As we have unified paths inside partition engine, we should look for '/'
as a path separator
parent 18a25907
......@@ -26,3 +26,18 @@ ERROR HY000: No paths allowed for shared library
execute abc;
ERROR HY000: No paths allowed for shared library
deallocate prepare abc;
CREATE TABLE t1 (
`pkid` int(11) NOT NULL AUTO_INCREMENT,
`SALES_DATE` date NOT NULL DEFAULT '0000-00-00',
KEY `pkid` (`pkid`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
PARTITION BY RANGE (MONTH(SALES_DATE))
(
PARTITION p0 VALUES LESS THAN (2) ENGINE=INNODB
data DIRECTORY='c:/tmp/'
index DIRECTORY = 'c:/tmp/',
PARTITION p1 VALUES LESS THAN (3) ENGINE=INNODB
data DIRECTORY='c:/tmp/'
index DIRECTORY = 'c:/tmp/'
);
drop table t1;
# Windows-specific tests
--source include/windows.inc
-- source include/have_innodb.inc
#
# Bug 9148: Denial of service
......@@ -49,3 +50,23 @@ execute abc;
execute abc;
deallocate prepare abc;
#
# Bug #26074 Mysql crash when creating partitions
#
CREATE TABLE t1 (
`pkid` int(11) NOT NULL AUTO_INCREMENT,
`SALES_DATE` date NOT NULL DEFAULT '0000-00-00',
KEY `pkid` (`pkid`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
PARTITION BY RANGE (MONTH(SALES_DATE))
(
PARTITION p0 VALUES LESS THAN (2) ENGINE=INNODB
data DIRECTORY='c:/tmp/'
index DIRECTORY = 'c:/tmp/',
PARTITION p1 VALUES LESS THAN (3) ENGINE=INNODB
data DIRECTORY='c:/tmp/'
index DIRECTORY = 'c:/tmp/'
);
DROP TABLE t1;
......@@ -1781,7 +1781,8 @@ int ha_partition::set_up_table_before_create(TABLE *table,
}
table->s->max_rows= part_elem->part_max_rows;
table->s->min_rows= part_elem->part_min_rows;
partition_name= strrchr(partition_name_with_path, FN_LIBCHAR);
/* Here we have unified path so should always look for '/', not FN_LIBCHAR */
partition_name= strrchr(partition_name_with_path, '/');
if ((part_elem->index_file_name &&
(error= append_file_to_dir(thd,
(const char**)&part_elem->index_file_name,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment