in wrapper/src/main/java/software/amazon/jdbc/dialect/RdsMysqlDialect.java [35:83]
public boolean isDialect(final Connection connection) {
if (super.isDialect(connection)) {
// MysqlDialect and RdsMysqlDialect use the same server version query to determine the dialect.
// The `SHOW VARIABLES LIKE 'version_comment'` either outputs
// | Variable_name | value |
// |-----------------|------------------------------|
// | version_comment | MySQL Community Server (GPL) |
// for community Mysql, or
// | Variable_name | value |
// |-----------------|---------------------|
// | version_comment | Source distribution |
// for RDS MySQL. If super.idDialect returns true there is no need to check for RdsMysqlDialect.
return false;
}
Statement stmt = null;
ResultSet rs = null;
try {
stmt = connection.createStatement();
rs = stmt.executeQuery(this.getServerVersionQuery());
while (rs.next()) {
final int columnCount = rs.getMetaData().getColumnCount();
for (int i = 1; i <= columnCount; i++) {
final String columnValue = rs.getString(i);
if ("Source distribution".equalsIgnoreCase(columnValue)) {
return true;
}
}
}
} catch (final SQLException ex) {
// ignore
} finally {
if (stmt != null) {
try {
stmt.close();
} catch (SQLException ex) {
// ignore
}
}
if (rs != null) {
try {
rs.close();
} catch (SQLException ex) {
// ignore
}
}
}
return false;
}