-
Sachin Agarwal authored
Problem: Insert statement on a table with spatial index hit an assert 'record type mismatch'. Analysis: 1. When Insert operation requires node split, it creates a new node, move approximate half of records into the new node and make its entry into parent node. 2. After a split, If the new record insert fail (because new tuple does not fit), we need to do another split. 3. In the next attempt, we clear heap memory to reuse it for next split. Tuple which we are inserting was allocated from same heap chunk. 4. This causes tuple corruption and leads to an assert. Fix: Before starting split operation, created a copy of tuple from a separate heap chunk. RB: 23493 Reviewed by : Yasufumi Kinoshita <yasufumi.kinoshita@oracle.com>
Sachin Agarwal authoredProblem: Insert statement on a table with spatial index hit an assert 'record type mismatch'. Analysis: 1. When Insert operation requires node split, it creates a new node, move approximate half of records into the new node and make its entry into parent node. 2. After a split, If the new record insert fail (because new tuple does not fit), we need to do another split. 3. In the next attempt, we clear heap memory to reuse it for next split. Tuple which we are inserting was allocated from same heap chunk. 4. This causes tuple corruption and leads to an assert. Fix: Before starting split operation, created a copy of tuple from a separate heap chunk. RB: 23493 Reviewed by : Yasufumi Kinoshita <yasufumi.kinoshita@oracle.com>
Loading