New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Connection (session) attributes #6191
Comments
As I said in GFS design comments, the solution about storing your own case in the same map as the session settings is not scalable. It will for sure conflict when we will add a new session setting. I repeat here the design I think will work the best:
This way you can store settings not by names but by unsigned ids, which is more compact. Also you can add new settings and not care about what options the existing users use. And finally - it is just easier to work with in the code. |
We would want to add
to enable/disable features separately. |
We have |
We need a way to separate connected clients from each other according to their abilities.
For example, we need to know, who provides GFS feature and who doesn't. (See, for example, #5924)
So, we need a new client request IPROTO_SESSION. A client can send his own options or connection options in the request.
Notes:
Request format
Request code - IPROTO_SESSION (code ~ 0x54)
Body is a map with
There are some predefined keys:
proto
:INT
- client protocol version.Also, there are some exists predefined keys from file src/box/session_settings.h:
error_marshaling_enabled
sql_default_engine
sql_defer_foreign_keys
sql_full_column_names
sql_full_metadata
sql_parser_debug
sql_recursive_triggers
sql_reverse_unordered_selects
sql_select_debug
sql_vdbe_debug
Note: a client can send some additional keys in the map. All these keys have to be accessible from LUA.
A user should use an application's prefix for his options. For example
myapp_option1: 123
.Response:
Returns all session options in the same format.
The text was updated successfully, but these errors were encountered: