After switching the database driver from mysql-connector-java to mariadb-java-client in one of our applications, stored procedures called with SimpleJdbcCall no longer worked and failed with an exception like java.sql.SQLSyntaxErrorException: Incorrect number of arguments for PROCEDURE foo.bar; expected 12, got 0.
After some investigation I noticed that the CallMetaDataProviderFactory has a list called supportedDatabaseProductsForProcedures (which contains MySQL, but not MariaDB) so accessProcedureColumnMetaData was set to false and initializeWithProcedureColumnMetaData was not called on the CallMetaDataProvider; thus no parameters where added to the procedure call, resulting in the SQLSyntaxErrorException.
So I think MariaDB should be added to the supportedDatabaseProductsForProcedures.
After switching the database driver from
mysql-connector-javatomariadb-java-clientin one of our applications, stored procedures called withSimpleJdbcCallno longer worked and failed with an exception likejava.sql.SQLSyntaxErrorException: Incorrect number of arguments for PROCEDURE foo.bar; expected 12, got 0.After some investigation I noticed that the
CallMetaDataProviderFactoryhas a list calledsupportedDatabaseProductsForProcedures(which containsMySQL, but notMariaDB) soaccessProcedureColumnMetaDatawas set tofalseandinitializeWithProcedureColumnMetaDatawas not called on theCallMetaDataProvider; thus no parameters where added to the procedure call, resulting in theSQLSyntaxErrorException.So I think
MariaDBshould be added to thesupportedDatabaseProductsForProcedures.