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]>
