Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Won't Fix
-
10.2.2
-
None
Description
Current handler::records() is not fully usable as InnoDB could roll back the statement on some cases and you may not continue after that, it should be int records(ha_rows *n_rows) and server should check as these errors will abort the current query:
case HA_ERR_LOCK_DEADLOCK:
case HA_ERR_LOCK_TABLE_FULL:
case HA_ERR_LOCK_WAIT_TIMEOUT:
case HA_ERR_QUERY_INTERRUPTED:
see commit 40ec5373c0 on 5.7
Attachments
Issue Links
- relates to
-
MDEV-11751 Merge new release of InnoDB MySQL 5.7.18 to 10.2
-
- Closed
-
-
MDEV-18188 Maintain persistent COUNT(*) in InnoDB
-
- Stalled
-
Activity
Field | Original Value | New Value |
---|---|---|
Description |
Current handler::records() is not fully usable as InnoDB could roll back the statement on some cases and you may not continue after that, it should be int records(ha_rows *n_rows) and server should check as these errors will abort the current query:
case HA_ERR_LOCK_DEADLOCK: case HA_ERR_LOCK_TABLE_FULL: case HA_ERR_LOCK_WAIT_TIMEOUT: case HA_ERR_QUERY_INTERRUPTED: see commit 40ec5373c044547a66d5456b15d61553de8f3401 on 5.7 |
Current handler::records() is not fully usable as InnoDB could roll back the statement on some cases and you may not continue after that, it should be int records(ha_rows *n_rows) and server should check as these errors will abort the current query:
case HA_ERR_LOCK_DEADLOCK: case HA_ERR_LOCK_TABLE_FULL: case HA_ERR_LOCK_WAIT_TIMEOUT: case HA_ERR_QUERY_INTERRUPTED: see commit [40ec5373c0|https://github.com/mysql/mysql-server/commit/40ec5373c0] on 5.7 |
Issue Type | Task [ 3 ] | Bug [ 1 ] |
Affects Version/s | 10.2.2 [ 22013 ] |
Assignee | Sergei Petrunia [ psergey ] |
Assignee | Sergei Petrunia [ psergey ] |
Assignee | Sergei Petrunia [ psergey ] | Marko Mäkelä [ marko ] |
Link |
This issue relates to |
Fix Version/s | N/A [ 14700 ] | |
Fix Version/s | 10.2 [ 14601 ] | |
Resolution | Won't Fix [ 2 ] | |
Status | Open [ 1 ] | Closed [ 6 ] |
Link | This issue relates to MDEV-18188 [ MDEV-18188 ] |
Workflow | MariaDB v3 [ 75786 ] | MariaDB v4 [ 150461 ] |
Oracle removed this in MySQL 5.7.18, because it is hard-wired to use the clustered index.
Sometimes using a secondary index could be a bad idea, because we do not have a hidden DB_TRX_ID column in the secondary indexes. For delete-marked records or for secondary index pages where PAGE_MAX_TRX_ID is too new, a lookup for a matching clustered index record must be performed (random lookups to the clustered index and optionally to undo log records). This is why it was hard-wired to use the clustered index in the first place.
See also my old blog post that mentions InnoDB secondary indexes.