this feature request is part of a serie to improve performance when using MariaDB : see doc
A capability MARIADB_CLIENT_CACHE_METADATA (Since MariaDB 10.6) permit to skip prepared statement metadata.
This differ from #1105 : My understanding of MySQL implementation is to totally skipping metadata, for application that are specifically designed for it ( caching query metadata for each query in advance in application).
MariaDB has a similar capability, but conception differ : if capability is set, server will just send metadata if it has changed since last sent (first execution will always have metadata).
from https://mariadb.com/kb/en/mariadb-protocol-differences-with-mysql/#prepare-statement-skipping-metadata :
Prepared statement metadata, which typically remains unchanged except during table alterations, can be cached by clients when the MARIADB_CLIENT_CACHE_METADATA capability is enabled. The server won't then send them again, unless they change. This significantly improves the performance of subsequent executions, especially for large metadata sets.
When MARIADB_CLIENT_CACHE_METADATA capability is set, the Resultset Column count packet format indicates if metadata follows or is skipped:
int column count
if (MARIADB_CLIENT_CACHE_METADATA capability set) int<1> metadata follows (0 / 1)
this feature request is part of a serie to improve performance when using MariaDB : see doc
A capability MARIADB_CLIENT_CACHE_METADATA (Since MariaDB 10.6) permit to skip prepared statement metadata.
This differ from #1105 : My understanding of MySQL implementation is to totally skipping metadata, for application that are specifically designed for it ( caching query metadata for each query in advance in application).
MariaDB has a similar capability, but conception differ : if capability is set, server will just send metadata if it has changed since last sent (first execution will always have metadata).
from https://mariadb.com/kb/en/mariadb-protocol-differences-with-mysql/#prepare-statement-skipping-metadata :