mirror of
https://github.com/asadbek064/hyparquet.git
synced 2025-12-06 06:51:54 +00:00
Handle top level repeated from duckdb#2557 🦆
This commit is contained in:
parent
d92cc5fd22
commit
af7bab33f8
@ -49,7 +49,10 @@ export function assembleLists(
|
||||
currentContainer = containerStack.at(-1)
|
||||
|
||||
// Go deeper to end of definition level
|
||||
while (currentDepth < repetitionPath.length - 2 && (currentDefLevel < def || repetitionPath[currentDepth + 1] === 'REQUIRED')) {
|
||||
while (
|
||||
(currentDepth < repetitionPath.length - 2 || repetitionPath[currentDepth + 1] === 'REPEATED') &&
|
||||
(currentDefLevel < def || repetitionPath[currentDepth + 1] === 'REQUIRED')
|
||||
) {
|
||||
currentDepth++
|
||||
if (repetitionPath[currentDepth] !== 'REQUIRED') {
|
||||
/** @type {any[]} */
|
||||
|
||||
502
test/files/duckdb2557.json
Normal file
502
test/files/duckdb2557.json
Normal file
@ -0,0 +1,502 @@
|
||||
[
|
||||
[
|
||||
["adipiscing","elit"],
|
||||
[267],
|
||||
null
|
||||
],
|
||||
[
|
||||
["adipiscing","elit"],
|
||||
[58,146],
|
||||
[3105.7357307755087,7332.144961207942,2693.4596589664648,2058.8303474455493]
|
||||
],
|
||||
[
|
||||
["dolor","sit","amet","consectetur","adipiscing","elit"],
|
||||
[26,701],
|
||||
[2252.3150410275202]
|
||||
],
|
||||
[
|
||||
["Lorem","ipsum","dolor","sit","amet","consectetur","adipiscing","elit"],
|
||||
[763],
|
||||
[4318.131164063701,703.3323215551796]
|
||||
],
|
||||
[
|
||||
["consectetur","adipiscing","elit"],
|
||||
null,
|
||||
[4921.065813194329]
|
||||
],
|
||||
[
|
||||
["ipsum","dolor","sit","amet","consectetur","adipiscing","elit"],
|
||||
[503],
|
||||
[3143.3117237229058]
|
||||
],
|
||||
[
|
||||
["amet","consectetur","adipiscing","elit"],
|
||||
[981],
|
||||
[1556.8447821660177,5388.780545775566]
|
||||
],
|
||||
[
|
||||
["consectetur","adipiscing","elit"],
|
||||
[822,843,702,469],
|
||||
null
|
||||
],
|
||||
[
|
||||
["dolor","sit","amet","consectetur","adipiscing","elit"],
|
||||
[698,385],
|
||||
[3591.160509216094]
|
||||
],
|
||||
[
|
||||
["Lorem","ipsum","dolor","sit","amet","consectetur","adipiscing","elit"],
|
||||
[597,719],
|
||||
[1218.8037401553586]
|
||||
],
|
||||
[
|
||||
["consectetur","adipiscing","elit"],
|
||||
[982,61,421],
|
||||
[3340.170661764955]
|
||||
],
|
||||
[
|
||||
["amet","consectetur","adipiscing","elit"],
|
||||
[755,871,74],
|
||||
[1501.3693785848154,422.14793963826895,5024.141281463876,6237.271801038096]
|
||||
],
|
||||
[
|
||||
["dolor","sit","amet","consectetur","adipiscing","elit"],
|
||||
[211],
|
||||
[4786.395338954335,1496.226058736663,6779.587474868914]
|
||||
],
|
||||
[
|
||||
["dolor","sit","amet","consectetur","adipiscing","elit"],
|
||||
[315,936],
|
||||
null
|
||||
],
|
||||
[
|
||||
["consectetur","adipiscing","elit"],
|
||||
[844,175,911,241],
|
||||
null
|
||||
],
|
||||
[
|
||||
["adipiscing","elit"],
|
||||
[47,435,911,139],
|
||||
[2441.714990790491,2271.880165736814,5973.072651226163]
|
||||
],
|
||||
[
|
||||
["sit","amet","consectetur","adipiscing","elit"],
|
||||
[423],
|
||||
[9570.98997705378,3552.7055353566743,5578.739767267185,5553.47138198093]
|
||||
],
|
||||
[
|
||||
["dolor","sit","amet","consectetur","adipiscing","elit"],
|
||||
null,
|
||||
[7888.953864907877]
|
||||
],
|
||||
[
|
||||
["elit"],
|
||||
[989,708],
|
||||
[8329.09939011241,3308.3460598640904,5222.748347325276,8592.378127392156]
|
||||
],
|
||||
[
|
||||
["adipiscing","elit"],
|
||||
[17,940],
|
||||
null
|
||||
],
|
||||
[
|
||||
["Lorem","ipsum","dolor","sit","amet","consectetur","adipiscing","elit"],
|
||||
[150,457,406,128],
|
||||
null
|
||||
],
|
||||
[
|
||||
["Lorem","ipsum","dolor","sit","amet","consectetur","adipiscing","elit"],
|
||||
[562,980,810],
|
||||
[9313.463136275077]
|
||||
],
|
||||
[
|
||||
["amet","consectetur","adipiscing","elit"],
|
||||
[934,565],
|
||||
[4726.017684669396,915.9554253555252,43.23578448203644]
|
||||
],
|
||||
[
|
||||
["amet","consectetur","adipiscing","elit"],
|
||||
null,
|
||||
[5480.171753257772,8836.074587570927]
|
||||
],
|
||||
[
|
||||
["consectetur","adipiscing","elit"],
|
||||
[224,462,286],
|
||||
[4317.835809902944]
|
||||
],
|
||||
[
|
||||
["amet","consectetur","adipiscing","elit"],
|
||||
[500,909,743,590],
|
||||
[9290.81696266973,7393.76235627646,4353.930925060115,9508.516094740304]
|
||||
],
|
||||
[
|
||||
["adipiscing","elit"],
|
||||
[194,381,324],
|
||||
[647.950302311957]
|
||||
],
|
||||
[
|
||||
["sit","amet","consectetur","adipiscing","elit"],
|
||||
[36,579],
|
||||
[6885.930540160353,5917.361343514306,4548.728302237076]
|
||||
],
|
||||
[
|
||||
["dolor","sit","amet","consectetur","adipiscing","elit"],
|
||||
[991,987,308],
|
||||
[2266.123776139482,7305.037486237143,9191.592087337953,6673.36239870585]
|
||||
],
|
||||
[
|
||||
["consectetur","adipiscing","elit"],
|
||||
null,
|
||||
[2464.480077569758,8697.46909254981]
|
||||
],
|
||||
[
|
||||
["elit"],
|
||||
[840,349],
|
||||
[5121.80139067144,946.8387655923967,3432.1676015554935]
|
||||
],
|
||||
[
|
||||
["Lorem","ipsum","dolor","sit","amet","consectetur","adipiscing","elit"],
|
||||
[3,794,11],
|
||||
null
|
||||
],
|
||||
[
|
||||
["amet","consectetur","adipiscing","elit"],
|
||||
[198,803,153,587],
|
||||
[3070.004665972744,5480.698857029653,1148.961165054546,9768.062749170045]
|
||||
],
|
||||
[
|
||||
["Lorem","ipsum","dolor","sit","amet","consectetur","adipiscing","elit"],
|
||||
null,
|
||||
null
|
||||
],
|
||||
[
|
||||
["Lorem","ipsum","dolor","sit","amet","consectetur","adipiscing","elit"],
|
||||
[437,512,307],
|
||||
[5972.458856658998,6845.457547027043]
|
||||
],
|
||||
[
|
||||
["elit"],
|
||||
[178,534,960],
|
||||
[2721.449073524091,8461.352080454199,2583.2797872288115,7712.395605491593]
|
||||
],
|
||||
[
|
||||
["sit","amet","consectetur","adipiscing","elit"],
|
||||
null,
|
||||
[5269.5337341809945,6144.28443776808,3284.873639079399,5904.365808300479]
|
||||
],
|
||||
[
|
||||
["adipiscing","elit"],
|
||||
[330,897,939,953],
|
||||
[3496.179648030784,8192.087649092551,7517.135901762508,7393.634782817085]
|
||||
],
|
||||
[
|
||||
["ipsum","dolor","sit","amet","consectetur","adipiscing","elit"],
|
||||
[117],
|
||||
[6812.592153780877,9995.317895016125,7743.313278458503]
|
||||
],
|
||||
[
|
||||
["elit"],
|
||||
null,
|
||||
null
|
||||
],
|
||||
[
|
||||
["sit","amet","consectetur","adipiscing","elit"],
|
||||
[160,58],
|
||||
[7678.085059607664,6539.924624358436]
|
||||
],
|
||||
[
|
||||
["sit","amet","consectetur","adipiscing","elit"],
|
||||
[912,577],
|
||||
[4619.958927937337,6038.533932343868,5773.6529333645,3733.3680753703707]
|
||||
],
|
||||
[
|
||||
["ipsum","dolor","sit","amet","consectetur","adipiscing","elit"],
|
||||
[327,634],
|
||||
[5889.477126190288,9561.750382454742,1879.139746783595]
|
||||
],
|
||||
[
|
||||
["ipsum","dolor","sit","amet","consectetur","adipiscing","elit"],
|
||||
[689,573,154],
|
||||
null
|
||||
],
|
||||
[
|
||||
["Lorem","ipsum","dolor","sit","amet","consectetur","adipiscing","elit"],
|
||||
[243],
|
||||
[8367.528047322694,3549.7693351040607,4839.1473151311475]
|
||||
],
|
||||
[
|
||||
["sit","amet","consectetur","adipiscing","elit"],
|
||||
[605],
|
||||
null
|
||||
],
|
||||
[
|
||||
["elit"],
|
||||
[112,386],
|
||||
[1498.5598914421823,3543.2882763573275,9012.492304553425]
|
||||
],
|
||||
[
|
||||
["adipiscing","elit"],
|
||||
[930,794,556],
|
||||
[6047.020269076377,408.94005261710765]
|
||||
],
|
||||
[
|
||||
["consectetur","adipiscing","elit"],
|
||||
[17,88,67,644],
|
||||
[4895.379151378348,4367.513870792818]
|
||||
],
|
||||
[
|
||||
["Lorem","ipsum","dolor","sit","amet","consectetur","adipiscing","elit"],
|
||||
[383,913,353],
|
||||
[4670.973882056124,9942.983668528092,6566.851385809874,598.7621764005469]
|
||||
],
|
||||
[
|
||||
["sit","amet","consectetur","adipiscing","elit"],
|
||||
[901,650,656],
|
||||
[6250.305851205317,2810.3723884937854,9011.871765756341,1549.2422033034238]
|
||||
],
|
||||
[
|
||||
["Lorem","ipsum","dolor","sit","amet","consectetur","adipiscing","elit"],
|
||||
null,
|
||||
[4125.175201983808,1696.1916192518433,7171.897025370562]
|
||||
],
|
||||
[
|
||||
["dolor","sit","amet","consectetur","adipiscing","elit"],
|
||||
[533,132,478,258],
|
||||
null
|
||||
],
|
||||
[
|
||||
["ipsum","dolor","sit","amet","consectetur","adipiscing","elit"],
|
||||
[91,994,707,492],
|
||||
[5990.85669667847,7696.302079435442]
|
||||
],
|
||||
[
|
||||
["elit"],
|
||||
[844],
|
||||
[3897.439630516024,3361.9126261341476,3044.4396230158686,3568.6693921816473]
|
||||
],
|
||||
[
|
||||
["amet","consectetur","adipiscing","elit"],
|
||||
[998,812,607],
|
||||
[7445.490550294864,149.58593241554266,7273.297118952501,4475.322175038508]
|
||||
],
|
||||
[
|
||||
["adipiscing","elit"],
|
||||
[970],
|
||||
null
|
||||
],
|
||||
[
|
||||
["adipiscing","elit"],
|
||||
[417,93,831,239],
|
||||
[5334.980793738933]
|
||||
],
|
||||
[
|
||||
["Lorem","ipsum","dolor","sit","amet","consectetur","adipiscing","elit"],
|
||||
[531],
|
||||
null
|
||||
],
|
||||
[
|
||||
["Lorem","ipsum","dolor","sit","amet","consectetur","adipiscing","elit"],
|
||||
[136,454,647,548],
|
||||
[3077.3392305678976,3282.994362444506,5615.484087460349]
|
||||
],
|
||||
[
|
||||
["Lorem","ipsum","dolor","sit","amet","consectetur","adipiscing","elit"],
|
||||
null,
|
||||
[682.3737905128879,3021.2450897276713,3922.2218598695717,6382.788491011993]
|
||||
],
|
||||
[
|
||||
["elit"],
|
||||
[355,88],
|
||||
[9682.360811914446,602.7431101350196,2684.1004577653393,8782.542226659194]
|
||||
],
|
||||
[
|
||||
["consectetur","adipiscing","elit"],
|
||||
[629,761,789,986],
|
||||
[5251.1906293895745,5251.405751079003,6630.454545816088,4905.487033906431]
|
||||
],
|
||||
[
|
||||
["sit","amet","consectetur","adipiscing","elit"],
|
||||
[805,223,377,716],
|
||||
[1451.5808348010034,5523.483513273464]
|
||||
],
|
||||
[
|
||||
["Lorem","ipsum","dolor","sit","amet","consectetur","adipiscing","elit"],
|
||||
null,
|
||||
[1882.1189849132475,7050.232591848215,6808.016315248813]
|
||||
],
|
||||
[
|
||||
["consectetur","adipiscing","elit"],
|
||||
[337,290],
|
||||
[7217.2520157941335,895.6717735572475,1325.0868250721135]
|
||||
],
|
||||
[
|
||||
["elit"],
|
||||
[828,20,434,104],
|
||||
[2923.6903455939873,5637.36807908733,2944.3389848562906,3543.9481597338477]
|
||||
],
|
||||
[
|
||||
["sit","amet","consectetur","adipiscing","elit"],
|
||||
null,
|
||||
[267.2495106375208,3087.341650241528,9858.741302383121]
|
||||
],
|
||||
[
|
||||
["ipsum","dolor","sit","amet","consectetur","adipiscing","elit"],
|
||||
[92],
|
||||
[3063.9841438239237]
|
||||
],
|
||||
[
|
||||
["adipiscing","elit"],
|
||||
[780,356,177,783],
|
||||
[5033.837904885062]
|
||||
],
|
||||
[
|
||||
["adipiscing","elit"],
|
||||
[672,527],
|
||||
[8821.83264234605,5579.802523534555,3500.2512473704664,5880.503553442674]
|
||||
],
|
||||
[
|
||||
["elit"],
|
||||
[235],
|
||||
[3230.27633188766]
|
||||
],
|
||||
[
|
||||
["amet","consectetur","adipiscing","elit"],
|
||||
[362],
|
||||
[9738.047844761331]
|
||||
],
|
||||
[
|
||||
["amet","consectetur","adipiscing","elit"],
|
||||
[341,101,341],
|
||||
null
|
||||
],
|
||||
[
|
||||
["ipsum","dolor","sit","amet","consectetur","adipiscing","elit"],
|
||||
[362,174],
|
||||
[2792.2996177048203,2666.952450305537]
|
||||
],
|
||||
[
|
||||
["consectetur","adipiscing","elit"],
|
||||
[946,496],
|
||||
[481.38726845186375]
|
||||
],
|
||||
[
|
||||
["elit"],
|
||||
[305,108],
|
||||
[5099.123113081872,5839.2964468180935,2468.42273496024,9903.152610040035]
|
||||
],
|
||||
[
|
||||
["sit","amet","consectetur","adipiscing","elit"],
|
||||
[711,710],
|
||||
null
|
||||
],
|
||||
[
|
||||
["adipiscing","elit"],
|
||||
[618,240,426],
|
||||
[5852.928755649495,998.3541856358428]
|
||||
],
|
||||
[
|
||||
["Lorem","ipsum","dolor","sit","amet","consectetur","adipiscing","elit"],
|
||||
[356,811],
|
||||
null
|
||||
],
|
||||
[
|
||||
["adipiscing","elit"],
|
||||
[62,952],
|
||||
[469.02139625265846,8025.423231510394,7390.735678118863,8817.788129733082]
|
||||
],
|
||||
[
|
||||
["Lorem","ipsum","dolor","sit","amet","consectetur","adipiscing","elit"],
|
||||
[716,347,577,65],
|
||||
null
|
||||
],
|
||||
[
|
||||
["sit","amet","consectetur","adipiscing","elit"],
|
||||
[269,496],
|
||||
[8238.480884176539,6226.275986271456]
|
||||
],
|
||||
[
|
||||
["adipiscing","elit"],
|
||||
[321,4],
|
||||
[7760.885932310369,1012.6424901267686,8042.562421074255,3128.0840479746207]
|
||||
],
|
||||
[
|
||||
["adipiscing","elit"],
|
||||
[349,298],
|
||||
null
|
||||
],
|
||||
[
|
||||
["sit","amet","consectetur","adipiscing","elit"],
|
||||
[301,32],
|
||||
[8304.31871764813,375.28234034370615,8513.262037880933,8573.798838034425]
|
||||
],
|
||||
[
|
||||
["dolor","sit","amet","consectetur","adipiscing","elit"],
|
||||
[480,325,546],
|
||||
[9361.738552926725,7936.206856812588]
|
||||
],
|
||||
[
|
||||
["elit"],
|
||||
[420,236,397,232],
|
||||
null
|
||||
],
|
||||
[
|
||||
["amet","consectetur","adipiscing","elit"],
|
||||
[132,946,269,446],
|
||||
[2225.9740143331824]
|
||||
],
|
||||
[
|
||||
["Lorem","ipsum","dolor","sit","amet","consectetur","adipiscing","elit"],
|
||||
[494,231,752],
|
||||
[2649.6845028896682]
|
||||
],
|
||||
[
|
||||
["elit"],
|
||||
[765,811,89,988],
|
||||
[9390.536056348445,2072.754849436884]
|
||||
],
|
||||
[
|
||||
["dolor","sit","amet","consectetur","adipiscing","elit"],
|
||||
[317,351,804,750],
|
||||
[1771.8131458649202,6846.017812163365,9399.01819527325,243.64103179547746]
|
||||
],
|
||||
[
|
||||
["dolor","sit","amet","consectetur","adipiscing","elit"],
|
||||
[906,333,985,944],
|
||||
[5085.78003539902]
|
||||
],
|
||||
[
|
||||
["dolor","sit","amet","consectetur","adipiscing","elit"],
|
||||
[491,324,927,928],
|
||||
null
|
||||
],
|
||||
[
|
||||
["Lorem","ipsum","dolor","sit","amet","consectetur","adipiscing","elit"],
|
||||
[230],
|
||||
null
|
||||
],
|
||||
[
|
||||
["amet","consectetur","adipiscing","elit"],
|
||||
[468],
|
||||
[2434.0862346139543,1631.8833707524257,3720.706865499823,5200.343932621845]
|
||||
],
|
||||
[
|
||||
["sit","amet","consectetur","adipiscing","elit"],
|
||||
[33,406,706],
|
||||
[8530.57558590904]
|
||||
],
|
||||
[
|
||||
["adipiscing","elit"],
|
||||
[181,228],
|
||||
null
|
||||
],
|
||||
[
|
||||
["consectetur","adipiscing","elit"],
|
||||
[560,501,792],
|
||||
[9528.16519708566,5994.038668308305,7634.964147522635]
|
||||
],
|
||||
[
|
||||
["amet","consectetur","adipiscing","elit"],
|
||||
null,
|
||||
[2785.6660943419297,7838.997264980804,8751.793158344097]
|
||||
]
|
||||
]
|
||||
91
test/files/duckdb2557.metadata.json
Normal file
91
test/files/duckdb2557.metadata.json
Normal file
@ -0,0 +1,91 @@
|
||||
{
|
||||
"version": 1,
|
||||
"schema": [
|
||||
{
|
||||
"name": "root",
|
||||
"num_children": 3
|
||||
},
|
||||
{
|
||||
"type": "BYTE_ARRAY",
|
||||
"repetition_type": "REPEATED",
|
||||
"name": "stringArray",
|
||||
"converted_type": "UTF8"
|
||||
},
|
||||
{
|
||||
"type": "INT32",
|
||||
"repetition_type": "REPEATED",
|
||||
"name": "intArray"
|
||||
},
|
||||
{
|
||||
"type": "DOUBLE",
|
||||
"repetition_type": "REPEATED",
|
||||
"name": "doubleArray"
|
||||
}
|
||||
],
|
||||
"num_rows": 100,
|
||||
"row_groups": [
|
||||
{
|
||||
"columns": [
|
||||
{
|
||||
"file_offset": 4802,
|
||||
"meta_data": {
|
||||
"type": "BYTE_ARRAY",
|
||||
"encodings": [
|
||||
"RLE",
|
||||
"PLAIN"
|
||||
],
|
||||
"path_in_schema": [
|
||||
"stringArray"
|
||||
],
|
||||
"codec": "UNCOMPRESSED",
|
||||
"num_values": 449,
|
||||
"total_uncompressed_size": 4798,
|
||||
"total_compressed_size": 4798,
|
||||
"data_page_offset": 4
|
||||
}
|
||||
},
|
||||
{
|
||||
"file_offset": 5874,
|
||||
"meta_data": {
|
||||
"type": "INT32",
|
||||
"encodings": [
|
||||
"RLE",
|
||||
"PLAIN"
|
||||
],
|
||||
"path_in_schema": [
|
||||
"intArray"
|
||||
],
|
||||
"codec": "UNCOMPRESSED",
|
||||
"num_values": 237,
|
||||
"total_uncompressed_size": 1038,
|
||||
"total_compressed_size": 1038,
|
||||
"data_page_offset": 4836
|
||||
}
|
||||
},
|
||||
{
|
||||
"file_offset": 7663,
|
||||
"meta_data": {
|
||||
"type": "DOUBLE",
|
||||
"encodings": [
|
||||
"RLE",
|
||||
"PLAIN"
|
||||
],
|
||||
"path_in_schema": [
|
||||
"doubleArray"
|
||||
],
|
||||
"codec": "UNCOMPRESSED",
|
||||
"num_values": 225,
|
||||
"total_uncompressed_size": 1757,
|
||||
"total_compressed_size": 1757,
|
||||
"data_page_offset": 5906
|
||||
}
|
||||
}
|
||||
],
|
||||
"total_byte_size": 7694,
|
||||
"num_rows": 100
|
||||
}
|
||||
],
|
||||
"key_value_metadata": [],
|
||||
"created_by": "parquet.js",
|
||||
"metadata_length": 211
|
||||
}
|
||||
BIN
test/files/duckdb2557.parquet
Normal file
BIN
test/files/duckdb2557.parquet
Normal file
Binary file not shown.
Loading…
Reference in New Issue
Block a user