From a3db44f6b69f84af594a9263984649295d6044d5 Mon Sep 17 00:00:00 2001 From: Socrates Date: Fri, 11 Jul 2025 06:36:46 +0800 Subject: [PATCH] branch-2.1: [fix](tvf) support compressed json file for tvf and refactor code (#51983) (#53063) bp: #51983 --- be/src/vec/exec/format/json/new_json_reader.cpp | 4 +++- .../json_format_test/simple_object_json.json.gz | Bin 0 -> 211 bytes .../data/external_table_p0/tvf/test_hdfs_tvf.out | 14 ++++++++++++++ .../external_table_p0/tvf/test_hdfs_tvf.groovy | 10 ++++++++++ 4 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 docker/thirdparties/docker-compose/hive/scripts/preinstalled_data/json_format_test/simple_object_json.json.gz diff --git a/be/src/vec/exec/format/json/new_json_reader.cpp b/be/src/vec/exec/format/json/new_json_reader.cpp index c8969c6d4c314e..fb1b04e867c44b 100644 --- a/be/src/vec/exec/format/json/new_json_reader.cpp +++ b/be/src/vec/exec/format/json/new_json_reader.cpp @@ -258,7 +258,9 @@ Status NewJsonReader::get_columns(std::unordered_map* col_names, std::vector* col_types) { RETURN_IF_ERROR(_get_range_params()); - + // create decompressor. + // _decompressor may be nullptr if this is not a compressed file + RETURN_IF_ERROR(Decompressor::create_decompressor(_file_compress_type, &_decompressor)); RETURN_IF_ERROR(_open_file_reader(true)); if (_read_json_by_line) { RETURN_IF_ERROR(_open_line_reader()); diff --git a/docker/thirdparties/docker-compose/hive/scripts/preinstalled_data/json_format_test/simple_object_json.json.gz b/docker/thirdparties/docker-compose/hive/scripts/preinstalled_data/json_format_test/simple_object_json.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..8a6db90241ffc25e12d351e459c1f4ce374289af GIT binary patch literal 211 zcmV;^04)C>iwFo!J2H?9- zVL0y~h^TuTrVLmN9ya2p@!f}6QoGdcKth_2KP_FD@7X!$r<`^E@k&>AG5+R*Wm{?N zO)7~}R;uP}wtTce`tEeFPJ6-y@Dgzw6QA7}i7&y+uXq#YbO@KgE5zNe^a{8_Jm_#Z zssddjJ;fAHYz?+Swo5(Rp7zmzZjpZagWwh@FYt)wYUpqCV%KPyAr1qf`y#pc6TH1$ Nvp1P-u