diff --git a/.github/workflows/contributor-build.yml b/.github/workflows/contributor-build.yml index 3a1d392267..5834492943 100644 --- a/.github/workflows/contributor-build.yml +++ b/.github/workflows/contributor-build.yml @@ -38,9 +38,10 @@ jobs: - rdbms: h2 - rdbms: hsqldb - rdbms: derby + - rdbms: mysql - rdbms: mysql8 - rdbms: mariadb - - rdbms: postgresql_9_5 + - rdbms: postgresql - rdbms: postgresql_13 - rdbms: oracle - rdbms: db2 diff --git a/Jenkinsfile b/Jenkinsfile index 287521c10b..fb2ec5659f 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -30,9 +30,10 @@ stage('Configure') { // new BuildEnvironment( dbName: 'h2' ), // new BuildEnvironment( dbName: 'hsqldb' ), // new BuildEnvironment( dbName: 'derby' ), +// new BuildEnvironment( dbName: 'mysql' ), // new BuildEnvironment( dbName: 'mysql8' ), // new BuildEnvironment( dbName: 'mariadb' ), -// new BuildEnvironment( dbName: 'postgresql_9_5' ), +// new BuildEnvironment( dbName: 'postgresql' ), // new BuildEnvironment( dbName: 'postgresql_13' ), // new BuildEnvironment( dbName: 'oracle' ), new BuildEnvironment( dbName: 'oracle_ee' ), @@ -116,6 +117,13 @@ stage('Build') { try { stage('Start database') { switch (buildEnv.dbName) { + case "mysql": + docker.withRegistry('https://index.docker.io/v1/', 'hibernateci.hub.docker.com') { + docker.image('mysql:5.7').pull() + } + sh "./docker_db.sh mysql" + state[buildEnv.tag]['containerName'] = "mysql" + break; case "mysql8": docker.withRegistry('https://index.docker.io/v1/', 'hibernateci.hub.docker.com') { docker.image('mysql:8.0.21').pull() @@ -130,12 +138,12 @@ stage('Build') { sh "./docker_db.sh mariadb" state[buildEnv.tag]['containerName'] = "mariadb" break; - case "postgresql_9_5": + case "postgresql": // use the postgis image to enable the PGSQL GIS (spatial) extension docker.withRegistry('https://index.docker.io/v1/', 'hibernateci.hub.docker.com') { docker.image('postgis/postgis:9.5-2.5').pull() } - sh "./docker_db.sh postgresql_9_5" + sh "./docker_db.sh postgresql" state[buildEnv.tag]['containerName'] = "postgres" break; case "postgresql_13": @@ -191,13 +199,14 @@ stage('Build') { case "hsqldb": runTest("-Pdb=${buildEnv.dbName}${state[buildEnv.tag]['additionalOptions']}") break; + case "mysql": case "mysql8": runTest("-Pdb=mysql_ci${state[buildEnv.tag]['additionalOptions']}") break; case "tidb": runTest("-Pdb=tidb -DdbHost=localhost:4000${state[buildEnv.tag]['additionalOptions']}", 'TIDB') break; - case "postgresql_9_5": + case "postgresql": case "postgresql_13": runTest("-Pdb=pgsql_ci${state[buildEnv.tag]['additionalOptions']}") break; diff --git a/README.adoc b/README.adoc index e51ff27e52..65a12b7e0d 100644 --- a/README.adoc +++ b/README.adoc @@ -130,7 +130,7 @@ The script `docker_db.sh` allows you to start a pre-configured database which ca All you have to do is run the following command: ---- -./docker_db.sh postgresql_9_5 +./docker_db.sh postgresql ---- omitting the argument will print a list of possible options. @@ -162,7 +162,7 @@ The following table illustrates a list of commands for various databases that ca |`./gradlew test -Pdb=derby` |MySQL 5.7 -|`./docker_db.sh mysql_5_7` +|`./docker_db.sh mysql` |`./gradlew test -Pdb=mysql_ci` |MySQL 8.0 @@ -174,7 +174,7 @@ The following table illustrates a list of commands for various databases that ca |`./gradlew test -Pdb=mariadb_ci` |PostgreSQL 9.5 -|`./docker_db.sh postgresql_9_5` +|`./docker_db.sh postgresql` |`./gradlew test -Pdb=pgsql_ci` |PostgreSQL 13 diff --git a/ci/build.sh b/ci/build.sh index 49f32442ae..d487f38c36 100755 --- a/ci/build.sh +++ b/ci/build.sh @@ -11,7 +11,7 @@ elif [ "$RDBMS" == "mysql" ]; then goal="-Pdb=mysql_ci" elif [ "$RDBMS" == "mariadb" ]; then goal="-Pdb=mariadb_ci" -elif [ "$RDBMS" == "postgresql_9_5" ]; then +elif [ "$RDBMS" == "postgresql" ]; then goal="-Pdb=pgsql_ci" elif [ "$RDBMS" == "postgresql_13" ]; then goal="-Pdb=pgsql_ci" diff --git a/ci/database-start.sh b/ci/database-start.sh index 997a450ee9..6ef0d37977 100755 --- a/ci/database-start.sh +++ b/ci/database-start.sh @@ -3,13 +3,13 @@ DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" if [ "$RDBMS" == 'mysql' ]; then - bash $DIR/../docker_db.sh mysql_5_7 + bash $DIR/../docker_db.sh mysql elif [ "$RDBMS" == 'mysql8' ]; then bash $DIR/../docker_db.sh mysql_8_0 elif [ "$RDBMS" == 'mariadb' ]; then bash $DIR/../docker_db.sh mariadb -elif [ "$RDBMS" == 'postgresql_9_5' ]; then - bash $DIR/../docker_db.sh postgresql_9_5 +elif [ "$RDBMS" == 'postgresql' ]; then + bash $DIR/../docker_db.sh postgresql elif [ "$RDBMS" == 'postgresql_13' ]; then bash $DIR/../docker_db.sh postgresql_13 elif [ "$RDBMS" == 'db2' ]; then diff --git a/docker_db.sh b/docker_db.sh index 454e05de85..45364ee8dd 100755 --- a/docker_db.sh +++ b/docker_db.sh @@ -15,6 +15,10 @@ else PRIVILEGED_CLI="" fi +mysql() { + mysql_5_7 +} + mysql_5_7() { $CONTAINER_CLI rm -f mysql || true $CONTAINER_CLI run --name mysql -e MYSQL_USER=hibernate_orm_test -e MYSQL_PASSWORD=hibernate_orm_test -e MYSQL_DATABASE=hibernate_orm_test -e MYSQL_ROOT_PASSWORD=hibernate_orm_test -p3306:3306 -d docker.io/mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_bin --skip-character-set-client-handshake --log-bin-trust-function-creators=1 @@ -86,6 +90,10 @@ mariadb() { fi } +postgresql() { + postgresql_9_5 +} + postgresql_9_5() { $CONTAINER_CLI rm -f postgres || true $CONTAINER_CLI run --name postgres -e POSTGRES_USER=hibernate_orm_test -e POSTGRES_PASSWORD=hibernate_orm_test -e POSTGRES_DB=hibernate_orm_test -p5432:5432 -d docker.io/postgis/postgis:9.5-2.5 @@ -517,6 +525,7 @@ if [ -z ${1} ]; then echo -e "\thana" echo -e "\tmariadb" echo -e "\tmssql" + echo -e "\tmysql" echo -e "\tmysql_5_7" echo -e "\tmysql_8_0" echo -e "\toracle" @@ -527,6 +536,7 @@ if [ -z ${1} ]; then echo -e "\tpostgis" echo -e "\tpostgresql_13" echo -e "\tpostgresql_9_5" + echo -e "\tpostgresql" echo -e "\tsybase" else ${1} diff --git a/hibernate-spatial/src/test/resources/mysql/test-mysql-functions-data-set.xml b/hibernate-spatial/src/test/resources/mysql/test-mysql-functions-data-set.xml index 253a6c64d6..bfa432c7af 100644 --- a/hibernate-spatial/src/test/resources/mysql/test-mysql-functions-data-set.xml +++ b/hibernate-spatial/src/test/resources/mysql/test-mysql-functions-data-set.xml @@ -16,48 +16,48 @@ In MySQL these are stored as null objects. 1 POINT - SRID=4326;POINT(10 5) + SRID=0;POINT(10 5) 2 POINT - SRID=4326;POINT(52.25 2.53) + SRID=0;POINT(52.25 2.53) 3 POINT - SRID=4326;POINT(51 12) + SRID=0;POINT(51 12) 4 POINT - SRID=4326;POINT(10.0 2.0) + SRID=0;POINT(10.0 2.0) 5 LINESTRING - SRID=4326;LINESTRING(10.0 5.0, 20.0 15.0) + SRID=0;LINESTRING(10.0 5.0, 20.0 15.0) 6 LINESTRING - SRID=4326;LINESTRING(10.0 5.0, 20.0 15.0, 30.3 22.4, 10 30.0) + SRID=0;LINESTRING(10.0 5.0, 20.0 15.0, 30.3 22.4, 10 30.0) 11 MULTILINESTRING - SRID=4326;MULTILINESTRING((10.0 5.0, 20.0 15.0),( 25.0 30.0, 30.0 20.0)) + SRID=0;MULTILINESTRING((10.0 5.0, 20.0 15.0),( 25.0 30.0, 30.0 20.0)) 12 MULTILINESTRING - SRID=4326;MULTILINESTRING((10.0 5.0, 20.0 15.0, 30.3 22.4, 10 30.0), (40.0 20.0, 42.0 18.0, 43.0 16.0, 40 + SRID=0;MULTILINESTRING((10.0 5.0, 20.0 15.0, 30.3 22.4, 10 30.0), (40.0 20.0, 42.0 18.0, 43.0 16.0, 40 14.0)) @@ -66,28 +66,28 @@ In MySQL these are stored as null objects. 16 POLYGON - SRID=4326;POLYGON( (0 0, 0 10, 10 10, 10 0, 0 0) ) + SRID=0;POLYGON( (0 0, 0 10, 10 10, 10 0, 0 0) ) 18 POLYGON - SRID=4326;POLYGON( (0 0, 0 10, 10 10, 10 0, 0 0), (2 2, 2 5, 5 5,5 2, 2 2)) + SRID=0;POLYGON( (0 0, 0 10, 10 10, 10 0, 0 0), (2 2, 2 5, 5 5,5 2, 2 2)) 19 POLYGON - SRID=4326;POLYGON( (110 110, 110 120, 120 120, 120 110, 110 110) ) + SRID=0;POLYGON( (110 110, 110 120, 120 120, 120 110, 110 110) ) 20 MULTIPOLYGON - SRID=4326;MULTIPOLYGON( ((10 20, 30 40, 44 50, 10 20)), ((105 100, 120 140, 130 134, 105 100)) ) + SRID=0;MULTIPOLYGON( ((10 20, 30 40, 44 50, 10 20)), ((105 100, 120 140, 130 134, 105 100)) ) 22 MULTIPOLYGON - SRID=4326;MULTIPOLYGON(( (0 0, 0 50, 50 50, 50 0, 0 0), (10 10, 10 20, 20 20, 20 10, 10 10) ),((105 100, + SRID=0;MULTIPOLYGON(( (0 0, 0 50, 50 50, 50 0, 0 0), (10 10, 10 20, 20 20, 20 10, 10 10) ),((105 100, 120 140, 130 134, 105 100)) ) @@ -97,28 +97,28 @@ In MySQL these are stored as null objects. 25 MULTIPOINT - SRID=4326;MULTIPOINT(21 2, 25 5, 30 3) + SRID=0;MULTIPOINT(21 2, 25 5, 30 3) 26 MULTIPOINT - SRID=4326;MULTIPOINT(21 2) + SRID=0;MULTIPOINT(21 2) 30 GEOMETRYCOLLECTION - SRID=4326;GEOMETRYCOLLECTION(POINT(4 0), LINESTRING(4 2, 5 3)) + SRID=0;GEOMETRYCOLLECTION(POINT(4 0), LINESTRING(4 2, 5 3)) 31 GEOMETRYCOLLECTION - SRID=4326;GEOMETRYCOLLECTION(POINT(4 0), LINESTRING(4 2, 5 3), POLYGON((0 0, 3 0, 3 3,0 3, 0 0))) + SRID=0;GEOMETRYCOLLECTION(POINT(4 0), LINESTRING(4 2, 5 3), POLYGON((0 0, 3 0, 3 3,0 3, 0 0))) 32 GEOMETRYCOLLECTION - SRID=4326;GEOMETRYCOLLECTION(POINT(4 0), LINESTRING(4 2, 5 3), POLYGON((0 0, 3 0, 3 3,0 3, 0 0),(1 1, 2 1, + SRID=0;GEOMETRYCOLLECTION(POINT(4 0), LINESTRING(4 2, 5 3), POLYGON((0 0, 3 0, 3 3,0 3, 0 0),(1 1, 2 1, 2 2, 1 2, 1 1))) @@ -126,7 +126,7 @@ In MySQL these are stored as null objects. 33 GEOMETRYCOLLECTION - SRID=4326;GEOMETRYCOLLECTION( MULTIPOINT(21 2, 25 5, 30 3), MULTIPOLYGON( ((10 20, 30 40, 44 50, 10 20)), + SRID=0;GEOMETRYCOLLECTION( MULTIPOINT(21 2, 25 5, 30 3), MULTIPOLYGON( ((10 20, 30 40, 44 50, 10 20)), ((105 100, 120 140, 130 134, 105 100)) ), MULTILINESTRING((10.0 5.0, 20.0 15.0),( 25.0 30.0, 30.0 20.0)))