mirror of
https://github.com/MariaDB/server.git
synced 2025-12-24 11:21:21 +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:
@@ -1637,4 +1637,23 @@ select count(*) from t1, t2 where t1.createdDate = t2.createdDate;
|
||||
count(*)
|
||||
1
|
||||
drop table t1, t2;
|
||||
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)
|
||||
);
|
||||
INSERT INTO t1 VALUES (0);
|
||||
ERROR 22012: Division by 0
|
||||
SELECT * FROM t1;
|
||||
c1
|
||||
TRUNCATE t1;
|
||||
INSERT INTO t1 VALUES (NULL), (0), (1), (2);
|
||||
ERROR 22012: Division by 0
|
||||
SELECT * FROM t1;
|
||||
c1
|
||||
NULL
|
||||
DROP TABLE t1;
|
||||
SET SQL_MODE= @orig_sql_mode;
|
||||
End of 5.1 tests
|
||||
|
||||
Reference in New Issue
Block a user