Zoltan Borok-Nagy has uploaded this change for review. ( http://gerrit.cloudera.org:8080/24392
Change subject: IMPALA-15067: Add VariantValue and basic decoding functions ...................................................................... IMPALA-15067: Add VariantValue and basic decoding functions Adds the backend implementation for decoding VARIANT binary blobs: - variant-value.h: Defines VariantMetadata (field name dictionary parser) and VariantValue (value decoder with object/array accessors and path navigation). Supports all variant physical types defined by the Parquet Variant spec. - variant-util.cc/h: Implements VariantToJson() which serializes a variant (metadata + value blobs) to JSON. Supported types include null, booleans, int8/16/32/64, float, double, decimal4/8/16, short/long strings, objects, arrays, TIMESTAMPNTZ (micros), and TIMESTAMPNTZ_NANOS. BINARY values are base64-encoded. TIMESTAMPTZ, TIME, and UUID remain unsupported. - variant-functions-ir.cc/h: Implements the variant_to_json(BINARY, BINARY)->STRING builtin expression function. Testing - Unit tests covering metadata parsing, all primitive types, objects, arrays, path navigation, and JSON serialization. Includes test cases extracted from Hive-written and DuckDB Parquet test files for cross-engine compatibility validation. Generated-by: Claude Opus 4.8 (Max effort) Change-Id: I904618570e8c21d099c9a96b496d85e9246483de --- M be/src/exprs/CMakeLists.txt A be/src/exprs/variant-functions-ir.cc A be/src/exprs/variant-functions.h M be/src/runtime/CMakeLists.txt A be/src/runtime/variant-value.cc A be/src/runtime/variant-value.h M be/src/util/CMakeLists.txt A be/src/util/variant-util-test.cc A be/src/util/variant-util.cc A be/src/util/variant-util.h 10 files changed, 1,547 insertions(+), 0 deletions(-) git pull ssh://gerrit.cloudera.org:29418/Impala-ASF refs/changes/92/24392/1 -- To view, visit http://gerrit.cloudera.org:8080/24392 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-Project: Impala-ASF Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I904618570e8c21d099c9a96b496d85e9246483de Gerrit-Change-Number: 24392 Gerrit-PatchSet: 1 Gerrit-Owner: Zoltan Borok-Nagy <[email protected]>
