@@ -138,7 +138,10 @@ export function parquetMetadata(arrayBuffer, { parsers, geoparquet = true } = {}
138138 num_values : column . field_3 . field_5 ,
139139 total_uncompressed_size : column . field_3 . field_6 ,
140140 total_compressed_size : column . field_3 . field_7 ,
141- key_value_metadata : column . field_3 . field_8 ,
141+ key_value_metadata : column . field_3 . field_8 ?. map ( ( /** @type {any } */ kv ) => ( {
142+ key : decode ( kv . field_1 ) ,
143+ value : decode ( kv . field_2 ) ,
144+ } ) ) ,
142145 data_page_offset : column . field_3 . field_9 ,
143146 index_page_offset : column . field_3 . field_10 ,
144147 dictionary_page_offset : column . field_3 . field_11 ,
@@ -188,9 +191,9 @@ export function parquetMetadata(arrayBuffer, { parsers, geoparquet = true } = {}
188191 ordinal : rowGroup . field_7 ,
189192 } ) )
190193 /** @type {KeyValue[] | undefined } */
191- const key_value_metadata = metadata . field_5 ?. map ( ( /** @type {any } */ keyValue ) => ( {
192- key : decode ( keyValue . field_1 ) ,
193- value : decode ( keyValue . field_2 ) ,
194+ const key_value_metadata = metadata . field_5 ?. map ( ( /** @type {any } */ kv ) => ( {
195+ key : decode ( kv . field_1 ) ,
196+ value : decode ( kv . field_2 ) ,
194197 } ) )
195198 const created_by = decode ( metadata . field_6 )
196199
@@ -254,7 +257,10 @@ function logicalType(logicalType) {
254257 if ( logicalType ?. field_13 ) return { type : 'BSON' }
255258 if ( logicalType ?. field_14 ) return { type : 'UUID' }
256259 if ( logicalType ?. field_15 ) return { type : 'FLOAT16' }
257- if ( logicalType ?. field_16 ) return { type : 'VARIANT' }
260+ if ( logicalType ?. field_16 ) return {
261+ type : 'VARIANT' ,
262+ specification_version : logicalType . field_16 . field_1 ,
263+ }
258264 if ( logicalType ?. field_17 ) return {
259265 type : 'GEOMETRY' ,
260266 crs : decode ( logicalType . field_17 . field_1 ) ,
0 commit comments