Catalog functions have common (rather minor) divergences from the specs. To name few
1) For all functions if catalog(schema) is empty string means tables/procedures/etc w/out catalog(schema). i.e. should result in empty resultset for MariaDB. Not all functions conform that.
2) Functions do not respect SQL_ATTR_METADATA_ID. Even though it's hard to imagine real world use of SQL_TRUE for that(and absence of bug reports is evidence of that)
3) Many functions, there NULL is not acceptable for the parameter, treated empty string in this parameter also as not acceptable. While specs say only about NULL.
4) Usually functions treat NULL catalog name(that we treat as a schema), as current schema, or any schema, if no database selected. I think the latter is wrong for all functions, but for now I am gonna change only those, there null catalog(schema) is not acceptable by the specs.
5) Schema parameter we neglect completely, as we historically treat catalog as a schema. But if do not support schemas(and we pretend so), we should return HYC00 "Optional feature not implemented"("A schema name was specified, and the driver or data source does not support schemas")
6) For some functions certain arguments are required to be not NULL, but we return also error in case of empty string.
7) Not in all cases argument values are escaped, where it's needed