-
Allen Lai authored
ROW_INS_SEC_INDEX_ENTRY_BY_MO This bug has 2 issues: Issue 1: Same as bug#20734998, partial update cause the problem. The different is there're more that 1 update in a transaction. For example, in trx1, we execute update table t1, then update table t2. Update t1 is ok, but update t2 hit a dup key error, so we need to rollback. Since the patch for bug#20734998 will set last updated spatial index to NULL before every update, so, update on t1 will be skipped. The solution is we need to search spatial index twice, one for finding an undel-marked rec, if can't find it, we do the second round search for finding a del-marked rec. And we will do some optimization on this later. Issue 2: Purge found a undel-marked rec to purge, and this shouldn't happen. It's caused by the spatial index is not sync with cluster index. And the root cause is, we generate wrong mbr for externally stored geometry field in function row_upd_changes_ord_field_binary_func. And this will cause we skipped the spatial index on this field in update. The solution is read the whole field data from cluster row to generate mbr. This issue is a flaw of bug#20313067 fix. Reviewed-by:
Jimmy <Yang<jimmy.yang@oracle.com> RB: 9223
Allen Lai authoredROW_INS_SEC_INDEX_ENTRY_BY_MO This bug has 2 issues: Issue 1: Same as bug#20734998, partial update cause the problem. The different is there're more that 1 update in a transaction. For example, in trx1, we execute update table t1, then update table t2. Update t1 is ok, but update t2 hit a dup key error, so we need to rollback. Since the patch for bug#20734998 will set last updated spatial index to NULL before every update, so, update on t1 will be skipped. The solution is we need to search spatial index twice, one for finding an undel-marked rec, if can't find it, we do the second round search for finding a del-marked rec. And we will do some optimization on this later. Issue 2: Purge found a undel-marked rec to purge, and this shouldn't happen. It's caused by the spatial index is not sync with cluster index. And the root cause is, we generate wrong mbr for externally stored geometry field in function row_upd_changes_ord_field_binary_func. And this will cause we skipped the spatial index on this field in update. The solution is read the whole field data from cluster row to generate mbr. This issue is a flaw of bug#20313067 fix. Reviewed-by:
Jimmy <Yang<jimmy.yang@oracle.com> RB: 9223
Loading