mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Bug#38083 Error-causing row inserted into partitioned table despite error
problems are located in the sql_partition.cc where functions calculation partition_id don't expect error returned from item->val_int(). Fixed by adding checks to these functions. Note - it tries to fix more problems than just the reported bug. per-file comments: modified: mysql-test/r/partition.result Bug#38083 Error-causing row inserted into partitioned table despite error test result mysql-test/t/partition.test Bug#38083 Error-causing row inserted into partitioned table despite error test case sql/opt_range.cc Bug#38083 Error-causing row inserted into partitioned table despite error get_part_id() call fixed sql/partition_info.h Bug#38083 Error-causing row inserted into partitioned table despite error get_subpart_id_func interface changed. sql/sql_partition.cc Bug#38083 Error-causing row inserted into partitioned table despite error various functions calculationg partition_id and subpart_id didn't expect an error returned from item->val_int(). Error checks added.
This commit is contained in:
@ -1791,4 +1791,27 @@ select count(*) from t1, t2 where t1.createdDate = t2.createdDate;
|
||||
|
||||
drop table t1, t2;
|
||||
|
||||
#
|
||||
# Bug #38083 Error-causing row inserted into partitioned table despite error
|
||||
#
|
||||
SET @orig_sql_mode = @@SQL_MODE;
|
||||
SET SQL_MODE='STRICT_ALL_TABLES,ERROR_FOR_DIVISION_BY_ZERO';
|
||||
CREATE TABLE t1 (c1 INT)
|
||||
PARTITION BY LIST(1 DIV c1) (
|
||||
PARTITION p0 VALUES IN (NULL),
|
||||
PARTITION p1 VALUES IN (1)
|
||||
);
|
||||
|
||||
-- error ER_DIVISION_BY_ZERO
|
||||
INSERT INTO t1 VALUES (0);
|
||||
SELECT * FROM t1;
|
||||
TRUNCATE t1;
|
||||
-- error ER_DIVISION_BY_ZERO
|
||||
INSERT INTO t1 VALUES (NULL), (0), (1), (2);
|
||||
SELECT * FROM t1;
|
||||
DROP TABLE t1;
|
||||
SET SQL_MODE= @orig_sql_mode;
|
||||
|
||||
|
||||
|
||||
--echo End of 5.1 tests
|
||||
|
Reference in New Issue
Block a user