Performance Schema session_connect_attrs Table
Description
session_connect_attrs is a Performance Schema table that shows connection attributes for all sessions. The Performance Schema needs to be enabled for the table to be populated.
Applications can pass key/value connection attributes to the server when a connection is made. The session_connect_attrs and session_account_connect_attrs tables provide access to this information, for all sessions and the current session respectively.
The C API functions mysql_options() and mysql_optionsv() are used for passing connection attributes to the server.
session_connect_attrs contains the following columns:
| Column | Description |
|---|---|
PROCESSLIST_ID | Session connection identifier. |
ATTR_NAME | Attribute name. |
ATTR_VALUE | Attribute value. |
ORDINAL_POSITION | Order in which attribute was added to the connection attributes. |
Example
Returning the current connection's attributes:
SELECT * FROM performance_schema.session_connect_attrs WHERE processlist_id=CONNECTION_ID(); +----------------+-----------------+------------------+------------------+ | PROCESSLIST_ID | ATTR_NAME | ATTR_VALUE | ORDINAL_POSITION | +----------------+-----------------+------------------+------------------+ | 45 | _os | debian-linux-gnu | 0 | | 45 | _client_name | libmysql | 1 | | 45 | _pid | 7711 | 2 | | 45 | _client_version | 10.0.5 | 3 | | 45 | _platform | x86_64 | 4 | | 45 | program_name | mysql | 5 | +----------------+-----------------+------------------+------------------+
Using other connectors
Java
Connection attributes values are set using the option connectionAttributes.
Example using connection string jdbc:mariadb://localhost/?connectionAttributes=test:test1,test2:test2Val,test3
MariaDB [(none)]> SELECT * FROM performance_schema.session_connect_attrs WHERE processlist_id=17; +----------------+-----------------+---------------------+------------------+ | PROCESSLIST_ID | ATTR_NAME | ATTR_VALUE | ORDINAL_POSITION | +----------------+-----------------+---------------------+------------------+ | 17 | _client_name | MariaDB Connector/J | 0 | | 17 | _client_version | 3.1.3 | 1 | | 17 | _server_host | localhost | 2 | | 17 | _os | Windows 11 | 3 | | 17 | _thread | 1 | 4 | | 17 | _java_vendor | Oracle Corporation | 5 | | 17 | _java_version | 19.0.2 | 6 | | 17 | test | test1 | 7 | | 17 | test2 | test2Val | 8 | | 17 | test3 | NULL | 9 | +----------------+-----------------+---------------------+------------------+
Node.js
Connection attributes values are set using the option connectAttributes
Example using connection
const conn = await mariadb.createConnection({
host: 'localhost',
user: 'root',
connectAttributes: { test: 'test1', test2: 'test2Val', test3: 'f' }
});
MariaDB [(none)]> SELECT * FROM performance_schema.session_connect_attrs WHERE processlist_id=30; +----------------+-----------------+------------------------+------------------+ | PROCESSLIST_ID | ATTR_NAME | ATTR_VALUE | ORDINAL_POSITION | +----------------+-----------------+------------------------+------------------+ | 30 | _client_name | MariaDB connector/Node | 0 | | 30 | _client_version | 3.1.1 | 1 | | 30 | _server_host | ::1 | 2 | | 30 | _os | win32 | 3 | | 30 | _client_host | NOSTROMO | 4 | | 30 | _node_version | 18.15.0 | 5 | | 30 | test | test1 | 6 | | 30 | test2 | test2Val | 7 | | 30 | test3 | f | 8 | +----------------+-----------------+------------------------+------------------+