Hello Balazs Hevele, Peter Rozsa, Impala Public Jenkins,

I'd like you to reexamine a change. Please visit

    http://gerrit.cloudera.org:8080/24547

to look at the new patch set (#11).

Change subject: xIMPALA-15154: Copy Hive ESRI geospatial UDFs into Impala
......................................................................

xIMPALA-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
---
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,575 insertions(+), 25 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/Impala-ASF refs/changes/47/24547/11
--
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: newpatchset
Gerrit-Change-Id: I7d078e6ee961c76b10915da6be5b86966ad9cefb
Gerrit-Change-Number: 24547
Gerrit-PatchSet: 11
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]>

Reply via email to