Csaba Ringhofer has uploaded a new patch set (#2). ( 
http://gerrit.cloudera.org:8080/24534 )

Change subject: POC: Add GEOMETRY type for WKB_EXPERIMENTAL mode
......................................................................

POC: Add GEOMETRY type for WKB_EXPERIMENTAL mode

Add GEOMETRY as a new primitive type so that geospatial
functions in WKB_EXPERIMENTAL mode use typed signatures
(e.g. st_point returns GEOMETRY, st_x accepts GEOMETRY)
instead of raw BINARY.

  Type system:
- Add TPrimitiveType.GEOMETRY in Thrift
- Frontend: PrimitiveType, Type, ScalarType, parser
- Backend: piggyback on TYPE_STRING with is_geometry_ flag
  (same pattern as BINARY with is_binary_)
- Add GeometryCompatibility to block implicit conversions
- Block CAST to/from GEOMETRY in CastExpr
- Reject GEOMETRY columns in CREATE TABLE

Function registration (WKB_EXPERIMENTAL only):
- Add BinaryToGeometryHiveLegacyFunctionExtractor that maps
  BytesWritable to GEOMETRY instead of BINARY
- Update HiveEsriGeospatialBuiltins to use GEOMETRY types
  for args/returns when geospatial_library=WKB_EXPERIMENTAL
- Typed boundaries: st_geomfromwkb(BINARY)->GEOMETRY,
  st_asbinary(GEOMETRY)->BINARY

Runtime fixes:
- LiteralExpr: handle GEOMETRY in constant folding
- HiveGenericJavaFunction: map GEOMETRY to Hive's BINARY
  PrimitiveCategory and TypeInfo
- JavaUdfDataType: accept GEOMETRY for BytesWritable compat
- query-result-set.cc, hs2-util.cc: serialize GEOMETRY
  columns as binary data with BINARY_TYPE descriptor

Tests:
- AnalyzeExprsTest: cast rejection, comparison rejection
- AnalyzeDDLTest: CREATE TABLE rejection
- test_geospatial_library.py: SHOW FUNCTIONS verifies
  GEOMETRY signatures in WKB mode
- Relax geospatial-esri.test CATCH patterns for WKB mode

HIVE_ESRI mode is unchanged; all existing ST_ functions
keep their BINARY signatures there.

Change-Id: I0ff29cb15ab45f3899bf453041e605a32f195c27
---
M be/src/runtime/types.cc
M be/src/runtime/types.h
M be/src/service/hs2-util.cc
M be/src/service/query-result-set.cc
M common/thrift/Types.thrift
M 
fe/src/compat-hive-3/java/org/apache/impala/compat/HiveEsriGeospatialBuiltins.java
M fe/src/main/cup/sql-parser.cup
M fe/src/main/java/org/apache/impala/analysis/BinaryPredicate.java
M fe/src/main/java/org/apache/impala/analysis/CastExpr.java
M fe/src/main/java/org/apache/impala/analysis/InPredicate.java
M fe/src/main/java/org/apache/impala/analysis/LiteralExpr.java
M fe/src/main/java/org/apache/impala/analysis/TableDef.java
M fe/src/main/java/org/apache/impala/catalog/Function.java
A fe/src/main/java/org/apache/impala/catalog/GeometryCompatibility.java
M fe/src/main/java/org/apache/impala/catalog/PrimitiveType.java
M fe/src/main/java/org/apache/impala/catalog/ScalarFunction.java
M fe/src/main/java/org/apache/impala/catalog/ScalarType.java
M fe/src/main/java/org/apache/impala/catalog/Type.java
A 
fe/src/main/java/org/apache/impala/hive/executor/BinaryToGeometryHiveLegacyFunctionExtractor.java
M fe/src/main/java/org/apache/impala/hive/executor/HiveGenericJavaFunction.java
M fe/src/main/java/org/apache/impala/hive/executor/JavaUdfDataType.java
M fe/src/main/jflex/sql-scanner.flex
M fe/src/test/java/org/apache/impala/analysis/AnalyzeDDLTest.java
M fe/src/test/java/org/apache/impala/analysis/AnalyzeExprsTest.java
A 
testdata/workloads/functional-planner/queries/PlannerTest/geospatial-expressions.test
M testdata/workloads/functional-query/queries/QueryTest/geospatial-esri.test
M tests/custom_cluster/test_geospatial_library.py
27 files changed, 320 insertions(+), 63 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/Impala-ASF refs/changes/34/24534/2
--
To view, visit http://gerrit.cloudera.org:8080/24534
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I0ff29cb15ab45f3899bf453041e605a32f195c27
Gerrit-Change-Number: 24534
Gerrit-PatchSet: 2
Gerrit-Owner: Csaba Ringhofer <[email protected]>

Reply via email to