@@ -33,6 +33,9 @@ public class ExtractedDatabaseMetaDataImpl implements ExtractedDatabaseMetaData
3333 private final JdbcEnvironment jdbcEnvironment ;
3434 private final JdbcConnectionAccess connectionAccess ;
3535
36+ private final String databaseProductName ;
37+ private final String databaseProductVersion ;
38+
3639 private final String connectionCatalogName ;
3740 private final String connectionSchemaName ;
3841
@@ -61,6 +64,8 @@ private ExtractedDatabaseMetaDataImpl(
6164 JdbcConnectionAccess connectionAccess ,
6265 String connectionCatalogName ,
6366 String connectionSchemaName ,
67+ String databaseProductName ,
68+ String databaseProductVersion ,
6469 boolean supportsRefCursors ,
6570 boolean supportsNamedParameters ,
6671 boolean supportsScrollableResults ,
@@ -78,6 +83,8 @@ private ExtractedDatabaseMetaDataImpl(
7883 this .connectionAccess = connectionAccess ;
7984 this .connectionCatalogName = connectionCatalogName ;
8085 this .connectionSchemaName = connectionSchemaName ;
86+ this .databaseProductName = databaseProductName ;
87+ this .databaseProductVersion = databaseProductVersion ;
8188 this .supportsRefCursors = supportsRefCursors ;
8289 this .supportsNamedParameters = supportsNamedParameters ;
8390 this .supportsScrollableResults = supportsScrollableResults ;
@@ -138,6 +145,16 @@ public SQLStateType getSqlStateType() {
138145 return sqlStateType ;
139146 }
140147
148+ @ Override
149+ public String getDatabaseProductName () {
150+ return databaseProductName ;
151+ }
152+
153+ @ Override
154+ public String getDatabaseProductVersion () {
155+ return databaseProductVersion ;
156+ }
157+
141158 @ Override
142159 public String getConnectionCatalogName () {
143160 return connectionCatalogName ;
@@ -195,22 +212,24 @@ public static class Builder {
195212 private final boolean jdbcMetadataIsAccessible ;
196213 private final JdbcConnectionAccess connectionAccess ;
197214
198- private String connectionSchemaName ;
199- private String connectionCatalogName ;
200-
201- private boolean supportsRefCursors ;
202- private boolean supportsNamedParameters ;
203- private boolean supportsScrollableResults ;
204- private boolean supportsGetGeneratedKeys ;
205- // In absence of DatabaseMetaData batching updates is assumed to be supported
206- private boolean supportsBatchUpdates = true ;
207- private boolean supportsDataDefinitionInTransaction ;
208- private boolean doesDataDefinitionCauseTransactionCommit ;
209- private SQLStateType sqlStateType ;
210- private String url ;
211- private String driver ;
212- private int defaultTransactionIsolation ;
213- private int transactionIsolation ;
215+ private String connectionSchemaName ;
216+ private String connectionCatalogName ;
217+ private String databaseProductName ;
218+ private String databaseProductVersion ;
219+
220+ private boolean supportsRefCursors ;
221+ private boolean supportsNamedParameters ;
222+ private boolean supportsScrollableResults ;
223+ private boolean supportsGetGeneratedKeys ;
224+ // In absence of DatabaseMetaData batching updates is assumed to be supported
225+ private boolean supportsBatchUpdates = true ;
226+ private boolean supportsDataDefinitionInTransaction ;
227+ private boolean doesDataDefinitionCauseTransactionCommit ;
228+ private SQLStateType sqlStateType ;
229+ private String url ;
230+ private String driver ;
231+ private int defaultTransactionIsolation ;
232+ private int transactionIsolation ;
214233
215234 public Builder (JdbcEnvironment jdbcEnvironment , boolean jdbcMetadataIsAccessible , JdbcConnectionAccess connectionAccess ) {
216235 this .jdbcEnvironment = jdbcEnvironment ;
@@ -221,6 +240,8 @@ public Builder(JdbcEnvironment jdbcEnvironment, boolean jdbcMetadataIsAccessible
221240 public Builder apply (DatabaseMetaData databaseMetaData ) throws SQLException {
222241 connectionCatalogName = databaseMetaData .getConnection ().getCatalog ();
223242 // NOTE : databaseMetaData.getConnection().getSchema() would require java 1.7 as baseline
243+ databaseProductName = databaseMetaData .getDatabaseProductName ();
244+ databaseProductVersion = databaseMetaData .getDatabaseProductVersion ();
224245 supportsRefCursors = StandardRefCursorSupport .supportsRefCursors ( databaseMetaData );
225246 supportsNamedParameters = databaseMetaData .supportsNamedParameters ();
226247 supportsScrollableResults = databaseMetaData .supportsResultSetType ( ResultSet .TYPE_SCROLL_INSENSITIVE );
@@ -292,6 +313,8 @@ public ExtractedDatabaseMetaDataImpl build() {
292313 connectionAccess ,
293314 connectionCatalogName ,
294315 connectionSchemaName ,
316+ databaseProductName ,
317+ databaseProductVersion ,
295318 supportsRefCursors ,
296319 supportsNamedParameters ,
297320 supportsScrollableResults ,
0 commit comments