fix-mysql-function-ddl-query

This commit is contained in:
zgq
2024-03-09 16:24:31 +08:00
parent 1baa37820f
commit 7882c1a870

View File

@ -57,19 +57,25 @@ public class MysqlMetaData extends DefaultMetaService implements MetaData {
public Function function(Connection connection, @NotEmpty String databaseName, String schemaName, public Function function(Connection connection, @NotEmpty String databaseName, String schemaName,
String functionName) { String functionName) {
String sql = String.format(ROUTINES_SQL, "FUNCTION", databaseName, functionName); String functionInfoSql = String.format(ROUTINES_SQL, "FUNCTION", databaseName, functionName);
return SQLExecutor.getInstance().execute(connection, sql, resultSet -> { Function function = SQLExecutor.getInstance().execute(connection, functionInfoSql, resultSet -> {
Function function = new Function(); Function f = new Function();
function.setDatabaseName(databaseName); f.setDatabaseName(databaseName);
function.setSchemaName(schemaName); f.setSchemaName(schemaName);
function.setFunctionName(functionName); f.setFunctionName(functionName);
if (resultSet.next()) { if (resultSet.next()) {
function.setSpecificName(resultSet.getString("SPECIFIC_NAME")); f.setSpecificName(resultSet.getString("SPECIFIC_NAME"));
function.setRemarks(resultSet.getString("ROUTINE_COMMENT")); f.setRemarks(resultSet.getString("ROUTINE_COMMENT"));
function.setFunctionBody(resultSet.getString("ROUTINE_DEFINITION"));
} }
return function; return f;
}); });
String functionDDlSql =String.format("SHOW CREATE FUNCTION %s", functionName);
SQLExecutor.getInstance().execute(connection,functionDDlSql, resultSet -> {
if (resultSet.next()) {
function.setFunctionBody(resultSet.getString("Create Function"));
}
} );
return function;
} }