From c6c79c05ca446e7776cd0d0f6541fbfabb8f6048 Mon Sep 17 00:00:00 2001 From: Kenny Daniel Date: Tue, 30 Jul 2024 16:19:09 -0700 Subject: [PATCH] Fix for issue #23 nested struct assembly --- src/assemble.js | 16 +- test/files/issue23.json | 335 ++++ test/files/issue23.metadata.json | 3198 ++++++++++++++++++++++++++++++ test/files/issue23.parquet | Bin 0 -> 15014 bytes 4 files changed, 3541 insertions(+), 8 deletions(-) create mode 100644 test/files/issue23.json create mode 100644 test/files/issue23.metadata.json create mode 100644 test/files/issue23.parquet diff --git a/src/assemble.js b/src/assemble.js index c9df73d..9374429 100644 --- a/src/assemble.js +++ b/src/assemble.js @@ -125,7 +125,7 @@ export function assembleNested(subcolumnData, schema, depth = 0) { const subcolumn = sublist.path.join('.') const values = subcolumnData.get(subcolumn) - if (!values) throw new Error('parquet list-like column missing values') + if (!values) throw new Error('parquet list column missing values') if (optional) flattenAtDepth(values, depth) subcolumnData.set(path, values) subcolumnData.delete(subcolumn) @@ -142,10 +142,10 @@ export function assembleNested(subcolumnData, schema, depth = 0) { const keys = subcolumnData.get(`${path}.${mapName}.key`) const values = subcolumnData.get(`${path}.${mapName}.value`) - if (!keys) throw new Error('parquet map-like column missing keys') - if (!values) throw new Error('parquet map-like column missing values') + if (!keys) throw new Error('parquet map column missing keys') + if (!values) throw new Error('parquet map column missing values') if (keys.length !== values.length) { - throw new Error('parquet map-like column key/value length mismatch') + throw new Error('parquet map column key/value length mismatch') } const out = assembleMaps(keys, values, nextDepth) @@ -160,12 +160,13 @@ export function assembleNested(subcolumnData, schema, depth = 0) { // Struct-like column if (schema.children.length) { // construct a meta struct and then invert + const invertDepth = schema.element.repetition_type === 'REQUIRED' ? depth : depth + 1 /** @type {Record} */ const struct = {} for (const child of schema.children) { - assembleNested(subcolumnData, child, nextDepth) + assembleNested(subcolumnData, child, invertDepth) const childData = subcolumnData.get(child.path.join('.')) - if (!childData) throw new Error('parquet struct-like column missing child data') + if (!childData) throw new Error('parquet struct missing child data') struct[child.element.name] = childData } // remove children @@ -173,12 +174,10 @@ export function assembleNested(subcolumnData, schema, depth = 0) { subcolumnData.delete(child.path.join('.')) } // invert struct by depth - const invertDepth = schema.element.repetition_type === 'REQUIRED' ? depth : depth + 1 const inverted = invertStruct(struct, invertDepth) if (optional) flattenAtDepth(inverted, depth) subcolumnData.set(path, inverted) } - // assert(schema.element.repetition_type !== 'REPEATED') } /** @@ -238,6 +237,7 @@ function invertStruct(struct, depth) { /** @type {Record} */ const obj = {} for (const key of keys) { + if (struct[key].length !== length) throw new Error('parquet struct parsing error') obj[key] = struct[key][i] } if (depth) { diff --git a/test/files/issue23.json b/test/files/issue23.json new file mode 100644 index 0000000..b09521f --- /dev/null +++ b/test/files/issue23.json @@ -0,0 +1,335 @@ +[ + [ + { + "categories": [ + { + "key": "22428702", + "name": [ + { + "key": "PL", + "value": "Test category 23" + } + ], + "dishes": [ + { + "key": "22428878", + "name": [ + { + "key": "PL", + "value": "Test" + } + ], + "addons": [ + { + "key": "22806893", + "name": [ + { + "key": "PL", + "value": "Dish extra 1" + } + ], + "required": false, + "maxSelected": -1, + "items": [ + { + "key": "21985972", + "ingredient": { + "key": "861005", + "name": [ + { + "key": "UK", + "value": "Цебуля" + }, + { + "key": "EN", + "value": "Onion" + }, + { + "key": "PL", + "value": "Cebula" + } + ] + }, + "unitSize": "KG", + "price": { + "scale": 1, + "int_val": { + "value": "7" + } + }, + "volume": { + "scale": 0 + } + }, + { + "key": "21985948", + "ingredient": { + "key": "20997760", + "name": [ + { + "key": "PL", + "value": "asd" + } + ] + }, + "unitSize": "KG", + "price": { + "scale": 1, + "int_val": { + "value": "\u000d" + } + }, + "volume": { + "scale": 0 + } + } + ] + }, + { + "key": "22806869", + "name": [ + { + "key": "PL", + "value": "Dodatki do śniadania" + } + ], + "required": false, + "maxSelected": -1, + "items": [ + { + "key": "22861716", + "ingredient": { + "key": "11742617", + "name": [ + { + "key": "PL", + "value": "Śmietana 12%" + } + ] + }, + "unitSize": "KG", + "price": { + "scale": 0, + "int_val": { + "value": "\u0001" + } + }, + "volume": { + "scale": 0 + } + }, + { + "key": "22673128", + "ingredient": { + "key": "895653", + "name": [ + { + "key": "UK", + "value": "Картопля" + }, + { + "key": "EN", + "value": "Potato" + }, + { + "key": "PL", + "value": "Ziemnaik" + } + ] + }, + "unitSize": "KG", + "price": { + "scale": 0, + "int_val": { + "value": "o" + } + }, + "volume": { + "scale": 0 + } + }, + { + "key": "22672907", + "ingredient": { + "key": "861005", + "name": [ + { + "key": "UK", + "value": "Цебуля" + }, + { + "key": "EN", + "value": "Onion" + }, + { + "key": "PL", + "value": "Cebula" + } + ] + }, + "unitSize": "KG", + "price": { + "scale": 0 + }, + "volume": { + "scale": 0 + } + } + ] + } + ], + "description": [ + { + "key": "PL", + "value": "asd" + } + ], + "components": [ + { + "key": "PL", + "value": "" + } + ], + "unitSize": "KG", + "priceSizes": [ + { + "volume": { + "scale": 0, + "int_val": { + "value": "d" + } + }, + "price": { + "scale": 0, + "int_val": { + "value": "\u000a" + } + } + } + ], + "orderIndex": 0, + "popular": false, + "tags": [ + "VEGETARIAN", + "VEGAN", + "HALAL", + "KOSHER", + "LACTOSE_FREE", + "GLUTEN_FREE", + "ORGANIC" + ], + "images": [ + { + "url": "https://file-storage.itasty.eu/image/dish/d92c8ad1-1679-41e4-8596-4652c0ec9131/d92c8ad1-1679-41e4-8596-4652c0ec9131.jpeg", + "transformations": [ + { + "label": "THUMBNAIL_SMALL", + "url": "https://file-storage.itasty.eu/image/dish/d92c8ad1-1679-41e4-8596-4652c0ec9131/d92c8ad1-1679-41e4-8596-4652c0ec9131_thumbnail_small_w285.jpeg" + }, + { + "label": "THUMBNAIL", + "url": "https://file-storage.itasty.eu/image/dish/d92c8ad1-1679-41e4-8596-4652c0ec9131/d92c8ad1-1679-41e4-8596-4652c0ec9131_thumbnail_w400.jpeg" + }, + { + "label": "LARGE", + "url": "https://file-storage.itasty.eu/image/dish/d92c8ad1-1679-41e4-8596-4652c0ec9131/d92c8ad1-1679-41e4-8596-4652c0ec9131_large_w800.jpeg" + } + ] + } + ] + } + ] + }, + { + "key": "22425554", + "name": [ + { + "key": "PL", + "value": "Test catergory" + } + ], + "dishes": [ + { + "key": "22425677", + "name": [ + { + "key": "UK", + "value": "Duży​​ awokado tost z jajkiem" + }, + { + "key": "PL", + "value": "Duży​​ awokado tost z jajkiem" + } + ], + "addons": [], + "description": [ + { + "key": "UK", + "value": "Duży​​ awokado tost z jajkiem" + }, + { + "key": "PL", + "value": "Rzemieślnicze pieczywo, dwa jajka sadzone lub jajecznica, guacamole, serek kremowy, podawane z sałatką" + } + ], + "components": [ + { + "key": "UK", + "value": "" + }, + { + "key": "PL", + "value": "" + } + ], + "unitSize": "KG", + "priceSizes": [ + { + "volume": { + "scale": 0, + "int_val": { + "value": "\u0001" + } + }, + "price": { + "scale": 0, + "int_val": { + "value": "\u000a" + } + } + } + ], + "orderIndex": 0, + "popular": false, + "tags": [ + "VEGETARIAN" + ], + "images": [] + } + ] + } + ], + "description": [ + { + "key": "PL", + "value": "Test Fable" + } + ], + "key": "22425501", + "languages": [ + "PL", + "EN", + "UK" + ], + "name": [ + { + "key": "PL", + "value": "Test Fable" + } + ], + "title": "" + }, + null, + "PLN" + ] +] diff --git a/test/files/issue23.metadata.json b/test/files/issue23.metadata.json new file mode 100644 index 0000000..343d14d --- /dev/null +++ b/test/files/issue23.metadata.json @@ -0,0 +1,3198 @@ +{ + "version": 1, + "schema": [ + { + "name": "itasty.MenuStructure", + "num_children": 3 + }, + { + "repetition_type": "OPTIONAL", + "name": "menu", + "num_children": 6, + "field_id": 1 + }, + { + "type": "BYTE_ARRAY", + "repetition_type": "OPTIONAL", + "name": "key", + "converted_type": "UTF8", + "field_id": 1, + "logical_type": { + "type": "STRING" + } + }, + { + "repetition_type": "REPEATED", + "name": "name", + "num_children": 2, + "field_id": 2 + }, + { + "type": "BYTE_ARRAY", + "repetition_type": "OPTIONAL", + "name": "key", + "converted_type": "UTF8", + "field_id": 1, + "logical_type": { + "type": "STRING" + } + }, + { + "type": "BYTE_ARRAY", + "repetition_type": "OPTIONAL", + "name": "value", + "converted_type": "UTF8", + "field_id": 2, + "logical_type": { + "type": "STRING" + } + }, + { + "repetition_type": "REPEATED", + "name": "categories", + "num_children": 3, + "field_id": 3 + }, + { + "type": "BYTE_ARRAY", + "repetition_type": "OPTIONAL", + "name": "key", + "converted_type": "UTF8", + "field_id": 1, + "logical_type": { + "type": "STRING" + } + }, + { + "repetition_type": "REPEATED", + "name": "name", + "num_children": 2, + "field_id": 2 + }, + { + "type": "BYTE_ARRAY", + "repetition_type": "OPTIONAL", + "name": "key", + "converted_type": "UTF8", + "field_id": 1, + "logical_type": { + "type": "STRING" + } + }, + { + "type": "BYTE_ARRAY", + "repetition_type": "OPTIONAL", + "name": "value", + "converted_type": "UTF8", + "field_id": 2, + "logical_type": { + "type": "STRING" + } + }, + { + "repetition_type": "REPEATED", + "name": "dishes", + "num_children": 11, + "field_id": 3 + }, + { + "type": "BYTE_ARRAY", + "repetition_type": "OPTIONAL", + "name": "key", + "converted_type": "UTF8", + "field_id": 1, + "logical_type": { + "type": "STRING" + } + }, + { + "repetition_type": "REPEATED", + "name": "name", + "num_children": 2, + "field_id": 2 + }, + { + "type": "BYTE_ARRAY", + "repetition_type": "OPTIONAL", + "name": "key", + "converted_type": "UTF8", + "field_id": 1, + "logical_type": { + "type": "STRING" + } + }, + { + "type": "BYTE_ARRAY", + "repetition_type": "OPTIONAL", + "name": "value", + "converted_type": "UTF8", + "field_id": 2, + "logical_type": { + "type": "STRING" + } + }, + { + "repetition_type": "REPEATED", + "name": "addons", + "num_children": 5, + "field_id": 3 + }, + { + "type": "BYTE_ARRAY", + "repetition_type": "OPTIONAL", + "name": "key", + "converted_type": "UTF8", + "field_id": 1, + "logical_type": { + "type": "STRING" + } + }, + { + "repetition_type": "REPEATED", + "name": "name", + "num_children": 2, + "field_id": 2 + }, + { + "type": "BYTE_ARRAY", + "repetition_type": "OPTIONAL", + "name": "key", + "converted_type": "UTF8", + "field_id": 1, + "logical_type": { + "type": "STRING" + } + }, + { + "type": "BYTE_ARRAY", + "repetition_type": "OPTIONAL", + "name": "value", + "converted_type": "UTF8", + "field_id": 2, + "logical_type": { + "type": "STRING" + } + }, + { + "type": "BOOLEAN", + "repetition_type": "OPTIONAL", + "name": "required", + "field_id": 3 + }, + { + "type": "INT32", + "repetition_type": "OPTIONAL", + "name": "maxSelected", + "field_id": 4 + }, + { + "repetition_type": "REPEATED", + "name": "items", + "num_children": 5, + "field_id": 5 + }, + { + "type": "BYTE_ARRAY", + "repetition_type": "OPTIONAL", + "name": "key", + "converted_type": "UTF8", + "field_id": 1, + "logical_type": { + "type": "STRING" + } + }, + { + "repetition_type": "OPTIONAL", + "name": "ingredient", + "num_children": 2, + "field_id": 2 + }, + { + "type": "BYTE_ARRAY", + "repetition_type": "OPTIONAL", + "name": "key", + "converted_type": "UTF8", + "field_id": 1, + "logical_type": { + "type": "STRING" + } + }, + { + "repetition_type": "REPEATED", + "name": "name", + "num_children": 2, + "field_id": 2 + }, + { + "type": "BYTE_ARRAY", + "repetition_type": "OPTIONAL", + "name": "key", + "converted_type": "UTF8", + "field_id": 1, + "logical_type": { + "type": "STRING" + } + }, + { + "type": "BYTE_ARRAY", + "repetition_type": "OPTIONAL", + "name": "value", + "converted_type": "UTF8", + "field_id": 2, + "logical_type": { + "type": "STRING" + } + }, + { + "type": "BYTE_ARRAY", + "repetition_type": "OPTIONAL", + "name": "unitSize", + "converted_type": "ENUM", + "field_id": 3, + "logical_type": { + "type": "ENUM" + } + }, + { + "repetition_type": "OPTIONAL", + "name": "price", + "num_children": 2, + "field_id": 4 + }, + { + "type": "INT32", + "repetition_type": "OPTIONAL", + "name": "scale", + "field_id": 1 + }, + { + "repetition_type": "OPTIONAL", + "name": "int_val", + "num_children": 1, + "field_id": 2 + }, + { + "type": "BYTE_ARRAY", + "repetition_type": "OPTIONAL", + "name": "value", + "field_id": 1 + }, + { + "repetition_type": "OPTIONAL", + "name": "volume", + "num_children": 2, + "field_id": 5 + }, + { + "type": "INT32", + "repetition_type": "OPTIONAL", + "name": "scale", + "field_id": 1 + }, + { + "repetition_type": "OPTIONAL", + "name": "int_val", + "num_children": 1, + "field_id": 2 + }, + { + "type": "BYTE_ARRAY", + "repetition_type": "OPTIONAL", + "name": "value", + "field_id": 1 + }, + { + "repetition_type": "REPEATED", + "name": "description", + "num_children": 2, + "field_id": 4 + }, + { + "type": "BYTE_ARRAY", + "repetition_type": "OPTIONAL", + "name": "key", + "converted_type": "UTF8", + "field_id": 1, + "logical_type": { + "type": "STRING" + } + }, + { + "type": "BYTE_ARRAY", + "repetition_type": "OPTIONAL", + "name": "value", + "converted_type": "UTF8", + "field_id": 2, + "logical_type": { + "type": "STRING" + } + }, + { + "repetition_type": "REPEATED", + "name": "components", + "num_children": 2, + "field_id": 5 + }, + { + "type": "BYTE_ARRAY", + "repetition_type": "OPTIONAL", + "name": "key", + "converted_type": "UTF8", + "field_id": 1, + "logical_type": { + "type": "STRING" + } + }, + { + "type": "BYTE_ARRAY", + "repetition_type": "OPTIONAL", + "name": "value", + "converted_type": "UTF8", + "field_id": 2, + "logical_type": { + "type": "STRING" + } + }, + { + "type": "BYTE_ARRAY", + "repetition_type": "OPTIONAL", + "name": "unitSize", + "converted_type": "ENUM", + "field_id": 6, + "logical_type": { + "type": "ENUM" + } + }, + { + "repetition_type": "REPEATED", + "name": "priceSizes", + "num_children": 2, + "field_id": 7 + }, + { + "repetition_type": "OPTIONAL", + "name": "volume", + "num_children": 2, + "field_id": 1 + }, + { + "type": "INT32", + "repetition_type": "OPTIONAL", + "name": "scale", + "field_id": 1 + }, + { + "repetition_type": "OPTIONAL", + "name": "int_val", + "num_children": 1, + "field_id": 2 + }, + { + "type": "BYTE_ARRAY", + "repetition_type": "OPTIONAL", + "name": "value", + "field_id": 1 + }, + { + "repetition_type": "OPTIONAL", + "name": "price", + "num_children": 2, + "field_id": 2 + }, + { + "type": "INT32", + "repetition_type": "OPTIONAL", + "name": "scale", + "field_id": 1 + }, + { + "repetition_type": "OPTIONAL", + "name": "int_val", + "num_children": 1, + "field_id": 2 + }, + { + "type": "BYTE_ARRAY", + "repetition_type": "OPTIONAL", + "name": "value", + "field_id": 1 + }, + { + "type": "INT32", + "repetition_type": "OPTIONAL", + "name": "orderIndex", + "field_id": 8 + }, + { + "type": "BOOLEAN", + "repetition_type": "OPTIONAL", + "name": "popular", + "field_id": 9 + }, + { + "type": "BYTE_ARRAY", + "repetition_type": "REPEATED", + "name": "tags", + "converted_type": "ENUM", + "field_id": 10, + "logical_type": { + "type": "ENUM" + } + }, + { + "repetition_type": "REPEATED", + "name": "images", + "num_children": 2, + "field_id": 11 + }, + { + "type": "BYTE_ARRAY", + "repetition_type": "OPTIONAL", + "name": "url", + "converted_type": "UTF8", + "field_id": 1, + "logical_type": { + "type": "STRING" + } + }, + { + "repetition_type": "REPEATED", + "name": "transformations", + "num_children": 2, + "field_id": 2 + }, + { + "type": "BYTE_ARRAY", + "repetition_type": "OPTIONAL", + "name": "label", + "converted_type": "ENUM", + "field_id": 1, + "logical_type": { + "type": "ENUM" + } + }, + { + "type": "BYTE_ARRAY", + "repetition_type": "OPTIONAL", + "name": "url", + "converted_type": "UTF8", + "field_id": 2, + "logical_type": { + "type": "STRING" + } + }, + { + "type": "BYTE_ARRAY", + "repetition_type": "OPTIONAL", + "name": "title", + "converted_type": "UTF8", + "field_id": 4, + "logical_type": { + "type": "STRING" + } + }, + { + "repetition_type": "REPEATED", + "name": "description", + "num_children": 2, + "field_id": 5 + }, + { + "type": "BYTE_ARRAY", + "repetition_type": "OPTIONAL", + "name": "key", + "converted_type": "UTF8", + "field_id": 1, + "logical_type": { + "type": "STRING" + } + }, + { + "type": "BYTE_ARRAY", + "repetition_type": "OPTIONAL", + "name": "value", + "converted_type": "UTF8", + "field_id": 2, + "logical_type": { + "type": "STRING" + } + }, + { + "type": "BYTE_ARRAY", + "repetition_type": "REPEATED", + "name": "languages", + "converted_type": "ENUM", + "field_id": 6, + "logical_type": { + "type": "ENUM" + } + }, + { + "repetition_type": "OPTIONAL", + "name": "socialLinks", + "num_children": 2, + "field_id": 2 + }, + { + "type": "BYTE_ARRAY", + "repetition_type": "OPTIONAL", + "name": "facebook", + "converted_type": "UTF8", + "field_id": 1, + "logical_type": { + "type": "STRING" + } + }, + { + "type": "BYTE_ARRAY", + "repetition_type": "OPTIONAL", + "name": "instagram", + "converted_type": "UTF8", + "field_id": 2, + "logical_type": { + "type": "STRING" + } + }, + { + "type": "BYTE_ARRAY", + "repetition_type": "OPTIONAL", + "name": "currency", + "converted_type": "ENUM", + "field_id": 3, + "logical_type": { + "type": "ENUM" + } + } + ], + "num_rows": 1, + "row_groups": [ + { + "columns": [ + { + "file_offset": 4, + "meta_data": { + "type": "BYTE_ARRAY", + "encodings": [ + "BIT_PACKED", + "PLAIN", + "RLE" + ], + "path_in_schema": [ + "menu", + "key" + ], + "codec": "UNCOMPRESSED", + "num_values": 1, + "total_uncompressed_size": 42, + "total_compressed_size": 42, + "data_page_offset": 4, + "statistics": { + "max": "22425501", + "min": "22425501", + "null_count": 0, + "max_value": "22425501", + "min_value": "22425501" + }, + "encoding_stats": [ + { + "page_type": "DATA_PAGE", + "encoding": "PLAIN", + "count": 1 + } + ], + "size_statistics": { + "unencoded_byte_array_data_bytes": 8, + "repetition_level_histogram": [ + 1 + ], + "definition_level_histogram": [ + 0, + 0, + 1 + ] + } + }, + "offset_index_offset": 5551, + "offset_index_length": 13, + "column_index_offset": 3575, + "column_index_length": 39, + "crypto_metadata": 39 + }, + { + "file_offset": 46, + "meta_data": { + "type": "BYTE_ARRAY", + "encodings": [ + "PLAIN", + "RLE" + ], + "path_in_schema": [ + "menu", + "name", + "key" + ], + "codec": "UNCOMPRESSED", + "num_values": 1, + "total_uncompressed_size": 42, + "total_compressed_size": 42, + "data_page_offset": 46, + "statistics": { + "max": "PL", + "min": "PL", + "null_count": 0, + "max_value": "PL", + "min_value": "PL" + }, + "encoding_stats": [ + { + "page_type": "DATA_PAGE", + "encoding": "PLAIN", + "count": 1 + } + ], + "size_statistics": { + "unencoded_byte_array_data_bytes": 2, + "repetition_level_histogram": [1, 0], + "definition_level_histogram": [0, 0, 0, 1] + } + }, + "offset_index_offset": 5564, + "offset_index_length": 13, + "column_index_offset": 3614, + "column_index_length": 29, + "crypto_metadata": 29 + }, + { + "file_offset": 88, + "meta_data": { + "type": "BYTE_ARRAY", + "encodings": [ + "PLAIN", + "RLE" + ], + "path_in_schema": [ + "menu", + "name", + "value" + ], + "codec": "UNCOMPRESSED", + "num_values": 1, + "total_uncompressed_size": 50, + "total_compressed_size": 50, + "data_page_offset": 88, + "statistics": { + "max": "Test Fable", + "min": "Test Fable", + "null_count": 0, + "max_value": "Test Fable", + "min_value": "Test Fable" + }, + "encoding_stats": [ + { + "page_type": "DATA_PAGE", + "encoding": "PLAIN", + "count": 1 + } + ], + "size_statistics": { + "unencoded_byte_array_data_bytes": 10, + "repetition_level_histogram": [1, 0], + "definition_level_histogram": [0, 0, 0, 1] + } + }, + "offset_index_offset": 5577, + "offset_index_length": 14, + "column_index_offset": 3643, + "column_index_length": 45, + "crypto_metadata": 45 + }, + { + "file_offset": 138, + "meta_data": { + "type": "BYTE_ARRAY", + "encodings": [ + "PLAIN", + "RLE" + ], + "path_in_schema": [ + "menu", + "categories", + "key" + ], + "codec": "UNCOMPRESSED", + "num_values": 2, + "total_uncompressed_size": 60, + "total_compressed_size": 60, + "data_page_offset": 138, + "statistics": { + "null_count": 0, + "max_value": "22428702", + "min_value": "22425554" + }, + "encoding_stats": [ + { + "page_type": "DATA_PAGE", + "encoding": "PLAIN", + "count": 1 + } + ], + "size_statistics": { + "unencoded_byte_array_data_bytes": 16, + "repetition_level_histogram": [ + 1, + 1 + ], + "definition_level_histogram": [ + 0, + 0, + 0, + 2 + ] + } + }, + "offset_index_offset": 5591, + "offset_index_length": 14, + "column_index_offset": 3688, + "column_index_length": 41, + "crypto_metadata": 41 + }, + { + "file_offset": 223, + "meta_data": { + "type": "BYTE_ARRAY", + "encodings": [ + "RLE", + "PLAIN_DICTIONARY" + ], + "path_in_schema": [ + "menu", + "categories", + "name", + "key" + ], + "codec": "UNCOMPRESSED", + "num_values": 2, + "total_uncompressed_size": 64, + "total_compressed_size": 64, + "data_page_offset": 223, + "dictionary_page_offset": 198, + "statistics": { + "max": "PL", + "min": "PL", + "null_count": 0, + "max_value": "PL", + "min_value": "PL" + }, + "encoding_stats": [ + { + "page_type": "DICTIONARY_PAGE", + "encoding": "PLAIN_DICTIONARY", + "count": 1 + }, + { + "page_type": "DATA_PAGE", + "encoding": "PLAIN_DICTIONARY", + "count": 1 + } + ], + "size_statistics": { + "unencoded_byte_array_data_bytes": 4, + "repetition_level_histogram": [1, 1, 0], + "definition_level_histogram": [0, 0, 0, 0, 2] + } + }, + "offset_index_offset": 5605, + "offset_index_length": 14, + "column_index_offset": 3729, + "column_index_length": 31, + "crypto_metadata": 31 + }, + { + "file_offset": 262, + "meta_data": { + "type": "BYTE_ARRAY", + "encodings": [ + "PLAIN", + "RLE" + ], + "path_in_schema": [ + "menu", + "categories", + "name", + "value" + ], + "codec": "UNCOMPRESSED", + "num_values": 2, + "total_uncompressed_size": 76, + "total_compressed_size": 76, + "data_page_offset": 262, + "statistics": { + "null_count": 0, + "max_value": "Test catergory", + "min_value": "Test category 23" + }, + "encoding_stats": [ + { + "page_type": "DATA_PAGE", + "encoding": "PLAIN", + "count": 1 + } + ], + "size_statistics": { + "unencoded_byte_array_data_bytes": 30, + "repetition_level_histogram": [1, 1, 0], + "definition_level_histogram": [0, 0, 0, 0, 2] + } + }, + "offset_index_offset": 5619, + "offset_index_length": 15, + "column_index_offset": 3760, + "column_index_length": 57, + "crypto_metadata": 57 + }, + { + "file_offset": 338, + "meta_data": { + "type": "BYTE_ARRAY", + "encodings": [ + "PLAIN", + "RLE" + ], + "path_in_schema": [ + "menu", + "categories", + "dishes", + "key" + ], + "codec": "UNCOMPRESSED", + "num_values": 2, + "total_uncompressed_size": 62, + "total_compressed_size": 62, + "data_page_offset": 338, + "statistics": { + "null_count": 0, + "max_value": "22428878", + "min_value": "22425677" + }, + "encoding_stats": [ + { + "page_type": "DATA_PAGE", + "encoding": "PLAIN", + "count": 1 + } + ], + "size_statistics": { + "unencoded_byte_array_data_bytes": 16, + "repetition_level_histogram": [1, 1, 0], + "definition_level_histogram": [0, 0, 0, 0, 2] + } + }, + "offset_index_offset": 5634, + "offset_index_length": 14, + "column_index_offset": 3817, + "column_index_length": 43, + "crypto_metadata": 43 + }, + { + "file_offset": 431, + "meta_data": { + "type": "BYTE_ARRAY", + "encodings": [ + "RLE", + "PLAIN_DICTIONARY" + ], + "path_in_schema": [ + "menu", + "categories", + "dishes", + "name", + "key" + ], + "codec": "UNCOMPRESSED", + "num_values": 3, + "total_uncompressed_size": 71, + "total_compressed_size": 71, + "data_page_offset": 431, + "dictionary_page_offset": 400, + "statistics": { + "null_count": 0, + "max_value": "UK", + "min_value": "PL" + }, + "encoding_stats": [ + { + "page_type": "DICTIONARY_PAGE", + "encoding": "PLAIN_DICTIONARY", + "count": 1 + }, + { + "page_type": "DATA_PAGE", + "encoding": "PLAIN_DICTIONARY", + "count": 1 + } + ], + "size_statistics": { + "unencoded_byte_array_data_bytes": 6, + "repetition_level_histogram": [1, 1, 0, 1], + "definition_level_histogram": [0, 0, 0, 0, 0, 3] + } + }, + "offset_index_offset": 5648, + "offset_index_length": 14, + "column_index_offset": 3860, + "column_index_length": 33, + "crypto_metadata": 33 + }, + { + "file_offset": 536, + "meta_data": { + "type": "BYTE_ARRAY", + "encodings": [ + "RLE", + "PLAIN_DICTIONARY" + ], + "path_in_schema": [ + "menu", + "categories", + "dishes", + "name", + "value" + ], + "codec": "UNCOMPRESSED", + "num_values": 3, + "total_uncompressed_size": 105, + "total_compressed_size": 105, + "data_page_offset": 536, + "dictionary_page_offset": 471, + "statistics": { + "null_count": 0, + "max_value": "Test", + "min_value": "Duży​​ awokado tost z jajkiem" + }, + "encoding_stats": [ + { + "page_type": "DICTIONARY_PAGE", + "encoding": "PLAIN_DICTIONARY", + "count": 1 + }, + { + "page_type": "DATA_PAGE", + "encoding": "PLAIN_DICTIONARY", + "count": 1 + } + ], + "size_statistics": { + "unencoded_byte_array_data_bytes": 72, + "repetition_level_histogram": [1, 1, 0, 1], + "definition_level_histogram": [0, 0, 0, 0, 0, 3] + } + }, + "offset_index_offset": 5662, + "offset_index_length": 15, + "column_index_offset": 3893, + "column_index_length": 67, + "crypto_metadata": 67 + }, + { + "file_offset": 576, + "meta_data": { + "type": "BYTE_ARRAY", + "encodings": [ + "PLAIN", + "RLE" + ], + "path_in_schema": [ + "menu", + "categories", + "dishes", + "addons", + "key" + ], + "codec": "UNCOMPRESSED", + "num_values": 3, + "total_uncompressed_size": 62, + "total_compressed_size": 62, + "data_page_offset": 576, + "statistics": { + "null_count": 1, + "max_value": "22806893", + "min_value": "22806869" + }, + "encoding_stats": [ + { + "page_type": "DATA_PAGE", + "encoding": "PLAIN", + "count": 1 + } + ], + "size_statistics": { + "unencoded_byte_array_data_bytes": 16, + "repetition_level_histogram": [ + 1, + 1, + 0, + 1 + ], + "definition_level_histogram": [ + 0, + 0, + 0, + 1, + 0, + 2 + ] + } + }, + "offset_index_offset": 5677, + "offset_index_length": 14, + "column_index_offset": 3960, + "column_index_length": 45, + "crypto_metadata": 45 + }, + { + "file_offset": 663, + "meta_data": { + "type": "BYTE_ARRAY", + "encodings": [ + "RLE", + "PLAIN_DICTIONARY" + ], + "path_in_schema": [ + "menu", + "categories", + "dishes", + "addons", + "name", + "key" + ], + "codec": "UNCOMPRESSED", + "num_values": 3, + "total_uncompressed_size": 66, + "total_compressed_size": 66, + "data_page_offset": 663, + "dictionary_page_offset": 638, + "statistics": { + "max": "PL", + "min": "PL", + "null_count": 1, + "max_value": "PL", + "min_value": "PL" + }, + "encoding_stats": [ + { + "page_type": "DICTIONARY_PAGE", + "encoding": "PLAIN_DICTIONARY", + "count": 1 + }, + { + "page_type": "DATA_PAGE", + "encoding": "PLAIN_DICTIONARY", + "count": 1 + } + ], + "size_statistics": { + "unencoded_byte_array_data_bytes": 4, + "repetition_level_histogram": [ + 1, + 1, + 0, + 1, + 0 + ], + "definition_level_histogram": [ + 0, + 0, + 0, + 1, + 0, + 0, + 2 + ] + } + }, + "offset_index_offset": 5691, + "offset_index_length": 14, + "column_index_offset": 4005, + "column_index_length": 35, + "crypto_metadata": 35 + }, + { + "file_offset": 704, + "meta_data": { + "type": "BYTE_ARRAY", + "encodings": [ + "PLAIN", + "RLE" + ], + "path_in_schema": [ + "menu", + "categories", + "dishes", + "addons", + "name", + "value" + ], + "codec": "UNCOMPRESSED", + "num_values": 3, + "total_uncompressed_size": 80, + "total_compressed_size": 80, + "data_page_offset": 704, + "statistics": { + "null_count": 1, + "max_value": "Dodatki do śniadania", + "min_value": "Dish extra 1" + }, + "encoding_stats": [ + { + "page_type": "DATA_PAGE", + "encoding": "PLAIN", + "count": 1 + } + ], + "size_statistics": { + "unencoded_byte_array_data_bytes": 33, + "repetition_level_histogram": [ + 1, + 1, + 0, + 1, + 0 + ], + "definition_level_histogram": [ + 0, + 0, + 0, + 1, + 0, + 0, + 2 + ] + } + }, + "offset_index_offset": 5705, + "offset_index_length": 15, + "column_index_offset": 4040, + "column_index_length": 64, + "crypto_metadata": 64 + }, + { + "file_offset": 784, + "meta_data": { + "type": "BOOLEAN", + "encodings": [ + "PLAIN", + "RLE" + ], + "path_in_schema": [ + "menu", + "categories", + "dishes", + "addons", + "required" + ], + "codec": "UNCOMPRESSED", + "num_values": 3, + "total_uncompressed_size": 39, + "total_compressed_size": 39, + "data_page_offset": 784, + "statistics": { + "max": false, + "min": false, + "null_count": 1, + "max_value": false, + "min_value": false + }, + "encoding_stats": [ + { + "page_type": "DATA_PAGE", + "encoding": "PLAIN", + "count": 1 + } + ], + "size_statistics": { + "repetition_level_histogram": [ + 1, + 1, + 0, + 1 + ], + "definition_level_histogram": [ + 0, + 0, + 0, + 1, + 0, + 2 + ] + } + }, + "offset_index_offset": 5720, + "offset_index_length": 11, + "column_index_offset": 4104, + "column_index_length": 31, + "crypto_metadata": 31 + }, + { + "file_offset": 842, + "meta_data": { + "type": "INT32", + "encodings": [ + "RLE", + "PLAIN_DICTIONARY" + ], + "path_in_schema": [ + "menu", + "categories", + "dishes", + "addons", + "maxSelected" + ], + "codec": "UNCOMPRESSED", + "num_values": 3, + "total_uncompressed_size": 59, + "total_compressed_size": 59, + "data_page_offset": 842, + "dictionary_page_offset": 823, + "statistics": { + "max": -1, + "min": -1, + "null_count": 1, + "max_value": -1, + "min_value": -1 + }, + "encoding_stats": [ + { + "page_type": "DICTIONARY_PAGE", + "encoding": "PLAIN_DICTIONARY", + "count": 1 + }, + { + "page_type": "DATA_PAGE", + "encoding": "PLAIN_DICTIONARY", + "count": 1 + } + ], + "size_statistics": { + "repetition_level_histogram": [ + 1, + 1, + 0, + 1 + ], + "definition_level_histogram": [ + 0, + 0, + 0, + 1, + 0, + 2 + ] + } + }, + "offset_index_offset": 5731, + "offset_index_length": 11, + "column_index_offset": 4135, + "column_index_length": 37, + "crypto_metadata": 37 + }, + { + "file_offset": 882, + "meta_data": { + "type": "BYTE_ARRAY", + "encodings": [ + "PLAIN", + "RLE" + ], + "path_in_schema": [ + "menu", + "categories", + "dishes", + "addons", + "items", + "key" + ], + "codec": "UNCOMPRESSED", + "num_values": 6, + "total_uncompressed_size": 101, + "total_compressed_size": 101, + "data_page_offset": 882, + "statistics": { + "null_count": 1, + "max_value": "22861716", + "min_value": "21985948" + }, + "encoding_stats": [ + { + "page_type": "DATA_PAGE", + "encoding": "PLAIN", + "count": 1 + } + ], + "size_statistics": { + "unencoded_byte_array_data_bytes": 40, + "repetition_level_histogram": [ + 1, + 1, + 0, + 1, + 3 + ], + "definition_level_histogram": [ + 0, + 0, + 0, + 1, + 0, + 0, + 5 + ] + } + }, + "offset_index_offset": 5742, + "offset_index_length": 15, + "column_index_offset": 4172, + "column_index_length": 47, + "crypto_metadata": 47 + }, + { + "file_offset": 1046, + "meta_data": { + "type": "BYTE_ARRAY", + "encodings": [ + "RLE", + "PLAIN_DICTIONARY" + ], + "path_in_schema": [ + "menu", + "categories", + "dishes", + "addons", + "items", + "ingredient", + "key" + ], + "codec": "UNCOMPRESSED", + "num_values": 6, + "total_uncompressed_size": 106, + "total_compressed_size": 106, + "data_page_offset": 1046, + "dictionary_page_offset": 983, + "statistics": { + "null_count": 1, + "max_value": "895653", + "min_value": "11742617" + }, + "encoding_stats": [ + { + "page_type": "DICTIONARY_PAGE", + "encoding": "PLAIN_DICTIONARY", + "count": 1 + }, + { + "page_type": "DATA_PAGE", + "encoding": "PLAIN_DICTIONARY", + "count": 1 + } + ], + "size_statistics": { + "unencoded_byte_array_data_bytes": 34, + "repetition_level_histogram": [ + 1, + 1, + 0, + 1, + 3 + ], + "definition_level_histogram": [ + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 5 + ] + } + }, + "offset_index_offset": 5757, + "offset_index_length": 14, + "column_index_offset": 4219, + "column_index_length": 46, + "crypto_metadata": 46 + }, + { + "file_offset": 1126, + "meta_data": { + "type": "BYTE_ARRAY", + "encodings": [ + "RLE", + "PLAIN_DICTIONARY" + ], + "path_in_schema": [ + "menu", + "categories", + "dishes", + "addons", + "items", + "ingredient", + "name", + "key" + ], + "codec": "UNCOMPRESSED", + "num_values": 12, + "total_uncompressed_size": 88, + "total_compressed_size": 88, + "data_page_offset": 1126, + "dictionary_page_offset": 1089, + "statistics": { + "null_count": 1, + "max_value": "UK", + "min_value": "EN" + }, + "encoding_stats": [ + { + "page_type": "DICTIONARY_PAGE", + "encoding": "PLAIN_DICTIONARY", + "count": 1 + }, + { + "page_type": "DATA_PAGE", + "encoding": "PLAIN_DICTIONARY", + "count": 1 + } + ], + "size_statistics": { + "unencoded_byte_array_data_bytes": 22, + "repetition_level_histogram": [ + 1, + 1, + 0, + 1, + 3, + 6 + ], + "definition_level_histogram": [ + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 11 + ] + } + }, + "offset_index_offset": 5771, + "offset_index_length": 14, + "column_index_offset": 4265, + "column_index_length": 38, + "crypto_metadata": 38 + }, + { + "file_offset": 1299, + "meta_data": { + "type": "BYTE_ARRAY", + "encodings": [ + "RLE", + "PLAIN_DICTIONARY" + ], + "path_in_schema": [ + "menu", + "categories", + "dishes", + "addons", + "items", + "ingredient", + "name", + "value" + ], + "codec": "UNCOMPRESSED", + "num_values": 12, + "total_uncompressed_size": 175, + "total_compressed_size": 175, + "data_page_offset": 1299, + "dictionary_page_offset": 1177, + "statistics": { + "null_count": 1, + "max_value": "Цебуля", + "min_value": "Cebula" + }, + "encoding_stats": [ + { + "page_type": "DICTIONARY_PAGE", + "encoding": "PLAIN_DICTIONARY", + "count": 1 + }, + { + "page_type": "DATA_PAGE", + "encoding": "PLAIN_DICTIONARY", + "count": 1 + } + ], + "size_statistics": { + "unencoded_byte_array_data_bytes": 92, + "repetition_level_histogram": [ + 1, + 1, + 0, + 1, + 3, + 6 + ], + "definition_level_histogram": [ + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 11 + ] + } + }, + "offset_index_offset": 5785, + "offset_index_length": 15, + "column_index_offset": 4303, + "column_index_length": 52, + "crypto_metadata": 52 + }, + { + "file_offset": 1376, + "meta_data": { + "type": "BYTE_ARRAY", + "encodings": [ + "RLE", + "PLAIN_DICTIONARY" + ], + "path_in_schema": [ + "menu", + "categories", + "dishes", + "addons", + "items", + "unitSize" + ], + "codec": "UNCOMPRESSED", + "num_values": 6, + "total_uncompressed_size": 65, + "total_compressed_size": 65, + "data_page_offset": 1376, + "dictionary_page_offset": 1352, + "statistics": { + "max": "KG", + "min": "KG", + "null_count": 1, + "max_value": "KG", + "min_value": "KG" + }, + "encoding_stats": [ + { + "page_type": "DICTIONARY_PAGE", + "encoding": "PLAIN_DICTIONARY", + "count": 1 + }, + { + "page_type": "DATA_PAGE", + "encoding": "PLAIN_DICTIONARY", + "count": 1 + } + ], + "size_statistics": { + "unencoded_byte_array_data_bytes": 10, + "repetition_level_histogram": [ + 1, + 1, + 0, + 1, + 3 + ], + "definition_level_histogram": [ + 0, + 0, + 0, + 1, + 0, + 0, + 5 + ] + } + }, + "offset_index_offset": 5800, + "offset_index_length": 14, + "column_index_offset": 4355, + "column_index_length": 35, + "crypto_metadata": 35 + }, + { + "file_offset": 1444, + "meta_data": { + "type": "INT32", + "encodings": [ + "RLE", + "PLAIN_DICTIONARY" + ], + "path_in_schema": [ + "menu", + "categories", + "dishes", + "addons", + "items", + "price", + "scale" + ], + "codec": "UNCOMPRESSED", + "num_values": 6, + "total_uncompressed_size": 69, + "total_compressed_size": 69, + "data_page_offset": 1444, + "dictionary_page_offset": 1417, + "statistics": { + "max": 1, + "min": 0, + "null_count": 1, + "max_value": 1, + "min_value": 0 + }, + "encoding_stats": [ + { + "page_type": "DICTIONARY_PAGE", + "encoding": "PLAIN_DICTIONARY", + "count": 1 + }, + { + "page_type": "DATA_PAGE", + "encoding": "PLAIN_DICTIONARY", + "count": 1 + } + ], + "size_statistics": { + "repetition_level_histogram": [ + 1, + 1, + 0, + 1, + 3 + ], + "definition_level_histogram": [ + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 5 + ] + } + }, + "offset_index_offset": 5814, + "offset_index_length": 11, + "column_index_offset": 4390, + "column_index_length": 40, + "crypto_metadata": 40 + }, + { + "file_offset": 1486, + "meta_data": { + "type": "BYTE_ARRAY", + "encodings": [ + "PLAIN", + "RLE" + ], + "path_in_schema": [ + "menu", + "categories", + "dishes", + "addons", + "items", + "price", + "int_val", + "value" + ], + "codec": "UNCOMPRESSED", + "num_values": 6, + "total_uncompressed_size": 60, + "total_compressed_size": 60, + "data_page_offset": 1486, + "statistics": { + "null_count": 2, + "max_value": "o", + "min_value": "\u0001" + }, + "encoding_stats": [ + { + "page_type": "DATA_PAGE", + "encoding": "PLAIN", + "count": 1 + } + ], + "size_statistics": { + "unencoded_byte_array_data_bytes": 4, + "repetition_level_histogram": [ + 1, + 1, + 0, + 1, + 3 + ], + "definition_level_histogram": [ + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 4 + ] + } + }, + "offset_index_offset": 5825, + "offset_index_length": 14, + "column_index_offset": 4430, + "column_index_length": 35, + "crypto_metadata": 35 + }, + { + "file_offset": 1569, + "meta_data": { + "type": "INT32", + "encodings": [ + "RLE", + "PLAIN_DICTIONARY" + ], + "path_in_schema": [ + "menu", + "categories", + "dishes", + "addons", + "items", + "volume", + "scale" + ], + "codec": "UNCOMPRESSED", + "num_values": 6, + "total_uncompressed_size": 64, + "total_compressed_size": 64, + "data_page_offset": 1569, + "dictionary_page_offset": 1546, + "statistics": { + "max": 0, + "min": 0, + "null_count": 1, + "max_value": 0, + "min_value": 0 + }, + "encoding_stats": [ + { + "page_type": "DICTIONARY_PAGE", + "encoding": "PLAIN_DICTIONARY", + "count": 1 + }, + { + "page_type": "DATA_PAGE", + "encoding": "PLAIN_DICTIONARY", + "count": 1 + } + ], + "size_statistics": { + "repetition_level_histogram": [ + 1, + 1, + 0, + 1, + 3 + ], + "definition_level_histogram": [ + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 5 + ] + } + }, + "offset_index_offset": 5839, + "offset_index_length": 11, + "column_index_offset": 4465, + "column_index_length": 40, + "crypto_metadata": 40 + }, + { + "file_offset": 1610, + "meta_data": { + "type": "BYTE_ARRAY", + "encodings": [ + "PLAIN", + "RLE" + ], + "path_in_schema": [ + "menu", + "categories", + "dishes", + "addons", + "items", + "volume", + "int_val", + "value" + ], + "codec": "UNCOMPRESSED", + "num_values": 6, + "total_uncompressed_size": 40, + "total_compressed_size": 40, + "data_page_offset": 1610, + "statistics": { + "null_count": 6 + }, + "encoding_stats": [ + { + "page_type": "DATA_PAGE", + "encoding": "PLAIN", + "count": 1 + } + ], + "size_statistics": { + "unencoded_byte_array_data_bytes": 0, + "repetition_level_histogram": [ + 1, + 1, + 0, + 1, + 3 + ], + "definition_level_histogram": [ + 0, + 0, + 0, + 1, + 0, + 0, + 5, + 0, + 0 + ] + } + }, + "offset_index_offset": 5850, + "offset_index_length": 14, + "column_index_offset": 4505, + "column_index_length": 33, + "crypto_metadata": 33 + }, + { + "file_offset": 1681, + "meta_data": { + "type": "BYTE_ARRAY", + "encodings": [ + "RLE", + "PLAIN_DICTIONARY" + ], + "path_in_schema": [ + "menu", + "categories", + "dishes", + "description", + "key" + ], + "codec": "UNCOMPRESSED", + "num_values": 3, + "total_uncompressed_size": 71, + "total_compressed_size": 71, + "data_page_offset": 1681, + "dictionary_page_offset": 1650, + "statistics": { + "null_count": 0, + "max_value": "UK", + "min_value": "PL" + }, + "encoding_stats": [ + { + "page_type": "DICTIONARY_PAGE", + "encoding": "PLAIN_DICTIONARY", + "count": 1 + }, + { + "page_type": "DATA_PAGE", + "encoding": "PLAIN_DICTIONARY", + "count": 1 + } + ], + "size_statistics": { + "unencoded_byte_array_data_bytes": 6, + "repetition_level_histogram": [ + 1, + 1, + 0, + 1 + ], + "definition_level_histogram": [ + 0, + 0, + 0, + 0, + 0, + 3 + ] + } + }, + "offset_index_offset": 5864, + "offset_index_length": 14, + "column_index_offset": 4538, + "column_index_length": 33, + "crypto_metadata": 33 + }, + { + "file_offset": 1721, + "meta_data": { + "type": "BYTE_ARRAY", + "encodings": [ + "PLAIN", + "RLE" + ], + "path_in_schema": [ + "menu", + "categories", + "dishes", + "description", + "value" + ], + "codec": "UNCOMPRESSED", + "num_values": 3, + "total_uncompressed_size": 194, + "total_compressed_size": 194, + "data_page_offset": 1721, + "statistics": { + "null_count": 0, + "max_value": "asd", + "min_value": "Duży​​ awokado tost z jajkiem" + }, + "encoding_stats": [ + { + "page_type": "DATA_PAGE", + "encoding": "PLAIN", + "count": 1 + } + ], + "size_statistics": { + "unencoded_byte_array_data_bytes": 142, + "repetition_level_histogram": [ + 1, + 1, + 0, + 1 + ], + "definition_level_histogram": [ + 0, + 0, + 0, + 0, + 0, + 3 + ] + } + }, + "offset_index_offset": 5878, + "offset_index_length": 16, + "column_index_offset": 4571, + "column_index_length": 66, + "crypto_metadata": 66 + }, + { + "file_offset": 1946, + "meta_data": { + "type": "BYTE_ARRAY", + "encodings": [ + "RLE", + "PLAIN_DICTIONARY" + ], + "path_in_schema": [ + "menu", + "categories", + "dishes", + "components", + "key" + ], + "codec": "UNCOMPRESSED", + "num_values": 3, + "total_uncompressed_size": 71, + "total_compressed_size": 71, + "data_page_offset": 1946, + "dictionary_page_offset": 1915, + "statistics": { + "null_count": 0, + "max_value": "UK", + "min_value": "PL" + }, + "encoding_stats": [ + { + "page_type": "DICTIONARY_PAGE", + "encoding": "PLAIN_DICTIONARY", + "count": 1 + }, + { + "page_type": "DATA_PAGE", + "encoding": "PLAIN_DICTIONARY", + "count": 1 + } + ], + "size_statistics": { + "unencoded_byte_array_data_bytes": 6, + "repetition_level_histogram": [ + 1, + 1, + 0, + 1 + ], + "definition_level_histogram": [ + 0, + 0, + 0, + 0, + 0, + 3 + ] + } + }, + "offset_index_offset": 5894, + "offset_index_length": 14, + "column_index_offset": 4637, + "column_index_length": 33, + "crypto_metadata": 33 + }, + { + "file_offset": 2009, + "meta_data": { + "type": "BYTE_ARRAY", + "encodings": [ + "RLE", + "PLAIN_DICTIONARY" + ], + "path_in_schema": [ + "menu", + "categories", + "dishes", + "components", + "value" + ], + "codec": "UNCOMPRESSED", + "num_values": 3, + "total_uncompressed_size": 61, + "total_compressed_size": 61, + "data_page_offset": 2009, + "dictionary_page_offset": 1986, + "statistics": { + "max": "", + "min": "", + "null_count": 0, + "max_value": "", + "min_value": "" + }, + "encoding_stats": [ + { + "page_type": "DICTIONARY_PAGE", + "encoding": "PLAIN_DICTIONARY", + "count": 1 + }, + { + "page_type": "DATA_PAGE", + "encoding": "PLAIN_DICTIONARY", + "count": 1 + } + ], + "size_statistics": { + "unencoded_byte_array_data_bytes": 0, + "repetition_level_histogram": [ + 1, + 1, + 0, + 1 + ], + "definition_level_histogram": [ + 0, + 0, + 0, + 0, + 0, + 3 + ] + } + }, + "offset_index_offset": 5908, + "offset_index_length": 14, + "column_index_offset": 4670, + "column_index_length": 29, + "crypto_metadata": 29 + }, + { + "file_offset": 2071, + "meta_data": { + "type": "BYTE_ARRAY", + "encodings": [ + "RLE", + "PLAIN_DICTIONARY" + ], + "path_in_schema": [ + "menu", + "categories", + "dishes", + "unitSize" + ], + "codec": "UNCOMPRESSED", + "num_values": 2, + "total_uncompressed_size": 63, + "total_compressed_size": 63, + "data_page_offset": 2071, + "dictionary_page_offset": 2047, + "statistics": { + "max": "KG", + "min": "KG", + "null_count": 0, + "max_value": "KG", + "min_value": "KG" + }, + "encoding_stats": [ + { + "page_type": "DICTIONARY_PAGE", + "encoding": "PLAIN_DICTIONARY", + "count": 1 + }, + { + "page_type": "DATA_PAGE", + "encoding": "PLAIN_DICTIONARY", + "count": 1 + } + ], + "size_statistics": { + "unencoded_byte_array_data_bytes": 4, + "repetition_level_histogram": [ + 1, + 1, + 0 + ], + "definition_level_histogram": [ + 0, + 0, + 0, + 0, + 2 + ] + } + }, + "offset_index_offset": 5922, + "offset_index_length": 14, + "column_index_offset": 4699, + "column_index_length": 31, + "crypto_metadata": 31 + }, + { + "file_offset": 2133, + "meta_data": { + "type": "INT32", + "encodings": [ + "RLE", + "PLAIN_DICTIONARY" + ], + "path_in_schema": [ + "menu", + "categories", + "dishes", + "priceSizes", + "volume", + "scale" + ], + "codec": "UNCOMPRESSED", + "num_values": 2, + "total_uncompressed_size": 63, + "total_compressed_size": 63, + "data_page_offset": 2133, + "dictionary_page_offset": 2110, + "statistics": { + "max": 0, + "min": 0, + "null_count": 0, + "max_value": 0, + "min_value": 0 + }, + "encoding_stats": [ + { + "page_type": "DICTIONARY_PAGE", + "encoding": "PLAIN_DICTIONARY", + "count": 1 + }, + { + "page_type": "DATA_PAGE", + "encoding": "PLAIN_DICTIONARY", + "count": 1 + } + ], + "size_statistics": { + "repetition_level_histogram": [ + 1, + 1, + 0, + 0 + ], + "definition_level_histogram": [ + 0, + 0, + 0, + 0, + 0, + 0, + 2 + ] + } + }, + "offset_index_offset": 5936, + "offset_index_length": 11, + "column_index_offset": 4730, + "column_index_length": 38, + "crypto_metadata": 38 + }, + { + "file_offset": 2173, + "meta_data": { + "type": "BYTE_ARRAY", + "encodings": [ + "PLAIN", + "RLE" + ], + "path_in_schema": [ + "menu", + "categories", + "dishes", + "priceSizes", + "volume", + "int_val", + "value" + ], + "codec": "UNCOMPRESSED", + "num_values": 2, + "total_uncompressed_size": 48, + "total_compressed_size": 48, + "data_page_offset": 2173, + "statistics": { + "null_count": 0, + "max_value": "d", + "min_value": "\u0001" + }, + "encoding_stats": [ + { + "page_type": "DATA_PAGE", + "encoding": "PLAIN", + "count": 1 + } + ], + "size_statistics": { + "unencoded_byte_array_data_bytes": 2, + "repetition_level_histogram": [ + 1, + 1, + 0, + 0 + ], + "definition_level_histogram": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2 + ] + } + }, + "offset_index_offset": 5947, + "offset_index_length": 14, + "column_index_offset": 4768, + "column_index_length": 33, + "crypto_metadata": 33 + }, + { + "file_offset": 2244, + "meta_data": { + "type": "INT32", + "encodings": [ + "RLE", + "PLAIN_DICTIONARY" + ], + "path_in_schema": [ + "menu", + "categories", + "dishes", + "priceSizes", + "price", + "scale" + ], + "codec": "UNCOMPRESSED", + "num_values": 2, + "total_uncompressed_size": 63, + "total_compressed_size": 63, + "data_page_offset": 2244, + "dictionary_page_offset": 2221, + "statistics": { + "max": 0, + "min": 0, + "null_count": 0, + "max_value": 0, + "min_value": 0 + }, + "encoding_stats": [ + { + "page_type": "DICTIONARY_PAGE", + "encoding": "PLAIN_DICTIONARY", + "count": 1 + }, + { + "page_type": "DATA_PAGE", + "encoding": "PLAIN_DICTIONARY", + "count": 1 + } + ], + "size_statistics": { + "repetition_level_histogram": [ + 1, + 1, + 0, + 0 + ], + "definition_level_histogram": [ + 0, + 0, + 0, + 0, + 0, + 0, + 2 + ] + } + }, + "offset_index_offset": 5961, + "offset_index_length": 11, + "column_index_offset": 4801, + "column_index_length": 38, + "crypto_metadata": 38 + }, + { + "file_offset": 2308, + "meta_data": { + "type": "BYTE_ARRAY", + "encodings": [ + "RLE", + "PLAIN_DICTIONARY" + ], + "path_in_schema": [ + "menu", + "categories", + "dishes", + "priceSizes", + "price", + "int_val", + "value" + ], + "codec": "UNCOMPRESSED", + "num_values": 2, + "total_uncompressed_size": 64, + "total_compressed_size": 64, + "data_page_offset": 2308, + "dictionary_page_offset": 2284, + "statistics": { + "max": "\n", + "min": "\n", + "null_count": 0, + "max_value": "\n", + "min_value": "\n" + }, + "encoding_stats": [ + { + "page_type": "DICTIONARY_PAGE", + "encoding": "PLAIN_DICTIONARY", + "count": 1 + }, + { + "page_type": "DATA_PAGE", + "encoding": "PLAIN_DICTIONARY", + "count": 1 + } + ], + "size_statistics": { + "unencoded_byte_array_data_bytes": 2, + "repetition_level_histogram": [ + 1, + 1, + 0, + 0 + ], + "definition_level_histogram": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2 + ] + } + }, + "offset_index_offset": 5972, + "offset_index_length": 14, + "column_index_offset": 4839, + "column_index_length": 33, + "crypto_metadata": 33 + }, + { + "file_offset": 2371, + "meta_data": { + "type": "INT32", + "encodings": [ + "RLE", + "PLAIN_DICTIONARY" + ], + "path_in_schema": [ + "menu", + "categories", + "dishes", + "orderIndex" + ], + "codec": "UNCOMPRESSED", + "num_values": 2, + "total_uncompressed_size": 62, + "total_compressed_size": 62, + "data_page_offset": 2371, + "dictionary_page_offset": 2348, + "statistics": { + "max": 0, + "min": 0, + "null_count": 0, + "max_value": 0, + "min_value": 0 + }, + "encoding_stats": [ + { + "page_type": "DICTIONARY_PAGE", + "encoding": "PLAIN_DICTIONARY", + "count": 1 + }, + { + "page_type": "DATA_PAGE", + "encoding": "PLAIN_DICTIONARY", + "count": 1 + } + ], + "size_statistics": { + "repetition_level_histogram": [ + 1, + 1, + 0 + ], + "definition_level_histogram": [ + 0, + 0, + 0, + 0, + 2 + ] + } + }, + "offset_index_offset": 5986, + "offset_index_length": 11, + "column_index_offset": 4872, + "column_index_length": 35, + "crypto_metadata": 35 + }, + { + "file_offset": 2410, + "meta_data": { + "type": "BOOLEAN", + "encodings": [ + "PLAIN", + "RLE" + ], + "path_in_schema": [ + "menu", + "categories", + "dishes", + "popular" + ], + "codec": "UNCOMPRESSED", + "num_values": 2, + "total_uncompressed_size": 39, + "total_compressed_size": 39, + "data_page_offset": 2410, + "statistics": { + "max": false, + "min": false, + "null_count": 0, + "max_value": false, + "min_value": false + }, + "encoding_stats": [ + { + "page_type": "DATA_PAGE", + "encoding": "PLAIN", + "count": 1 + } + ], + "size_statistics": { + "repetition_level_histogram": [ + 1, + 1, + 0 + ], + "definition_level_histogram": [ + 0, + 0, + 0, + 0, + 2 + ] + } + }, + "offset_index_offset": 5997, + "offset_index_length": 11, + "column_index_offset": 4907, + "column_index_length": 29, + "crypto_metadata": 29 + }, + { + "file_offset": 2554, + "meta_data": { + "type": "BYTE_ARRAY", + "encodings": [ + "RLE", + "PLAIN_DICTIONARY" + ], + "path_in_schema": [ + "menu", + "categories", + "dishes", + "tags" + ], + "codec": "UNCOMPRESSED", + "num_values": 8, + "total_uncompressed_size": 146, + "total_compressed_size": 146, + "data_page_offset": 2554, + "dictionary_page_offset": 2449, + "statistics": { + "null_count": 0, + "max_value": "VEGETARIAN", + "min_value": "GLUTEN_FREE" + }, + "encoding_stats": [ + { + "page_type": "DICTIONARY_PAGE", + "encoding": "PLAIN_DICTIONARY", + "count": 1 + }, + { + "page_type": "DATA_PAGE", + "encoding": "PLAIN_DICTIONARY", + "count": 1 + } + ], + "size_statistics": { + "unencoded_byte_array_data_bytes": 66, + "repetition_level_histogram": [ + 1, + 1, + 0, + 6 + ], + "definition_level_histogram": [ + 0, + 0, + 0, + 0, + 8 + ] + } + }, + "offset_index_offset": 6008, + "offset_index_length": 15, + "column_index_offset": 4936, + "column_index_length": 49, + "crypto_metadata": 49 + }, + { + "file_offset": 2595, + "meta_data": { + "type": "BYTE_ARRAY", + "encodings": [ + "PLAIN", + "RLE" + ], + "path_in_schema": [ + "menu", + "categories", + "dishes", + "images", + "url" + ], + "codec": "UNCOMPRESSED", + "num_values": 2, + "total_uncompressed_size": 164, + "total_compressed_size": 164, + "data_page_offset": 2595, + "statistics": { + "max": "https://file-storage.itasty.eu/image/dish/d92c8ad1-1679-41e4-8596-4652c0ec9131/d92c8ad1-1679-41e4-8596-4652c0ec9131.jpeg", + "min": "https://file-storage.itasty.eu/image/dish/d92c8ad1-1679-41e4-8596-4652c0ec9131/d92c8ad1-1679-41e4-8596-4652c0ec9131.jpeg", + "null_count": 1, + "max_value": "https://file-storage.itasty.eu/image/dish/d92c8ad1-1679-41e4-8596-4652c0ec9131/d92c8ad1-1679-41e4-8596-4652c0ec9131.jpeg", + "min_value": "https://file-storage.itasty.eu/image/dish/d92c8ad1-1679-41e4-8596-4652c0ec9131/d92c8ad1-1679-41e4-8596-4652c0ec9131.jpeg" + }, + "encoding_stats": [ + { + "page_type": "DATA_PAGE", + "encoding": "PLAIN", + "count": 1 + } + ], + "size_statistics": { + "unencoded_byte_array_data_bytes": 120, + "repetition_level_histogram": [ + 1, + 1, + 0, + 0 + ], + "definition_level_histogram": [ + 0, + 0, + 0, + 1, + 0, + 1 + ] + } + }, + "offset_index_offset": 6023, + "offset_index_length": 16, + "column_index_offset": 4985, + "column_index_length": 157, + "crypto_metadata": 157 + }, + { + "file_offset": 2759, + "meta_data": { + "type": "BYTE_ARRAY", + "encodings": [ + "PLAIN", + "RLE" + ], + "path_in_schema": [ + "menu", + "categories", + "dishes", + "images", + "transformations", + "label" + ], + "codec": "UNCOMPRESSED", + "num_values": 4, + "total_uncompressed_size": 80, + "total_compressed_size": 80, + "data_page_offset": 2759, + "statistics": { + "null_count": 1, + "max_value": "THUMBNAIL_SMALL", + "min_value": "LARGE" + }, + "encoding_stats": [ + { + "page_type": "DATA_PAGE", + "encoding": "PLAIN", + "count": 1 + } + ], + "size_statistics": { + "unencoded_byte_array_data_bytes": 29, + "repetition_level_histogram": [ + 1, + 1, + 0, + 0, + 2 + ], + "definition_level_histogram": [ + 0, + 0, + 0, + 1, + 0, + 0, + 3 + ] + } + }, + "offset_index_offset": 6039, + "offset_index_length": 15, + "column_index_offset": 5142, + "column_index_length": 51, + "crypto_metadata": 51 + }, + { + "file_offset": 2839, + "meta_data": { + "type": "BYTE_ARRAY", + "encodings": [ + "PLAIN", + "RLE" + ], + "path_in_schema": [ + "menu", + "categories", + "dishes", + "images", + "transformations", + "url" + ], + "codec": "UNCOMPRESSED", + "num_values": 4, + "total_uncompressed_size": 460, + "total_compressed_size": 460, + "data_page_offset": 2839, + "statistics": { + "null_count": 1, + "max_value": "https://file-storage.itasty.eu/image/dish/d92c8ad1-1679-41e4-8596-4652c0ec9131/d92c8ad1-1679-41e4-8596-4652c0ec9131_thumbnail_w400.jpeg", + "min_value": "https://file-storage.itasty.eu/image/dish/d92c8ad1-1679-41e4-8596-4652c0ec9131/d92c8ad1-1679-41e4-8596-4652c0ec9131_large_w800.jpeg" + }, + "encoding_stats": [ + { + "page_type": "DATA_PAGE", + "encoding": "PLAIN", + "count": 1 + } + ], + "size_statistics": { + "unencoded_byte_array_data_bytes": 407, + "repetition_level_histogram": [ + 1, + 1, + 0, + 0, + 2 + ], + "definition_level_histogram": [ + 0, + 0, + 0, + 1, + 0, + 0, + 3 + ] + } + }, + "offset_index_offset": 6054, + "offset_index_length": 16, + "column_index_offset": 5193, + "column_index_length": 159, + "crypto_metadata": 159 + }, + { + "file_offset": 3299, + "meta_data": { + "type": "BYTE_ARRAY", + "encodings": [ + "BIT_PACKED", + "PLAIN", + "RLE" + ], + "path_in_schema": [ + "menu", + "title" + ], + "codec": "UNCOMPRESSED", + "num_values": 1, + "total_uncompressed_size": 34, + "total_compressed_size": 34, + "data_page_offset": 3299, + "statistics": { + "max": "", + "min": "", + "null_count": 0, + "max_value": "", + "min_value": "" + }, + "encoding_stats": [ + { + "page_type": "DATA_PAGE", + "encoding": "PLAIN", + "count": 1 + } + ], + "size_statistics": { + "unencoded_byte_array_data_bytes": 0, + "repetition_level_histogram": [ + 1 + ], + "definition_level_histogram": [ + 0, + 0, + 1 + ] + } + }, + "offset_index_offset": 6070, + "offset_index_length": 14, + "column_index_offset": 5352, + "column_index_length": 23, + "crypto_metadata": 23 + }, + { + "file_offset": 3333, + "meta_data": { + "type": "BYTE_ARRAY", + "encodings": [ + "PLAIN", + "RLE" + ], + "path_in_schema": [ + "menu", + "description", + "key" + ], + "codec": "UNCOMPRESSED", + "num_values": 1, + "total_uncompressed_size": 42, + "total_compressed_size": 42, + "data_page_offset": 3333, + "statistics": { + "max": "PL", + "min": "PL", + "null_count": 0, + "max_value": "PL", + "min_value": "PL" + }, + "encoding_stats": [ + { + "page_type": "DATA_PAGE", + "encoding": "PLAIN", + "count": 1 + } + ], + "size_statistics": { + "unencoded_byte_array_data_bytes": 2, + "repetition_level_histogram": [ + 1, + 0 + ], + "definition_level_histogram": [ + 0, + 0, + 0, + 1 + ] + } + }, + "offset_index_offset": 6084, + "offset_index_length": 14, + "column_index_offset": 5375, + "column_index_length": 29, + "crypto_metadata": 29 + }, + { + "file_offset": 3375, + "meta_data": { + "type": "BYTE_ARRAY", + "encodings": [ + "PLAIN", + "RLE" + ], + "path_in_schema": [ + "menu", + "description", + "value" + ], + "codec": "UNCOMPRESSED", + "num_values": 1, + "total_uncompressed_size": 50, + "total_compressed_size": 50, + "data_page_offset": 3375, + "statistics": { + "max": "Test Fable", + "min": "Test Fable", + "null_count": 0, + "max_value": "Test Fable", + "min_value": "Test Fable" + }, + "encoding_stats": [ + { + "page_type": "DATA_PAGE", + "encoding": "PLAIN", + "count": 1 + } + ], + "size_statistics": { + "unencoded_byte_array_data_bytes": 10, + "repetition_level_histogram": [ + 1, + 0 + ], + "definition_level_histogram": [ + 0, + 0, + 0, + 1 + ] + } + }, + "offset_index_offset": 6098, + "offset_index_length": 14, + "column_index_offset": 5404, + "column_index_length": 45, + "crypto_metadata": 45 + }, + { + "file_offset": 3425, + "meta_data": { + "type": "BYTE_ARRAY", + "encodings": [ + "PLAIN", + "RLE" + ], + "path_in_schema": [ + "menu", + "languages" + ], + "codec": "UNCOMPRESSED", + "num_values": 3, + "total_uncompressed_size": 54, + "total_compressed_size": 54, + "data_page_offset": 3425, + "statistics": { + "null_count": 0, + "max_value": "UK", + "min_value": "EN" + }, + "encoding_stats": [ + { + "page_type": "DATA_PAGE", + "encoding": "PLAIN", + "count": 1 + } + ], + "size_statistics": { + "unencoded_byte_array_data_bytes": 6, + "repetition_level_histogram": [ + 1, + 2 + ], + "definition_level_histogram": [ + 0, + 0, + 3 + ] + } + }, + "offset_index_offset": 6112, + "offset_index_length": 14, + "column_index_offset": 5449, + "column_index_length": 28, + "crypto_metadata": 28 + }, + { + "file_offset": 3479, + "meta_data": { + "type": "BYTE_ARRAY", + "encodings": [ + "BIT_PACKED", + "PLAIN", + "RLE" + ], + "path_in_schema": [ + "socialLinks", + "facebook" + ], + "codec": "UNCOMPRESSED", + "num_values": 1, + "total_uncompressed_size": 30, + "total_compressed_size": 30, + "data_page_offset": 3479, + "statistics": { + "null_count": 1 + }, + "encoding_stats": [ + { + "page_type": "DATA_PAGE", + "encoding": "PLAIN", + "count": 1 + } + ], + "size_statistics": { + "unencoded_byte_array_data_bytes": 0, + "repetition_level_histogram": [ + 1 + ], + "definition_level_histogram": [ + 1, + 0, + 0 + ] + } + }, + "offset_index_offset": 6126, + "offset_index_length": 14, + "column_index_offset": 5477, + "column_index_length": 23, + "crypto_metadata": 23 + }, + { + "file_offset": 3509, + "meta_data": { + "type": "BYTE_ARRAY", + "encodings": [ + "BIT_PACKED", + "PLAIN", + "RLE" + ], + "path_in_schema": [ + "socialLinks", + "instagram" + ], + "codec": "UNCOMPRESSED", + "num_values": 1, + "total_uncompressed_size": 30, + "total_compressed_size": 30, + "data_page_offset": 3509, + "statistics": { + "null_count": 1 + }, + "encoding_stats": [ + { + "page_type": "DATA_PAGE", + "encoding": "PLAIN", + "count": 1 + } + ], + "size_statistics": { + "unencoded_byte_array_data_bytes": 0, + "repetition_level_histogram": [ + 1 + ], + "definition_level_histogram": [ + 1, + 0, + 0 + ] + } + }, + "offset_index_offset": 6140, + "offset_index_length": 14, + "column_index_offset": 5500, + "column_index_length": 23, + "crypto_metadata": 23 + }, + { + "file_offset": 3539, + "meta_data": { + "type": "BYTE_ARRAY", + "encodings": [ + "BIT_PACKED", + "PLAIN", + "RLE" + ], + "path_in_schema": [ + "currency" + ], + "codec": "UNCOMPRESSED", + "num_values": 1, + "total_uncompressed_size": 36, + "total_compressed_size": 36, + "data_page_offset": 3539, + "statistics": { + "max": "PLN", + "min": "PLN", + "null_count": 0, + "max_value": "PLN", + "min_value": "PLN" + }, + "encoding_stats": [ + { + "page_type": "DATA_PAGE", + "encoding": "PLAIN", + "count": 1 + } + ], + "size_statistics": { + "unencoded_byte_array_data_bytes": 3, + "repetition_level_histogram": [ + 1 + ], + "definition_level_histogram": [ + 0, + 1 + ] + } + }, + "offset_index_offset": 6154, + "offset_index_length": 14, + "column_index_offset": 5523, + "column_index_length": 28, + "crypto_metadata": 28 + } + ], + "total_byte_size": 3571, + "num_rows": 1, + "file_offset": 4, + "total_compressed_size": 3571, + "ordinal": 0 + } + ], + "key_value_metadata": [ + { + "key": "parquet.proto.descriptor", + "value": "name: \"MenuStructure\"\nfield {\n name: \"menu\"\n number: 1\n label: LABEL_OPTIONAL\n type: TYPE_MESSAGE\n type_name: \".itasty.Menu\"\n}\nfield {\n name: \"socialLinks\"\n number: 2\n label: LABEL_OPTIONAL\n type: TYPE_MESSAGE\n type_name: \".itasty.SocialLinks\"\n}\nfield {\n name: \"currency\"\n number: 3\n label: LABEL_OPTIONAL\n type: TYPE_ENUM\n type_name: \".itasty.Currency\"\n}\n" + }, + { + "key": "parquet.proto.class", + "value": "pl.itaste.app.common.core.components.menu.parquet.proto3.Schema$MenuStructure" + }, + { + "key": "parquet.proto.enum.itasty.Language", + "value": "UK:2,EN:0,PL:1" + }, + { + "key": "parquet.proto.unwrapProtoWrappers", + "value": "false" + }, + { + "key": "parquet.proto.enum.itasty.RecipeTag", + "value": "GLUTEN_FREE:5,LACTOSE_FREE:4,VEGAN:1,HALAL:2,ORGANIC:6,KOSHER:3,VEGETARIAN:0" + }, + { + "key": "parquet.proto.writeSpecsCompliant", + "value": "false" + }, + { + "key": "writer.model.name", + "value": "protobuf" + }, + { + "key": "parquet.proto.enum.itasty.ImageLabel", + "value": "THUMBNAIL_SMALL:0,LARGE:3,THUMBNAIL:1" + }, + { + "key": "parquet.proto.enum.itasty.UnitSize", + "value": "KG:0" + }, + { + "key": "parquet.proto.enum.itasty.Currency", + "value": "PLN:0" + } + ], + "created_by": "parquet-mr version 1.14.1 (build 97ede968377400d1d79e3196636ba3de392196ba)", + "metadata_length": 8838 +} diff --git a/test/files/issue23.parquet b/test/files/issue23.parquet new file mode 100644 index 0000000000000000000000000000000000000000..9510824de63f735960527e67ed67f2ec5fc67617 GIT binary patch literal 15014 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