diff --git a/README.md b/README.md index 692d2f1..5b9c26e 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ [![workflow status](https://github.com/hyparam/hyparquet/actions/workflows/ci.yml/badge.svg)](https://github.com/hyparam/hyparquet/actions) [![mit license](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT) [![dependencies](https://img.shields.io/badge/Dependencies-0-blueviolet)](https://www.npmjs.com/package/hyparquet?activeTab=dependencies) -![coverage](https://img.shields.io/badge/Coverage-95-darkred) +![coverage](https://img.shields.io/badge/Coverage-96-darkred) Dependency free since 2023! diff --git a/package.json b/package.json index de4cb25..b0e7547 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ }, "devDependencies": { "@types/node": "20.12.12", - "@typescript-eslint/eslint-plugin": "7.9.0", + "@typescript-eslint/eslint-plugin": "7.10.0", "@vitest/coverage-v8": "1.6.0", "eslint": "8.57.0", "eslint-plugin-import": "2.29.1", diff --git a/src/datapage.js b/src/datapage.js index 0593060..22f9f32 100644 --- a/src/datapage.js +++ b/src/datapage.js @@ -45,10 +45,8 @@ export function readDataPage(bytes, daph, schemaPath, { type }) { dataPage = new Uint8Array(nValues) // nValue zeroes } } else if (daph.encoding === 'BYTE_STREAM_SPLIT') { - if (type === 'FLOAT') dataPage = new Float32Array(nValues) - else if (type === 'DOUBLE') dataPage = new Float64Array(nValues) - else throw new Error(`parquet byte_stream_split unsupported type: ${type}`) - byteStreamSplit(reader, nValues, dataPage) + const { type_length } = schemaPath[schemaPath.length - 1].element + dataPage = byteStreamSplit(reader, nValues, type, type_length) } else { throw new Error(`parquet unsupported encoding: ${daph.encoding}`) } diff --git a/src/datapageV2.js b/src/datapageV2.js index 3e46689..1e01af6 100644 --- a/src/datapageV2.js +++ b/src/datapageV2.js @@ -72,10 +72,8 @@ export function readDataPageV2(compressedBytes, ph, schemaPath, columnMetadata, dataPage = new Array(nValues) deltaByteArray(pageReader, nValues, dataPage) } else if (daph2.encoding === 'BYTE_STREAM_SPLIT') { - if (type === 'FLOAT') dataPage = new Float32Array(nValues) - else if (type === 'DOUBLE') dataPage = new Float64Array(nValues) - else throw new Error(`parquet byte_stream_split unsupported type: ${type}`) - byteStreamSplit(pageReader, nValues, dataPage) + const { type_length } = schemaPath[schemaPath.length - 1].element + dataPage = byteStreamSplit(reader, nValues, type, type_length) } else { throw new Error(`parquet unsupported encoding: ${daph2.encoding}`) } diff --git a/src/encoding.js b/src/encoding.js index d3f8e00..0e9037a 100644 --- a/src/encoding.js +++ b/src/encoding.js @@ -16,7 +16,7 @@ export function widthFromMaxInt(value) { * If length is zero, then read as int32 at the start of the encoded data. * * @typedef {import("./types.d.ts").DataReader} DataReader - * @typedef {number[]} DecodedArray + * @typedef {import("./types.d.ts").DecodedArray} DecodedArray * @param {DataReader} reader - buffer to read data from * @param {number} width - width of each bit-packed group * @param {number} length - length of the encoded data @@ -81,14 +81,12 @@ function readRle(reader, count, bitWidth, values, seen) { * @param {DataReader} reader - buffer to read data from * @param {number} header - header information * @param {number} bitWidth - width of each bit-packed group - * @param {number[]} values - output array + * @param {DecodedArray} values - output array * @param {number} seen - number of values seen so far * @returns {number} number of values seen */ function readBitPacked(reader, header, bitWidth, values, seen) { - // extract number of values to read from header - let count = header >> 1 << 3 - // mask for bitWidth number of bits + let count = header >> 1 << 3 // values to read const mask = (1 << bitWidth) - 1 let data = 0 @@ -115,7 +113,7 @@ function readBitPacked(reader, header, bitWidth, values, seen) { left += 8 } else { if (seen < values.length) { - // emit value by shifting off to the right and masking + // emit value values[seen++] = data >> right & mask } count-- @@ -127,16 +125,54 @@ function readBitPacked(reader, header, bitWidth, values, seen) { } /** + * @typedef {import("./types.d.ts").ParquetType} ParquetType * @param {DataReader} reader - * @param {number} nValues - * @param {Float32Array | Float64Array} output + * @param {number} count + * @param {ParquetType} type + * @param {number | undefined} typeLength + * @returns {DecodedArray} */ -export function byteStreamSplit(reader, nValues, output) { - const byteWidth = output instanceof Float32Array ? 4 : 8 - const bytes = new Uint8Array(output.buffer) - for (let b = 0; b < byteWidth; b++) { - for (let i = 0; i < nValues; i++) { - bytes[i * byteWidth + b] = reader.view.getUint8(reader.offset++) +export function byteStreamSplit(reader, count, type, typeLength) { + const width = byteWidth(type, typeLength) + const bytes = new Uint8Array(count * width) + for (let b = 0; b < width; b++) { + for (let i = 0; i < count; i++) { + bytes[i * width + b] = reader.view.getUint8(reader.offset++) } } + // interpret bytes as typed array + if (type === 'FLOAT') return new Float32Array(bytes.buffer) + else if (type === 'DOUBLE') return new Float64Array(bytes.buffer) + else if (type === 'INT32') return new Int32Array(bytes.buffer) + else if (type === 'INT64') return new BigInt64Array(bytes.buffer) + else if (type === 'FIXED_LEN_BYTE_ARRAY') { + // split into arrays of typeLength + const split = new Array(count) + for (let i = 0; i < count; i++) { + split[i] = bytes.subarray(i * width, (i + 1) * width) + } + return split + } + throw new Error(`parquet byte_stream_split unsupported type: ${type}`) +} + +/** + * @param {ParquetType} type + * @param {number | undefined} typeLength + * @returns {number} + */ +function byteWidth(type, typeLength) { + switch (type) { + case 'INT32': + case 'FLOAT': + return 4 + case 'INT64': + case 'DOUBLE': + return 8 + case 'FIXED_LEN_BYTE_ARRAY': + if (!typeLength) throw new Error('parquet byteWidth missing type_length') + return typeLength + default: + throw new Error(`parquet unsupported type: ${type}`) + } } diff --git a/test/files/byte_stream_split_extended.gzip.json b/test/files/byte_stream_split_extended.gzip.json new file mode 100644 index 0000000..a540b24 --- /dev/null +++ b/test/files/byte_stream_split_extended.gzip.json @@ -0,0 +1,3202 @@ +[ + [ + 10.3046875, + 10.3046875, + 10.33757495880127, + 10.33757495880127, + 9.82038858616854, + 9.82038858616854, + 24191, + 24191, + 293650000000, + 293650000000, + [48,51,55,57,53], + [48,51,55,57,53], + 1003.8580000000001, + 1003.8580000000001 + ], + [ + 8.9609375, + 8.9609375, + 11.407482147216797, + 11.407482147216797, + 10.196776096656958, + 10.196776096656958, + 41157, + 41157, + 41079000000, + 41079000000, + [48,48,51,54,51], + [48,48,51,54,51], + 968.825, + 968.825 + ], + [ + 10.75, + 10.75, + 10.090584754943848, + 10.090584754943848, + 10.820528475417419, + 10.820528475417419, + 7403, + 7403, + 51248000000, + 51248000000, + [48,49,48,51,56], + [48,49,48,51,56], + 1104.934, + 1104.934 + ], + [ + 10.9375, + 10.9375, + 10.643939018249512, + 10.643939018249512, + 9.606258827775427, + 9.606258827775427, + 79368, + 79368, + 246066000000, + 246066000000, + [49,49,57,49,52], + [49,49,57,49,52], + 932.398, + 932.398 + ], + [ + 8.046875, + 8.046875, + 7.949827671051025, + 7.949827671051025, + 10.521167255732113, + 10.521167255732113, + 64983, + 64983, + 572141000000, + 572141000000, + [48,51,49,50,53], + [48,51,49,50,53], + 913.768, + 913.768 + ], + [ + 8.6953125, + 8.6953125, + 9.951281547546387, + 9.951281547546387, + 9.734161208084622, + 9.734161208084622, + 8481, + 8481, + 65530000000, + 65530000000, + [48,52,54,50,53], + [48,52,54,50,53], + 1047.888, + 1047.888 + ], + [ + 10.125, + 10.125, + 9.156769752502441, + 9.156769752502441, + 9.88245783267187, + 9.88245783267187, + 22192, + 22192, + 984601000000, + 984601000000, + [49,54,57,52,55], + [49,54,57,52,55], + 846.436, + 846.436 + ], + [ + 9.6875, + 9.6875, + 8.781187057495117, + 8.781187057495117, + 10.829519042024073, + 10.829519042024073, + 55546, + 55546, + 455117000000, + 455117000000, + [49,55,52,55,55], + [49,55,52,55,55], + 1038.969, + 1038.969 + ], + [ + 9.984375, + 9.984375, + 9.121848106384277, + 9.121848106384277, + 8.006939628945844, + 8.006939628945844, + 54041, + 54041, + 263845000000, + 263845000000, + [49,54,55,56,48], + [49,54,55,56,48], + 1010.255, + 1010.255 + ], + [ + 9.1484375, + 9.1484375, + 9.665876388549805, + 9.665876388549805, + 8.703527671925238, + 8.703527671925238, + 80205, + 80205, + 516087000000, + 516087000000, + [48,53,48,55,51], + [48,53,48,55,51], + 985.256, + 985.256 + ], + [ + 10.8828125, + 10.8828125, + 10.915902137756348, + 10.915902137756348, + 8.517814602557179, + 8.517814602557179, + 26609, + 26609, + 790155000000, + 790155000000, + [49,50,51,57,51], + [49,50,51,57,51], + 1158.828, + 1158.828 + ], + [ + 10.78125, + 10.78125, + 8.673606872558594, + 8.673606872558594, + 7.666383880151695, + 7.666383880151695, + 92470, + 92470, + 312569000000, + 312569000000, + [49,50,50,49,53], + [49,50,50,49,53], + 937.779, + 937.779 + ], + [ + 10.0625, + 10.0625, + 10.030631065368652, + 10.030631065368652, + 9.321735559844823, + 9.321735559844823, + 44447, + 44447, + 47513000000, + 47513000000, + [48,51,55,48,52], + [48,51,55,48,52], + 1206.03, + 1206.03 + ], + [ + 11.125, + 11.125, + 9.515830993652344, + 9.515830993652344, + 10.749433899727741, + 10.749433899727741, + 82258, + 82258, + 50960000000, + 50960000000, + [49,49,48,55,48], + [49,49,48,55,48], + 977.457, + 977.457 + ], + [ + 10.46875, + 10.46875, + 9.672327041625977, + 9.672327041625977, + 9.715115933617426, + 9.715115933617426, + 23838, + 23838, + 851985000000, + 851985000000, + [49,48,53,48,53], + [49,48,53,48,53], + 872.298, + 872.298 + ], + [ + 9.140625, + 9.140625, + 11.002758026123047, + 11.002758026123047, + 10.197790081941852, + 10.197790081941852, + 3697, + 3697, + 111600000000, + 111600000000, + [48,55,57,50,51], + [48,55,57,50,51], + 1006.9920000000001, + 1006.9920000000001 + ], + [ + 10.3671875, + 10.3671875, + 10.538115501403809, + 10.538115501403809, + 11.089217496710793, + 11.089217496710793, + 5505, + 5505, + 635563000000, + 635563000000, + [49,53,48,51,51], + [49,53,48,51,51], + 892.375, + 892.375 + ], + [ + 9.0390625, + 9.0390625, + 11.337398529052734, + 11.337398529052734, + 11.327686132267692, + 11.327686132267692, + 37270, + 37270, + 384504000000, + 384504000000, + [49,51,53,53,50], + [49,51,53,53,50], + 924.8240000000001, + 924.8240000000001 + ], + [ + 10.875, + 10.875, + 9.845494270324707, + 9.845494270324707, + 9.93086206527386, + 9.93086206527386, + 95315, + 95315, + 777517000000, + 777517000000, + [49,48,54,53,51], + [49,48,54,53,51], + 1039.703, + 1039.703 + ], + [ + 9.953125, + 9.953125, + 9.304057121276855, + 9.304057121276855, + 11.353585889569397, + 11.353585889569397, + 4869, + 4869, + 60528000000, + 60528000000, + [49,52,53,49,53], + [49,52,53,49,53], + 1055.558, + 1055.558 + ], + [ + 9.8125, + 9.8125, + 9.776141166687012, + 9.776141166687012, + 10.09212665843411, + 10.09212665843411, + 36897, + 36897, + 897792000000, + 897792000000, + [49,53,50,54,50], + [49,53,50,54,50], + 937.783, + 937.783 + ], + [ + 9.3203125, + 9.3203125, + 10.242496490478516, + 10.242496490478516, + 9.162601776172538, + 9.162601776172538, + 10928, + 10928, + 698189000000, + 698189000000, + [49,49,51,51,56], + [49,49,51,51,56], + 1098.741, + 1098.741 + ], + [ + 11.21875, + 11.21875, + 10.176573753356934, + 10.176573753356934, + 9.405599647801266, + 9.405599647801266, + 93156, + 93156, + 449277000000, + 449277000000, + [48,53,51,53,51], + [48,53,51,53,51], + 1115.751, + 1115.751 + ], + [ + 9.84375, + 9.84375, + 8.91561222076416, + 8.91561222076416, + 8.519463487434983, + 8.519463487434983, + 67530, + 67530, + 207020000000, + 207020000000, + [49,53,49,54,56], + [49,53,49,54,56], + 1143.63, + 1143.63 + ], + [ + 9.5703125, + 9.5703125, + 10.090489387512207, + 10.090489387512207, + 9.111866146266347, + 9.111866146266347, + 76269, + 76269, + 977141000000, + 977141000000, + [49,52,51,53,50], + [49,52,51,53,50], + 1052.941, + 1052.941 + ], + [ + 9.6484375, + 9.6484375, + 10.228228569030762, + 10.228228569030762, + 9.641983311925571, + 9.641983311925571, + 71325, + 71325, + 302071000000, + 302071000000, + [49,57,54,54,56], + [49,57,54,54,56], + 1136.343, + 1136.343 + ], + [ + 10.53125, + 10.53125, + 12.517474174499512, + 12.517474174499512, + 10.803585019378602, + 10.803585019378602, + 65702, + 65702, + 490512000000, + 490512000000, + [48,50,57,57,53], + [48,50,57,57,53], + 811.9200000000001, + 811.9200000000001 + ], + [ + 10.3671875, + 10.3671875, + 11.87684440612793, + 11.87684440612793, + 11.720769831165985, + 11.720769831165985, + 77372, + 77372, + 394125000000, + 394125000000, + [48,56,51,56,53], + [48,56,51,56,53], + 968.2090000000001, + 968.2090000000001 + ], + [ + 10.4140625, + 10.4140625, + 9.146757125854492, + 9.146757125854492, + 8.61781848462296, + 8.61781848462296, + 812, + 812, + 230550000000, + 230550000000, + [49,56,52,56,52], + [49,56,52,56,52], + 913.299, + 913.299 + ], + [ + 10.4296875, + 10.4296875, + 9.712616920471191, + 9.712616920471191, + 10.392827468259918, + 10.392827468259918, + 86545, + 86545, + 416609000000, + 416609000000, + [49,48,50,57,49], + [49,48,50,57,49], + 1011.923, + 1011.923 + ], + [ + 12.140625, + 12.140625, + 8.536558151245117, + 8.536558151245117, + 8.959456060842466, + 8.959456060842466, + 73986, + 73986, + 151484000000, + 151484000000, + [49,56,56,53,50], + [49,56,56,53,50], + 942.855, + 942.855 + ], + [ + 9.59375, + 9.59375, + 9.409293174743652, + 9.409293174743652, + 10.474697088463202, + 10.474697088463202, + 73943, + 73943, + 1660000000, + 1660000000, + [48,48,50,52,57], + [48,48,50,52,57], + 983.384, + 983.384 + ], + [ + 9.484375, + 9.484375, + 10.315605163574219, + 10.315605163574219, + 9.868913349312274, + 9.868913349312274, + 39343, + 39343, + 289992000000, + 289992000000, + [48,48,55,48,51], + [48,48,55,48,51], + 1188.217, + 1188.217 + ], + [ + 9.1875, + 9.1875, + 11.205853462219238, + 11.205853462219238, + 8.16909417415247, + 8.16909417415247, + 80087, + 80087, + 112070000000, + 112070000000, + [49,53,57,50,48], + [49,53,57,50,48], + 983.028, + 983.028 + ], + [ + 10.6171875, + 10.6171875, + 9.270915985107422, + 9.270915985107422, + 10.928296991568484, + 10.928296991568484, + 38181, + 38181, + 414778000000, + 414778000000, + [48,55,49,54,56], + [48,55,49,54,56], + 1041.3790000000001, + 1041.3790000000001 + ], + [ + 11.1328125, + 11.1328125, + 9.345853805541992, + 9.345853805541992, + 9.394999287191268, + 9.394999287191268, + 4896, + 4896, + 862764000000, + 862764000000, + [49,48,52,48,52], + [49,48,52,48,52], + 976.773, + 976.773 + ], + [ + 9.8828125, + 9.8828125, + 7.852711200714111, + 7.852711200714111, + 9.466099761626445, + 9.466099761626445, + 90781, + 90781, + 162569000000, + 162569000000, + [48,56,53,54,48], + [48,56,53,54,48], + 1007.571, + 1007.571 + ], + [ + 9.15625, + 9.15625, + 9.837333679199219, + 9.837333679199219, + 8.93024758871031, + 8.93024758871031, + 23453, + 23453, + 1233000000, + 1233000000, + [48,56,49,53,57], + [48,56,49,53,57], + 1000.602, + 1000.602 + ], + [ + 9.171875, + 9.171875, + 8.937585830688477, + 8.937585830688477, + 9.345716723312444, + 9.345716723312444, + 10190, + 10190, + 111094000000, + 111094000000, + [49,56,55,56,57], + [49,56,55,56,57], + 1044.832, + 1044.832 + ], + [ + 10.6484375, + 10.6484375, + 9.470561027526855, + 9.470561027526855, + 10.427890440694917, + 10.427890440694917, + 62189, + 62189, + 508167000000, + 508167000000, + [48,49,56,56,49], + [48,49,56,56,49], + 1116.531, + 1116.531 + ], + [ + 10.7421875, + 10.7421875, + 9.123139381408691, + 9.123139381408691, + 9.810755659063595, + 9.810755659063595, + 23365, + 23365, + 274838000000, + 274838000000, + [49,53,52,52,52], + [49,53,52,52,52], + 1164.739, + 1164.739 + ], + [ + 10.546875, + 10.546875, + 9.90573787689209, + 9.90573787689209, + 10.328662002282481, + 10.328662002282481, + 85812, + 85812, + 489502000000, + 489502000000, + [49,55,55,57,51], + [49,55,55,57,51], + 1030.962, + 1030.962 + ], + [ + 9.3359375, + 9.3359375, + 8.242271423339844, + 8.242271423339844, + 10.361921853928843, + 10.361921853928843, + 44375, + 44375, + 29247000000, + 29247000000, + [49,51,49,52,56], + [49,51,49,52,56], + 1058.955, + 1058.955 + ], + [ + 10.234375, + 10.234375, + 8.532955169677734, + 8.532955169677734, + 11.320661655528166, + 11.320661655528166, + 450, + 450, + 333094000000, + 333094000000, + [48,55,57,48,48], + [48,55,57,48,48], + 884.914, + 884.914 + ], + [ + 10.1171875, + 10.1171875, + 12.129246711730957, + 12.129246711730957, + 9.657213849135621, + 9.657213849135621, + 95171, + 95171, + 410134000000, + 410134000000, + [48,51,50,48,48], + [48,51,50,48,48], + 991.212, + 991.212 + ], + [ + 10.21875, + 10.21875, + 8.712577819824219, + 8.712577819824219, + 8.523142183154269, + 8.523142183154269, + 51462, + 51462, + 431327000000, + 431327000000, + [49,51,54,53,49], + [49,51,54,53,49], + 1094.029, + 1094.029 + ], + [ + 10.875, + 10.875, + 8.903214454650879, + 8.903214454650879, + 11.067222416571983, + 11.067222416571983, + 26297, + 26297, + 551158000000, + 551158000000, + [48,57,51,55,53], + [48,57,51,55,53], + 1086.597, + 1086.597 + ], + [ + 10.2265625, + 10.2265625, + 11.836913108825684, + 11.836913108825684, + 9.668511827902746, + 9.668511827902746, + 67728, + 67728, + 780581000000, + 780581000000, + [48,50,57,56,55], + [48,50,57,56,55], + 1021.1610000000001, + 1021.1610000000001 + ], + [ + 10.6796875, + 10.6796875, + 12.905067443847656, + 12.905067443847656, + 11.114592444577378, + 11.114592444577378, + 53061, + 53061, + 467229000000, + 467229000000, + [48,55,49,57,51], + [48,55,49,57,51], + 1088.6390000000001, + 1088.6390000000001 + ], + [ + 10.0703125, + 10.0703125, + 8.8284330368042, + 8.8284330368042, + 10.38337711318247, + 10.38337711318247, + 2960, + 2960, + 841203000000, + 841203000000, + [49,57,50,51,48], + [49,57,50,51,48], + 1049.077, + 1049.077 + ], + [ + 10.2890625, + 10.2890625, + 9.63175106048584, + 9.63175106048584, + 9.868862469796655, + 9.868862469796655, + 75964, + 75964, + 529735000000, + 529735000000, + [48,53,51,48,55], + [48,53,51,48,55], + 1120.031, + 1120.031 + ], + [ + 10.6328125, + 10.6328125, + 10.34155559539795, + 10.34155559539795, + 10.348775894046295, + 10.348775894046295, + 40135, + 40135, + 260348000000, + 260348000000, + [48,51,53,54,56], + [48,51,53,54,56], + 1028.936, + 1028.936 + ], + [ + 8.5390625, + 8.5390625, + 11.728697776794434, + 11.728697776794434, + 11.9510125601263, + 11.9510125601263, + 69981, + 69981, + 229018000000, + 229018000000, + [49,51,54,51,57], + [49,51,54,51,57], + 964.4300000000001, + 964.4300000000001 + ], + [ + 9.6796875, + 9.6796875, + 9.013142585754395, + 9.013142585754395, + 12.076980529053753, + 12.076980529053753, + 89563, + 89563, + 322490000000, + 322490000000, + [48,51,57,57,48], + [48,51,57,57,48], + 1033.584, + 1033.584 + ], + [ + 9.53125, + 9.53125, + 9.754722595214844, + 9.754722595214844, + 10.06938113513278, + 10.06938113513278, + 61061, + 61061, + 597463000000, + 597463000000, + [49,56,51,57,56], + [49,56,51,57,56], + 706.941, + 706.941 + ], + [ + 9.359375, + 9.359375, + 10.777338027954102, + 10.777338027954102, + 10.160190593317076, + 10.160190593317076, + 67161, + 67161, + 242482000000, + 242482000000, + [49,55,49,55,57], + [49,55,49,55,57], + 1038.289, + 1038.289 + ], + [ + 9.7265625, + 9.7265625, + 10.434765815734863, + 10.434765815734863, + 11.076240157466385, + 11.076240157466385, + 25465, + 25465, + 914173000000, + 914173000000, + [49,57,54,55,48], + [49,57,54,55,48], + 635.159, + 635.159 + ], + [ + 11.4921875, + 11.4921875, + 9.623844146728516, + 9.623844146728516, + 9.154338967232652, + 9.154338967232652, + 23765, + 23765, + 479863000000, + 479863000000, + [49,56,50,53,49], + [49,56,50,53,49], + 827.654, + 827.654 + ], + [ + 9.1328125, + 9.1328125, + 9.86617660522461, + 9.86617660522461, + 10.333070372618256, + 10.333070372618256, + 41500, + 41500, + 863272000000, + 863272000000, + [48,52,56,55,53], + [48,52,56,55,53], + 1045.1770000000001, + 1045.1770000000001 + ], + [ + 10.96875, + 10.96875, + 8.625103950500488, + 8.625103950500488, + 9.974137152046143, + 9.974137152046143, + 85278, + 85278, + 683258000000, + 683258000000, + [48,52,50,52,50], + [48,52,50,52,50], + 1047.753, + 1047.753 + ], + [ + 8.3203125, + 8.3203125, + 9.761826515197754, + 9.761826515197754, + 10.313908211457553, + 10.313908211457553, + 52419, + 52419, + 333352000000, + 333352000000, + [48,54,56,53,50], + [48,54,56,53,50], + 883.7570000000001, + 883.7570000000001 + ], + [ + 9.6640625, + 9.6640625, + 9.733612060546875, + 9.733612060546875, + 9.166631194050595, + 9.166631194050595, + 34803, + 34803, + 228252000000, + 228252000000, + [48,57,51,57,54], + [48,57,51,57,54], + 928.79, + 928.79 + ], + [ + 10.1640625, + 10.1640625, + 10.232170104980469, + 10.232170104980469, + 8.41043250669103, + 8.41043250669103, + 77961, + 77961, + 743944000000, + 743944000000, + [49,55,53,57,57], + [49,55,53,57,57], + 1137.054, + 1137.054 + ], + [ + 10.5859375, + 10.5859375, + 9.444672584533691, + 9.444672584533691, + 7.927016564008708, + 7.927016564008708, + 85334, + 85334, + 330735000000, + 330735000000, + [49,52,54,54,57], + [49,52,54,54,57], + 951.597, + 951.597 + ], + [ + 10.7109375, + 10.7109375, + 10.471538543701172, + 10.471538543701172, + 8.882615887010392, + 8.882615887010392, + 90253, + 90253, + 246867000000, + 246867000000, + [49,50,56,56,56], + [49,50,56,56,56], + 1224.292, + 1224.292 + ], + [ + 10.796875, + 10.796875, + 11.012716293334961, + 11.012716293334961, + 9.541324715060666, + 9.541324715060666, + 29894, + 29894, + 930384000000, + 930384000000, + [49,55,53,54,55], + [49,55,53,54,55], + 999.808, + 999.808 + ], + [ + 9.6484375, + 9.6484375, + 10.155428886413574, + 10.155428886413574, + 9.706808413351238, + 9.706808413351238, + 70964, + 70964, + 482629000000, + 482629000000, + [49,50,57,49,55], + [49,50,57,49,55], + 1040.804, + 1040.804 + ], + [ + 9.5390625, + 9.5390625, + 10.35175609588623, + 10.35175609588623, + 11.937231162429518, + 11.937231162429518, + 59032, + 59032, + 48569000000, + 48569000000, + [48,55,53,56,49], + [48,55,53,56,49], + 1161.6870000000001, + 1161.6870000000001 + ], + [ + 10.859375, + 10.859375, + 10.053154945373535, + 10.053154945373535, + 11.105993369907297, + 11.105993369907297, + 44897, + 44897, + 494767000000, + 494767000000, + [48,56,50,54,48], + [48,56,50,54,48], + 1013.1030000000001, + 1013.1030000000001 + ], + [ + 9.8125, + 9.8125, + 10.000083923339844, + 10.000083923339844, + 9.037908883658373, + 9.037908883658373, + 39694, + 39694, + 460769000000, + 460769000000, + [49,48,51,52,48], + [49,48,51,52,48], + 899.766, + 899.766 + ], + [ + 8.7265625, + 8.7265625, + 9.2784423828125, + 9.2784423828125, + 10.347708452450957, + 10.347708452450957, + 11455, + 11455, + 863968000000, + 863968000000, + [48,49,55,55,53], + [48,49,55,55,53], + 989.027, + 989.027 + ], + [ + 8.8671875, + 8.8671875, + 10.31649398803711, + 10.31649398803711, + 9.592921763649676, + 9.592921763649676, + 27482, + 27482, + 711558000000, + 711558000000, + [49,52,56,51,52], + [49,52,56,51,52], + 996.439, + 996.439 + ], + [ + 9.078125, + 9.078125, + 9.902713775634766, + 9.902713775634766, + 9.715636161959905, + 9.715636161959905, + 54966, + 54966, + 191357000000, + 191357000000, + [49,51,48,53,53], + [49,51,48,53,53], + 863.5260000000001, + 863.5260000000001 + ], + [ + 10.5, + 10.5, + 12.093168258666992, + 12.093168258666992, + 10.185325649415383, + 10.185325649415383, + 88655, + 88655, + 150454000000, + 150454000000, + [49,52,54,50,50], + [49,52,54,50,50], + 974.417, + 974.417 + ], + [ + 10.140625, + 10.140625, + 11.573354721069336, + 11.573354721069336, + 10.619171116975393, + 10.619171116975393, + 86634, + 86634, + 603594000000, + 603594000000, + [49,48,54,55,56], + [49,48,54,55,56], + 925.7810000000001, + 925.7810000000001 + ], + [ + 10.6875, + 10.6875, + 10.385846138000488, + 10.385846138000488, + 9.660741516115985, + 9.660741516115985, + 18759, + 18759, + 47374000000, + 47374000000, + [49,53,54,53,57], + [49,53,54,53,57], + 1092.436, + 1092.436 + ], + [ + 9.5703125, + 9.5703125, + 9.236943244934082, + 9.236943244934082, + 11.063851532734358, + 11.063851532734358, + 67932, + 67932, + 319015000000, + 319015000000, + [49,56,57,57,53], + [49,56,57,57,53], + 1003.461, + 1003.461 + ], + [ + 10.15625, + 10.15625, + 8.887588500976562, + 8.887588500976562, + 8.858061773857596, + 8.858061773857596, + 8481, + 8481, + 138205000000, + 138205000000, + [49,49,51,57,56], + [49,49,51,57,56], + 971.72, + 971.72 + ], + [ + 10.625, + 10.625, + 11.191143035888672, + 11.191143035888672, + 10.006339062362269, + 10.006339062362269, + 67501, + 67501, + 20561000000, + 20561000000, + [48,56,56,56,55], + [48,56,56,56,55], + 989.3820000000001, + 989.3820000000001 + ], + [ + 9.6875, + 9.6875, + 10.262749671936035, + 10.262749671936035, + 12.597673726595833, + 12.597673726595833, + 34192, + 34192, + 918823000000, + 918823000000, + [48,50,48,57,50], + [48,50,48,57,50], + 1022.312, + 1022.312 + ], + [ + 10.453125, + 10.453125, + 10.480143547058105, + 10.480143547058105, + 10.223079742625275, + 10.223079742625275, + 44984, + 44984, + 89820000000, + 89820000000, + [49,53,53,55,51], + [49,53,53,55,51], + 1061.681, + 1061.681 + ], + [ + 9.3359375, + 9.3359375, + 8.255414009094238, + 8.255414009094238, + 11.433214506606173, + 11.433214506606173, + 71763, + 71763, + 9259000000, + 9259000000, + [49,56,48,55,57], + [49,56,48,55,57], + 900.029, + 900.029 + ], + [ + 9.640625, + 9.640625, + 10.927438735961914, + 10.927438735961914, + 10.091520178173209, + 10.091520178173209, + 42488, + 42488, + 932891000000, + 932891000000, + [49,51,57,56,57], + [49,51,57,56,57], + 895.841, + 895.841 + ], + [ + 9.6171875, + 9.6171875, + 10.45442008972168, + 10.45442008972168, + 10.580777095329797, + 10.580777095329797, + 80743, + 80743, + 188321000000, + 188321000000, + [49,55,51,49,49], + [49,55,51,49,49], + 1110.468, + 1110.468 + ], + [ + 8.8046875, + 8.8046875, + 8.889569282531738, + 8.889569282531738, + 9.943216805607308, + 9.943216805607308, + 53358, + 53358, + 816557000000, + 816557000000, + [49,55,50,50,51], + [49,55,50,50,51], + 958.7660000000001, + 958.7660000000001 + ], + [ + 10.484375, + 10.484375, + 9.528474807739258, + 9.528474807739258, + 9.829592418835796, + 9.829592418835796, + 99874, + 99874, + 31283000000, + 31283000000, + [49,53,57,54,49], + [49,53,57,54,49], + 858.316, + 858.316 + ], + [ + 9.53125, + 9.53125, + 10.263717651367188, + 10.263717651367188, + 9.22051760327458, + 9.22051760327458, + 63824, + 63824, + 153556000000, + 153556000000, + [49,48,48,53,55], + [49,48,48,53,55], + 1044.381, + 1044.381 + ], + [ + 10.015625, + 10.015625, + 10.05246639251709, + 10.05246639251709, + 10.430301358957554, + 10.430301358957554, + 29636, + 29636, + 110629000000, + 110629000000, + [48,49,57,57,55], + [48,49,57,57,55], + 1046.337, + 1046.337 + ], + [ + 10.484375, + 10.484375, + 9.707828521728516, + 9.707828521728516, + 9.148462810814232, + 9.148462810814232, + 77528, + 77528, + 706262000000, + 706262000000, + [48,48,48,54,52], + [48,48,48,54,52], + 846.928, + 846.928 + ], + [ + 10.4453125, + 10.4453125, + 9.896512031555176, + 9.896512031555176, + 10.66558523631343, + 10.66558523631343, + 40794, + 40794, + 620149000000, + 620149000000, + [48,52,48,56,55], + [48,52,48,56,55], + 1022.948, + 1022.948 + ], + [ + 10.6640625, + 10.6640625, + 9.74802303314209, + 9.74802303314209, + 11.08528700444591, + 11.08528700444591, + 53416, + 53416, + 475502000000, + 475502000000, + [48,56,54,50,48], + [48,56,54,50,48], + 1073.558, + 1073.558 + ], + [ + 9.8984375, + 9.8984375, + 10.152562141418457, + 10.152562141418457, + 10.36653140723723, + 10.36653140723723, + 13682, + 13682, + 241638000000, + 241638000000, + [49,52,56,55,50], + [49,52,56,55,50], + 1037.439, + 1037.439 + ], + [ + 9.578125, + 9.578125, + 11.471491813659668, + 11.471491813659668, + 9.713751266444309, + 9.713751266444309, + 11934, + 11934, + 88859000000, + 88859000000, + [48,57,49,49,54], + [48,57,49,49,54], + 1063.198, + 1063.198 + ], + [ + 9.921875, + 9.921875, + 7.4333415031433105, + 7.4333415031433105, + 10.453965579308695, + 10.453965579308695, + 57487, + 57487, + 569212000000, + 569212000000, + [48,48,52,54,50], + [48,48,52,54,50], + 859.573, + 859.573 + ], + [ + 8.3125, + 8.3125, + 9.76314926147461, + 9.76314926147461, + 9.691326944453587, + 9.691326944453587, + 18669, + 18669, + 230714000000, + 230714000000, + [48,52,50,48,54], + [48,52,50,48,54], + 1033.104, + 1033.104 + ], + [ + 8.5546875, + 8.5546875, + 10.176512718200684, + 10.176512718200684, + 10.935547125465149, + 10.935547125465149, + 99758, + 99758, + 590195000000, + 590195000000, + [49,57,53,56,52], + [49,57,53,56,52], + 969.738, + 969.738 + ], + [ + 8.6796875, + 8.6796875, + 10.29599380493164, + 10.29599380493164, + 8.168593915784877, + 8.168593915784877, + 85567, + 85567, + 687468000000, + 687468000000, + [49,57,55,54,48], + [49,57,55,54,48], + 951.721, + 951.721 + ], + [ + 9, + 9, + 9.628085136413574, + 9.628085136413574, + 9.664392631881354, + 9.664392631881354, + 70088, + 70088, + 849435000000, + 849435000000, + [48,55,53,52,50], + [48,55,53,52,50], + 1087.056, + 1087.056 + ], + [ + 10.3984375, + 10.3984375, + 8.243278503417969, + 8.243278503417969, + 8.009188004876002, + 8.009188004876002, + 73469, + 73469, + 493984000000, + 493984000000, + [49,54,48,57,57], + [49,54,48,57,57], + 1147.9270000000001, + 1147.9270000000001 + ], + [ + 9.09375, + 9.09375, + 10.327995300292969, + 10.327995300292969, + 8.504939169772795, + 8.504939169772795, + 59521, + 59521, + 4741000000, + 4741000000, + [49,52,51,56,54], + [49,52,51,56,54], + 1179.4370000000001, + 1179.4370000000001 + ], + [ + 9.625, + 9.625, + 11.727350234985352, + 11.727350234985352, + 11.36386222981391, + 11.36386222981391, + 6029, + 6029, + 280666000000, + 280666000000, + [49,56,54,50,53], + [49,56,54,50,53], + 1131.481, + 1131.481 + ], + [ + 11.296875, + 11.296875, + 8.46613883972168, + 8.46613883972168, + 10.895184981971687, + 10.895184981971687, + 39236, + 39236, + 853369000000, + 853369000000, + [49,55,55,53,49], + [49,55,55,53,49], + 989.027, + 989.027 + ], + [ + 9.640625, + 9.640625, + 10.8638277053833, + 10.8638277053833, + 9.28051976671521, + 9.28051976671521, + 49580, + 49580, + 533250000000, + 533250000000, + [49,50,53,55,52], + [49,50,53,55,52], + 1035.272, + 1035.272 + ], + [ + 10.734375, + 10.734375, + 9.67147445678711, + 9.67147445678711, + 8.497496543959103, + 8.497496543959103, + 91529, + 91529, + 619119000000, + 619119000000, + [48,55,56,57,50], + [48,55,56,57,50], + 1076.682, + 1076.682 + ], + [ + 9.0625, + 9.0625, + 9.938675880432129, + 9.938675880432129, + 7.035471162158348, + 7.035471162158348, + 21949, + 21949, + 457823000000, + 457823000000, + [49,50,53,51,51], + [49,50,53,51,51], + 1012.118, + 1012.118 + ], + [ + 9.796875, + 9.796875, + 8.947101593017578, + 8.947101593017578, + 9.456504492067365, + 9.456504492067365, + 49691, + 49691, + 162743000000, + 162743000000, + [48,54,51,56,50], + [48,54,51,56,50], + 1013.076, + 1013.076 + ], + [ + 9.046875, + 9.046875, + 9.665543556213379, + 9.665543556213379, + 12.420415012247403, + 12.420415012247403, + 34406, + 34406, + 896703000000, + 896703000000, + [48,54,57,54,49], + [48,54,57,54,49], + 1082.375, + 1082.375 + ], + [ + 9.6640625, + 9.6640625, + 11.300045013427734, + 11.300045013427734, + 10.434884271463648, + 10.434884271463648, + 13436, + 13436, + 772937000000, + 772937000000, + [49,50,49,55,52], + [49,50,49,55,52], + 994.072, + 994.072 + ], + [ + 10.84375, + 10.84375, + 10.58265495300293, + 10.58265495300293, + 9.44042771395051, + 9.44042771395051, + 10301, + 10301, + 995183000000, + 995183000000, + [49,49,52,50,55], + [49,49,52,50,55], + 927.071, + 927.071 + ], + [ + 8.2734375, + 8.2734375, + 11.732311248779297, + 11.732311248779297, + 10.465080209500305, + 10.465080209500305, + 36537, + 36537, + 855491000000, + 855491000000, + [49,49,54,49,57], + [49,49,54,49,57], + 958.553, + 958.553 + ], + [ + 10.4375, + 10.4375, + 11.177412033081055, + 11.177412033081055, + 8.439041647005556, + 8.439041647005556, + 8242, + 8242, + 291133000000, + 291133000000, + [48,55,54,57,51], + [48,55,54,57,51], + 1063.391, + 1063.391 + ], + [ + 10.234375, + 10.234375, + 10.4390869140625, + 10.4390869140625, + 9.702676637302364, + 9.702676637302364, + 6716, + 6716, + 254263000000, + 254263000000, + [48,56,49,56,50], + [48,56,49,56,50], + 1000.299, + 1000.299 + ], + [ + 9.40625, + 9.40625, + 11.743934631347656, + 11.743934631347656, + 10.099477473015739, + 10.099477473015739, + 35086, + 35086, + 248474000000, + 248474000000, + [48,48,50,48,51], + [48,48,50,48,51], + 1034.021, + 1034.021 + ], + [ + 8.5546875, + 8.5546875, + 10.438993453979492, + 10.438993453979492, + 9.913899348178951, + 9.913899348178951, + 20197, + 20197, + 918793000000, + 918793000000, + [49,50,48,51,53], + [49,50,48,51,53], + 1067.008, + 1067.008 + ], + [ + 10.0703125, + 10.0703125, + 10.827988624572754, + 10.827988624572754, + 10.79080612169008, + 10.79080612169008, + 55480, + 55480, + 556935000000, + 556935000000, + [49,49,53,49,53], + [49,49,53,49,53], + 962.5160000000001, + 962.5160000000001 + ], + [ + 9.46875, + 9.46875, + 9.703429222106934, + 9.703429222106934, + 10.344645226236052, + 10.344645226236052, + 1766, + 1766, + 454457000000, + 454457000000, + [49,56,55,48,55], + [49,56,55,48,55], + 1075.625, + 1075.625 + ], + [ + 10.234375, + 10.234375, + 10.066545486450195, + 10.066545486450195, + 10.668326018107997, + 10.668326018107997, + 30181, + 30181, + 968261000000, + 968261000000, + [49,48,48,56,53], + [49,48,48,56,53], + 1037.884, + 1037.884 + ], + [ + 10.0234375, + 10.0234375, + 9.302576065063477, + 9.302576065063477, + 9.311627717769241, + 9.311627717769241, + 45327, + 45327, + 603424000000, + 603424000000, + [48,57,51,53,50], + [48,57,51,53,50], + 876.519, + 876.519 + ], + [ + 11.6015625, + 11.6015625, + 10.989583969116211, + 10.989583969116211, + 10.897815408410548, + 10.897815408410548, + 96314, + 96314, + 909431000000, + 909431000000, + [48,49,51,53,51], + [48,49,51,53,51], + 1144.23, + 1144.23 + ], + [ + 9.7578125, + 9.7578125, + 8.821696281433105, + 8.821696281433105, + 11.628936947623991, + 11.628936947623991, + 63454, + 63454, + 984649000000, + 984649000000, + [48,51,57,51,52], + [48,51,57,51,52], + 949.926, + 949.926 + ], + [ + 8.9765625, + 8.9765625, + 10.782350540161133, + 10.782350540161133, + 9.029850480348587, + 9.029850480348587, + 88071, + 88071, + 79445000000, + 79445000000, + [48,54,55,54,48], + [48,54,55,54,48], + 834.49, + 834.49 + ], + [ + 10.1796875, + 10.1796875, + 9.809349060058594, + 9.809349060058594, + 9.112304344285441, + 9.112304344285441, + 34329, + 34329, + 361536000000, + 361536000000, + [48,55,53,52,52], + [48,55,53,52,52], + 895.496, + 895.496 + ], + [ + 10.21875, + 10.21875, + 11.171247482299805, + 11.171247482299805, + 11.335784336320232, + 11.335784336320232, + 44970, + 44970, + 734139000000, + 734139000000, + [48,55,50,53,51], + [48,55,50,53,51], + 897.895, + 897.895 + ], + [ + 11.359375, + 11.359375, + 10.750868797302246, + 10.750868797302246, + 9.80865601330494, + 9.80865601330494, + 42038, + 42038, + 813159000000, + 813159000000, + [48,55,56,56,50], + [48,55,56,56,50], + 1005.217, + 1005.217 + ], + [ + 10.8359375, + 10.8359375, + 11.820646286010742, + 11.820646286010742, + 11.403821392066558, + 11.403821392066558, + 88739, + 88739, + 148484000000, + 148484000000, + [49,53,51,55,56], + [49,53,51,55,56], + 972.615, + 972.615 + ], + [ + 10.359375, + 10.359375, + 10.730774879455566, + 10.730774879455566, + 9.557464288107816, + 9.557464288107816, + 95920, + 95920, + 318399000000, + 318399000000, + [48,50,54,50,50], + [48,50,54,50,50], + 966.317, + 966.317 + ], + [ + 11.4609375, + 11.4609375, + 8.427959442138672, + 8.427959442138672, + 11.455045576270711, + 11.455045576270711, + 96233, + 96233, + 548172000000, + 548172000000, + [48,54,54,52,53], + [48,54,54,52,53], + 1061.97, + 1061.97 + ], + [ + 8.8125, + 8.8125, + 9.9330472946167, + 9.9330472946167, + 10.131485816805451, + 10.131485816805451, + 75196, + 75196, + 799213000000, + 799213000000, + [48,51,50,53,55], + [48,51,50,53,55], + 1033.988, + 1033.988 + ], + [ + 9.359375, + 9.359375, + 8.82799243927002, + 8.82799243927002, + 10.258228823322694, + 10.258228823322694, + 50311, + 50311, + 112967000000, + 112967000000, + [48,54,49,53,53], + [48,54,49,53,53], + 1031.605, + 1031.605 + ], + [ + 9.0703125, + 9.0703125, + 9.481719970703125, + 9.481719970703125, + 11.564718021669904, + 11.564718021669904, + 54085, + 54085, + 600733000000, + 600733000000, + [49,51,54,57,49], + [49,51,54,57,49], + 1040.983, + 1040.983 + ], + [ + 9.609375, + 9.609375, + 11.511228561401367, + 11.511228561401367, + 9.638229522555829, + 9.638229522555829, + 98051, + 98051, + 296442000000, + 296442000000, + [48,48,57,51,53], + [48,48,57,51,53], + 1061.613, + 1061.613 + ], + [ + 8.625, + 8.625, + 10.637534141540527, + 10.637534141540527, + 9.058877904075041, + 9.058877904075041, + 28454, + 28454, + 216355000000, + 216355000000, + [48,54,55,56,57], + [48,54,55,56,57], + 789.205, + 789.205 + ], + [ + 10.6328125, + 10.6328125, + 9.301069259643555, + 9.301069259643555, + 9.551435791971645, + 9.551435791971645, + 34670, + 34670, + 515399000000, + 515399000000, + [48,48,52,55,51], + [48,48,52,55,51], + 963.556, + 963.556 + ], + [ + 9.78125, + 9.78125, + 8.986282348632812, + 8.986282348632812, + 10.452333950643139, + 10.452333950643139, + 89699, + 89699, + 414026000000, + 414026000000, + [49,57,48,57,55], + [49,57,48,57,55], + 781.979, + 781.979 + ], + [ + 8.53125, + 8.53125, + 10.032782554626465, + 10.032782554626465, + 8.434240927819486, + 8.434240927819486, + 38632, + 38632, + 635711000000, + 635711000000, + [49,52,53,52,53], + [49,52,53,52,53], + 1003.606, + 1003.606 + ], + [ + 8.984375, + 8.984375, + 8.783439636230469, + 8.783439636230469, + 10.637470902651122, + 10.637470902651122, + 23509, + 23509, + 317635000000, + 317635000000, + [48,52,56,55,49], + [48,52,56,55,49], + 999.537, + 999.537 + ], + [ + 10.3125, + 10.3125, + 9.328859329223633, + 9.328859329223633, + 9.461228682382258, + 9.461228682382258, + 56046, + 56046, + 823275000000, + 823275000000, + [48,51,57,54,51], + [48,51,57,54,51], + 1104.553, + 1104.553 + ], + [ + 10.8359375, + 10.8359375, + 10.312009811401367, + 10.312009811401367, + 11.147812660733564, + 11.147812660733564, + 32534, + 32534, + 78108000000, + 78108000000, + [48,49,57,55,56], + [48,49,57,55,56], + 1118.763, + 1118.763 + ], + [ + 12, + 12, + 11.155311584472656, + 11.155311584472656, + 7.605739695099528, + 7.605739695099528, + 89087, + 89087, + 861879000000, + 861879000000, + [48,57,52,53,55], + [48,57,52,53,55], + 1020.278, + 1020.278 + ], + [ + 12.9140625, + 12.9140625, + 10.60876178741455, + 10.60876178741455, + 9.213434224895831, + 9.213434224895831, + 90906, + 90906, + 29834000000, + 29834000000, + [49,53,48,55,48], + [49,53,48,55,48], + 949.964, + 949.964 + ], + [ + 10.4140625, + 10.4140625, + 7.708710670471191, + 7.708710670471191, + 8.313531848765898, + 8.313531848765898, + 30601, + 30601, + 735895000000, + 735895000000, + [49,49,54,56,52], + [49,49,54,56,52], + 1048.516, + 1048.516 + ], + [ + 9.0078125, + 9.0078125, + 10.304367065429688, + 10.304367065429688, + 9.173770533636047, + 9.173770533636047, + 52954, + 52954, + 346478000000, + 346478000000, + [49,55,54,50,48], + [49,55,54,50,48], + 947.208, + 947.208 + ], + [ + 7.8671875, + 7.8671875, + 10.072033882141113, + 10.072033882141113, + 10.247665901108943, + 10.247665901108943, + 98399, + 98399, + 383334000000, + 383334000000, + [48,54,56,55,54], + [48,54,56,55,54], + 999.861, + 999.861 + ], + [ + 10.265625, + 10.265625, + 10.41388988494873, + 10.41388988494873, + 9.820773374550246, + 9.820773374550246, + 74231, + 74231, + 19034000000, + 19034000000, + [48,53,53,54,50], + [48,53,53,54,50], + 1098.614, + 1098.614 + ], + [ + 9.1875, + 9.1875, + 11.616209983825684, + 11.616209983825684, + 9.746622431051986, + 9.746622431051986, + 21562, + 21562, + 702100000000, + 702100000000, + [48,57,53,54,49], + [48,57,53,54,49], + 944.2230000000001, + 944.2230000000001 + ], + [ + 9.5859375, + 9.5859375, + 7.936761856079102, + 7.936761856079102, + 9.840815128619939, + 9.840815128619939, + 59074, + 59074, + 165487000000, + 165487000000, + [48,52,48,52,49], + [48,52,48,52,49], + 1080.568, + 1080.568 + ], + [ + 9.390625, + 9.390625, + 9.408896446228027, + 9.408896446228027, + 10.203388240619944, + 10.203388240619944, + 61989, + 61989, + 659156000000, + 659156000000, + [49,57,53,49,50], + [49,57,53,49,50], + 1067.74, + 1067.74 + ], + [ + 9.859375, + 9.859375, + 10.590906143188477, + 10.590906143188477, + 8.991463958056892, + 8.991463958056892, + 65343, + 65343, + 725183000000, + 725183000000, + [48,51,55,49,53], + [48,51,55,49,53], + 904.5210000000001, + 904.5210000000001 + ], + [ + 11.0625, + 11.0625, + 8.418405532836914, + 8.418405532836914, + 10.706849640899051, + 10.706849640899051, + 2501, + 2501, + 845238000000, + 845238000000, + [48,57,53,55,55], + [48,57,53,55,55], + 1097.3890000000001, + 1097.3890000000001 + ], + [ + 10.15625, + 10.15625, + 11.47594928741455, + 11.47594928741455, + 10.662665970385484, + 10.662665970385484, + 29938, + 29938, + 708091000000, + 708091000000, + [49,48,52,52,48], + [49,48,52,52,48], + 1069.857, + 1069.857 + ], + [ + 9.84375, + 9.84375, + 10.368356704711914, + 10.368356704711914, + 10.3850379376561, + 10.3850379376561, + 85461, + 85461, + 301500000000, + 301500000000, + [48,49,49,52,48], + [48,49,49,52,48], + 1010.193, + 1010.193 + ], + [ + 8.9609375, + 8.9609375, + 10.84658432006836, + 10.84658432006836, + 10.556533442751263, + 10.556533442751263, + 24137, + 24137, + 738580000000, + 738580000000, + [48,57,51,54,56], + [48,57,51,54,56], + 923.768, + 923.768 + ], + [ + 8.328125, + 8.328125, + 9.429056167602539, + 9.429056167602539, + 10.296418000808659, + 10.296418000808659, + 29969, + 29969, + 825950000000, + 825950000000, + [48,57,48,57,52], + [48,57,48,57,52], + 914.0790000000001, + 914.0790000000001 + ], + [ + 9.515625, + 9.515625, + 10.813763618469238, + 10.813763618469238, + 12.035073302731067, + 12.035073302731067, + 32249, + 32249, + 317153000000, + 317153000000, + [48,53,49,56,56], + [48,53,49,56,56], + 946.234, + 946.234 + ], + [ + 9.9453125, + 9.9453125, + 11.068471908569336, + 11.068471908569336, + 9.91290582894749, + 9.91290582894749, + 17738, + 17738, + 124176000000, + 124176000000, + [48,50,53,53,57], + [48,50,53,53,57], + 1054.259, + 1054.259 + ], + [ + 11.765625, + 11.765625, + 10.232877731323242, + 10.232877731323242, + 9.692916781665422, + 9.692916781665422, + 15544, + 15544, + 890019000000, + 890019000000, + [48,48,57,48,51], + [48,48,57,48,51], + 904.437, + 904.437 + ], + [ + 10.1328125, + 10.1328125, + 10.234400749206543, + 10.234400749206543, + 9.246472419642622, + 9.246472419642622, + 34701, + 34701, + 147939000000, + 147939000000, + [48,48,49,55,49], + [48,48,49,55,49], + 1043.751, + 1043.751 + ], + [ + 10.984375, + 10.984375, + 10.270342826843262, + 10.270342826843262, + 8.967737329422164, + 8.967737329422164, + 87431, + 87431, + 593830000000, + 593830000000, + [48,57,54,50,57], + [48,57,54,50,57], + 875.8240000000001, + 875.8240000000001 + ], + [ + 9.5, + 9.5, + 9.1366548538208, + 9.1366548538208, + 8.755528212398925, + 8.755528212398925, + 153, + 153, + 236280000000, + 236280000000, + [48,49,55,57,54], + [48,49,55,57,54], + 979.5930000000001, + 979.5930000000001 + ], + [ + 8.8125, + 8.8125, + 9.852471351623535, + 9.852471351623535, + 9.111202686769081, + 9.111202686769081, + 28324, + 28324, + 126026000000, + 126026000000, + [49,57,49,56,54], + [49,57,49,56,54], + 1010.965, + 1010.965 + ], + [ + 9.03125, + 9.03125, + 9.847477912902832, + 9.847477912902832, + 9.929319618347929, + 9.929319618347929, + 6062, + 6062, + 776415000000, + 776415000000, + [48,52,56,57,52], + [48,52,56,57,52], + 1244.513, + 1244.513 + ], + [ + 9.2734375, + 9.2734375, + 10.383394241333008, + 10.383394241333008, + 10.334295128497715, + 10.334295128497715, + 56148, + 56148, + 143718000000, + 143718000000, + [49,51,48,53,48], + [49,51,48,53,48], + 862.268, + 862.268 + ], + [ + 12.125, + 12.125, + 10.999824523925781, + 10.999824523925781, + 10.051142058552161, + 10.051142058552161, + 25060, + 25060, + 670225000000, + 670225000000, + [49,51,52,54,57], + [49,51,52,54,57], + 1147.201, + 1147.201 + ], + [ + 9.1796875, + 9.1796875, + 8.941463470458984, + 8.941463470458984, + 9.234464722570287, + 9.234464722570287, + 79197, + 79197, + 693095000000, + 693095000000, + [48,57,57,49,48], + [48,57,57,49,48], + 1014.984, + 1014.984 + ], + [ + 10.8359375, + 10.8359375, + 9.874991416931152, + 9.874991416931152, + 10.900184564019963, + 10.900184564019963, + 58501, + 58501, + 60228000000, + 60228000000, + [49,55,54,55,50], + [49,55,54,55,50], + 1041.117, + 1041.117 + ], + [ + 9.09375, + 9.09375, + 11.48145580291748, + 11.48145580291748, + 10.739412672300947, + 10.739412672300947, + 78382, + 78382, + 172943000000, + 172943000000, + [48,50,50,49,51], + [48,50,50,49,51], + 1011.835, + 1011.835 + ], + [ + 10.9296875, + 10.9296875, + 9.2564115524292, + 9.2564115524292, + 9.840351692577983, + 9.840351692577983, + 63490, + 63490, + 794363000000, + 794363000000, + [48,52,54,56,48], + [48,52,54,56,48], + 1044.473, + 1044.473 + ], + [ + 10.3828125, + 10.3828125, + 9.177749633789062, + 9.177749633789062, + 9.347083855335288, + 9.347083855335288, + 43838, + 43838, + 507292000000, + 507292000000, + [48,53,48,52,56], + [48,53,48,52,56], + 984.631, + 984.631 + ], + [ + 9.84375, + 9.84375, + 10.202305793762207, + 10.202305793762207, + 10.5484279208298, + 10.5484279208298, + 86096, + 86096, + 121351000000, + 121351000000, + [48,50,55,48,56], + [48,50,55,48,56], + 1145.405, + 1145.405 + ], + [ + 9.9609375, + 9.9609375, + 10.844385147094727, + 10.844385147094727, + 10.187973587486104, + 10.187973587486104, + 47625, + 47625, + 991774000000, + 991774000000, + [48,53,56,57,53], + [48,53,56,57,53], + 954.3530000000001, + 954.3530000000001 + ], + [ + 9.34375, + 9.34375, + 10.011425971984863, + 10.011425971984863, + 8.551872740584953, + 8.551872740584953, + 94993, + 94993, + 264988000000, + 264988000000, + [48,54,50,53,51], + [48,54,50,53,51], + 1113.223, + 1113.223 + ], + [ + 10.4453125, + 10.4453125, + 11.328960418701172, + 11.328960418701172, + 9.932019744015594, + 9.932019744015594, + 99470, + 99470, + 4007000000, + 4007000000, + [49,53,50,57,54], + [49,53,50,57,54], + 935.563, + 935.563 + ], + [ + 9.546875, + 9.546875, + 10.856794357299805, + 10.856794357299805, + 10.26203581207438, + 10.26203581207438, + 58902, + 58902, + 924166000000, + 924166000000, + [48,54,48,51,50], + [48,54,48,51,50], + 993.975, + 993.975 + ], + [ + 8.7734375, + 8.7734375, + 10.841819763183594, + 10.841819763183594, + 9.100305213512247, + 9.100305213512247, + 67459, + 67459, + 16579000000, + 16579000000, + [49,55,53,51,52], + [49,55,53,51,52], + 892.804, + 892.804 + ], + [ + 8.71875, + 8.71875, + 10.554116249084473, + 10.554116249084473, + 10.189843392837442, + 10.189843392837442, + 25566, + 25566, + 553358000000, + 553358000000, + [49,53,52,53,51], + [49,53,52,53,51], + 1045.502, + 1045.502 + ], + [ + 10.171875, + 10.171875, + 12.327652931213379, + 12.327652931213379, + 8.54517751474221, + 8.54517751474221, + 81463, + 81463, + 993084000000, + 993084000000, + [49,56,48,51,50], + [49,56,48,51,50], + 1144.513, + 1144.513 + ], + [ + 11.578125, + 11.578125, + 9.794837951660156, + 9.794837951660156, + 11.33618610001217, + 11.33618610001217, + 67159, + 67159, + 577809000000, + 577809000000, + [48,50,49,48,52], + [48,50,49,48,52], + 992.264, + 992.264 + ], + [ + 10.15625, + 10.15625, + 7.9964776039123535, + 7.9964776039123535, + 11.247949985059432, + 11.247949985059432, + 90255, + 90255, + 584638000000, + 584638000000, + [49,57,54,57,49], + [49,57,54,57,49], + 980.311, + 980.311 + ], + [ + 9.8828125, + 9.8828125, + 11.604254722595215, + 11.604254722595215, + 9.747482665697035, + 9.747482665697035, + 26700, + 26700, + 388174000000, + 388174000000, + [49,50,50,55,57], + [49,50,50,55,57], + 888.538, + 888.538 + ], + [ + 10.2890625, + 10.2890625, + 9.5423002243042, + 9.5423002243042, + 10.363454337839073, + 10.363454337839073, + 78758, + 78758, + 126909000000, + 126909000000, + [49,57,54,52,55], + [49,57,54,52,55], + 977.071, + 977.071 + ], + [ + 11.3046875, + 11.3046875, + 10.107880592346191, + 10.107880592346191, + 7.5900780342001255, + 7.5900780342001255, + 47027, + 47027, + 572691000000, + 572691000000, + [48,55,48,57,54], + [48,55,48,57,54], + 840.721, + 840.721 + ], + [ + 10.21875, + 10.21875, + 11.309550285339355, + 11.309550285339355, + 8.843652339734668, + 8.843652339734668, + 18517, + 18517, + 897302000000, + 897302000000, + [49,57,48,53,57], + [49,57,48,53,57], + 908.712, + 908.712 + ], + [ + 9.5859375, + 9.5859375, + 8.397740364074707, + 8.397740364074707, + 9.70622107984787, + 9.70622107984787, + 17119, + 17119, + 91102000000, + 91102000000, + [49,49,55,55,50], + [49,49,55,55,50], + 1022.679, + 1022.679 + ], + [ + 11.109375, + 11.109375, + 8.748353004455566, + 8.748353004455566, + 8.92786697857314, + 8.92786697857314, + 56217, + 56217, + 880380000000, + 880380000000, + [48,49,52,51,54], + [48,49,52,51,54], + 1131.901, + 1131.901 + ], + [ + 10.4296875, + 10.4296875, + 8.398721694946289, + 8.398721694946289, + 10.714396482630658, + 10.714396482630658, + 31944, + 31944, + 415046000000, + 415046000000, + [48,56,50,48,50], + [48,56,50,48,50], + 1280.921, + 1280.921 + ], + [ + 11.5390625, + 11.5390625, + 9.205863952636719, + 9.205863952636719, + 11.997296530747994, + 11.997296530747994, + 10189, + 10189, + 536200000000, + 536200000000, + [48,50,55,53,53], + [48,50,55,53,53], + 941.341, + 941.341 + ], + [ + 10.1796875, + 10.1796875, + 10.43963623046875, + 10.43963623046875, + 8.823385280570697, + 8.823385280570697, + 42714, + 42714, + 165404000000, + 165404000000, + [49,56,56,50,53], + [49,56,56,50,53], + 1143.53, + 1143.53 + ], + [ + 8.7734375, + 8.7734375, + 10.524188041687012, + 10.524188041687012, + 9.162536595914807, + 9.162536595914807, + 65292, + 65292, + 621792000000, + 621792000000, + [48,54,48,56,57], + [48,54,48,56,57], + 1024.375, + 1024.375 + ], + [ + 8.6328125, + 8.6328125, + 10.276273727416992, + 10.276273727416992, + 10.23544836830993, + 10.23544836830993, + 31894, + 31894, + 182353000000, + 182353000000, + [48,52,52,52,55], + [48,52,52,52,55], + 984.875, + 984.875 + ], + [ + 11.6484375, + 11.6484375, + 8.587234497070312, + 8.587234497070312, + 11.61111614849962, + 11.61111614849962, + 95534, + 95534, + 273187000000, + 273187000000, + [49,49,48,53,55], + [49,49,48,53,55], + 1043.259, + 1043.259 + ], + [ + 11.7265625, + 11.7265625, + 7.689896583557129, + 7.689896583557129, + 8.777625687460096, + 8.777625687460096, + 77954, + 77954, + 721612000000, + 721612000000, + [48,56,53,48,51], + [48,56,53,48,51], + 1006.192, + 1006.192 + ], + [ + 9.8203125, + 9.8203125, + 10.054353713989258, + 10.054353713989258, + 10.249036122306942, + 10.249036122306942, + 51273, + 51273, + 50519000000, + 50519000000, + [48,49,57,51,57], + [48,49,57,51,57], + 1011.0400000000001, + 1011.0400000000001 + ], + [ + 9.6171875, + 9.6171875, + 9.528223991394043, + 9.528223991394043, + 11.82129885081311, + 11.82129885081311, + 93465, + 93465, + 447181000000, + 447181000000, + [49,54,51,50,57], + [49,54,51,50,57], + 959.167, + 959.167 + ], + [ + 11.4609375, + 11.4609375, + 10.459385871887207, + 10.459385871887207, + 8.348240851820734, + 8.348240851820734, + 43297, + 43297, + 594567000000, + 594567000000, + [49,54,57,49,53], + [49,54,57,49,53], + 860.189, + 860.189 + ], + [ + 8.890625, + 8.890625, + 10.701953887939453, + 10.701953887939453, + 8.718930793154168, + 8.718930793154168, + 13966, + 13966, + 132028000000, + 132028000000, + [49,52,56,53,57], + [49,52,56,53,57], + 845.6370000000001, + 845.6370000000001 + ], + [ + 9.1015625, + 9.1015625, + 10.1382417678833, + 10.1382417678833, + 9.576393393539162, + 9.576393393539162, + 3584, + 3584, + 294755000000, + 294755000000, + [49,50,51,51,53], + [49,50,51,51,53], + 1065.324, + 1065.324 + ], + [ + 10.640625, + 10.640625, + 10.760132789611816, + 10.760132789611816, + 9.47941158714459, + 9.47941158714459, + 93802, + 93802, + 343501000000, + 343501000000, + [48,56,48,53,49], + [48,56,48,53,49], + 972.33, + 972.33 + ], + [ + 9.6015625, + 9.6015625, + 10.229211807250977, + 10.229211807250977, + 10.812601287753644, + 10.812601287753644, + 95977, + 95977, + 663621000000, + 663621000000, + [49,48,56,52,55], + [49,48,56,52,55], + 940.3910000000001, + 940.3910000000001 + ], + [ + 9.9921875, + 9.9921875, + 10.530064582824707, + 10.530064582824707, + 10.241659719820838, + 10.241659719820838, + 73925, + 73925, + 976709000000, + 976709000000, + [49,48,52,49,57], + [49,48,52,49,57], + 1000.851, + 1000.851 + ], + [ + 9.8359375, + 9.8359375, + 9.295327186584473, + 9.295327186584473, + 8.225037940357872, + 8.225037940357872, + 10300, + 10300, + 836245000000, + 836245000000, + [48,51,51,48,54], + [48,51,51,48,54], + 1079.493, + 1079.493 + ] +] diff --git a/test/files/byte_stream_split_extended.gzip.metadata.json b/test/files/byte_stream_split_extended.gzip.metadata.json new file mode 100644 index 0000000..bae719f --- /dev/null +++ b/test/files/byte_stream_split_extended.gzip.metadata.json @@ -0,0 +1,636 @@ +{ + "version": 2, + "schema": [ + { + "repetition_type": "REQUIRED", + "name": "schema", + "num_children": 14 + }, + { + "type": "FIXED_LEN_BYTE_ARRAY", + "type_length": 2, + "repetition_type": "OPTIONAL", + "name": "float16_plain", + "logical_type": { + "type": "FLOAT16" + } + }, + { + "type": "FIXED_LEN_BYTE_ARRAY", + "type_length": 2, + "repetition_type": "OPTIONAL", + "name": "float16_byte_stream_split", + "logical_type": { + "type": "FLOAT16" + } + }, + { + "type": "FLOAT", + "repetition_type": "OPTIONAL", + "name": "float_plain" + }, + { + "type": "FLOAT", + "repetition_type": "OPTIONAL", + "name": "float_byte_stream_split" + }, + { + "type": "DOUBLE", + "repetition_type": "OPTIONAL", + "name": "double_plain" + }, + { + "type": "DOUBLE", + "repetition_type": "OPTIONAL", + "name": "double_byte_stream_split" + }, + { + "type": "INT32", + "repetition_type": "OPTIONAL", + "name": "int32_plain" + }, + { + "type": "INT32", + "repetition_type": "OPTIONAL", + "name": "int32_byte_stream_split" + }, + { + "type": "INT64", + "repetition_type": "OPTIONAL", + "name": "int64_plain" + }, + { + "type": "INT64", + "repetition_type": "OPTIONAL", + "name": "int64_byte_stream_split" + }, + { + "type": "FIXED_LEN_BYTE_ARRAY", + "type_length": 5, + "repetition_type": "OPTIONAL", + "name": "flba5_plain" + }, + { + "type": "FIXED_LEN_BYTE_ARRAY", + "type_length": 5, + "repetition_type": "OPTIONAL", + "name": "flba5_byte_stream_split" + }, + { + "type": "FIXED_LEN_BYTE_ARRAY", + "type_length": 4, + "repetition_type": "OPTIONAL", + "name": "decimal_plain", + "converted_type": "DECIMAL", + "scale": 3, + "precision": 7, + "logical_type": { + "type": "DECIMAL", + "scale": 3, + "precision": 7 + } + }, + { + "type": "FIXED_LEN_BYTE_ARRAY", + "type_length": 4, + "repetition_type": "OPTIONAL", + "name": "decimal_byte_stream_split", + "converted_type": "DECIMAL", + "scale": 3, + "precision": 7, + "logical_type": { + "type": "DECIMAL", + "scale": 3, + "precision": 7 + } + } + ], + "num_rows": 200, + "row_groups": [ + { + "columns": [ + { + "file_offset": 411, + "meta_data": { + "type": "FIXED_LEN_BYTE_ARRAY", + "encodings": [ + "RLE", + "PLAIN" + ], + "path_in_schema": [ + "float16_plain" + ], + "codec": "GZIP", + "num_values": 200, + "total_uncompressed_size": 447, + "total_compressed_size": 407, + "data_page_offset": 4, + "statistics": { + "max": 12.9140625, + "min": 7.8671875, + "null_count": 0, + "max_value": 12.9140625, + "min_value": 7.8671875 + }, + "encoding_stats": [ + { + "page_type": 0, + "encoding": "PLAIN", + "count": 1 + } + ] + } + }, + { + "file_offset": 834, + "meta_data": { + "type": "FIXED_LEN_BYTE_ARRAY", + "encodings": [ + "RLE", + "BYTE_STREAM_SPLIT" + ], + "path_in_schema": [ + "float16_byte_stream_split" + ], + "codec": "GZIP", + "num_values": 200, + "total_uncompressed_size": 447, + "total_compressed_size": 353, + "data_page_offset": 481, + "statistics": { + "max": 12.9140625, + "min": 7.8671875, + "null_count": 0, + "max_value": 12.9140625, + "min_value": 7.8671875 + }, + "encoding_stats": [ + { + "page_type": 0, + "encoding": "BYTE_STREAM_SPLIT", + "count": 1 + } + ] + } + }, + { + "file_offset": 1719, + "meta_data": { + "type": "FLOAT", + "encodings": [ + "RLE", + "PLAIN" + ], + "path_in_schema": [ + "float_plain" + ], + "codec": "GZIP", + "num_values": 200, + "total_uncompressed_size": 855, + "total_compressed_size": 802, + "data_page_offset": 917, + "statistics": { + "max": 12.905067443847656, + "min": 7.4333415031433105, + "null_count": 0, + "max_value": 12.905067443847656, + "min_value": 7.4333415031433105 + }, + "encoding_stats": [ + { + "page_type": 0, + "encoding": "PLAIN", + "count": 1 + } + ] + } + }, + { + "file_offset": 2509, + "meta_data": { + "type": "FLOAT", + "encodings": [ + "RLE", + "BYTE_STREAM_SPLIT" + ], + "path_in_schema": [ + "float_byte_stream_split" + ], + "codec": "GZIP", + "num_values": 200, + "total_uncompressed_size": 855, + "total_compressed_size": 713, + "data_page_offset": 1796, + "statistics": { + "max": 12.905067443847656, + "min": 7.4333415031433105, + "null_count": 0, + "max_value": 12.905067443847656, + "min_value": 7.4333415031433105 + }, + "encoding_stats": [ + { + "page_type": 0, + "encoding": "BYTE_STREAM_SPLIT", + "count": 1 + } + ] + } + }, + { + "file_offset": 4223, + "meta_data": { + "type": "DOUBLE", + "encodings": [ + "RLE", + "PLAIN" + ], + "path_in_schema": [ + "double_plain" + ], + "codec": "GZIP", + "num_values": 200, + "total_uncompressed_size": 1671, + "total_compressed_size": 1625, + "data_page_offset": 2598, + "statistics": { + "max": 12.597673726595833, + "min": 7.035471162158348, + "null_count": 0, + "max_value": 12.597673726595833, + "min_value": 7.035471162158348 + }, + "encoding_stats": [ + { + "page_type": 0, + "encoding": "PLAIN", + "count": 1 + } + ] + } + }, + { + "file_offset": 5821, + "meta_data": { + "type": "DOUBLE", + "encodings": [ + "RLE", + "BYTE_STREAM_SPLIT" + ], + "path_in_schema": [ + "double_byte_stream_split" + ], + "codec": "GZIP", + "num_values": 200, + "total_uncompressed_size": 1671, + "total_compressed_size": 1504, + "data_page_offset": 4317, + "statistics": { + "max": 12.597673726595833, + "min": 7.035471162158348, + "null_count": 0, + "max_value": 12.597673726595833, + "min_value": 7.035471162158348 + }, + "encoding_stats": [ + { + "page_type": 0, + "encoding": "BYTE_STREAM_SPLIT", + "count": 1 + } + ] + } + }, + { + "file_offset": 6608, + "meta_data": { + "type": "INT32", + "encodings": [ + "RLE", + "PLAIN" + ], + "path_in_schema": [ + "int32_plain" + ], + "codec": "GZIP", + "num_values": 200, + "total_uncompressed_size": 855, + "total_compressed_size": 681, + "data_page_offset": 5927, + "statistics": { + "max": 99874, + "min": 153, + "null_count": 0, + "max_value": 99874, + "min_value": 153 + }, + "encoding_stats": [ + { + "page_type": 0, + "encoding": "PLAIN", + "count": 1 + } + ] + } + }, + { + "file_offset": 7242, + "meta_data": { + "type": "INT32", + "encodings": [ + "RLE", + "BYTE_STREAM_SPLIT" + ], + "path_in_schema": [ + "int32_byte_stream_split" + ], + "codec": "GZIP", + "num_values": 200, + "total_uncompressed_size": 855, + "total_compressed_size": 557, + "data_page_offset": 6685, + "statistics": { + "max": 99874, + "min": 153, + "null_count": 0, + "max_value": 99874, + "min_value": 153 + }, + "encoding_stats": [ + { + "page_type": 0, + "encoding": "BYTE_STREAM_SPLIT", + "count": 1 + } + ] + } + }, + { + "file_offset": 8567, + "meta_data": { + "type": "INT64", + "encodings": [ + "RLE", + "PLAIN" + ], + "path_in_schema": [ + "int64_plain" + ], + "codec": "GZIP", + "num_values": 200, + "total_uncompressed_size": 1671, + "total_compressed_size": 1236, + "data_page_offset": 7331, + "statistics": { + "max": 995183000000, + "min": 1233000000, + "null_count": 0, + "max_value": 995183000000, + "min_value": 1233000000 + }, + "encoding_stats": [ + { + "page_type": 0, + "encoding": "PLAIN", + "count": 1 + } + ] + } + }, + { + "file_offset": 9719, + "meta_data": { + "type": "INT64", + "encodings": [ + "RLE", + "BYTE_STREAM_SPLIT" + ], + "path_in_schema": [ + "int64_byte_stream_split" + ], + "codec": "GZIP", + "num_values": 200, + "total_uncompressed_size": 1671, + "total_compressed_size": 1058, + "data_page_offset": 8661, + "statistics": { + "max": 995183000000, + "min": 1233000000, + "null_count": 0, + "max_value": 995183000000, + "min_value": 1233000000 + }, + "encoding_stats": [ + { + "page_type": 0, + "encoding": "BYTE_STREAM_SPLIT", + "count": 1 + } + ] + } + }, + { + "file_offset": 10388, + "meta_data": { + "type": "FIXED_LEN_BYTE_ARRAY", + "encodings": [ + "RLE", + "PLAIN" + ], + "path_in_schema": [ + "flba5_plain" + ], + "codec": "GZIP", + "num_values": 200, + "total_uncompressed_size": 1045, + "total_compressed_size": 562, + "data_page_offset": 9826, + "statistics": { + "null_count": 0, + "max_value": [ + 49, + 57, + 55, + 54, + 48 + ], + "min_value": [ + 48, + 48, + 48, + 54, + 52 + ] + }, + "encoding_stats": [ + { + "page_type": 0, + "encoding": "PLAIN", + "count": 1 + } + ] + } + }, + { + "file_offset": 10984, + "meta_data": { + "type": "FIXED_LEN_BYTE_ARRAY", + "encodings": [ + "RLE", + "BYTE_STREAM_SPLIT" + ], + "path_in_schema": [ + "flba5_byte_stream_split" + ], + "codec": "GZIP", + "num_values": 200, + "total_uncompressed_size": 1045, + "total_compressed_size": 527, + "data_page_offset": 10457, + "statistics": { + "null_count": 0, + "max_value": [ + 49, + 57, + 55, + 54, + 48 + ], + "min_value": [ + 48, + 48, + 48, + 54, + 52 + ] + }, + "encoding_stats": [ + { + "page_type": 0, + "encoding": "BYTE_STREAM_SPLIT", + "count": 1 + } + ] + } + }, + { + "file_offset": 11801, + "meta_data": { + "type": "FIXED_LEN_BYTE_ARRAY", + "encodings": [ + "RLE", + "PLAIN" + ], + "path_in_schema": [ + "decimal_plain" + ], + "codec": "GZIP", + "num_values": 200, + "total_uncompressed_size": 855, + "total_compressed_size": 736, + "data_page_offset": 11065, + "statistics": { + "max": [ + 0, + 19, + 139, + 153 + ], + "min": [ + 0, + 9, + 177, + 23 + ], + "null_count": 0, + "max_value": [ + 0, + 19, + 139, + 153 + ], + "min_value": [ + 0, + 9, + 177, + 23 + ] + }, + "encoding_stats": [ + { + "page_type": 0, + "encoding": "PLAIN", + "count": 1 + } + ] + } + }, + { + "file_offset": 12525, + "meta_data": { + "type": "FIXED_LEN_BYTE_ARRAY", + "encodings": [ + "RLE", + "BYTE_STREAM_SPLIT" + ], + "path_in_schema": [ + "decimal_byte_stream_split" + ], + "codec": "GZIP", + "num_values": 200, + "total_uncompressed_size": 855, + "total_compressed_size": 643, + "data_page_offset": 11882, + "statistics": { + "max": [ + 0, + 19, + 139, + 153 + ], + "min": [ + 0, + 9, + 177, + 23 + ], + "null_count": 0, + "max_value": [ + 0, + 19, + 139, + 153 + ], + "min_value": [ + 0, + 9, + 177, + 23 + ] + }, + "encoding_stats": [ + { + "page_type": 0, + "encoding": "BYTE_STREAM_SPLIT", + "count": 1 + } + ] + } + } + ], + "total_byte_size": 14798, + "num_rows": 200, + "file_offset": 4, + "total_compressed_size": 11404, + "ordinal": 0 + } + ], + "key_value_metadata": [ + { + "key": "ARROW:schema", + "value": "/////7gDAAAQAAAAAAAKAAwABgAFAAgACgAAAAABBAAMAAAACAAIAAAABAAIAAAABAAAAA4AAABUAwAABAMAAMgCAACIAgAAUAIAAAwCAADMAQAAiAEAAFABAAAMAQAA0AAAAJAAAABMAAAABAAAAPT8//8AAAEHEAAAACwAAAAEAAAAAAAAABkAAABkZWNpbWFsX2J5dGVfc3RyZWFtX3NwbGl0AAAAyP///wcAAAADAAAAOP3//wAAAQcQAAAAKAAAAAQAAAAAAAAADQAAAGRlY2ltYWxfcGxhaW4AAAAIAAwABAAIAAgAAAAHAAAAAwAAAHj9//8AAAEPEAAAACgAAAAEAAAAAAAAABcAAABmbGJhNV9ieXRlX3N0cmVhbV9zcGxpdADO////BQAAALT9//8AAAEPEAAAACQAAAAEAAAAAAAAAAsAAABmbGJhNV9wbGFpbgAAAAYACAAEAAYAAAAFAAAA7P3//wAAAQIQAAAAKAAAAAQAAAAAAAAAFwAAAGludDY0X2J5dGVfc3RyZWFtX3NwbGl0AFj///8AAAABQAAAACz+//8AAAECEAAAABwAAAAEAAAAAAAAAAsAAABpbnQ2NF9wbGFpbgCM////AAAAAUAAAABg/v//AAABAhAAAAAoAAAABAAAAAAAAAAXAAAAaW50MzJfYnl0ZV9zdHJlYW1fc3BsaXQAzP///wAAAAEgAAAAoP7//wAAAQIQAAAAJAAAAAQAAAAAAAAACwAAAGludDMyX3BsYWluAAgADAAIAAcACAAAAAAAAAEgAAAA3P7//wAAAQMQAAAALAAAAAQAAAAAAAAAGAAAAGRvdWJsZV9ieXRlX3N0cmVhbV9zcGxpdAAAAABe////AAACABz///8AAAEDEAAAACAAAAAEAAAAAAAAAAwAAABkb3VibGVfcGxhaW4AAAAAkv///wAAAgBQ////AAABAxAAAAAoAAAABAAAAAAAAAAXAAAAZmxvYXRfYnl0ZV9zdHJlYW1fc3BsaXQAzv///wAAAQCM////AAABAxAAAAAkAAAABAAAAAAAAAALAAAAZmxvYXRfcGxhaW4AAAAGAAgABgAGAAAAAAABAMT///8AAAEDEAAAACwAAAAEAAAAAAAAABkAAABmbG9hdDE2X2J5dGVfc3RyZWFtX3NwbGl0AAAAwP///xAAFAAIAAYABwAMAAAAEAAQAAAAAAABAxAAAAAkAAAABAAAAAAAAAANAAAAZmxvYXQxNl9wbGFpbgAAAAQABAAEAAAA" + } + ], + "created_by": "parquet-cpp-arrow version 16.0.0-SNAPSHOT", + "metadata_length": 3033 +} diff --git a/test/files/byte_stream_split_extended.gzip.parquet b/test/files/byte_stream_split_extended.gzip.parquet new file mode 100644 index 0000000..41f286f Binary files /dev/null and b/test/files/byte_stream_split_extended.gzip.parquet differ