Skip to content

Commit 01a7f2a

Browse files
committed
HHH-19649 Fix QualifiedNameParser parsing for three part names
1 parent ff1bef3 commit 01a7f2a

File tree

4 files changed

+10
-20
lines changed

4 files changed

+10
-20
lines changed

hibernate-core/src/main/java/org/hibernate/boot/model/relational/QualifiedNameParser.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -135,8 +135,8 @@ else if ( tokens.length == 2 ) {
135135
name = tokens[1];
136136
}
137137
else if ( tokens.length == 3 ) {
138-
schemaName = tokens[0];
139-
catalogName = tokens[1];
138+
catalogName = tokens[0];
139+
schemaName = tokens[1];
140140
name = tokens[2];
141141
}
142142
else {

hibernate-core/src/main/java/org/hibernate/dialect/temptable/TemporaryTable.java

Lines changed: 6 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -538,22 +538,12 @@ private static Table findTable(RuntimeModelCreationContext runtimeModelCreationC
538538
final QualifiedNameParser.NameParts nameParts = QualifiedNameParser.INSTANCE.parse( tableName );
539539
// Strip off the default catalog and schema names since these are not reflected in the Database#namespaces
540540
final SqlStringGenerationContext sqlContext = runtimeModelCreationContext.getSqlStringGenerationContext();
541-
final Identifier catalog;
542-
final Identifier schema;
543-
if ( nameParts.getCatalogName() != null && nameParts.getSchemaName() != null ) {
544-
// For some reason, the QualifiedNameParser thinks a.b.c parses a as schema and b as catalog,
545-
// though it renders catalog.schema.object
546-
catalog = nameParts.getSchemaName() == null || nameParts.getSchemaName().equals( sqlContext.getDefaultCatalog() )
547-
? null : nameParts.getSchemaName();
548-
schema = nameParts.getCatalogName() == null || nameParts.getCatalogName().equals( sqlContext.getDefaultSchema() )
549-
? null : nameParts.getCatalogName();
550-
}
551-
else {
552-
catalog = nameParts.getCatalogName() == null || nameParts.getCatalogName().equals( sqlContext.getDefaultCatalog() )
553-
? null : nameParts.getCatalogName();
554-
schema = nameParts.getSchemaName() == null || nameParts.getSchemaName().equals( sqlContext.getDefaultSchema() )
555-
? null : nameParts.getSchemaName();
556-
}
541+
final Identifier catalog =
542+
nameParts.getCatalogName() == null || nameParts.getCatalogName().equals( sqlContext.getDefaultCatalog() )
543+
? null : nameParts.getCatalogName();
544+
final Identifier schema =
545+
nameParts.getSchemaName() == null || nameParts.getSchemaName().equals( sqlContext.getDefaultSchema() )
546+
? null : nameParts.getSchemaName();
557547
final Identifier tableNameIdentifier = nameParts.getObjectName();
558548
Namespace namespace = database.findNamespace( catalog, schema );
559549
if ( namespace == null ) {

hibernate-core/src/test/java/org/hibernate/orm/test/boot/model/relational/QualifiedNameParserTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ public void testStringSplittingWithSchema() {
3838
@Test
3939
public void testStringSplittingWithCatalogAndSchema() {
4040
QualifiedNameParser.NameParts nameParts = PARSER.parse(
41-
"schema.catalog.MyEntity",
41+
"catalog.schema.MyEntity",
4242
DEFAULT_CATALOG,
4343
DEFAULT_SCHEMA
4444
);

hibernate-core/src/test/java/org/hibernate/orm/test/naming/QualifiedNameParserTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ void testSimpleQuoted() {
7575

7676
@Test
7777
void testIndividualQuotes() {
78-
final String name = "`schema2`.`catalog2`.`tbl`";
78+
final String name = "`catalog2`.`schema2`.`tbl`";
7979
test(
8080
name,
8181
NO_CATALOG,

0 commit comments

Comments
 (0)