본문 바로가기
MySQL News&Article

MySQL Ver. 5.7.30 주요 버그 픽스 사항

by 모모레 2021. 7. 24.
카테고리 내용
InnoDB -- clustered index record를 deleted 마크하고 업데이트된 버전의 레코드를 clustered index에 삽입하는 row_upd_clust_rec_by_insert 함수가 하위 수준 함수에 잘못된 n_ext 값(총 외부 필드 수)을 전달하는 버그 픽스 
-- 컬럼 추가 작업에서 dangling pointer에 의해 발생할 수 있는 assertion failure 수정함. 
-- Spatial index가 있는 테이블에 입력 작업을 할때 tuple corruption으로 인해 발생하는 record type mismatch assertion을 수정함. 
-- corrupted undo log record로 인해 발생하는 잘못된 undo log record size 계산으로 발생하는 메모리 할당 버그 수정함. 
Replication -- GRANT, REVOKE문을 partially 하게 실행되게 사용하는 경우 발생할 수 있는 리플리케이션 중지 버그를 수정함. 
-- binlog_format=MIXED, tx_isolation=READ-COMMITTED, binlog_row_image=FULL 로 사용하는 경우, INSERT... SELECT 구문실행시 null 값이 있는 컬럼을 기록하지 않은 사항을 수정함. 
기타 -- CONCAT(), CONCAT_WS() 사용 시 잘못된 substring 처리로 발생하는 버그 픽스 
-- UNION 사용시 ORDER BY를 사용하는 경우 발생하는 문제를 처리함. 
-- 문자열로 지정된 특정 숫자를 입력하고 할때 string-to-integer 작업 시 발생하는 비정상 종료 버그를 수정함. 
-- 2개의 다른 테이블을 조인하여 update하는 경우 제대로 최적화 되지 않던 문제를 수정함. 

InnoDB: The row_upd_clust_rec_by_insert function, which marks a clustered index record as deleted and inserts an updated version of the record into the clustered index, passed an incorrect n_ext value (the total number of external fields) to lower level functions, causing an assertion failure. (Bug #30437378)

InnoDB: An add column operation caused an assertion failure. The failure was due to a dangling pointer. (Bug #29866408)

InnoDB: An insert statement on a table with a spatial index raised a record type mismatch assertion due to a tuple corruption. (Bug #29465567)

InnoDB: A function that calculates undo log record size could calculate an incorrect length value in the case of a corrupted undo log record, resulting in a malloc failure. Assertion code was added to detect incorrect calculations. (Bug #29448406, Bug #82734)

Replication: When a GRANT or REVOKE statement is only partially executed, an incident event is logged in the binary log, which makes the replication slave's applier thread stop so that the slave can be reconciled manually with the master. Previously, if a failed GRANT or REVOKE statement was the first statement executed in the session, no GTID was applied to the incident event (because the cache manager did not yet exist for the session), causing an error on the replication slave. Also, no incident event was logged in the situation where a GRANT statement created a user but then failed because the privileges had been specified incorrectly, again causing an error on the replication slave. Both these issues have now been fixed. (Bug #30566518, Bug #30324661)

Replication: With the settings binlog_format=MIXED, tx_isolation=READ-COMMITTED, and binlog_row_image=FULL, an INSERT ... SELECT query involving a transactional storage engine omitted any columns with a null value from the row image written to the binary log. This happened because when processing INSERT ... SELECT statements, the columns were marked for inserts before the binary logging format was selected. The issue has now been fixed. (Bug #29110804, Bug #93423)

Replication: Under certain conditions, replication of conditional comments could fail. (Bug #28388217)

CONCAT() and CONCAT_WS() could produce incorrect results in rare cases due to incorrect substring handling. (Bug #30350206, Bug #96950)

The server did not handle correctly a UNION in which one of the queries contained a subquery that used ORDER BY. (Bug #29952565)

A query with a WHERE clause whose predicate contained a numeric value in scientific notation was not handled correctly.

In addition, attempting to insert a particular integer specified as a string caused a server exit when the string-to-integer conversion was not successful. (Bug #29723340, Bug #30441969)

A multi-table UPDATE statement which updated a table joined to a derived table that joined two other tables was not optimized properly as it had been in MySQL 5.6, instead being treated as if STRAIGHT_JOIN had been used with the subquery creating the derived table. (Bug #97418, Bug #30488700)