TCatalogObject {
  01: type (i32) = 3,
  02: catalog_version (i64) = 5990,
  05: table (struct) = TTable {
    01: db_name (string) = "default",
    02: tbl_name (string) = "people",
    04: access_level (i32) = 1,
    05: columns (list) = list<struct>[2] {
      [0] = TColumn {
        01: columnName (string) = "person",
        02: columnType (struct) = TColumnType {
          01: types (list) = list<struct>[1] {
            [0] = TTypeNode {
              01: type (i32) = 0,
              02: scalar_type (struct) = TScalarType {
                01: type (i32) = 12,
              },
            },
          },
        },
        03: comment (string) = "Inferred from Parquet file.",
        04: col_stats (struct) = TColumnStats {
          01: avg_size (double) = -1,
          02: max_size (i64) = -1,
          03: num_distinct_values (i64) = -1,
          04: num_nulls (i64) = -1,
          05: num_trues (i64) = -1,
          06: num_falses (i64) = -1,
        },
        05: position (i32) = 0,
        06: virtual_column_type (i32) = 0,
        14: is_nullable (bool) = true,
        20: is_iceberg_column (bool) = true,
        21: iceberg_field_id (i32) = 1,
        22: iceberg_field_map_key_id (i32) = -1,
        23: iceberg_field_map_value_id (i32) = -1,
      },
      [1] = TColumn {
        01: columnName (string) = "region",
        02: columnType (struct) = TColumnType {
          01: types (list) = list<struct>[1] {
            [0] = TTypeNode {
              01: type (i32) = 0,
              02: scalar_type (struct) = TScalarType {
                01: type (i32) = 12,
              },
            },
          },
        },
        03: comment (string) = "Inferred from Parquet file.",
        04: col_stats (struct) = TColumnStats {
          01: avg_size (double) = -1,
          02: max_size (i64) = -1,
          03: num_distinct_values (i64) = -1,
          04: num_nulls (i64) = -1,
          05: num_trues (i64) = -1,
          06: num_falses (i64) = -1,
        },
        05: position (i32) = 1,
        06: virtual_column_type (i32) = 0,
        14: is_nullable (bool) = true,
        20: is_iceberg_column (bool) = true,
        21: iceberg_field_id (i32) = 2,
        22: iceberg_field_map_key_id (i32) = -1,
        23: iceberg_field_map_value_id (i32) = -1,
      },
    },
    06: clustering_columns (list) = list<struct>[0] {
    },
    07: virtual_columns (list) = list<struct>[5] {
      [0] = TColumn {
        01: columnName (string) = "input__file__name",
        02: columnType (struct) = TColumnType {
          01: types (list) = list<struct>[1] {
            [0] = TTypeNode {
              01: type (i32) = 0,
              02: scalar_type (struct) = TScalarType {
                01: type (i32) = 12,
              },
            },
          },
        },
        04: col_stats (struct) = TColumnStats {
          01: avg_size (double) = -1,
          02: max_size (i64) = -1,
          03: num_distinct_values (i64) = -1,
          04: num_nulls (i64) = -1,
          05: num_trues (i64) = -1,
          06: num_falses (i64) = -1,
        },
        05: position (i32) = 0,
        06: virtual_column_type (i32) = 1,
      },
      [1] = TColumn {
        01: columnName (string) = "file__position",
        02: columnType (struct) = TColumnType {
          01: types (list) = list<struct>[1] {
            [0] = TTypeNode {
              01: type (i32) = 0,
              02: scalar_type (struct) = TScalarType {
                01: type (i32) = 6,
              },
            },
          },
        },
        04: col_stats (struct) = TColumnStats {
          01: avg_size (double) = 8,
          02: max_size (i64) = 8,
          03: num_distinct_values (i64) = -1,
          04: num_nulls (i64) = -1,
          05: num_trues (i64) = -1,
          06: num_falses (i64) = -1,
        },
        05: position (i32) = 0,
        06: virtual_column_type (i32) = 2,
      },
      [2] = TColumn {
        01: columnName (string) = "partition__spec__id",
        02: columnType (struct) = TColumnType {
          01: types (list) = list<struct>[1] {
            [0] = TTypeNode {
              01: type (i32) = 0,
              02: scalar_type (struct) = TScalarType {
                01: type (i32) = 5,
              },
            },
          },
        },
        04: col_stats (struct) = TColumnStats {
          01: avg_size (double) = 4,
          02: max_size (i64) = 4,
          03: num_distinct_values (i64) = -1,
          04: num_nulls (i64) = -1,
          05: num_trues (i64) = -1,
          06: num_falses (i64) = -1,
        },
        05: position (i32) = 0,
        06: virtual_column_type (i32) = 3,
      },
      [3] = TColumn {
        01: columnName (string) = "iceberg__partition__serialized",
        02: columnType (struct) = TColumnType {
          01: types (list) = list<struct>[1] {
            [0] = TTypeNode {
              01: type (i32) = 0,
              02: scalar_type (struct) = TScalarType {
                01: type (i32) = 13,
              },
            },
          },
        },
        04: col_stats (struct) = TColumnStats {
          01: avg_size (double) = -1,
          02: max_size (i64) = -1,
          03: num_distinct_values (i64) = -1,
          04: num_nulls (i64) = -1,
          05: num_trues (i64) = -1,
          06: num_falses (i64) = -1,
        },
        05: position (i32) = 0,
        06: virtual_column_type (i32) = 4,
      },
      [4] = TColumn {
        01: columnName (string) = "iceberg__data__sequence__number",
        02: columnType (struct) = TColumnType {
          01: types (list) = list<struct>[1] {
            [0] = TTypeNode {
              01: type (i32) = 0,
              02: scalar_type (struct) = TScalarType {
                01: type (i32) = 6,
              },
            },
          },
        },
        04: col_stats (struct) = TColumnStats {
          01: avg_size (double) = 8,
          02: max_size (i64) = 8,
          03: num_distinct_values (i64) = -1,
          04: num_nulls (i64) = -1,
          05: num_trues (i64) = -1,
          06: num_falses (i64) = -1,
        },
        05: position (i32) = 0,
        06: virtual_column_type (i32) = 5,
      },
    },
    08: table_stats (struct) = TTableStats {
      01: num_rows (i64) = 6,
      02: total_file_bytes (i64) = 5137,
    },
    09: table_type (i32) = 5,
    10: hdfs_table (struct) = THdfsTable {
      01: hdfsBaseDir (string) = "s3a://novas3devcontainer/user/hive/warehouse/people",
      02: colNames (list) = list<string>[2] {
        [0] = "person",
        [1] = "region",
      },
      03: nullPartitionKeyValue (string) = "__HIVE_DEFAULT_PARTITION__",
      04: partitions (map) = map<i64,struct>[1] {
        0 -> THdfsPartition {
          07: partitionKeyExprs (list) = list<struct>[0] {
          },
          09: file_desc (list) = list<struct>[5] {
            [0] = THdfsFileDesc {
              01: file_desc_data (string) = "\x14\x00\x00\x00\x00\x00\x00\x00\f\x00\x1c\x00\x18\x00\f\x00\x00\x00\x04\x00\f\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00;\x00\x00\x00data/19452e578c623f35-488798a700000001_22519716_data.0.parq\x00",
            },
            [1] = THdfsFileDesc {
              01: file_desc_data (string) = "\x14\x00\x00\x00\x00\x00\x00\x00\f\x00\x1c\x00\x18\x00\f\x00\x00\x00\x04\x00\f\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00N\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00;\x00\x00\x00data/cc4a61a1ef6d217a-d35f7cf300000000_66397012_data.0.parq\x00",
            },
            [2] = THdfsFileDesc {
              01: file_desc_data (string) = "\x14\x00\x00\x00\x00\x00\x00\x00\f\x00\x18\x00\x14\x00\f\x00\x00\x00\x04\x00\f\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x006\x03\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00=\x00\x00\x00data/5c475a6e90927883-22cf534300000000_1720428944_data.0.parq\x00\x00\x00",
            },
            [3] = THdfsFileDesc {
              01: file_desc_data (string) = "\x14\x00\x00\x00\x00\x00\x00\x00\f\x00\x18\x00\x14\x00\f\x00\x00\x00\x04\x00\f\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00C\x05\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00D\x00\x00\x00data/delete-19452e578c623f35-488798a700000001_1476985321_data.0.parq\x00\x00\x00\x00",
            },
            [4] = THdfsFileDesc {
              01: file_desc_data (string) = "\x14\x00\x00\x00\x00\x00\x00\x00\f\x00\x18\x00\x14\x00\f\x00\x00\x00\x04\x00\f\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00C\x05\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00D\x00\x00\x00data/delete-cc4a61a1ef6d217a-d35f7cf300000000_1013384343_data.0.parq\x00\x00\x00\x00",
            },
          },
          10: location (struct) = THdfsPartitionLocation {
            01: prefix_index (i32) = 0,
            02: suffix (string) = "",
          },
          11: access_level (i32) = 1,
          12: stats (struct) = TTableStats {
            01: num_rows (i64) = 6,
          },
          13: is_marked_cached (bool) = false,
          14: id (i64) = 0,
          15: hms_parameters (map) = map<string,string>[0] {
          },
          16: num_blocks (i64) = 0,
          17: total_file_size_bytes (i64) = 5137,
          19: has_incremental_stats (bool) = false,
          25: partition_name (string) = "",
          26: prev_id (i64) = -1,
          27: hdfs_storage_descriptor (struct) = THdfsStorageDescriptor {
            01: lineDelim (byte) = 0x0a,
            02: fieldDelim (byte) = 0x01,
            03: collectionDelim (byte) = 0x01,
            04: mapKeyDelim (byte) = 0x01,
            05: escapeChar (byte) = 0x00,
            06: quoteChar (byte) = 0x01,
            07: fileFormat (i32) = 4,
            08: blockSize (i32) = 0,
          },
        },
      },
      05: nullColumnValue (string) = "\\N",
      07: network_addresses (list) = list<struct>[0] {
      },
      09: partition_prefixes (list) = list<string>[1] {
        [0] = "s3a://novas3devcontainer/user/hive/warehouse/people",
      },
      10: prototype_partition (struct) = THdfsPartition {
        07: partitionKeyExprs (list) = list<struct>[0] {
        },
        14: id (i64) = -1,
        26: prev_id (i64) = -1,
        27: hdfs_storage_descriptor (struct) = THdfsStorageDescriptor {
          01: lineDelim (byte) = 0x0a,
          02: fieldDelim (byte) = 0x01,
          03: collectionDelim (byte) = 0x01,
          04: mapKeyDelim (byte) = 0x01,
          05: escapeChar (byte) = 0x00,
          06: quoteChar (byte) = 0x01,
          07: fileFormat (i32) = 8,
          08: blockSize (i32) = 0,
        },
      },
      11: sql_constraints (struct) = TSqlConstraints {
        01: primary_keys (list) = list<struct>[0] {
        },
        02: foreign_keys (list) = list<struct>[0] {
        },
      },
      12: is_full_acid (bool) = false,
      14: has_full_partitions (bool) = true,
    },
    12: metastore_table (struct) = Table {
      01: tableName (string) = "people",
      02: dbName (string) = "default",
      03: owner (string) = "psantos",
      04: createTime (i32) = 1756200963,
      05: lastAccessTime (i32) = -440661,
      06: retention (i32) = 2147483647,
      07: sd (struct) = StorageDescriptor {
        01: cols (list) = list<struct>[2] {
          [0] = FieldSchema {
            01: name (string) = "person",
            02: type (string) = "string",
            03: comment (string) = "Inferred from Parquet file.",
          },
          [1] = FieldSchema {
            01: name (string) = "region",
            02: type (string) = "string",
            03: comment (string) = "Inferred from Parquet file.",
          },
        },
        02: location (string) = "s3a://novas3devcontainer/user/hive/warehouse/people",
        03: inputFormat (string) = "org.apache.iceberg.mr.hive.HiveIcebergInputFormat",
        04: outputFormat (string) = "org.apache.iceberg.mr.hive.HiveIcebergOutputFormat",
        05: compressed (bool) = false,
        06: numBuckets (i32) = 0,
        07: serdeInfo (struct) = SerDeInfo {
          01: name (string) = "",
          02: serializationLib (string) = "org.apache.iceberg.mr.hive.HiveIcebergSerDe",
          03: parameters (map) = map<string,string>[0] {
          },
        },
        08: bucketCols (list) = list<string>[0] {
        },
        09: sortCols (list) = list<struct>[0] {
        },
        10: parameters (map) = map<string,string>[0] {
        },
        11: skewedInfo (struct) = SkewedInfo {
          01: skewedColNames (list) = list<string>[0] {
          },
          02: skewedColValues (list) = list<list>[0] {
          },
          03: skewedColValueLocationMaps (map) = map<list,string>[0] {
          },
        },
        12: storedAsSubDirectories (bool) = false,
      },
      08: partitionKeys (list) = list<struct>[0] {
      },
      09: parameters (map) = map<string,string>[26] {
        "EXTERNAL" -> "TRUE",
        "OBJCAPABILITIES" -> "EXTREAD,EXTWRITE",
        "accessType" -> "8",
        "current-schema" -> "{\"type\":\"struct\",\"schema-id\":0,\"fields\":[{\"id\":1,\"name\":\"person\",\"required\":false,\"type\":\"string\",\"doc\":\"Inferred from Parquet file.\"},{\"id\":2,\"name\":\"region\",\"required\":false,\"type\":\"string\",\"doc\":\"Inferred from Parquet file.\"}]}",
        "current-snapshot-id" -> "1765754243809893860",
        "current-snapshot-summary" -> "{\"added-data-fil[...](340)",
        "current-snapshot-timestamp-ms" -> "1756201469587",
        "engine.hive.enabled" -> "true",
        "external.table.purge" -> "TRUE",
        "impala.events.catalogServiceId" -> "a7019bacd71d4819:a17d009675d81858",
        "impala.events.catalogVersion" -> "104",
        "metadata_location" -> "s3a://novas3devcontainer/user/hive/warehouse/people/metadata/00003-37cc7578-7d9b-46f1-8448-ee1917db9daf.metadata.json",
        "numFiles" -> "3",
        "numRows" -> "6",
        "previous_metadata_location" -> "s3a://novas3devcontainer/user/hive/warehouse/people/metadata/00002-a870ad3a-e10c-4b92-9d78-1ccf438271b0.metadata.json",
        "snapshot-count" -> "3",
        "storage_handler" -> "org.apache.iceberg.mr.hive.HiveIcebergStorageHandler",
        "table_type" -> "ICEBERG",
        "totalSize" -> "5137",
        "transient_lastDdlTime" -> "1756200963",
        "uuid" -> "feb7c1f1-0871-411d-99de-74c5b752669d",
        "write.delete.mode" -> "merge-on-read",
        "write.format.default" -> "parquet",
        "write.merge.mode" -> "merge-on-read",
        "write.parquet.compression-codec" -> "zstd",
        "write.update.mode" -> "merge-on-read",
      },
      10: viewOriginalText (string) = "",
      11: viewExpandedText (string) = "",
      12: tableType (string) = "EXTERNAL_TABLE",
      14: temporary (bool) = false,
      15: rewriteEnabled (bool) = false,
      17: catName (string) = "hive",
      18: ownerType (i32) = 1,
    },
    16: storage_metadata_load_time_ns (i64) = 5812541107,
    17: iceberg_table (struct) = TIcebergTable {
      01: table_location (string) = "s3a://novas3devcontainer/user/hive/warehouse/people",
      02: partition_spec (list) = list<struct>[1] {
        [0] = TIcebergPartitionSpec {
          01: spec_id (i32) = 0,
        },
      },
      03: default_partition_spec_id (i32) = 0,
      04: content_files (struct) = TIcebergContentFileStore {
        01: path_hash_to_data_file_without_deletes (map) = map<string,struct>[2] {
          "2a0e7208e94c5d05838e3c39cf74a9a6" -> THdfsFileDesc {
            01: file_desc_data (string) = "\x14\x00\x00\x00\x00\x00\x00\x00\f\x00\x1c\x00\x18\x00\f\x00\x00\x00\x04\x00\f\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00N\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00;\x00\x00\x00data/cc4a61a1ef6d217a-d35f7cf300000000_66397012_data.0.parq\x00",
            02: file_metadata (string) = "\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\n\x00\x04\x00\x06\x00\x00\x00\x10\x00\x00\x00\x00\x00\n\x00\x14\x00\x00\x00\f\x00\x04\x00\n\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00",
          },
          "2f617e80a57292e83e4804a6fdf6f256" -> THdfsFileDesc {
            01: file_desc_data (string) = "\x14\x00\x00\x00\x00\x00\x00\x00\f\x00\x1c\x00\x18\x00\f\x00\x00\x00\x04\x00\f\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00;\x00\x00\x00data/19452e578c623f35-488798a700000001_22519716_data.0.parq\x00",
            02: file_metadata (string) = "\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\n\x00\x04\x00\x06\x00\x00\x00\x10\x00\x00\x00\x00\x00\n\x00\x14\x00\x00\x00\f\x00\x04\x00\n\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00",
          },
        },
        02: path_hash_to_data_file_with_deletes (map) = map<string,struct>[1] {
          "a97aafdd8a95398c948a98625bd129f2" -> THdfsFileDesc {
            01: file_desc_data (string) = "\x14\x00\x00\x00\x00\x00\x00\x00\f\x00\x18\x00\x14\x00\f\x00\x00\x00\x04\x00\f\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x006\x03\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00=\x00\x00\x00data/5c475a6e90927883-22cf534300000000_1720428944_data.0.parq\x00\x00\x00",
            02: file_metadata (string) = "\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\n\x00\x04\x00\x06\x00\x00\x00\x10\x00\x00\x00\x00\x00\n\x00\x14\x00\x00\x00\f\x00\x04\x00\n\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00",
          },
        },
        03: path_hash_to_position_delete_file (map) = map<string,struct>[2] {
          "7de157bbafffa8a0b2e60a2326b4e114" -> THdfsFileDesc {
            01: file_desc_data (string) = "\x14\x00\x00\x00\x00\x00\x00\x00\f\x00\x18\x00\x14\x00\f\x00\x00\x00\x04\x00\f\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00C\x05\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00D\x00\x00\x00data/delete-19452e578c623f35-488798a700000001_1476985321_data.0.parq\x00\x00\x00\x00",
            02: file_metadata (string) = "\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\n\x00\x04\x00\x06\x00\x00\x00\x10\x00\x00\x00\x00\x00\n\x00\x14\x00\x00\x00\f\x00\x04\x00\n\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00",
          },
          "e3ea58946264449ae9b3f66a3b1d5f18" -> THdfsFileDesc {
            01: file_desc_data (string) = "\x14\x00\x00\x00\x00\x00\x00\x00\f\x00\x18\x00\x14\x00\f\x00\x00\x00\x04\x00\f\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00C\x05\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00D\x00\x00\x00data/delete-cc4a61a1ef6d217a-d35f7cf300000000_1013384343_data.0.parq\x00\x00\x00\x00",
            02: file_metadata (string) = "\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\n\x00\x04\x00\x06\x00\x00\x00\x10\x00\x00\x00\x00\x00\n\x00\x14\x00\x00\x00\f\x00\x04\x00\n\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00",
          },
        },
        04: path_hash_to_equality_delete_file (map) = map<string,struct>[0] {
        },
        05: has_avro (bool) = false,
        06: has_orc (bool) = false,
        07: has_parquet (bool) = true,
      },
      05: catalog_snapshot_id (i64) = 1765754243809893860,
      06: parquet_compression_codec (struct) = TCompressionCodec {
        01: codec (i32) = 10,
        02: compression_level (i32) = 3,
      },
      07: parquet_row_group_size (i64) = 0,
      08: parquet_plain_page_size (i64) = 0,
      09: parquet_dict_page_size (i64) = 0,
      10: partition_stats (map) = map<string,struct>[1] {
        "{}" -> TIcebergPartitionStats {
          01: num_files (i64) = 5,
          02: num_rows (i64) = 6,
          03: file_size_in_bytes (i64) = 5137,
        },
      },
    },
  },
}