Skip to content

Commit f359b4a

Browse files
committed
HHH-19624 Test EDB with EDB drivers
1 parent 2356f67 commit f359b4a

File tree

16 files changed

+110
-74
lines changed

16 files changed

+110
-74
lines changed

documentation/documentation.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,7 @@ dependencies {
165165
javadocClasspath jakartaLibs.jsonbApi
166166
javadocClasspath libs.ant
167167
javadocClasspath jdbcLibs.postgresql
168+
javadocClasspath jdbcLibs.edb
168169
javadocClasspath libs.jackson
169170
javadocClasspath gradleApi()
170171
javadocClasspath libs.jacksonXml

hibernate-core/hibernate-core.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ dependencies {
4242
compileOnly libs.jackson
4343
compileOnly libs.jacksonXml
4444
compileOnly jdbcLibs.postgresql
45+
compileOnly jdbcLibs.edb
4546

4647
testImplementation project(':hibernate-testing')
4748
testImplementation project(':hibernate-ant')

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -212,6 +212,10 @@ private static OptionalTableUpdateStrategy determineOptionalTableUpdateStrategy(
212212
: PostgreSQLDialect::withoutMerge;
213213
}
214214

215+
public PostgreSQLDriverKind getDriverKind() {
216+
return driverKind;
217+
}
218+
215219
@Override
216220
protected DatabaseVersion getMinimumSupportedVersion() {
217221
return MINIMUM_VERSION;

hibernate-core/src/main/java/org/hibernate/dialect/type/PostgreSQLCastingIntervalSecondJdbcType.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ public void appendWriteExpression(
7878
Dialect dialect) {
7979
appender.append( '(' );
8080
appender.append( writeExpression );
81-
appender.append( "*interval'1 second)" );
81+
appender.append( "*interval'1 second')" );
8282
}
8383

8484
@Override

hibernate-core/src/test/java/org/hibernate/orm/test/id/usertype/PostgreSQLMultipleTypesOtherContributorTest.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,14 @@
1616
import org.hibernate.annotations.JdbcTypeCode;
1717
import org.hibernate.boot.spi.MetadataBuilderContributor;
1818
import org.hibernate.boot.spi.MetadataBuilderImplementor;
19-
import org.hibernate.dialect.PostgreSQLDialect;
2019
import org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl;
2120
import org.hibernate.orm.test.jpa.BaseEntityManagerFunctionalTestCase;
2221
import org.hibernate.query.NativeQuery;
22+
import org.hibernate.testing.orm.junit.DialectFeatureChecks;
23+
import org.hibernate.testing.orm.junit.RequiresDialectFeature;
2324
import org.hibernate.type.SqlTypes;
2425
import org.hibernate.type.spi.TypeConfiguration;
2526

26-
import org.hibernate.testing.RequiresDialect;
27-
2827
import org.hibernate.orm.test.id.usertype.inet.Inet;
2928
import org.hibernate.orm.test.id.usertype.inet.InetJavaType;
3029
import org.hibernate.orm.test.id.usertype.inet.InetJdbcType;
@@ -40,7 +39,7 @@
4039
/**
4140
* @author Vlad Mihalcea
4241
*/
43-
@RequiresDialect(PostgreSQLDialect.class)
42+
@RequiresDialectFeature(feature = DialectFeatureChecks.IsPgJdbc.class)
4443
public class PostgreSQLMultipleTypesOtherContributorTest extends BaseEntityManagerFunctionalTestCase {
4544

4645
@Override

hibernate-core/src/test/java/org/hibernate/orm/test/id/usertype/inet/PostgreSQLInetTypesOtherContributorTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,11 @@
1010
import org.hibernate.boot.MetadataBuilder;
1111
import org.hibernate.boot.spi.MetadataBuilderContributor;
1212
import org.hibernate.boot.spi.MetadataBuilderImplementor;
13-
import org.hibernate.dialect.PostgreSQLDialect;
1413
import org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl;
14+
import org.hibernate.testing.orm.junit.DialectFeatureChecks;
15+
import org.hibernate.testing.orm.junit.RequiresDialectFeature;
1516
import org.hibernate.type.spi.TypeConfiguration;
1617

17-
import org.hibernate.testing.RequiresDialect;
1818
import org.junit.Test;
1919

2020
import static org.hibernate.testing.transaction.TransactionUtil.doInJPA;
@@ -23,7 +23,7 @@
2323
/**
2424
* @author Vlad Mihalcea
2525
*/
26-
@RequiresDialect(PostgreSQLDialect.class)
26+
@RequiresDialectFeature(feature = DialectFeatureChecks.IsPgJdbc.class)
2727
public class PostgreSQLInetTypesOtherContributorTest extends PostgreSQLInetTypesOtherTest {
2828

2929
@Override

hibernate-core/src/test/java/org/hibernate/orm/test/id/usertype/inet/PostgreSQLInetTypesOtherTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,13 @@
99

1010
import org.hibernate.boot.spi.MetadataBuilderContributor;
1111
import org.hibernate.boot.spi.MetadataBuilderImplementor;
12-
import org.hibernate.dialect.PostgreSQLDialect;
1312
import org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl;
1413
import org.hibernate.orm.test.jpa.BaseEntityManagerFunctionalTestCase;
1514
import org.hibernate.query.NativeQuery;
15+
import org.hibernate.testing.orm.junit.DialectFeatureChecks;
16+
import org.hibernate.testing.orm.junit.RequiresDialectFeature;
1617
import org.hibernate.type.spi.TypeConfiguration;
1718

18-
import org.hibernate.testing.RequiresDialect;
1919
import org.junit.Test;
2020

2121
import static org.hibernate.testing.transaction.TransactionUtil.doInJPA;
@@ -24,7 +24,7 @@
2424
/**
2525
* @author Vlad Mihalcea
2626
*/
27-
@RequiresDialect(PostgreSQLDialect.class)
27+
@RequiresDialectFeature(feature = DialectFeatureChecks.IsPgJdbc.class)
2828
public class PostgreSQLInetTypesOtherTest extends BaseEntityManagerFunctionalTestCase {
2929

3030
@Override

hibernate-core/src/test/java/org/hibernate/orm/test/procedure/PostgreSQLFunctionProcedureTest.java

Lines changed: 0 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
import java.sql.CallableStatement;
88
import java.sql.ResultSet;
99
import java.sql.SQLException;
10-
import java.sql.SQLFeatureNotSupportedException;
1110
import java.sql.Timestamp;
1211
import java.sql.Types;
1312
import java.time.LocalDateTime;
@@ -234,34 +233,6 @@ public void testFunctionWithJDBC() {
234233
} );
235234
}
236235

237-
@Test
238-
public void testFunctionWithJDBCByName() {
239-
doInJPA( this::entityManagerFactory, entityManager -> {
240-
try {
241-
Session session = entityManager.unwrap( Session.class );
242-
Long phoneCount = session.doReturningWork( connection -> {
243-
CallableStatement function = null;
244-
try {
245-
function = connection.prepareCall( "{ ? = call fn_count_phones(?) }" );
246-
function.registerOutParameter( "phoneCount", Types.BIGINT );
247-
function.setLong( "personId", 1L );
248-
function.execute();
249-
return function.getLong( 1 );
250-
}
251-
finally {
252-
if ( function != null ) {
253-
function.close();
254-
}
255-
}
256-
} );
257-
assertEquals( Long.valueOf( 2 ), phoneCount );
258-
}
259-
catch (Exception e) {
260-
assertEquals( SQLFeatureNotSupportedException.class, e.getCause().getClass() );
261-
}
262-
} );
263-
}
264-
265236
@Test
266237
@JiraKey(value = "HHH-11863")
267238
public void testSysRefCursorAsOutParameter() {

hibernate-core/src/test/java/org/hibernate/orm/test/procedure/PostgreSQLStoredProcedureTest.java

Lines changed: 0 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
import java.sql.CallableStatement;
88
import java.sql.ResultSet;
99
import java.sql.SQLException;
10-
import java.sql.SQLFeatureNotSupportedException;
1110
import java.sql.Statement;
1211
import java.sql.Timestamp;
1312
import java.sql.Types;
@@ -118,34 +117,6 @@ public void testStoredProcedureWithJDBC(EntityManagerFactoryScope scope) {
118117
} );
119118
}
120119

121-
@Test
122-
public void testProcedureWithJDBCByName(EntityManagerFactoryScope scope) {
123-
scope.inTransaction( entityManager -> {
124-
try {
125-
Session session = entityManager.unwrap( Session.class );
126-
Long phoneCount = session.doReturningWork( connection -> {
127-
CallableStatement procedure = null;
128-
try {
129-
procedure = connection.prepareCall( "{ call sp_count_phones(?,?) }" );
130-
procedure.registerOutParameter( "phoneCount", Types.BIGINT );
131-
procedure.setLong( "personId", 1L );
132-
procedure.execute();
133-
return procedure.getLong( 1 );
134-
}
135-
finally {
136-
if ( procedure != null ) {
137-
procedure.close();
138-
}
139-
}
140-
} );
141-
assertEquals( Long.valueOf( 2 ), phoneCount );
142-
}
143-
catch (Exception e) {
144-
assertEquals( SQLFeatureNotSupportedException.class, e.getCause().getClass() );
145-
}
146-
} );
147-
}
148-
149120
@Test
150121
@JiraKey("HHH-11863")
151122
@RequiresDialect(value = PostgreSQLDialect.class, majorVersion = 14, comment = "Stored procedure OUT parameters are only supported since version 14")

hibernate-core/src/test/java/org/hibernate/orm/test/type/PostgresIntervalSecondTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import org.hibernate.annotations.JdbcTypeCode;
1212
import org.hibernate.cfg.AvailableSettings;
1313
import org.hibernate.dialect.PostgreSQLDialect;
14+
import org.hibernate.dialect.type.PostgreSQLCastingIntervalSecondJdbcType;
1415
import org.hibernate.dialect.type.PostgreSQLIntervalSecondJdbcType;
1516
import org.hibernate.metamodel.spi.MappingMetamodelImplementor;
1617
import org.hibernate.persister.entity.EntityPersister;
@@ -59,7 +60,7 @@ public void verifyMappings(SessionFactoryScope scope) {
5960
assertThat( durationJdbcType ).isEqualTo( NumericJdbcType.INSTANCE );
6061

6162
final JdbcType intervalType = jdbcTypeRegistry.getDescriptor( SqlTypes.INTERVAL_SECOND );
62-
assertThat( intervalType ).isOfAnyClassIn( PostgreSQLIntervalSecondJdbcType.class );
63+
assertThat( intervalType ).isOfAnyClassIn( PostgreSQLIntervalSecondJdbcType.class, PostgreSQLCastingIntervalSecondJdbcType.class );
6364

6465
// a simple duration field with no overrides - so should be using a default JdbcType
6566
assertThat( entityDescriptor.findAttributeMapping( "duration" )

0 commit comments

Comments
 (0)