[MDEV-28821] Better support for Session tracking Created: 2022-06-13 Updated: 2022-06-14 |
|
| Status: | Open |
| Project: | MariaDB Server |
| Component/s: | None |
| Fix Version/s: | None |
| Type: | Task | Priority: | Major |
| Reporter: | Diego Dupin | Assignee: | Unassigned |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | 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. |
| Comments |
| Comment by markus makela [ 2022-06-14 ] |
|
Would the connectors that do not support DEPRECATE_EOF protocol be able to use this new SEMI_DEPRECATE_EOF protocol without modifications? If so, would the only difference be the size of the EOF packet and the way it should be interpreted? |
| Comment by Diego Dupin [ 2022-06-14 ] |
|
markus makela connectors needs modification to support this SEMI_DEPRECATE_EOF : For resultset, compare to client without CLIENT_DEPRECATE_EOF capability, the only difference will be the last packet beeing an OK_Packet with 0xfe header.
|