Skip to content

Crash: LOGICAL_ERROR: 'Unexpected size of tuple element 1: 0. Expected size: 1' #1519

@strtgbb

Description

@strtgbb

Describe the bug
SerializationTuple::deserializeBinaryBulkWithMultipleStreams doesn't handle zero-sized tuple elements when reading Object('json') subcolumns from
compact parts where the advanced shared-data serialization format is in use and parts have divergent nested schemas.

To Reproduce

SET allow_experimental_object_type = 1;
  SET output_format_json_named_tuples_as_objects = 1;
  DROP TABLE IF EXISTS t_json_array;
  CREATE TABLE t_json_array (id UInt32, arr Array(Object('json')))
  ENGINE = MergeTree ORDER BY id
  SETTINGS
      object_serialization_version = 'v2',
      object_shared_data_serialization_version = 'advanced',
      object_shared_data_serialization_version_for_zero_level_parts = 'advanced',
      dynamic_serialization_version = 'v3';
  SYSTEM STOP MERGES t_json_array;
  INSERT INTO t_json_array FORMAT JSONEachRow {"id": 1, "arr": [{"k1": [{"k2": "aaa", "k3": "bbb"}, {"k2": "ccc"}]}]}
  INSERT INTO t_json_array FORMAT JSONEachRow {"id": 2, "arr": [{"k1": [{"k3": "ddd", "k4": 10}, {"k4": 20}], "k5": {"k6": "foo"}}]}
  SELECT id, arr.k1.k2, arr.k1.k3, arr.k1.k4, arr.k5.k6 FROM t_json_array ORDER BY id;

Key information
Workflow run with the fails https://github.com/Altinity/ClickHouse/actions/runs/22993422984

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions