As of preview-11.3-preview de145915, the status is as follows:
Must fix:
- main.status2 does not work with ps-protocol (due to 2nd execution). It is apparently a test-only problem, the test needs to be fixed before pushing to main.
Uncertainties:
These observations should be looked at. They are not necessarily bugs at all, and even if they are, in my opinion they don't block pushing this feature. If it's confirmed they are bugs but not critical, I can file separate reports for them. Some of them weren't observed in the previous round because EXAMINED_ROWS didn't work, but now it is fixed, so more subtle issues came up.
- One of comments above says that I_S.EXAMINED_ROWS and I_S.SENT_ROWS in information schema should have been increased to BIGINT. It didn't happen.
- It seems that for queries served from the query cache, I_S.SENT_ROWS is not populated. I'm not 100% sure it is true, but at least I couldn't catch it being populated. Rows_sent in the status however is set.
- For INSERT ... SELECT the value of I_S.EXAMINED_ROWS is double the value of Rows_read in the status.
- For stored procedures I_S.EXAMINED_ROWS and I_S.SENT_ROWS show cumulative values. E.g. if a stored procedure consists of two selects, each of which examines and sends 5 rows, by the end of the second select the values are 10. It would be natural if the processlist was showing CALL as the statement which is being executed, but since it shows the actual SELECT (not the procedure call), it is confusing.
- For GROUP BY and similar queries I_S.EXAMINED_ROWS differs (by 2-3 times) from Rows_read in the status.
- Rows_sent in the status is not populated upon INSERT .. RETURNING / DELETE .. RETURNING (but I_S.SENT_ROWS is). It is a side observation as the status values weren't a part of this MDEV.
If no changes are made other than the test fix, then the feature can be merged into main without another round of testing. If any of the issues listed in the second part are addressed, then I will need to look at it again.
The patch only adds fields to 'information_schema.processlist' as it easy for a user to decide which fields to select.
I did not change 'show processlist' as I did not want to change the default output (and with SHOW processlist there is no options in selecting just those fields one wants).