Skip to content

Commit 23882ce

Browse files
dreab8gbadner
authored andcommitted
Fix Sybase Connection#getSchema() throws an exception
(cherry picked from commit aaba476)
1 parent db37250 commit 23882ce

File tree

2 files changed

+29
-0
lines changed

2 files changed

+29
-0
lines changed

hibernate-core/src/main/java/org/hibernate/dialect/SybaseDialect.java

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,14 @@
66
*/
77
package org.hibernate.dialect;
88

9+
import java.sql.DatabaseMetaData;
10+
import java.sql.SQLException;
911
import java.sql.Types;
1012

13+
import org.hibernate.engine.jdbc.env.spi.IdentifierCaseStrategy;
14+
import org.hibernate.engine.jdbc.env.spi.IdentifierHelper;
15+
import org.hibernate.engine.jdbc.env.spi.IdentifierHelperBuilder;
16+
import org.hibernate.engine.jdbc.env.spi.NameQualifierSupport;
1117
import org.hibernate.type.descriptor.sql.BlobTypeDescriptor;
1218
import org.hibernate.type.descriptor.sql.ClobTypeDescriptor;
1319
import org.hibernate.type.descriptor.sql.SqlTypeDescriptor;
@@ -48,4 +54,21 @@ public String getNullColumnString() {
4854
public String getCurrentSchemaCommand() {
4955
return "select db_name()";
5056
}
57+
58+
@Override
59+
public IdentifierHelper buildIdentifierHelper(IdentifierHelperBuilder builder, DatabaseMetaData dbMetaData)
60+
throws SQLException {
61+
if ( dbMetaData == null ) {
62+
builder.setUnquotedCaseStrategy( IdentifierCaseStrategy.MIXED );
63+
builder.setQuotedCaseStrategy( IdentifierCaseStrategy.MIXED );
64+
}
65+
66+
return super.buildIdentifierHelper( builder, dbMetaData );
67+
}
68+
69+
@Override
70+
public NameQualifierSupport getNameQualifierSupport() {
71+
return NameQualifierSupport.CATALOG;
72+
}
73+
5174
}

hibernate-core/src/main/java/org/hibernate/tool/schema/extract/internal/AbstractInformationExtractorImpl.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -407,6 +407,9 @@ public TableInformation getTable(Identifier catalog, Identifier schema, Identifi
407407
}
408408

409409
private Identifier getCurrentSchema(JdbcEnvironment jdbcEnvironment) {
410+
if ( jdbcEnvironment.getNameQualifierSupport() == NameQualifierSupport.CATALOG ) {
411+
return null;
412+
}
410413
if ( currentSchema != null ) {
411414
return currentSchema;
412415
}
@@ -428,6 +431,9 @@ private Identifier getCurrentSchema(JdbcEnvironment jdbcEnvironment) {
428431
}
429432

430433
private Identifier getCurrentCatalog(JdbcEnvironment jdbcEnvironment) {
434+
if ( jdbcEnvironment.getNameQualifierSupport() == NameQualifierSupport.SCHEMA ) {
435+
return null;
436+
}
431437
if ( currentCatalog != null ) {
432438
return currentCatalog;
433439
}

0 commit comments

Comments
 (0)