HHH-14446 Add spatial integration test profiles for DB2 and HANA
This commit is contained in:
parent
da8cd19968
commit
6d97df6707
61
docker_db.sh
61
docker_db.sh
|
@ -38,6 +38,65 @@ db2() {
|
||||||
docker exec -t db2 su - orm_test bash -c ". /database/config/orm_test/sqllib/db2profile && /database/config/orm_test/sqllib/bin/db2 'connect to orm_test' && /database/config/orm_test/sqllib/bin/db2 'CREATE USER TEMPORARY TABLESPACE usr_tbsp MANAGED BY AUTOMATIC STORAGE'"
|
docker exec -t db2 su - orm_test bash -c ". /database/config/orm_test/sqllib/db2profile && /database/config/orm_test/sqllib/bin/db2 'connect to orm_test' && /database/config/orm_test/sqllib/bin/db2 'CREATE USER TEMPORARY TABLESPACE usr_tbsp MANAGED BY AUTOMATIC STORAGE'"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
db2_spatial() {
|
||||||
|
docker rm -f db2spatial || true
|
||||||
|
temp_dir=$(mktemp -d)
|
||||||
|
cat <<EOF >${temp_dir}/ewkt.sql
|
||||||
|
create or replace function db2gse.asewkt(geometry db2gse.st_geometry)
|
||||||
|
returns clob(2G)
|
||||||
|
specific db2gse.asewkt1
|
||||||
|
language sql
|
||||||
|
deterministic
|
||||||
|
no external action
|
||||||
|
reads sql data
|
||||||
|
return 'srid=' || varchar(db2gse.st_srsid(geometry)) || ';' || db2gse.st_astext(geometry)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Create SQL function to create a geometry from EWKT format
|
||||||
|
create or replace function db2gse.geomfromewkt(instring varchar(32000))
|
||||||
|
returns db2gse.st_geometry
|
||||||
|
specific db2gse.fromewkt1
|
||||||
|
language sql
|
||||||
|
deterministic
|
||||||
|
no external action
|
||||||
|
reads sql data
|
||||||
|
return db2gse.st_geometry(
|
||||||
|
substr(instring,posstr(instring,';')+1, length(instring) - posstr(instring,';')),
|
||||||
|
integer(substr(instring,posstr(instring,'=')+1,posstr(instring,';')-(posstr(instring,'=')+1)))
|
||||||
|
)
|
||||||
|
;
|
||||||
|
-- Create a DB2 transform group to return and accept EWKT
|
||||||
|
CREATE TRANSFORM FOR db2gse.ST_Geometry EWKT (
|
||||||
|
FROM SQL WITH FUNCTION db2gse.asewkt(db2gse.ST_Geometry),
|
||||||
|
TO SQL WITH FUNCTION db2gse.geomfromewkt(varchar(32000)) )
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Redefine the default DB2_PROGRAM to return and accept EWKT instead of WKT
|
||||||
|
DROP TRANSFORM DB2_PROGRAM FOR db2gse.ST_Geometry;
|
||||||
|
CREATE TRANSFORM FOR db2gse.ST_Geometry DB2_PROGRAM (
|
||||||
|
FROM SQL WITH FUNCTION db2gse.asewkt(db2gse.ST_Geometry),
|
||||||
|
TO SQL WITH FUNCTION db2gse.geomfromewkt(varchar(32000)) )
|
||||||
|
;
|
||||||
|
EOF
|
||||||
|
docker run --name db2spatial --privileged -e DB2INSTANCE=orm_test -e DB2INST1_PASSWORD=orm_test -e DBNAME=orm_test -e LICENSE=accept -e AUTOCONFIG=false -e ARCHIVE_LOGS=false -e TO_CREATE_SAMPLEDB=false -e REPODB=false \
|
||||||
|
-v ${temp_dir}:/conf \
|
||||||
|
-p 50000:50000 -d ibmcom/db2:11.5.5.0
|
||||||
|
|
||||||
|
# Give the container some time to start
|
||||||
|
OUTPUT=
|
||||||
|
while [[ $OUTPUT != *"Setup has completed."* ]]; do
|
||||||
|
echo "Waiting for DB2 to start..."
|
||||||
|
sleep 10
|
||||||
|
OUTPUT=$(docker logs db2spatial)
|
||||||
|
done
|
||||||
|
sleep 10
|
||||||
|
echo "Enabling spatial extender"
|
||||||
|
docker exec -t db2spatial su - orm_test bash -c "/database/config/orm_test/sqllib/db2profile && /database/config/orm_test/sqllib/bin/db2se enable_db orm_test"
|
||||||
|
echo "Installing required transform group"
|
||||||
|
docker exec -t db2spatial su - orm_test bash -c "/database/config/orm_test/sqllib/db2profile && /database/config/orm_test/sqllib/bin/db2 'connect to orm_test' && /database/config/orm_test/sqllib/bin/db2 -tvf /conf/ewkt.sql"
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
mssql() {
|
mssql() {
|
||||||
docker rm -f mssql || true
|
docker rm -f mssql || true
|
||||||
docker run --name mssql -d -p 1433:1433 -e "SA_PASSWORD=Hibernate_orm_test" -e ACCEPT_EULA=Y microsoft/mssql-server-linux:2017-CU13
|
docker run --name mssql -d -p 1433:1433 -e "SA_PASSWORD=Hibernate_orm_test" -e ACCEPT_EULA=Y microsoft/mssql-server-linux:2017-CU13
|
||||||
|
@ -166,6 +225,8 @@ if [ -z ${1} ]; then
|
||||||
echo -e "\tdb2"
|
echo -e "\tdb2"
|
||||||
echo -e "\tmssql"
|
echo -e "\tmssql"
|
||||||
echo -e "\toracle"
|
echo -e "\toracle"
|
||||||
|
echo -e "\tpostgis_9_6"
|
||||||
|
echo -e "\tdb2_spatial"
|
||||||
else
|
else
|
||||||
${1}
|
${1}
|
||||||
fi
|
fi
|
|
@ -170,6 +170,13 @@ ext {
|
||||||
'jdbc.pass' : 'orm_test',
|
'jdbc.pass' : 'orm_test',
|
||||||
'jdbc.url' : 'jdbc:db2://' + dbHost + ':50000/orm_test'
|
'jdbc.url' : 'jdbc:db2://' + dbHost + ':50000/orm_test'
|
||||||
],
|
],
|
||||||
|
db2_spatial_ci : [
|
||||||
|
'db.dialect' : 'org.hibernate.spatial.dialect.db2.DB2SpatialDialect',
|
||||||
|
'jdbc.driver': 'com.ibm.db2.jcc.DB2Driver',
|
||||||
|
'jdbc.user' : 'orm_test',
|
||||||
|
'jdbc.pass' : 'orm_test',
|
||||||
|
'jdbc.url' : 'jdbc:db2://' + dbHost + ':50000/orm_test'
|
||||||
|
],
|
||||||
hana : [
|
hana : [
|
||||||
'db.dialect' : 'org.hibernate.dialect.HANAColumnStoreDialect',
|
'db.dialect' : 'org.hibernate.dialect.HANAColumnStoreDialect',
|
||||||
'jdbc.driver': 'com.sap.db.jdbc.Driver',
|
'jdbc.driver': 'com.sap.db.jdbc.Driver',
|
||||||
|
@ -202,6 +209,14 @@ ext {
|
||||||
// Disable prepared statement caching due to https://help.sap.com/viewer/0eec0d68141541d1b07893a39944924e/2.0.04/en-US/78f2163887814223858e4369d18e2847.html
|
// Disable prepared statement caching due to https://help.sap.com/viewer/0eec0d68141541d1b07893a39944924e/2.0.04/en-US/78f2163887814223858e4369d18e2847.html
|
||||||
'jdbc.url' : 'jdbc:sap://' + dbHost + ':39017/?statementCacheSize=0'
|
'jdbc.url' : 'jdbc:sap://' + dbHost + ':39017/?statementCacheSize=0'
|
||||||
],
|
],
|
||||||
|
hana_spatial_ci : [
|
||||||
|
'db.dialect' : 'org.hibernate.spatial.dialect.hana.HANASpatialDialect',
|
||||||
|
'jdbc.driver': 'com.sap.db.jdbc.Driver',
|
||||||
|
'jdbc.user' : 'SYSTEM',
|
||||||
|
'jdbc.pass' : 'H1bernate_test',
|
||||||
|
// Disable prepared statement caching due to https://help.sap.com/viewer/0eec0d68141541d1b07893a39944924e/2.0.04/en-US/78f2163887814223858e4369d18e2847.html
|
||||||
|
'jdbc.url' : 'jdbc:sap://' + dbHost + ':39017/?statementCacheSize=0'
|
||||||
|
],
|
||||||
cockroachdb : [
|
cockroachdb : [
|
||||||
'db.dialect' : 'org.hibernate.dialect.CockroachDB192Dialect',
|
'db.dialect' : 'org.hibernate.dialect.CockroachDB192Dialect',
|
||||||
// CockroachDB uses the same pgwire protocol as PostgreSQL, so the driver is the same.
|
// CockroachDB uses the same pgwire protocol as PostgreSQL, so the driver is the same.
|
||||||
|
|
|
@ -28,6 +28,7 @@ public class DB2DatabaseCleaner implements DatabaseCleaner {
|
||||||
+ "'SYSIBMADM',"
|
+ "'SYSIBMADM',"
|
||||||
+ "'SYSPUBLIC',"
|
+ "'SYSPUBLIC',"
|
||||||
+ "'SYSSTAT',"
|
+ "'SYSSTAT',"
|
||||||
|
+ "'DB2GSE',"
|
||||||
+ "'SYSTOOLS'";
|
+ "'SYSTOOLS'";
|
||||||
|
|
||||||
private final List<String> ignoredTables = new ArrayList<>();
|
private final List<String> ignoredTables = new ArrayList<>();
|
||||||
|
|
Loading…
Reference in New Issue