Details
-
Task
-
Status: Open (View Workflow)
-
Major
-
Resolution: Unresolved
-
None
-
None
-
None
Description
Some connectors (c/c/r2dbc…) only implements CLIENT_SESSION_TRACKING, but not CLIENT_DEPRECATE_EOF.
There is different reasons for that : in result-set, The intermediate EOF_Packet contains interesting pieces of information in status_flags like SERVER_MORE_RESULTS_EXIST, SERVER_PS_OUT_PARAMS
MySQL doesn't consider this as a problem, but that has consequences : R2DBC for example is an asynchronous driver, streaming data, that need to identify resultset type (standard / 'output parameter' resultset) BEFORE reading resultset rows.
CLIENT_DEPRECATE_EOF capability cannot be set. Resultset then ends with an EOF_Packet, without session tracking information.
Now that we want having session tracking information at any time (example MXS-4153) it would be better to have a new capability CLIENT_SEMI_DEPRECATE_EOF that behave like CLIENT_DEPRECATE_EOF without removing resultset intermediate EOF.