Impala Public Jenkins has submitted this change and it was merged. ( http://gerrit.cloudera.org:8080/24547 )
Change subject: IMPALA-15154: Copy Hive ESRI geospatial UDFs into Impala ...................................................................... IMPALA-15154: Copy Hive ESRI geospatial UDFs into Impala Copy the ST_* geospatial functions and their support classes from Hive's org.apache.hadoop.hive.ql.udf.esri package into Impala under org.apache.impala.hive.geospatial.esri, changing only the package name. This decouples Impala from Hive's geospatial code so it can be modified independently (e.g. to accept WKB serialization in a later commit). The copy is based on upstream Hive commit ada31342bbd6465c8fa497cd095cebbeaf291b4c, which brings two behavioral changes compared to the previous CDP dependency: - HIVE-29323: ST_ConvexHull no longer wraps its result in MULTIPOLYGON - HIVE-29352: new ST_DistanceSphere function (great-circle distance) esri-geometry-api (the underlying geometry library) is added as a direct fe dependency instead of being picked up transitively through Hive. Registration is repointed to the copied classes: HiveEsriGeospatialBuiltins imports the new package and registers ST_DistanceSphere, and gen_geospatial_udf_wrappers.py generates wrappers for the new package. All ST_* and utility files are byte-identical to Hive with the exception of package name. Also cleans up project.build.sourceEncoding in pom files because it was redundantly declared. Change-Id: I7d078e6ee961c76b10915da6be5b86966ad9cefb Assisted-by: Claude Opus 4.8 Reviewed-on: http://gerrit.cloudera.org:8080/24547 Reviewed-by: Impala Public Jenkins <[email protected]> Tested-by: Impala Public Jenkins <[email protected]> --- M bin/impala-config.sh M bin/jenkins/critique-gerrit-review.py M bin/rat_exclude_files.txt M common/function-registry/gen_geospatial_udf_wrappers.py M fe/pom.xml M fe/src/compat-hive-3/java/org/apache/impala/compat/HiveEsriGeospatialBuiltins.java A java/hive-geospatial-functions/pom.xml A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/BinUtils.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/GeometryUtils.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/Haversine.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/HiveGeometry.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/HiveGeometryOIHelper.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/LogUtils.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/README.md A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/ST_Area.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/ST_AsBinary.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/ST_AsGeoJson.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/ST_AsJson.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/ST_AsShape.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/ST_AsText.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/ST_Bin.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/ST_BinEnvelope.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/ST_Boundary.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/ST_Buffer.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/ST_Centroid.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/ST_Contains.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/ST_ConvexHull.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/ST_CoordDim.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/ST_Crosses.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/ST_Difference.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/ST_Dimension.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/ST_Disjoint.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/ST_Distance.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/ST_DistanceSphere.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/ST_EndPoint.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/ST_EnvIntersects.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/ST_Envelope.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/ST_Equals.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/ST_ExteriorRing.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/ST_GeodesicLengthWGS84.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/ST_GeomCollection.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/ST_GeomFromGeoJson.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/ST_GeomFromJson.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/ST_GeomFromShape.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/ST_GeomFromText.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/ST_GeomFromWKB.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/ST_Geometry.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/ST_GeometryAccessor.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/ST_GeometryN.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/ST_GeometryProcessing.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/ST_GeometryRelational.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/ST_GeometryType.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/ST_InteriorRingN.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/ST_Intersection.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/ST_Intersects.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/ST_Is3D.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/ST_IsClosed.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/ST_IsEmpty.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/ST_IsMeasured.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/ST_IsRing.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/ST_IsSimple.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/ST_Length.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/ST_LineFromWKB.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/ST_LineString.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/ST_M.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/ST_MLineFromWKB.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/ST_MPointFromWKB.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/ST_MPolyFromWKB.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/ST_MaxM.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/ST_MaxX.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/ST_MaxY.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/ST_MaxZ.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/ST_MinM.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/ST_MinX.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/ST_MinY.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/ST_MinZ.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/ST_MultiLineString.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/ST_MultiPoint.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/ST_MultiPolygon.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/ST_NumGeometries.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/ST_NumInteriorRing.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/ST_NumPoints.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/ST_Overlaps.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/ST_Point.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/ST_PointFromWKB.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/ST_PointN.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/ST_PointZ.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/ST_PolyFromWKB.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/ST_Polygon.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/ST_Relate.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/ST_SRID.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/ST_SetSRID.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/ST_StartPoint.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/ST_SymmetricDiff.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/ST_Touches.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/ST_Union.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/ST_Within.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/ST_X.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/ST_Y.java A java/hive-geospatial-functions/src/main/java/org/apache/impala/hive/geospatial/esri/ST_Z.java M java/pom.xml M java/shaded-deps/hive-exec/pom.xml M java/test-corrupt-hive-udfs/pom.xml M java/test-hive-udfs/pom.xml M testdata/workloads/functional-query/queries/QueryTest/geospatial-esri-extra.test M testdata/workloads/functional-query/queries/QueryTest/geospatial-esri.test 106 files changed, 7,576 insertions(+), 26 deletions(-) Approvals: Impala Public Jenkins: Looks good to me, approved; Verified -- To view, visit http://gerrit.cloudera.org:8080/24547 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-Project: Impala-ASF Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I7d078e6ee961c76b10915da6be5b86966ad9cefb Gerrit-Change-Number: 24547 Gerrit-PatchSet: 16 Gerrit-Owner: Csaba Ringhofer <[email protected]> Gerrit-Reviewer: Balazs Hevele <[email protected]> Gerrit-Reviewer: Csaba Ringhofer <[email protected]> Gerrit-Reviewer: Impala Public Jenkins <[email protected]> Gerrit-Reviewer: Peter Rozsa <[email protected]>
