Skip to content

Commit fbe192a

Browse files
VladoKurucbeikov
authored andcommittedMar 4, 2025·
HHH-19219 Fix for Informix Catalog and schema support
1 parent bf900c3 commit fbe192a

File tree

2 files changed

+16
-4
lines changed

2 files changed

+16
-4
lines changed
 

‎hibernate-community-dialects/src/main/java/org/hibernate/community/dialect/InformixDialect.java

+6
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
import org.hibernate.dialect.unique.UniqueDelegate;
3838
import org.hibernate.engine.jdbc.Size;
3939
import org.hibernate.engine.jdbc.dialect.spi.DialectResolutionInfo;
40+
import org.hibernate.engine.jdbc.env.spi.NameQualifierSupport;
4041
import org.hibernate.engine.spi.LoadQueryInfluencers;
4142
import org.hibernate.engine.spi.SessionFactoryImplementor;
4243
import org.hibernate.exception.spi.TemplatedViolatedConstraintNameExtractor;
@@ -666,6 +667,11 @@ public String[] getDropSchemaCommand(String schemaName) {
666667
return new String[] { "" };
667668
}
668669

670+
@Override
671+
public NameQualifierSupport getNameQualifierSupport() {
672+
return NameQualifierSupport.BOTH;
673+
}
674+
669675
@Override
670676
public boolean useCrossReferenceForeignKeys(){
671677
return true;

‎hibernate-core/src/test/java/org/hibernate/orm/test/boot/database/qualfiedTableNaming/DefaultCatalogAndSchemaTest.java

+10-4
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
import org.hibernate.boot.spi.BootstrapContext;
3535
import org.hibernate.boot.spi.MetadataImplementor;
3636
import org.hibernate.cfg.AvailableSettings;
37+
import org.hibernate.community.dialect.InformixDialect;
3738
import org.hibernate.dialect.Dialect;
3839
import org.hibernate.dialect.SQLServerDialect;
3940
import org.hibernate.dialect.SybaseDialect;
@@ -309,12 +310,17 @@ public void createSchema_fromSessionFactory() {
309310

310311
@Test
311312
@SkipForDialect(value = SQLServerDialect.class,
312-
comment = "SQL Server and Sybase support catalogs but their implementation of DatabaseMetaData"
313+
comment = "SQL Server support catalogs but their implementation of DatabaseMetaData"
313314
+ " throws exceptions when calling getSchemas/getTables with a non-existing catalog,"
314315
+ " which results in nasty errors when generating an update script"
315316
+ " and some catalogs don't exist.")
316317
@SkipForDialect(value = SybaseDialect.class,
317-
comment = "SQL Server and Sybase support catalogs but their implementation of DatabaseMetaData"
318+
comment = "Sybase support catalogs but their implementation of DatabaseMetaData"
319+
+ " throws exceptions when calling getSchemas/getTables with a non-existing catalog,"
320+
+ " which results in nasty errors when generating an update script"
321+
+ " and some catalogs don't exist.")
322+
@SkipForDialect(value = InformixDialect.class,
323+
comment = "Informix support catalogs but their implementation of DatabaseMetaData"
318324
+ " throws exceptions when calling getSchemas/getTables with a non-existing catalog,"
319325
+ " which results in nasty errors when generating an update script"
320326
+ " and some catalogs don't exist.")
@@ -772,8 +778,8 @@ String patternStringForNameWithDifferentQualifier(String patternStringForName) {
772778
}
773779

774780
private String patternStringForQualifier() {
775-
return ( catalog != null ? Pattern.quote( catalog + "." ) : "" )
776-
+ ( schema != null ? Pattern.quote( schema + "." ) : "" );
781+
return ( catalog != null ? Pattern.quote( catalog ) + "." : "" )
782+
+ ( schema != null ? Pattern.quote( schema ) + "." : "" );
777783
}
778784
}
779785

0 commit comments

Comments
 (0)
Please sign in to comment.