@loaders.gl/parquet 3.2.12 → 3.3.0-alpha.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/dist.min.js +14 -14
- package/dist/dist.min.js.map +2 -2
- package/dist/es5/bundle.js +0 -1
- package/dist/es5/bundle.js.map +1 -1
- package/dist/es5/constants.js +3 -1
- package/dist/es5/constants.js.map +1 -1
- package/dist/es5/index.js +23 -39
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/lib/convert-schema.js +2 -11
- package/dist/es5/lib/convert-schema.js.map +1 -1
- package/dist/es5/lib/parse-parquet.js +29 -72
- package/dist/es5/lib/parse-parquet.js.map +1 -1
- package/dist/es5/lib/read-array-buffer.js +0 -10
- package/dist/es5/lib/read-array-buffer.js.map +1 -1
- package/dist/es5/lib/wasm/encode-parquet-wasm.js +0 -11
- package/dist/es5/lib/wasm/encode-parquet-wasm.js.map +1 -1
- package/dist/es5/lib/wasm/load-wasm/index.js +0 -1
- package/dist/es5/lib/wasm/load-wasm/index.js.map +1 -1
- package/dist/es5/lib/wasm/load-wasm/load-wasm-browser.js +0 -14
- package/dist/es5/lib/wasm/load-wasm/load-wasm-browser.js.map +1 -1
- package/dist/es5/lib/wasm/load-wasm/load-wasm-node.js +0 -10
- package/dist/es5/lib/wasm/load-wasm/load-wasm-node.js.map +1 -1
- package/dist/es5/lib/wasm/parse-parquet-wasm.js +1 -19
- package/dist/es5/lib/wasm/parse-parquet-wasm.js.map +1 -1
- package/dist/es5/parquet-loader.js +2 -1
- package/dist/es5/parquet-loader.js.map +1 -1
- package/dist/es5/parquet-wasm-loader.js +2 -1
- package/dist/es5/parquet-wasm-loader.js.map +1 -1
- package/dist/es5/parquet-wasm-writer.js +1 -3
- package/dist/es5/parquet-wasm-writer.js.map +1 -1
- package/dist/es5/parquet-writer.js +1 -2
- package/dist/es5/parquet-writer.js.map +1 -1
- package/dist/es5/parquetjs/codecs/declare.js.map +1 -1
- package/dist/es5/parquetjs/codecs/dictionary.js +2 -9
- package/dist/es5/parquetjs/codecs/dictionary.js.map +1 -1
- package/dist/es5/parquetjs/codecs/index.js +0 -8
- package/dist/es5/parquetjs/codecs/index.js.map +1 -1
- package/dist/es5/parquetjs/codecs/plain.js +1 -77
- package/dist/es5/parquetjs/codecs/plain.js.map +1 -1
- package/dist/es5/parquetjs/codecs/rle.js +1 -39
- package/dist/es5/parquetjs/codecs/rle.js.map +1 -1
- package/dist/es5/parquetjs/compression.js +5 -30
- package/dist/es5/parquetjs/compression.js.map +1 -1
- package/dist/es5/parquetjs/encoder/writer.js +31 -149
- package/dist/es5/parquetjs/encoder/writer.js.map +1 -1
- package/dist/es5/parquetjs/file.js +3 -12
- package/dist/es5/parquetjs/file.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/BoundaryOrder.js +0 -1
- package/dist/es5/parquetjs/parquet-thrift/BoundaryOrder.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/BsonType.js +0 -15
- package/dist/es5/parquetjs/parquet-thrift/BsonType.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/ColumnChunk.js +0 -48
- package/dist/es5/parquetjs/parquet-thrift/ColumnChunk.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/ColumnIndex.js +0 -47
- package/dist/es5/parquetjs/parquet-thrift/ColumnIndex.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/ColumnMetaData.js +0 -82
- package/dist/es5/parquetjs/parquet-thrift/ColumnMetaData.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/ColumnOrder.js +0 -25
- package/dist/es5/parquetjs/parquet-thrift/ColumnOrder.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/CompressionCodec.js +0 -1
- package/dist/es5/parquetjs/parquet-thrift/CompressionCodec.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/ConvertedType.js +0 -1
- package/dist/es5/parquetjs/parquet-thrift/ConvertedType.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/DataPageHeader.js +0 -39
- package/dist/es5/parquetjs/parquet-thrift/DataPageHeader.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/DataPageHeaderV2.js +0 -51
- package/dist/es5/parquetjs/parquet-thrift/DataPageHeaderV2.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/DateType.js +0 -15
- package/dist/es5/parquetjs/parquet-thrift/DateType.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/DecimalType.js +0 -26
- package/dist/es5/parquetjs/parquet-thrift/DecimalType.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/DictionaryPageHeader.js +0 -30
- package/dist/es5/parquetjs/parquet-thrift/DictionaryPageHeader.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/Encoding.js +0 -1
- package/dist/es5/parquetjs/parquet-thrift/Encoding.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/EnumType.js +0 -15
- package/dist/es5/parquetjs/parquet-thrift/EnumType.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/FieldRepetitionType.js +0 -1
- package/dist/es5/parquetjs/parquet-thrift/FieldRepetitionType.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/FileMetaData.js +0 -59
- package/dist/es5/parquetjs/parquet-thrift/FileMetaData.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/IndexPageHeader.js +0 -15
- package/dist/es5/parquetjs/parquet-thrift/IndexPageHeader.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/IntType.js +0 -26
- package/dist/es5/parquetjs/parquet-thrift/IntType.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/JsonType.js +0 -15
- package/dist/es5/parquetjs/parquet-thrift/JsonType.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/KeyValue.js +0 -26
- package/dist/es5/parquetjs/parquet-thrift/KeyValue.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/ListType.js +0 -15
- package/dist/es5/parquetjs/parquet-thrift/ListType.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/LogicalType.js +0 -85
- package/dist/es5/parquetjs/parquet-thrift/LogicalType.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/MapType.js +0 -15
- package/dist/es5/parquetjs/parquet-thrift/MapType.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/MicroSeconds.js +0 -15
- package/dist/es5/parquetjs/parquet-thrift/MicroSeconds.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/MilliSeconds.js +0 -15
- package/dist/es5/parquetjs/parquet-thrift/MilliSeconds.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/NullType.js +0 -15
- package/dist/es5/parquetjs/parquet-thrift/NullType.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/OffsetIndex.js +0 -25
- package/dist/es5/parquetjs/parquet-thrift/OffsetIndex.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/PageEncodingStats.js +0 -30
- package/dist/es5/parquetjs/parquet-thrift/PageEncodingStats.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/PageHeader.js +0 -54
- package/dist/es5/parquetjs/parquet-thrift/PageHeader.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/PageLocation.js +0 -31
- package/dist/es5/parquetjs/parquet-thrift/PageLocation.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/PageType.js +0 -1
- package/dist/es5/parquetjs/parquet-thrift/PageType.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/RowGroup.js +0 -41
- package/dist/es5/parquetjs/parquet-thrift/RowGroup.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/SchemaElement.js +0 -59
- package/dist/es5/parquetjs/parquet-thrift/SchemaElement.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/SortingColumn.js +0 -30
- package/dist/es5/parquetjs/parquet-thrift/SortingColumn.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/Statistics.js +0 -42
- package/dist/es5/parquetjs/parquet-thrift/Statistics.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/StringType.js +0 -15
- package/dist/es5/parquetjs/parquet-thrift/StringType.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/TimeType.js +0 -27
- package/dist/es5/parquetjs/parquet-thrift/TimeType.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/TimeUnit.js +0 -30
- package/dist/es5/parquetjs/parquet-thrift/TimeUnit.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/TimestampType.js +0 -27
- package/dist/es5/parquetjs/parquet-thrift/TimestampType.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/Type.js +0 -1
- package/dist/es5/parquetjs/parquet-thrift/Type.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/TypeDefinedOrder.js +0 -15
- package/dist/es5/parquetjs/parquet-thrift/TypeDefinedOrder.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/UUIDType.js +0 -15
- package/dist/es5/parquetjs/parquet-thrift/UUIDType.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/index.js +0 -86
- package/dist/es5/parquetjs/parquet-thrift/index.js.map +1 -1
- package/dist/es5/parquetjs/parser/decoders.js +3 -82
- package/dist/es5/parquetjs/parser/decoders.js.map +1 -1
- package/dist/es5/parquetjs/parser/parquet-cursor.js +5 -37
- package/dist/es5/parquetjs/parser/parquet-cursor.js.map +1 -1
- package/dist/es5/parquetjs/parser/parquet-envelope-reader.js +2 -88
- package/dist/es5/parquetjs/parser/parquet-envelope-reader.js.map +1 -1
- package/dist/es5/parquetjs/parser/parquet-reader.js +14 -67
- package/dist/es5/parquetjs/parser/parquet-reader.js.map +1 -1
- package/dist/es5/parquetjs/schema/declare.js +3 -7
- package/dist/es5/parquetjs/schema/declare.js.map +1 -1
- package/dist/es5/parquetjs/schema/schema.js +6 -34
- package/dist/es5/parquetjs/schema/schema.js.map +1 -1
- package/dist/es5/parquetjs/schema/shred.js +11 -41
- package/dist/es5/parquetjs/schema/shred.js.map +1 -1
- package/dist/es5/parquetjs/schema/types.js +3 -84
- package/dist/es5/parquetjs/schema/types.js.map +1 -1
- package/dist/es5/parquetjs/utils/buffer-utils.js +0 -2
- package/dist/es5/parquetjs/utils/buffer-utils.js.map +1 -1
- package/dist/es5/parquetjs/utils/file-utils.js +1 -7
- package/dist/es5/parquetjs/utils/file-utils.js.map +1 -1
- package/dist/es5/parquetjs/utils/read-utils.js +6 -38
- package/dist/es5/parquetjs/utils/read-utils.js.map +1 -1
- package/dist/es5/workers/parquet-worker.js +0 -2
- package/dist/es5/workers/parquet-worker.js.map +1 -1
- package/dist/esm/bundle.js +1 -1
- package/dist/esm/bundle.js.map +1 -1
- package/dist/esm/constants.js +3 -0
- package/dist/esm/constants.js.map +1 -1
- package/dist/esm/index.js +10 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lib/convert-schema.js +1 -7
- package/dist/esm/lib/convert-schema.js.map +1 -1
- package/dist/esm/lib/parse-parquet.js +2 -5
- package/dist/esm/lib/parse-parquet.js.map +1 -1
- package/dist/esm/lib/read-array-buffer.js +2 -1
- package/dist/esm/lib/read-array-buffer.js.map +1 -1
- package/dist/esm/lib/wasm/encode-parquet-wasm.js +1 -1
- package/dist/esm/lib/wasm/encode-parquet-wasm.js.map +1 -1
- package/dist/esm/lib/wasm/load-wasm/index.js.map +1 -1
- package/dist/esm/lib/wasm/load-wasm/load-wasm-browser.js.map +1 -1
- package/dist/esm/lib/wasm/load-wasm/load-wasm-node.js.map +1 -1
- package/dist/esm/lib/wasm/parse-parquet-wasm.js +2 -3
- package/dist/esm/lib/wasm/parse-parquet-wasm.js.map +1 -1
- package/dist/esm/parquet-loader.js +3 -1
- package/dist/esm/parquet-loader.js.map +1 -1
- package/dist/esm/parquet-wasm-loader.js +3 -1
- package/dist/esm/parquet-wasm-loader.js.map +1 -1
- package/dist/esm/parquet-wasm-writer.js +2 -1
- package/dist/esm/parquet-wasm-writer.js.map +1 -1
- package/dist/esm/parquet-writer.js +2 -2
- package/dist/esm/parquet-writer.js.map +1 -1
- package/dist/esm/parquetjs/codecs/declare.js.map +1 -1
- package/dist/esm/parquetjs/codecs/dictionary.js +2 -1
- package/dist/esm/parquetjs/codecs/dictionary.js.map +1 -1
- package/dist/esm/parquetjs/codecs/index.js +2 -0
- package/dist/esm/parquetjs/codecs/index.js.map +1 -1
- package/dist/esm/parquetjs/codecs/plain.js +2 -68
- package/dist/esm/parquetjs/codecs/plain.js.map +1 -1
- package/dist/esm/parquetjs/codecs/rle.js +3 -29
- package/dist/esm/parquetjs/codecs/rle.js.map +1 -1
- package/dist/esm/parquetjs/compression.js +9 -5
- package/dist/esm/parquetjs/compression.js.map +1 -1
- package/dist/esm/parquetjs/encoder/writer.js +21 -51
- package/dist/esm/parquetjs/encoder/writer.js.map +1 -1
- package/dist/esm/parquetjs/file.js +1 -0
- package/dist/esm/parquetjs/file.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/BoundaryOrder.js +1 -1
- package/dist/esm/parquetjs/parquet-thrift/BoundaryOrder.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/BsonType.js +1 -8
- package/dist/esm/parquetjs/parquet-thrift/BsonType.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/ColumnChunk.js +0 -44
- package/dist/esm/parquetjs/parquet-thrift/ColumnChunk.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/ColumnIndex.js +0 -42
- package/dist/esm/parquetjs/parquet-thrift/ColumnIndex.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/ColumnMetaData.js +0 -82
- package/dist/esm/parquetjs/parquet-thrift/ColumnMetaData.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/ColumnOrder.js +0 -18
- package/dist/esm/parquetjs/parquet-thrift/ColumnOrder.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/CompressionCodec.js +1 -1
- package/dist/esm/parquetjs/parquet-thrift/CompressionCodec.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/ConvertedType.js +1 -1
- package/dist/esm/parquetjs/parquet-thrift/ConvertedType.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/DataPageHeader.js +0 -34
- package/dist/esm/parquetjs/parquet-thrift/DataPageHeader.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/DataPageHeaderV2.js +0 -49
- package/dist/esm/parquetjs/parquet-thrift/DataPageHeaderV2.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/DateType.js +1 -8
- package/dist/esm/parquetjs/parquet-thrift/DateType.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/DecimalType.js +0 -19
- package/dist/esm/parquetjs/parquet-thrift/DecimalType.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/DictionaryPageHeader.js +0 -24
- package/dist/esm/parquetjs/parquet-thrift/DictionaryPageHeader.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/Encoding.js +1 -1
- package/dist/esm/parquetjs/parquet-thrift/Encoding.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/EnumType.js +1 -8
- package/dist/esm/parquetjs/parquet-thrift/EnumType.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/FieldRepetitionType.js +1 -1
- package/dist/esm/parquetjs/parquet-thrift/FieldRepetitionType.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/FileMetaData.js +2 -53
- package/dist/esm/parquetjs/parquet-thrift/FileMetaData.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/IndexPageHeader.js +1 -8
- package/dist/esm/parquetjs/parquet-thrift/IndexPageHeader.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/IntType.js +0 -19
- package/dist/esm/parquetjs/parquet-thrift/IntType.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/JsonType.js +1 -8
- package/dist/esm/parquetjs/parquet-thrift/JsonType.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/KeyValue.js +0 -19
- package/dist/esm/parquetjs/parquet-thrift/KeyValue.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/ListType.js +1 -8
- package/dist/esm/parquetjs/parquet-thrift/ListType.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/LogicalType.js +0 -90
- package/dist/esm/parquetjs/parquet-thrift/LogicalType.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/MapType.js +1 -8
- package/dist/esm/parquetjs/parquet-thrift/MapType.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/MicroSeconds.js +1 -8
- package/dist/esm/parquetjs/parquet-thrift/MicroSeconds.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/MilliSeconds.js +1 -8
- package/dist/esm/parquetjs/parquet-thrift/MilliSeconds.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/NullType.js +1 -8
- package/dist/esm/parquetjs/parquet-thrift/NullType.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/OffsetIndex.js +0 -16
- package/dist/esm/parquetjs/parquet-thrift/OffsetIndex.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/PageEncodingStats.js +0 -24
- package/dist/esm/parquetjs/parquet-thrift/PageEncodingStats.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/PageHeader.js +0 -49
- package/dist/esm/parquetjs/parquet-thrift/PageHeader.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/PageLocation.js +0 -24
- package/dist/esm/parquetjs/parquet-thrift/PageLocation.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/PageType.js +1 -1
- package/dist/esm/parquetjs/parquet-thrift/PageType.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/RowGroup.js +0 -33
- package/dist/esm/parquetjs/parquet-thrift/RowGroup.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/SchemaElement.js +0 -59
- package/dist/esm/parquetjs/parquet-thrift/SchemaElement.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/SortingColumn.js +0 -24
- package/dist/esm/parquetjs/parquet-thrift/SortingColumn.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/Statistics.js +0 -38
- package/dist/esm/parquetjs/parquet-thrift/Statistics.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/StringType.js +1 -8
- package/dist/esm/parquetjs/parquet-thrift/StringType.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/TimeType.js +0 -19
- package/dist/esm/parquetjs/parquet-thrift/TimeType.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/TimeUnit.js +0 -24
- package/dist/esm/parquetjs/parquet-thrift/TimeUnit.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/TimestampType.js +0 -19
- package/dist/esm/parquetjs/parquet-thrift/TimestampType.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/Type.js +1 -1
- package/dist/esm/parquetjs/parquet-thrift/Type.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/TypeDefinedOrder.js +1 -8
- package/dist/esm/parquetjs/parquet-thrift/TypeDefinedOrder.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/UUIDType.js +1 -8
- package/dist/esm/parquetjs/parquet-thrift/UUIDType.js.map +1 -1
- package/dist/esm/parquetjs/parquet-thrift/index.js +1 -0
- package/dist/esm/parquetjs/parquet-thrift/index.js.map +1 -1
- package/dist/esm/parquetjs/parser/decoders.js +9 -39
- package/dist/esm/parquetjs/parser/decoders.js.map +1 -1
- package/dist/esm/parquetjs/parser/parquet-cursor.js +1 -13
- package/dist/esm/parquetjs/parser/parquet-cursor.js.map +1 -1
- package/dist/esm/parquetjs/parser/parquet-envelope-reader.js +6 -32
- package/dist/esm/parquetjs/parser/parquet-envelope-reader.js.map +1 -1
- package/dist/esm/parquetjs/parser/parquet-reader.js +1 -18
- package/dist/esm/parquetjs/parser/parquet-reader.js.map +1 -1
- package/dist/esm/parquetjs/schema/declare.js +4 -4
- package/dist/esm/parquetjs/schema/declare.js.map +1 -1
- package/dist/esm/parquetjs/schema/schema.js +3 -29
- package/dist/esm/parquetjs/schema/schema.js.map +1 -1
- package/dist/esm/parquetjs/schema/shred.js +7 -22
- package/dist/esm/parquetjs/schema/shred.js.map +1 -1
- package/dist/esm/parquetjs/schema/types.js +3 -78
- package/dist/esm/parquetjs/schema/types.js.map +1 -1
- package/dist/esm/parquetjs/utils/buffer-utils.js +2 -1
- package/dist/esm/parquetjs/utils/buffer-utils.js.map +1 -1
- package/dist/esm/parquetjs/utils/file-utils.js +1 -0
- package/dist/esm/parquetjs/utils/file-utils.js.map +1 -1
- package/dist/esm/parquetjs/utils/read-utils.js +5 -12
- package/dist/esm/parquetjs/utils/read-utils.js.map +1 -1
- package/dist/esm/workers/parquet-worker.js.map +1 -1
- package/dist/lib/wasm/encode-parquet-wasm.d.ts +1 -1
- package/dist/lib/wasm/encode-parquet-wasm.d.ts.map +1 -1
- package/dist/lib/wasm/load-wasm/load-wasm-browser.js +5 -1
- package/dist/lib/wasm/load-wasm/load-wasm-node.js +5 -1
- package/dist/lib/wasm/parse-parquet-wasm.d.ts +1 -1
- package/dist/lib/wasm/parse-parquet-wasm.d.ts.map +1 -1
- package/dist/parquet-loader.d.ts +1 -1
- package/dist/parquet-loader.d.ts.map +1 -1
- package/dist/parquet-wasm-loader.d.ts +1 -1
- package/dist/parquet-wasm-loader.d.ts.map +1 -1
- package/dist/parquet-worker.js +14 -14
- package/dist/parquet-worker.js.map +2 -2
- package/dist/parquet-writer.d.ts +1 -1
- package/dist/parquet-writer.d.ts.map +1 -1
- package/dist/parquetjs/codecs/index.js +5 -1
- package/dist/parquetjs/encoder/writer.d.ts +1 -0
- package/dist/parquetjs/encoder/writer.d.ts.map +1 -1
- package/dist/parquetjs/encoder/writer.js +27 -23
- package/dist/parquetjs/parquet-thrift/BsonType.js +5 -1
- package/dist/parquetjs/parquet-thrift/ColumnChunk.js +5 -1
- package/dist/parquetjs/parquet-thrift/ColumnIndex.js +5 -1
- package/dist/parquetjs/parquet-thrift/ColumnMetaData.js +5 -1
- package/dist/parquetjs/parquet-thrift/ColumnOrder.js +5 -1
- package/dist/parquetjs/parquet-thrift/DataPageHeader.js +5 -1
- package/dist/parquetjs/parquet-thrift/DataPageHeaderV2.js +5 -1
- package/dist/parquetjs/parquet-thrift/DateType.js +5 -1
- package/dist/parquetjs/parquet-thrift/DecimalType.js +5 -1
- package/dist/parquetjs/parquet-thrift/DictionaryPageHeader.js +5 -1
- package/dist/parquetjs/parquet-thrift/EnumType.js +5 -1
- package/dist/parquetjs/parquet-thrift/FileMetaData.js +5 -1
- package/dist/parquetjs/parquet-thrift/IndexPageHeader.js +5 -1
- package/dist/parquetjs/parquet-thrift/IntType.js +5 -1
- package/dist/parquetjs/parquet-thrift/JsonType.js +5 -1
- package/dist/parquetjs/parquet-thrift/KeyValue.js +5 -1
- package/dist/parquetjs/parquet-thrift/ListType.js +5 -1
- package/dist/parquetjs/parquet-thrift/LogicalType.js +5 -1
- package/dist/parquetjs/parquet-thrift/MapType.js +5 -1
- package/dist/parquetjs/parquet-thrift/MicroSeconds.js +5 -1
- package/dist/parquetjs/parquet-thrift/MilliSeconds.js +5 -1
- package/dist/parquetjs/parquet-thrift/NullType.js +5 -1
- package/dist/parquetjs/parquet-thrift/OffsetIndex.js +5 -1
- package/dist/parquetjs/parquet-thrift/PageEncodingStats.js +5 -1
- package/dist/parquetjs/parquet-thrift/PageHeader.js +5 -1
- package/dist/parquetjs/parquet-thrift/PageLocation.js +5 -1
- package/dist/parquetjs/parquet-thrift/RowGroup.js +5 -1
- package/dist/parquetjs/parquet-thrift/SchemaElement.js +5 -1
- package/dist/parquetjs/parquet-thrift/SortingColumn.js +5 -1
- package/dist/parquetjs/parquet-thrift/Statistics.js +5 -1
- package/dist/parquetjs/parquet-thrift/StringType.js +5 -1
- package/dist/parquetjs/parquet-thrift/TimeType.js +5 -1
- package/dist/parquetjs/parquet-thrift/TimeUnit.js +5 -1
- package/dist/parquetjs/parquet-thrift/TimestampType.js +5 -1
- package/dist/parquetjs/parquet-thrift/TypeDefinedOrder.js +5 -1
- package/dist/parquetjs/parquet-thrift/UUIDType.js +5 -1
- package/dist/parquetjs/parquet-thrift/index.js +5 -1
- package/dist/parquetjs/parser/parquet-envelope-reader.js +5 -5
- package/dist/parquetjs/parser/parquet-reader.js +16 -16
- package/dist/parquetjs/schema/declare.d.ts +7 -7
- package/dist/parquetjs/schema/declare.d.ts.map +1 -1
- package/dist/parquetjs/schema/shred.js +5 -1
- package/dist/parquetjs/utils/file-utils.d.ts +2 -0
- package/dist/parquetjs/utils/file-utils.d.ts.map +1 -1
- package/package.json +6 -6
|
@@ -1,9 +1,10 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
1
3
|
import { ParquetBuffer } from './declare';
|
|
2
4
|
import * as Types from './types';
|
|
3
5
|
export { ParquetBuffer };
|
|
4
6
|
export function shredBuffer(schema) {
|
|
5
7
|
const columnData = {};
|
|
6
|
-
|
|
7
8
|
for (const field of schema.fieldList) {
|
|
8
9
|
columnData[field.key] = {
|
|
9
10
|
dlevels: [],
|
|
@@ -13,12 +14,12 @@ export function shredBuffer(schema) {
|
|
|
13
14
|
count: 0
|
|
14
15
|
};
|
|
15
16
|
}
|
|
16
|
-
|
|
17
17
|
return {
|
|
18
18
|
rowCount: 0,
|
|
19
19
|
columnData
|
|
20
20
|
};
|
|
21
21
|
}
|
|
22
|
+
|
|
22
23
|
export function shredRecord(schema, record, buffer) {
|
|
23
24
|
const data = shredBuffer(schema).columnData;
|
|
24
25
|
shredRecordFields(schema.fields, record, data, 0, 0);
|
|
@@ -28,9 +29,7 @@ export function shredRecord(schema, record, buffer) {
|
|
|
28
29
|
buffer.columnData = data;
|
|
29
30
|
return;
|
|
30
31
|
}
|
|
31
|
-
|
|
32
32
|
buffer.rowCount += 1;
|
|
33
|
-
|
|
34
33
|
for (const field of schema.fieldList) {
|
|
35
34
|
Array.prototype.push.apply(buffer.columnData[field.key].rlevels, data[field.key].rlevels);
|
|
36
35
|
Array.prototype.push.apply(buffer.columnData[field.key].dlevels, data[field.key].dlevels);
|
|
@@ -42,8 +41,8 @@ export function shredRecord(schema, record, buffer) {
|
|
|
42
41
|
function shredRecordFields(fields, record, data, rLevel, dLevel) {
|
|
43
42
|
for (const name in fields) {
|
|
44
43
|
const field = fields[name];
|
|
45
|
-
let values = [];
|
|
46
44
|
|
|
45
|
+
let values = [];
|
|
47
46
|
if (record && field.name in record && record[field.name] !== undefined && record[field.name] !== null) {
|
|
48
47
|
if (record[field.name].constructor === Array) {
|
|
49
48
|
values = record[field.name];
|
|
@@ -51,11 +50,9 @@ function shredRecordFields(fields, record, data, rLevel, dLevel) {
|
|
|
51
50
|
values.push(record[field.name]);
|
|
52
51
|
}
|
|
53
52
|
}
|
|
54
|
-
|
|
55
53
|
if (values.length === 0 && Boolean(record) && field.repetitionType === 'REQUIRED') {
|
|
56
54
|
throw new Error("missing required field: ".concat(field.name));
|
|
57
55
|
}
|
|
58
|
-
|
|
59
56
|
if (values.length > 1 && field.repetitionType !== 'REPEATED') {
|
|
60
57
|
throw new Error("too many values for field: ".concat(field.name));
|
|
61
58
|
}
|
|
@@ -68,13 +65,11 @@ function shredRecordFields(fields, record, data, rLevel, dLevel) {
|
|
|
68
65
|
data[field.key].rlevels.push(rLevel);
|
|
69
66
|
data[field.key].dlevels.push(dLevel);
|
|
70
67
|
}
|
|
71
|
-
|
|
72
68
|
continue;
|
|
73
69
|
}
|
|
74
70
|
|
|
75
71
|
for (let i = 0; i < values.length; i++) {
|
|
76
72
|
const rlvl = i === 0 ? rLevel : field.rLevelMax;
|
|
77
|
-
|
|
78
73
|
if (field.isNested) {
|
|
79
74
|
shredRecordFields(field.fields, values[i], data, rlvl, field.dLevelMax);
|
|
80
75
|
} else {
|
|
@@ -89,13 +84,10 @@ function shredRecordFields(fields, record, data, rLevel, dLevel) {
|
|
|
89
84
|
|
|
90
85
|
export function materializeRecords(schema, buffer) {
|
|
91
86
|
const records = [];
|
|
92
|
-
|
|
93
87
|
for (let i = 0; i < buffer.rowCount; i++) records.push({});
|
|
94
|
-
|
|
95
88
|
for (const key in buffer.columnData) {
|
|
96
89
|
materializeColumn(schema, buffer, key, records);
|
|
97
90
|
}
|
|
98
|
-
|
|
99
91
|
return records;
|
|
100
92
|
}
|
|
101
93
|
|
|
@@ -104,9 +96,9 @@ function materializeColumn(schema, buffer, key, records) {
|
|
|
104
96
|
if (!data.count) return;
|
|
105
97
|
const field = schema.findField(key);
|
|
106
98
|
const branch = schema.findFieldBranch(key);
|
|
99
|
+
|
|
107
100
|
const rLevels = new Array(field.rLevelMax + 1).fill(0);
|
|
108
101
|
let vIndex = 0;
|
|
109
|
-
|
|
110
102
|
for (let i = 0; i < data.count; i++) {
|
|
111
103
|
const dLevel = data.dlevels[i];
|
|
112
104
|
const rLevel = data.rlevels[i];
|
|
@@ -118,18 +110,14 @@ function materializeColumn(schema, buffer, key, records) {
|
|
|
118
110
|
for (const step of branch) {
|
|
119
111
|
if (step === field) break;
|
|
120
112
|
if (dLevel < step.dLevelMax) break;
|
|
121
|
-
|
|
122
113
|
if (step.repetitionType === 'REPEATED') {
|
|
123
114
|
if (!(step.name in record)) {
|
|
124
115
|
record[step.name] = [];
|
|
125
116
|
}
|
|
126
|
-
|
|
127
117
|
const ix = rLevels[rIndex++];
|
|
128
|
-
|
|
129
118
|
while (record[step.name].length <= ix) {
|
|
130
119
|
record[step.name].push({});
|
|
131
120
|
}
|
|
132
|
-
|
|
133
121
|
record = record[step.name][ix];
|
|
134
122
|
} else {
|
|
135
123
|
record[step.name] = record[step.name] || {};
|
|
@@ -138,20 +126,17 @@ function materializeColumn(schema, buffer, key, records) {
|
|
|
138
126
|
}
|
|
139
127
|
|
|
140
128
|
if (dLevel === field.dLevelMax) {
|
|
141
|
-
const value = Types.fromPrimitive(
|
|
129
|
+
const value = Types.fromPrimitive(
|
|
130
|
+
field.originalType || field.primitiveType, data.values[vIndex], field);
|
|
142
131
|
vIndex++;
|
|
143
|
-
|
|
144
132
|
if (field.repetitionType === 'REPEATED') {
|
|
145
133
|
if (!(field.name in record)) {
|
|
146
134
|
record[field.name] = [];
|
|
147
135
|
}
|
|
148
|
-
|
|
149
136
|
const ix = rLevels[rIndex];
|
|
150
|
-
|
|
151
137
|
while (record[field.name].length <= ix) {
|
|
152
138
|
record[field.name].push(null);
|
|
153
139
|
}
|
|
154
|
-
|
|
155
140
|
record[field.name][ix] = value;
|
|
156
141
|
} else {
|
|
157
142
|
record[field.name] = value;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/parquetjs/schema/shred.ts"],"names":["ParquetBuffer","Types","shredBuffer","schema","columnData","field","fieldList","key","dlevels","rlevels","values","pageHeaders","count","rowCount","shredRecord","record","buffer","data","shredRecordFields","fields","Array","prototype","push","apply","rLevel","dLevel","name","undefined","constructor","length","Boolean","repetitionType","Error","isNested","i","rlvl","rLevelMax","dLevelMax","toPrimitive","originalType","primitiveType","materializeRecords","records","materializeColumn","findField","branch","findFieldBranch","rLevels","fill","vIndex","rIndex","step","ix","value","fromPrimitive"],"mappings":"AAEA,SAAQA,aAAR,QAAsE,WAAtE;AAEA,OAAO,KAAKC,KAAZ,MAAuB,SAAvB;AAEA,SAAQD,aAAR;AAEA,OAAO,SAASE,WAAT,CAAqBC,MAArB,EAA2D;AAChE,QAAMC,UAAuC,GAAG,EAAhD;;AACA,OAAK,MAAMC,KAAX,IAAoBF,MAAM,CAACG,SAA3B,EAAsC;AACpCF,IAAAA,UAAU,CAACC,KAAK,CAACE,GAAP,CAAV,GAAwB;AACtBC,MAAAA,OAAO,EAAE,EADa;AAEtBC,MAAAA,OAAO,EAAE,EAFa;AAGtBC,MAAAA,MAAM,EAAE,EAHc;AAItBC,MAAAA,WAAW,EAAE,EAJS;AAKtBC,MAAAA,KAAK,EAAE;AALe,KAAxB;AAOD;;AACD,SAAO;AAACC,IAAAA,QAAQ,EAAE,CAAX;AAAcT,IAAAA;AAAd,GAAP;AACD;AAwBD,OAAO,SAASU,WAAT,CAAqBX,MAArB,EAA4CY,MAA5C,EAAyDC,MAAzD,EAAsF;AAE3F,QAAMC,IAAI,GAAGf,WAAW,CAACC,MAAD,CAAX,CAAoBC,UAAjC;AAEAc,EAAAA,iBAAiB,CAACf,MAAM,CAACgB,MAAR,EAAgBJ,MAAhB,EAAwBE,IAAxB,EAA8B,CAA9B,EAAiC,CAAjC,CAAjB;;AAGA,MAAID,MAAM,CAACH,QAAP,KAAoB,CAAxB,EAA2B;AACzBG,IAAAA,MAAM,CAACH,QAAP,GAAkB,CAAlB;AACAG,IAAAA,MAAM,CAACZ,UAAP,GAAoBa,IAApB;AACA;AACD;;AACDD,EAAAA,MAAM,CAACH,QAAP,IAAmB,CAAnB;;AACA,OAAK,MAAMR,KAAX,IAAoBF,MAAM,CAACG,SAA3B,EAAsC;AACpCc,IAAAA,KAAK,CAACC,SAAN,CAAgBC,IAAhB,CAAqBC,KAArB,CAA2BP,MAAM,CAACZ,UAAP,CAAkBC,KAAK,CAACE,GAAxB,EAA6BE,OAAxD,EAAiEQ,IAAI,CAACZ,KAAK,CAACE,GAAP,CAAJ,CAAgBE,OAAjF;AACAW,IAAAA,KAAK,CAACC,SAAN,CAAgBC,IAAhB,CAAqBC,KAArB,CAA2BP,MAAM,CAACZ,UAAP,CAAkBC,KAAK,CAACE,GAAxB,EAA6BC,OAAxD,EAAiES,IAAI,CAACZ,KAAK,CAACE,GAAP,CAAJ,CAAgBC,OAAjF;AACAY,IAAAA,KAAK,CAACC,SAAN,CAAgBC,IAAhB,CAAqBC,KAArB,CAA2BP,MAAM,CAACZ,UAAP,CAAkBC,KAAK,CAACE,GAAxB,EAA6BG,MAAxD,EAAgEO,IAAI,CAACZ,KAAK,CAACE,GAAP,CAAJ,CAAgBG,MAAhF;AACAM,IAAAA,MAAM,CAACZ,UAAP,CAAkBC,KAAK,CAACE,GAAxB,EAA6BK,KAA7B,IAAsCK,IAAI,CAACZ,KAAK,CAACE,GAAP,CAAJ,CAAgBK,KAAtD;AACD;AACF;;AAGD,SAASM,iBAAT,CACEC,MADF,EAEEJ,MAFF,EAGEE,IAHF,EAIEO,MAJF,EAKEC,MALF,EAME;AACA,OAAK,MAAMC,IAAX,IAAmBP,MAAnB,EAA2B;AACzB,UAAMd,KAAK,GAAGc,MAAM,CAACO,IAAD,CAApB;AAGA,QAAIhB,MAAa,GAAG,EAApB;;AACA,QACEK,MAAM,IACNV,KAAK,CAACqB,IAAN,IAAcX,MADd,IAEAA,MAAM,CAACV,KAAK,CAACqB,IAAP,CAAN,KAAuBC,SAFvB,IAGAZ,MAAM,CAACV,KAAK,CAACqB,IAAP,CAAN,KAAuB,IAJzB,EAKE;AACA,UAAIX,MAAM,CAACV,KAAK,CAACqB,IAAP,CAAN,CAAmBE,WAAnB,KAAmCR,KAAvC,EAA8C;AAC5CV,QAAAA,MAAM,GAAGK,MAAM,CAACV,KAAK,CAACqB,IAAP,CAAf;AACD,OAFD,MAEO;AACLhB,QAAAA,MAAM,CAACY,IAAP,CAAYP,MAAM,CAACV,KAAK,CAACqB,IAAP,CAAlB;AACD;AACF;;AAED,QAAIhB,MAAM,CAACmB,MAAP,KAAkB,CAAlB,IAAuBC,OAAO,CAACf,MAAD,CAA9B,IAA0CV,KAAK,CAAC0B,cAAN,KAAyB,UAAvE,EAAmF;AACjF,YAAM,IAAIC,KAAJ,mCAAqC3B,KAAK,CAACqB,IAA3C,EAAN;AACD;;AACD,QAAIhB,MAAM,CAACmB,MAAP,GAAgB,CAAhB,IAAqBxB,KAAK,CAAC0B,cAAN,KAAyB,UAAlD,EAA8D;AAC5D,YAAM,IAAIC,KAAJ,sCAAwC3B,KAAK,CAACqB,IAA9C,EAAN;AACD;;AAGD,QAAIhB,MAAM,CAACmB,MAAP,KAAkB,CAAtB,EAAyB;AACvB,UAAIxB,KAAK,CAAC4B,QAAV,EAAoB;AAClBf,QAAAA,iBAAiB,CAACb,KAAK,CAACc,MAAP,EAAgB,IAAhB,EAAsBF,IAAtB,EAA4BO,MAA5B,EAAoCC,MAApC,CAAjB;AACD,OAFD,MAEO;AACLR,QAAAA,IAAI,CAACZ,KAAK,CAACE,GAAP,CAAJ,CAAgBK,KAAhB,IAAyB,CAAzB;AACAK,QAAAA,IAAI,CAACZ,KAAK,CAACE,GAAP,CAAJ,CAAgBE,OAAhB,CAAwBa,IAAxB,CAA6BE,MAA7B;AACAP,QAAAA,IAAI,CAACZ,KAAK,CAACE,GAAP,CAAJ,CAAgBC,OAAhB,CAAwBc,IAAxB,CAA6BG,MAA7B;AACD;;AACD;AACD;;AAGD,SAAK,IAAIS,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGxB,MAAM,CAACmB,MAA3B,EAAmCK,CAAC,EAApC,EAAwC;AACtC,YAAMC,IAAI,GAAGD,CAAC,KAAK,CAAN,GAAUV,MAAV,GAAmBnB,KAAK,CAAC+B,SAAtC;;AACA,UAAI/B,KAAK,CAAC4B,QAAV,EAAoB;AAClBf,QAAAA,iBAAiB,CAACb,KAAK,CAACc,MAAP,EAAgBT,MAAM,CAACwB,CAAD,CAAtB,EAA2BjB,IAA3B,EAAiCkB,IAAjC,EAAuC9B,KAAK,CAACgC,SAA7C,CAAjB;AACD,OAFD,MAEO;AACLpB,QAAAA,IAAI,CAACZ,KAAK,CAACE,GAAP,CAAJ,CAAgBK,KAAhB,IAAyB,CAAzB;AACAK,QAAAA,IAAI,CAACZ,KAAK,CAACE,GAAP,CAAJ,CAAgBE,OAAhB,CAAwBa,IAAxB,CAA6Ba,IAA7B;AACAlB,QAAAA,IAAI,CAACZ,KAAK,CAACE,GAAP,CAAJ,CAAgBC,OAAhB,CAAwBc,IAAxB,CAA6BjB,KAAK,CAACgC,SAAnC;AACApB,QAAAA,IAAI,CAACZ,KAAK,CAACE,GAAP,CAAJ,CAAgBG,MAAhB,CAAuBY,IAAvB,CACErB,KAAK,CAACqC,WAAN,CAAmBjC,KAAK,CAACkC,YAAN,IAAsBlC,KAAK,CAACmC,aAA/C,EAAgE9B,MAAM,CAACwB,CAAD,CAAtE,CADF;AAGD;AACF;AACF;AACF;;AAqBD,OAAO,SAASO,kBAAT,CAA4BtC,MAA5B,EAAmDa,MAAnD,EAA2F;AAChG,QAAM0B,OAAwB,GAAG,EAAjC;;AACA,OAAK,IAAIR,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGlB,MAAM,CAACH,QAA3B,EAAqCqB,CAAC,EAAtC,EAA0CQ,OAAO,CAACpB,IAAR,CAAa,EAAb;;AAC1C,OAAK,MAAMf,GAAX,IAAkBS,MAAM,CAACZ,UAAzB,EAAqC;AACnCuC,IAAAA,iBAAiB,CAACxC,MAAD,EAASa,MAAT,EAAiBT,GAAjB,EAAsBmC,OAAtB,CAAjB;AACD;;AACD,SAAOA,OAAP;AACD;;AAGD,SAASC,iBAAT,CACExC,MADF,EAEEa,MAFF,EAGET,GAHF,EAIEmC,OAJF,EAKE;AACA,QAAMzB,IAAI,GAAGD,MAAM,CAACZ,UAAP,CAAkBG,GAAlB,CAAb;AACA,MAAI,CAACU,IAAI,CAACL,KAAV,EAAiB;AAEjB,QAAMP,KAAK,GAAGF,MAAM,CAACyC,SAAP,CAAiBrC,GAAjB,CAAd;AACA,QAAMsC,MAAM,GAAG1C,MAAM,CAAC2C,eAAP,CAAuBvC,GAAvB,CAAf;AAGA,QAAMwC,OAAiB,GAAG,IAAI3B,KAAJ,CAAUf,KAAK,CAAC+B,SAAN,GAAkB,CAA5B,EAA+BY,IAA/B,CAAoC,CAApC,CAA1B;AACA,MAAIC,MAAM,GAAG,CAAb;;AACA,OAAK,IAAIf,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGjB,IAAI,CAACL,KAAzB,EAAgCsB,CAAC,EAAjC,EAAqC;AACnC,UAAMT,MAAM,GAAGR,IAAI,CAACT,OAAL,CAAa0B,CAAb,CAAf;AACA,UAAMV,MAAM,GAAGP,IAAI,CAACR,OAAL,CAAayB,CAAb,CAAf;AACAa,IAAAA,OAAO,CAACvB,MAAD,CAAP;AACAuB,IAAAA,OAAO,CAACC,IAAR,CAAa,CAAb,EAAgBxB,MAAM,GAAG,CAAzB;AAEA,QAAI0B,MAAM,GAAG,CAAb;AACA,QAAInC,MAAM,GAAG2B,OAAO,CAACK,OAAO,CAACG,MAAM,EAAP,CAAP,GAAoB,CAArB,CAApB;;AAGA,SAAK,MAAMC,IAAX,IAAmBN,MAAnB,EAA2B;AACzB,UAAIM,IAAI,KAAK9C,KAAb,EAAoB;AACpB,UAAIoB,MAAM,GAAG0B,IAAI,CAACd,SAAlB,EAA6B;;AAC7B,UAAIc,IAAI,CAACpB,cAAL,KAAwB,UAA5B,EAAwC;AACtC,YAAI,EAAEoB,IAAI,CAACzB,IAAL,IAAaX,MAAf,CAAJ,EAA4B;AAE1BA,UAAAA,MAAM,CAACoC,IAAI,CAACzB,IAAN,CAAN,GAAoB,EAApB;AACD;;AACD,cAAM0B,EAAE,GAAGL,OAAO,CAACG,MAAM,EAAP,CAAlB;;AACA,eAAOnC,MAAM,CAACoC,IAAI,CAACzB,IAAN,CAAN,CAAkBG,MAAlB,IAA4BuB,EAAnC,EAAuC;AAErCrC,UAAAA,MAAM,CAACoC,IAAI,CAACzB,IAAN,CAAN,CAAkBJ,IAAlB,CAAuB,EAAvB;AACD;;AACDP,QAAAA,MAAM,GAAGA,MAAM,CAACoC,IAAI,CAACzB,IAAN,CAAN,CAAkB0B,EAAlB,CAAT;AACD,OAXD,MAWO;AACLrC,QAAAA,MAAM,CAACoC,IAAI,CAACzB,IAAN,CAAN,GAAoBX,MAAM,CAACoC,IAAI,CAACzB,IAAN,CAAN,IAAqB,EAAzC;AACAX,QAAAA,MAAM,GAAGA,MAAM,CAACoC,IAAI,CAACzB,IAAN,CAAf;AACD;AACF;;AAGD,QAAID,MAAM,KAAKpB,KAAK,CAACgC,SAArB,EAAgC;AAC9B,YAAMgB,KAAK,GAAGpD,KAAK,CAACqD,aAAN,CAEZjD,KAAK,CAACkC,YAAN,IAAsBlC,KAAK,CAACmC,aAFhB,EAGZvB,IAAI,CAACP,MAAL,CAAYuC,MAAZ,CAHY,EAIZ5C,KAJY,CAAd;AAMA4C,MAAAA,MAAM;;AACN,UAAI5C,KAAK,CAAC0B,cAAN,KAAyB,UAA7B,EAAyC;AACvC,YAAI,EAAE1B,KAAK,CAACqB,IAAN,IAAcX,MAAhB,CAAJ,EAA6B;AAE3BA,UAAAA,MAAM,CAACV,KAAK,CAACqB,IAAP,CAAN,GAAqB,EAArB;AACD;;AACD,cAAM0B,EAAE,GAAGL,OAAO,CAACG,MAAD,CAAlB;;AACA,eAAOnC,MAAM,CAACV,KAAK,CAACqB,IAAP,CAAN,CAAmBG,MAAnB,IAA6BuB,EAApC,EAAwC;AAEtCrC,UAAAA,MAAM,CAACV,KAAK,CAACqB,IAAP,CAAN,CAAmBJ,IAAnB,CAAwB,IAAxB;AACD;;AACDP,QAAAA,MAAM,CAACV,KAAK,CAACqB,IAAP,CAAN,CAAmB0B,EAAnB,IAAyBC,KAAzB;AACD,OAXD,MAWO;AACLtC,QAAAA,MAAM,CAACV,KAAK,CAACqB,IAAP,CAAN,GAAqB2B,KAArB;AACD;AACF;AACF;AACF","sourcesContent":["// Forked from https://github.com/kbajalc/parquets under MIT license (Copyright (c) 2017 ironSource Ltd.)\n\nimport {ParquetBuffer, ParquetData, ParquetField, ParquetRecord} from './declare';\nimport {ParquetSchema} from './schema';\nimport * as Types from './types';\n\nexport {ParquetBuffer};\n\nexport function shredBuffer(schema: ParquetSchema): ParquetBuffer {\n const columnData: Record<string, ParquetData> = {};\n for (const field of schema.fieldList) {\n columnData[field.key] = {\n dlevels: [],\n rlevels: [],\n values: [],\n pageHeaders: [],\n count: 0\n };\n }\n return {rowCount: 0, columnData};\n}\n\n/**\n * 'Shred' a record into a list of <value, repetition_level, definition_level>\n * tuples per column using the Google Dremel Algorithm..\n *\n * The buffer argument must point to an object into which the shredded record\n * will be returned. You may re-use the buffer for repeated calls to this function\n * to append to an existing buffer, as long as the schema is unchanged.\n *\n * The format in which the shredded records will be stored in the buffer is as\n * follows:\n *\n * buffer = {\n * columnData: [\n * 'my_col': {\n * dlevels: [d1, d2, .. dN],\n * rlevels: [r1, r2, .. rN],\n * values: [v1, v2, .. vN],\n * }, ...\n * ],\n * rowCount: X,\n * }\n */\nexport function shredRecord(schema: ParquetSchema, record: any, buffer: ParquetBuffer): void {\n /* shred the record, this may raise an exception */\n const data = shredBuffer(schema).columnData;\n\n shredRecordFields(schema.fields, record, data, 0, 0);\n\n /* if no error during shredding, add the shredded record to the buffer */\n if (buffer.rowCount === 0) {\n buffer.rowCount = 1;\n buffer.columnData = data;\n return;\n }\n buffer.rowCount += 1;\n for (const field of schema.fieldList) {\n Array.prototype.push.apply(buffer.columnData[field.key].rlevels, data[field.key].rlevels);\n Array.prototype.push.apply(buffer.columnData[field.key].dlevels, data[field.key].dlevels);\n Array.prototype.push.apply(buffer.columnData[field.key].values, data[field.key].values);\n buffer.columnData[field.key].count += data[field.key].count;\n }\n}\n\n// eslint-disable-next-line max-statements, complexity\nfunction shredRecordFields(\n fields: Record<string, ParquetField>,\n record: any,\n data: Record<string, ParquetData>,\n rLevel: number,\n dLevel: number\n) {\n for (const name in fields) {\n const field = fields[name];\n\n // fetch values\n let values: any[] = [];\n if (\n record &&\n field.name in record &&\n record[field.name] !== undefined &&\n record[field.name] !== null\n ) {\n if (record[field.name].constructor === Array) {\n values = record[field.name];\n } else {\n values.push(record[field.name]);\n }\n }\n // check values\n if (values.length === 0 && Boolean(record) && field.repetitionType === 'REQUIRED') {\n throw new Error(`missing required field: ${field.name}`);\n }\n if (values.length > 1 && field.repetitionType !== 'REPEATED') {\n throw new Error(`too many values for field: ${field.name}`);\n }\n\n // push null\n if (values.length === 0) {\n if (field.isNested) {\n shredRecordFields(field.fields!, null, data, rLevel, dLevel);\n } else {\n data[field.key].count += 1;\n data[field.key].rlevels.push(rLevel);\n data[field.key].dlevels.push(dLevel);\n }\n continue; // eslint-disable-line no-continue\n }\n\n // push values\n for (let i = 0; i < values.length; i++) {\n const rlvl = i === 0 ? rLevel : field.rLevelMax;\n if (field.isNested) {\n shredRecordFields(field.fields!, values[i], data, rlvl, field.dLevelMax);\n } else {\n data[field.key].count += 1;\n data[field.key].rlevels.push(rlvl);\n data[field.key].dlevels.push(field.dLevelMax);\n data[field.key].values.push(\n Types.toPrimitive((field.originalType || field.primitiveType)!, values[i])\n );\n }\n }\n }\n}\n\n/**\n * 'Materialize' a list of <value, repetition_level, definition_level>\n * tuples back to nested records (objects/arrays) using the Google Dremel\n * Algorithm..\n *\n * The buffer argument must point to an object with the following structure (i.e.\n * the same structure that is returned by shredRecords):\n *\n * buffer = {\n * columnData: [\n * 'my_col': {\n * dlevels: [d1, d2, .. dN],\n * rlevels: [r1, r2, .. rN],\n * values: [v1, v2, .. vN],\n * }, ...\n * ],\n * rowCount: X,\n * }\n */\nexport function materializeRecords(schema: ParquetSchema, buffer: ParquetBuffer): ParquetRecord[] {\n const records: ParquetRecord[] = [];\n for (let i = 0; i < buffer.rowCount; i++) records.push({});\n for (const key in buffer.columnData) {\n materializeColumn(schema, buffer, key, records);\n }\n return records;\n}\n\n// eslint-disable-next-line max-statements, complexity\nfunction materializeColumn(\n schema: ParquetSchema,\n buffer: ParquetBuffer,\n key: string,\n records: ParquetRecord[]\n) {\n const data = buffer.columnData[key];\n if (!data.count) return;\n\n const field = schema.findField(key);\n const branch = schema.findFieldBranch(key);\n\n // tslint:disable-next-line:prefer-array-literal\n const rLevels: number[] = new Array(field.rLevelMax + 1).fill(0);\n let vIndex = 0;\n for (let i = 0; i < data.count; i++) {\n const dLevel = data.dlevels[i];\n const rLevel = data.rlevels[i];\n rLevels[rLevel]++;\n rLevels.fill(0, rLevel + 1);\n\n let rIndex = 0;\n let record = records[rLevels[rIndex++] - 1];\n\n // Internal nodes\n for (const step of branch) {\n if (step === field) break;\n if (dLevel < step.dLevelMax) break;\n if (step.repetitionType === 'REPEATED') {\n if (!(step.name in record)) {\n // eslint-disable max-depth\n record[step.name] = [];\n }\n const ix = rLevels[rIndex++];\n while (record[step.name].length <= ix) {\n // eslint-disable max-depth\n record[step.name].push({});\n }\n record = record[step.name][ix];\n } else {\n record[step.name] = record[step.name] || {};\n record = record[step.name];\n }\n }\n\n // Leaf node\n if (dLevel === field.dLevelMax) {\n const value = Types.fromPrimitive(\n // @ts-ignore\n field.originalType || field.primitiveType,\n data.values[vIndex],\n field\n );\n vIndex++;\n if (field.repetitionType === 'REPEATED') {\n if (!(field.name in record)) {\n // eslint-disable max-depth\n record[field.name] = [];\n }\n const ix = rLevels[rIndex];\n while (record[field.name].length <= ix) {\n // eslint-disable max-depth\n record[field.name].push(null);\n }\n record[field.name][ix] = value;\n } else {\n record[field.name] = value;\n }\n }\n }\n}\n"],"file":"shred.js"}
|
|
1
|
+
{"version":3,"file":"shred.js","names":["ParquetBuffer","Types","shredBuffer","schema","columnData","field","fieldList","key","dlevels","rlevels","values","pageHeaders","count","rowCount","shredRecord","record","buffer","data","shredRecordFields","fields","Array","prototype","push","apply","rLevel","dLevel","name","undefined","constructor","length","Boolean","repetitionType","Error","isNested","i","rlvl","rLevelMax","dLevelMax","toPrimitive","originalType","primitiveType","materializeRecords","records","materializeColumn","findField","branch","findFieldBranch","rLevels","fill","vIndex","rIndex","step","ix","value","fromPrimitive"],"sources":["../../../../src/parquetjs/schema/shred.ts"],"sourcesContent":["// Forked from https://github.com/kbajalc/parquets under MIT license (Copyright (c) 2017 ironSource Ltd.)\n\nimport {ParquetBuffer, ParquetData, ParquetField, ParquetRecord} from './declare';\nimport {ParquetSchema} from './schema';\nimport * as Types from './types';\n\nexport {ParquetBuffer};\n\nexport function shredBuffer(schema: ParquetSchema): ParquetBuffer {\n const columnData: Record<string, ParquetData> = {};\n for (const field of schema.fieldList) {\n columnData[field.key] = {\n dlevels: [],\n rlevels: [],\n values: [],\n pageHeaders: [],\n count: 0\n };\n }\n return {rowCount: 0, columnData};\n}\n\n/**\n * 'Shred' a record into a list of <value, repetition_level, definition_level>\n * tuples per column using the Google Dremel Algorithm..\n *\n * The buffer argument must point to an object into which the shredded record\n * will be returned. You may re-use the buffer for repeated calls to this function\n * to append to an existing buffer, as long as the schema is unchanged.\n *\n * The format in which the shredded records will be stored in the buffer is as\n * follows:\n *\n * buffer = {\n * columnData: [\n * 'my_col': {\n * dlevels: [d1, d2, .. dN],\n * rlevels: [r1, r2, .. rN],\n * values: [v1, v2, .. vN],\n * }, ...\n * ],\n * rowCount: X,\n * }\n */\nexport function shredRecord(schema: ParquetSchema, record: any, buffer: ParquetBuffer): void {\n /* shred the record, this may raise an exception */\n const data = shredBuffer(schema).columnData;\n\n shredRecordFields(schema.fields, record, data, 0, 0);\n\n /* if no error during shredding, add the shredded record to the buffer */\n if (buffer.rowCount === 0) {\n buffer.rowCount = 1;\n buffer.columnData = data;\n return;\n }\n buffer.rowCount += 1;\n for (const field of schema.fieldList) {\n Array.prototype.push.apply(buffer.columnData[field.key].rlevels, data[field.key].rlevels);\n Array.prototype.push.apply(buffer.columnData[field.key].dlevels, data[field.key].dlevels);\n Array.prototype.push.apply(buffer.columnData[field.key].values, data[field.key].values);\n buffer.columnData[field.key].count += data[field.key].count;\n }\n}\n\n// eslint-disable-next-line max-statements, complexity\nfunction shredRecordFields(\n fields: Record<string, ParquetField>,\n record: any,\n data: Record<string, ParquetData>,\n rLevel: number,\n dLevel: number\n) {\n for (const name in fields) {\n const field = fields[name];\n\n // fetch values\n let values: any[] = [];\n if (\n record &&\n field.name in record &&\n record[field.name] !== undefined &&\n record[field.name] !== null\n ) {\n if (record[field.name].constructor === Array) {\n values = record[field.name];\n } else {\n values.push(record[field.name]);\n }\n }\n // check values\n if (values.length === 0 && Boolean(record) && field.repetitionType === 'REQUIRED') {\n throw new Error(`missing required field: ${field.name}`);\n }\n if (values.length > 1 && field.repetitionType !== 'REPEATED') {\n throw new Error(`too many values for field: ${field.name}`);\n }\n\n // push null\n if (values.length === 0) {\n if (field.isNested) {\n shredRecordFields(field.fields!, null, data, rLevel, dLevel);\n } else {\n data[field.key].count += 1;\n data[field.key].rlevels.push(rLevel);\n data[field.key].dlevels.push(dLevel);\n }\n continue; // eslint-disable-line no-continue\n }\n\n // push values\n for (let i = 0; i < values.length; i++) {\n const rlvl = i === 0 ? rLevel : field.rLevelMax;\n if (field.isNested) {\n shredRecordFields(field.fields!, values[i], data, rlvl, field.dLevelMax);\n } else {\n data[field.key].count += 1;\n data[field.key].rlevels.push(rlvl);\n data[field.key].dlevels.push(field.dLevelMax);\n data[field.key].values.push(\n Types.toPrimitive((field.originalType || field.primitiveType)!, values[i])\n );\n }\n }\n }\n}\n\n/**\n * 'Materialize' a list of <value, repetition_level, definition_level>\n * tuples back to nested records (objects/arrays) using the Google Dremel\n * Algorithm..\n *\n * The buffer argument must point to an object with the following structure (i.e.\n * the same structure that is returned by shredRecords):\n *\n * buffer = {\n * columnData: [\n * 'my_col': {\n * dlevels: [d1, d2, .. dN],\n * rlevels: [r1, r2, .. rN],\n * values: [v1, v2, .. vN],\n * }, ...\n * ],\n * rowCount: X,\n * }\n */\nexport function materializeRecords(schema: ParquetSchema, buffer: ParquetBuffer): ParquetRecord[] {\n const records: ParquetRecord[] = [];\n for (let i = 0; i < buffer.rowCount; i++) records.push({});\n for (const key in buffer.columnData) {\n materializeColumn(schema, buffer, key, records);\n }\n return records;\n}\n\n// eslint-disable-next-line max-statements, complexity\nfunction materializeColumn(\n schema: ParquetSchema,\n buffer: ParquetBuffer,\n key: string,\n records: ParquetRecord[]\n) {\n const data = buffer.columnData[key];\n if (!data.count) return;\n\n const field = schema.findField(key);\n const branch = schema.findFieldBranch(key);\n\n // tslint:disable-next-line:prefer-array-literal\n const rLevels: number[] = new Array(field.rLevelMax + 1).fill(0);\n let vIndex = 0;\n for (let i = 0; i < data.count; i++) {\n const dLevel = data.dlevels[i];\n const rLevel = data.rlevels[i];\n rLevels[rLevel]++;\n rLevels.fill(0, rLevel + 1);\n\n let rIndex = 0;\n let record = records[rLevels[rIndex++] - 1];\n\n // Internal nodes\n for (const step of branch) {\n if (step === field) break;\n if (dLevel < step.dLevelMax) break;\n if (step.repetitionType === 'REPEATED') {\n if (!(step.name in record)) {\n // eslint-disable max-depth\n record[step.name] = [];\n }\n const ix = rLevels[rIndex++];\n while (record[step.name].length <= ix) {\n // eslint-disable max-depth\n record[step.name].push({});\n }\n record = record[step.name][ix];\n } else {\n record[step.name] = record[step.name] || {};\n record = record[step.name];\n }\n }\n\n // Leaf node\n if (dLevel === field.dLevelMax) {\n const value = Types.fromPrimitive(\n // @ts-ignore\n field.originalType || field.primitiveType,\n data.values[vIndex],\n field\n );\n vIndex++;\n if (field.repetitionType === 'REPEATED') {\n if (!(field.name in record)) {\n // eslint-disable max-depth\n record[field.name] = [];\n }\n const ix = rLevels[rIndex];\n while (record[field.name].length <= ix) {\n // eslint-disable max-depth\n record[field.name].push(null);\n }\n record[field.name][ix] = value;\n } else {\n record[field.name] = value;\n }\n }\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
|
|
1
2
|
import BSON from 'bson';
|
|
2
3
|
export const PARQUET_LOGICAL_TYPES = {
|
|
3
4
|
BOOLEAN: {
|
|
@@ -151,221 +152,163 @@ export const PARQUET_LOGICAL_TYPES = {
|
|
|
151
152
|
fromPrimitive: decimalFromPrimitive_BYTE_ARRAY
|
|
152
153
|
}
|
|
153
154
|
};
|
|
155
|
+
|
|
154
156
|
export function toPrimitive(type, value, field) {
|
|
155
157
|
if (!(type in PARQUET_LOGICAL_TYPES)) {
|
|
156
158
|
throw new Error("invalid type: ".concat(type));
|
|
157
159
|
}
|
|
158
|
-
|
|
159
160
|
return PARQUET_LOGICAL_TYPES[type].toPrimitive(value, field);
|
|
160
161
|
}
|
|
162
|
+
|
|
161
163
|
export function fromPrimitive(type, value, field) {
|
|
162
164
|
if (!(type in PARQUET_LOGICAL_TYPES)) {
|
|
163
165
|
throw new Error("invalid type: ".concat(type));
|
|
164
166
|
}
|
|
165
|
-
|
|
166
167
|
if ('fromPrimitive' in PARQUET_LOGICAL_TYPES[type]) {
|
|
167
168
|
var _PARQUET_LOGICAL_TYPE, _PARQUET_LOGICAL_TYPE2;
|
|
168
|
-
|
|
169
169
|
return (_PARQUET_LOGICAL_TYPE = (_PARQUET_LOGICAL_TYPE2 = PARQUET_LOGICAL_TYPES[type]).fromPrimitive) === null || _PARQUET_LOGICAL_TYPE === void 0 ? void 0 : _PARQUET_LOGICAL_TYPE.call(_PARQUET_LOGICAL_TYPE2, value, field);
|
|
170
170
|
}
|
|
171
171
|
|
|
172
172
|
return value;
|
|
173
173
|
}
|
|
174
|
-
|
|
175
174
|
function toPrimitive_BOOLEAN(value) {
|
|
176
175
|
return Boolean(value);
|
|
177
176
|
}
|
|
178
|
-
|
|
179
177
|
function fromPrimitive_BOOLEAN(value) {
|
|
180
178
|
return Boolean(value);
|
|
181
179
|
}
|
|
182
|
-
|
|
183
180
|
function toPrimitive_FLOAT(value) {
|
|
184
181
|
const v = parseFloat(value);
|
|
185
|
-
|
|
186
182
|
if (isNaN(v)) {
|
|
187
183
|
throw new Error("invalid value for FLOAT: ".concat(value));
|
|
188
184
|
}
|
|
189
|
-
|
|
190
185
|
return v;
|
|
191
186
|
}
|
|
192
|
-
|
|
193
187
|
function toPrimitive_DOUBLE(value) {
|
|
194
188
|
const v = parseFloat(value);
|
|
195
|
-
|
|
196
189
|
if (isNaN(v)) {
|
|
197
190
|
throw new Error("invalid value for DOUBLE: ".concat(value));
|
|
198
191
|
}
|
|
199
|
-
|
|
200
192
|
return v;
|
|
201
193
|
}
|
|
202
|
-
|
|
203
194
|
function toPrimitive_INT8(value) {
|
|
204
195
|
const v = parseInt(value, 10);
|
|
205
|
-
|
|
206
196
|
if (v < -0x80 || v > 0x7f || isNaN(v)) {
|
|
207
197
|
throw new Error("invalid value for INT8: ".concat(value));
|
|
208
198
|
}
|
|
209
|
-
|
|
210
199
|
return v;
|
|
211
200
|
}
|
|
212
|
-
|
|
213
201
|
function toPrimitive_UINT8(value) {
|
|
214
202
|
const v = parseInt(value, 10);
|
|
215
|
-
|
|
216
203
|
if (v < 0 || v > 0xff || isNaN(v)) {
|
|
217
204
|
throw new Error("invalid value for UINT8: ".concat(value));
|
|
218
205
|
}
|
|
219
|
-
|
|
220
206
|
return v;
|
|
221
207
|
}
|
|
222
|
-
|
|
223
208
|
function toPrimitive_INT16(value) {
|
|
224
209
|
const v = parseInt(value, 10);
|
|
225
|
-
|
|
226
210
|
if (v < -0x8000 || v > 0x7fff || isNaN(v)) {
|
|
227
211
|
throw new Error("invalid value for INT16: ".concat(value));
|
|
228
212
|
}
|
|
229
|
-
|
|
230
213
|
return v;
|
|
231
214
|
}
|
|
232
|
-
|
|
233
215
|
function toPrimitive_UINT16(value) {
|
|
234
216
|
const v = parseInt(value, 10);
|
|
235
|
-
|
|
236
217
|
if (v < 0 || v > 0xffff || isNaN(v)) {
|
|
237
218
|
throw new Error("invalid value for UINT16: ".concat(value));
|
|
238
219
|
}
|
|
239
|
-
|
|
240
220
|
return v;
|
|
241
221
|
}
|
|
242
|
-
|
|
243
222
|
function toPrimitive_INT32(value) {
|
|
244
223
|
const v = parseInt(value, 10);
|
|
245
|
-
|
|
246
224
|
if (v < -0x80000000 || v > 0x7fffffff || isNaN(v)) {
|
|
247
225
|
throw new Error("invalid value for INT32: ".concat(value));
|
|
248
226
|
}
|
|
249
|
-
|
|
250
227
|
return v;
|
|
251
228
|
}
|
|
252
|
-
|
|
253
229
|
function decimalToPrimitive_INT32(value, field) {
|
|
254
230
|
const primitiveValue = value * 10 ** (field.scale || 0);
|
|
255
231
|
const v = Math.round(primitiveValue * 10 ** -field.presision % 1 * 10 ** field.presision);
|
|
256
|
-
|
|
257
232
|
if (v < -0x80000000 || v > 0x7fffffff || isNaN(v)) {
|
|
258
233
|
throw new Error("invalid value for INT32: ".concat(value));
|
|
259
234
|
}
|
|
260
|
-
|
|
261
235
|
return v;
|
|
262
236
|
}
|
|
263
|
-
|
|
264
237
|
function toPrimitive_UINT32(value) {
|
|
265
238
|
const v = parseInt(value, 10);
|
|
266
|
-
|
|
267
239
|
if (v < 0 || v > 0xffffffffffff || isNaN(v)) {
|
|
268
240
|
throw new Error("invalid value for UINT32: ".concat(value));
|
|
269
241
|
}
|
|
270
|
-
|
|
271
242
|
return v;
|
|
272
243
|
}
|
|
273
|
-
|
|
274
244
|
function toPrimitive_INT64(value) {
|
|
275
245
|
const v = parseInt(value, 10);
|
|
276
|
-
|
|
277
246
|
if (isNaN(v)) {
|
|
278
247
|
throw new Error("invalid value for INT64: ".concat(value));
|
|
279
248
|
}
|
|
280
|
-
|
|
281
249
|
return v;
|
|
282
250
|
}
|
|
283
|
-
|
|
284
251
|
function decimalToPrimitive_INT64(value, field) {
|
|
285
252
|
const primitiveValue = value * 10 ** (field.scale || 0);
|
|
286
253
|
const v = Math.round(primitiveValue * 10 ** -field.presision % 1 * 10 ** field.presision);
|
|
287
|
-
|
|
288
254
|
if (isNaN(v)) {
|
|
289
255
|
throw new Error("invalid value for INT64: ".concat(value));
|
|
290
256
|
}
|
|
291
|
-
|
|
292
257
|
return v;
|
|
293
258
|
}
|
|
294
|
-
|
|
295
259
|
function toPrimitive_UINT64(value) {
|
|
296
260
|
const v = parseInt(value, 10);
|
|
297
|
-
|
|
298
261
|
if (v < 0 || isNaN(v)) {
|
|
299
262
|
throw new Error("invalid value for UINT64: ".concat(value));
|
|
300
263
|
}
|
|
301
|
-
|
|
302
264
|
return v;
|
|
303
265
|
}
|
|
304
|
-
|
|
305
266
|
function toPrimitive_INT96(value) {
|
|
306
267
|
const v = parseInt(value, 10);
|
|
307
|
-
|
|
308
268
|
if (isNaN(v)) {
|
|
309
269
|
throw new Error("invalid value for INT96: ".concat(value));
|
|
310
270
|
}
|
|
311
|
-
|
|
312
271
|
return v;
|
|
313
272
|
}
|
|
314
|
-
|
|
315
273
|
function toPrimitive_BYTE_ARRAY(value) {
|
|
316
274
|
return Buffer.from(value);
|
|
317
275
|
}
|
|
318
|
-
|
|
319
276
|
function decimalToPrimitive_BYTE_ARRAY(value) {
|
|
320
277
|
return Buffer.from(value);
|
|
321
278
|
}
|
|
322
|
-
|
|
323
279
|
function toPrimitive_UTF8(value) {
|
|
324
280
|
return Buffer.from(value, 'utf8');
|
|
325
281
|
}
|
|
326
|
-
|
|
327
282
|
function fromPrimitive_UTF8(value) {
|
|
328
283
|
return value.toString();
|
|
329
284
|
}
|
|
330
|
-
|
|
331
285
|
function toPrimitive_JSON(value) {
|
|
332
286
|
return Buffer.from(JSON.stringify(value));
|
|
333
287
|
}
|
|
334
|
-
|
|
335
288
|
function fromPrimitive_JSON(value) {
|
|
336
289
|
return JSON.parse(value);
|
|
337
290
|
}
|
|
338
|
-
|
|
339
291
|
function toPrimitive_BSON(value) {
|
|
340
292
|
return Buffer.from(BSON.serialize(value));
|
|
341
293
|
}
|
|
342
|
-
|
|
343
294
|
function fromPrimitive_BSON(value) {
|
|
344
295
|
return BSON.deserialize(value);
|
|
345
296
|
}
|
|
346
|
-
|
|
347
297
|
function toPrimitive_TIME_MILLIS(value) {
|
|
348
298
|
const v = parseInt(value, 10);
|
|
349
|
-
|
|
350
299
|
if (v < 0 || v > 0xffffffffffffffff || isNaN(v)) {
|
|
351
300
|
throw new Error("invalid value for TIME_MILLIS: ".concat(value));
|
|
352
301
|
}
|
|
353
|
-
|
|
354
302
|
return v;
|
|
355
303
|
}
|
|
356
|
-
|
|
357
304
|
function toPrimitive_TIME_MICROS(value) {
|
|
358
305
|
const v = parseInt(value, 10);
|
|
359
|
-
|
|
360
306
|
if (v < 0 || isNaN(v)) {
|
|
361
307
|
throw new Error("invalid value for TIME_MICROS: ".concat(value));
|
|
362
308
|
}
|
|
363
|
-
|
|
364
309
|
return v;
|
|
365
310
|
}
|
|
366
|
-
|
|
367
311
|
const kMillisPerDay = 86400000;
|
|
368
|
-
|
|
369
312
|
function toPrimitive_DATE(value) {
|
|
370
313
|
if (value instanceof Date) {
|
|
371
314
|
return value.getTime() / kMillisPerDay;
|
|
@@ -373,19 +316,15 @@ function toPrimitive_DATE(value) {
|
|
|
373
316
|
|
|
374
317
|
{
|
|
375
318
|
const v = parseInt(value, 10);
|
|
376
|
-
|
|
377
319
|
if (v < 0 || isNaN(v)) {
|
|
378
320
|
throw new Error("invalid value for DATE: ".concat(value));
|
|
379
321
|
}
|
|
380
|
-
|
|
381
322
|
return v;
|
|
382
323
|
}
|
|
383
324
|
}
|
|
384
|
-
|
|
385
325
|
function fromPrimitive_DATE(value) {
|
|
386
326
|
return new Date(value * kMillisPerDay);
|
|
387
327
|
}
|
|
388
|
-
|
|
389
328
|
function toPrimitive_TIMESTAMP_MILLIS(value) {
|
|
390
329
|
if (value instanceof Date) {
|
|
391
330
|
return value.getTime();
|
|
@@ -393,19 +332,15 @@ function toPrimitive_TIMESTAMP_MILLIS(value) {
|
|
|
393
332
|
|
|
394
333
|
{
|
|
395
334
|
const v = parseInt(value, 10);
|
|
396
|
-
|
|
397
335
|
if (v < 0 || isNaN(v)) {
|
|
398
336
|
throw new Error("invalid value for TIMESTAMP_MILLIS: ".concat(value));
|
|
399
337
|
}
|
|
400
|
-
|
|
401
338
|
return v;
|
|
402
339
|
}
|
|
403
340
|
}
|
|
404
|
-
|
|
405
341
|
function fromPrimitive_TIMESTAMP_MILLIS(value) {
|
|
406
342
|
return new Date(value);
|
|
407
343
|
}
|
|
408
|
-
|
|
409
344
|
function toPrimitive_TIMESTAMP_MICROS(value) {
|
|
410
345
|
if (value instanceof Date) {
|
|
411
346
|
return value.getTime() * 1000;
|
|
@@ -413,31 +348,25 @@ function toPrimitive_TIMESTAMP_MICROS(value) {
|
|
|
413
348
|
|
|
414
349
|
{
|
|
415
350
|
const v = parseInt(value, 10);
|
|
416
|
-
|
|
417
351
|
if (v < 0 || isNaN(v)) {
|
|
418
352
|
throw new Error("invalid value for TIMESTAMP_MICROS: ".concat(value));
|
|
419
353
|
}
|
|
420
|
-
|
|
421
354
|
return v;
|
|
422
355
|
}
|
|
423
356
|
}
|
|
424
|
-
|
|
425
357
|
function fromPrimitive_TIMESTAMP_MICROS(value) {
|
|
426
358
|
return new Date(value / 1000);
|
|
427
359
|
}
|
|
428
|
-
|
|
429
360
|
function toPrimitive_INTERVAL(value) {
|
|
430
361
|
if (!value.months || !value.days || !value.milliseconds) {
|
|
431
362
|
throw new Error('value for INTERVAL must be object { months: ..., days: ..., milliseconds: ... }');
|
|
432
363
|
}
|
|
433
|
-
|
|
434
364
|
const buf = Buffer.alloc(12);
|
|
435
365
|
buf.writeUInt32LE(value.months, 0);
|
|
436
366
|
buf.writeUInt32LE(value.days, 4);
|
|
437
367
|
buf.writeUInt32LE(value.milliseconds, 8);
|
|
438
368
|
return buf;
|
|
439
369
|
}
|
|
440
|
-
|
|
441
370
|
function fromPrimitive_INTERVAL(value) {
|
|
442
371
|
const buf = Buffer.from(value);
|
|
443
372
|
const months = buf.readUInt32LE(0);
|
|
@@ -449,15 +378,12 @@ function fromPrimitive_INTERVAL(value) {
|
|
|
449
378
|
milliseconds: millis
|
|
450
379
|
};
|
|
451
380
|
}
|
|
452
|
-
|
|
453
381
|
function decimalFromPrimitive_INT(value, field) {
|
|
454
382
|
const presisionInt = Math.round(value * 10 ** -field.presision % 1 * 10 ** field.presision);
|
|
455
383
|
return presisionInt * 10 ** -(field.scale || 0);
|
|
456
384
|
}
|
|
457
|
-
|
|
458
385
|
function decimalFromPrimitive_BYTE_ARRAY(value, field) {
|
|
459
386
|
let number = 0;
|
|
460
|
-
|
|
461
387
|
if (value.length <= 4) {
|
|
462
388
|
for (let i = 0; i < value.length; i++) {
|
|
463
389
|
const component = value[i] << 8 * (value.length - i - 1);
|
|
@@ -469,7 +395,6 @@ function decimalFromPrimitive_BYTE_ARRAY(value, field) {
|
|
|
469
395
|
number += component;
|
|
470
396
|
}
|
|
471
397
|
}
|
|
472
|
-
|
|
473
398
|
const presisionInt = Math.round(number * 10 ** -field.presision % 1 * 10 ** field.presision);
|
|
474
399
|
return presisionInt * 10 ** -(field.scale || 0);
|
|
475
400
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/parquetjs/schema/types.ts"],"names":["BSON","PARQUET_LOGICAL_TYPES","BOOLEAN","primitiveType","toPrimitive","toPrimitive_BOOLEAN","fromPrimitive","fromPrimitive_BOOLEAN","INT32","toPrimitive_INT32","INT64","toPrimitive_INT64","INT96","toPrimitive_INT96","FLOAT","toPrimitive_FLOAT","DOUBLE","toPrimitive_DOUBLE","BYTE_ARRAY","toPrimitive_BYTE_ARRAY","FIXED_LEN_BYTE_ARRAY","UTF8","originalType","toPrimitive_UTF8","fromPrimitive_UTF8","TIME_MILLIS","toPrimitive_TIME_MILLIS","TIME_MICROS","toPrimitive_TIME_MICROS","DATE","toPrimitive_DATE","fromPrimitive_DATE","TIMESTAMP_MILLIS","toPrimitive_TIMESTAMP_MILLIS","fromPrimitive_TIMESTAMP_MILLIS","TIMESTAMP_MICROS","toPrimitive_TIMESTAMP_MICROS","fromPrimitive_TIMESTAMP_MICROS","UINT_8","toPrimitive_UINT8","UINT_16","toPrimitive_UINT16","UINT_32","toPrimitive_UINT32","UINT_64","toPrimitive_UINT64","INT_8","toPrimitive_INT8","INT_16","toPrimitive_INT16","INT_32","INT_64","JSON","toPrimitive_JSON","fromPrimitive_JSON","toPrimitive_BSON","fromPrimitive_BSON","INTERVAL","typeLength","toPrimitive_INTERVAL","fromPrimitive_INTERVAL","DECIMAL_INT32","decimalToPrimitive_INT32","decimalFromPrimitive_INT","DECIMAL_INT64","decimalToPrimitive_INT64","DECIMAL_BYTE_ARRAY","decimalToPrimitive_BYTE_ARRAY","decimalFromPrimitive_BYTE_ARRAY","DECIMAL_FIXED_LEN_BYTE_ARRAY","type","value","field","Error","Boolean","v","parseFloat","isNaN","parseInt","primitiveValue","scale","Math","round","presision","Buffer","from","toString","stringify","parse","serialize","deserialize","kMillisPerDay","Date","getTime","months","days","milliseconds","buf","alloc","writeUInt32LE","readUInt32LE","millis","presisionInt","number","length","i","component"],"mappings":"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","sourcesContent":["// Forked from https://github.com/kbajalc/parquets under MIT license (Copyright (c) 2017 ironSource Ltd.)\n/* eslint-disable camelcase */\nimport BSON from 'bson';\nimport {OriginalType, ParquetField, ParquetType, PrimitiveType} from './declare';\n\nexport interface ParquetTypeKit {\n primitiveType: PrimitiveType;\n originalType?: OriginalType;\n typeLength?: number;\n toPrimitive: Function;\n fromPrimitive?: Function;\n}\n\nexport const PARQUET_LOGICAL_TYPES: Record<ParquetType, ParquetTypeKit> = {\n BOOLEAN: {\n primitiveType: 'BOOLEAN',\n toPrimitive: toPrimitive_BOOLEAN,\n fromPrimitive: fromPrimitive_BOOLEAN\n },\n INT32: {\n primitiveType: 'INT32',\n toPrimitive: toPrimitive_INT32\n },\n INT64: {\n primitiveType: 'INT64',\n toPrimitive: toPrimitive_INT64\n },\n INT96: {\n primitiveType: 'INT96',\n toPrimitive: toPrimitive_INT96\n },\n FLOAT: {\n primitiveType: 'FLOAT',\n toPrimitive: toPrimitive_FLOAT\n },\n DOUBLE: {\n primitiveType: 'DOUBLE',\n toPrimitive: toPrimitive_DOUBLE\n },\n BYTE_ARRAY: {\n primitiveType: 'BYTE_ARRAY',\n toPrimitive: toPrimitive_BYTE_ARRAY\n },\n FIXED_LEN_BYTE_ARRAY: {\n primitiveType: 'FIXED_LEN_BYTE_ARRAY',\n toPrimitive: toPrimitive_BYTE_ARRAY\n },\n UTF8: {\n primitiveType: 'BYTE_ARRAY',\n originalType: 'UTF8',\n toPrimitive: toPrimitive_UTF8,\n fromPrimitive: fromPrimitive_UTF8\n },\n TIME_MILLIS: {\n primitiveType: 'INT32',\n originalType: 'TIME_MILLIS',\n toPrimitive: toPrimitive_TIME_MILLIS\n },\n TIME_MICROS: {\n primitiveType: 'INT64',\n originalType: 'TIME_MICROS',\n toPrimitive: toPrimitive_TIME_MICROS\n },\n DATE: {\n primitiveType: 'INT32',\n originalType: 'DATE',\n toPrimitive: toPrimitive_DATE,\n fromPrimitive: fromPrimitive_DATE\n },\n TIMESTAMP_MILLIS: {\n primitiveType: 'INT64',\n originalType: 'TIMESTAMP_MILLIS',\n toPrimitive: toPrimitive_TIMESTAMP_MILLIS,\n fromPrimitive: fromPrimitive_TIMESTAMP_MILLIS\n },\n TIMESTAMP_MICROS: {\n primitiveType: 'INT64',\n originalType: 'TIMESTAMP_MICROS',\n toPrimitive: toPrimitive_TIMESTAMP_MICROS,\n fromPrimitive: fromPrimitive_TIMESTAMP_MICROS\n },\n UINT_8: {\n primitiveType: 'INT32',\n originalType: 'UINT_8',\n toPrimitive: toPrimitive_UINT8\n },\n UINT_16: {\n primitiveType: 'INT32',\n originalType: 'UINT_16',\n toPrimitive: toPrimitive_UINT16\n },\n UINT_32: {\n primitiveType: 'INT32',\n originalType: 'UINT_32',\n toPrimitive: toPrimitive_UINT32\n },\n UINT_64: {\n primitiveType: 'INT64',\n originalType: 'UINT_64',\n toPrimitive: toPrimitive_UINT64\n },\n INT_8: {\n primitiveType: 'INT32',\n originalType: 'INT_8',\n toPrimitive: toPrimitive_INT8\n },\n INT_16: {\n primitiveType: 'INT32',\n originalType: 'INT_16',\n toPrimitive: toPrimitive_INT16\n },\n INT_32: {\n primitiveType: 'INT32',\n originalType: 'INT_32',\n toPrimitive: toPrimitive_INT32\n },\n INT_64: {\n primitiveType: 'INT64',\n originalType: 'INT_64',\n toPrimitive: toPrimitive_INT64\n },\n JSON: {\n primitiveType: 'BYTE_ARRAY',\n originalType: 'JSON',\n toPrimitive: toPrimitive_JSON,\n fromPrimitive: fromPrimitive_JSON\n },\n BSON: {\n primitiveType: 'BYTE_ARRAY',\n originalType: 'BSON',\n toPrimitive: toPrimitive_BSON,\n fromPrimitive: fromPrimitive_BSON\n },\n INTERVAL: {\n primitiveType: 'FIXED_LEN_BYTE_ARRAY',\n originalType: 'INTERVAL',\n typeLength: 12,\n toPrimitive: toPrimitive_INTERVAL,\n fromPrimitive: fromPrimitive_INTERVAL\n },\n DECIMAL_INT32: {\n primitiveType: 'INT32',\n originalType: 'DECIMAL_INT32',\n toPrimitive: decimalToPrimitive_INT32,\n fromPrimitive: decimalFromPrimitive_INT\n },\n DECIMAL_INT64: {\n primitiveType: 'INT64',\n originalType: 'DECIMAL_INT64',\n toPrimitive: decimalToPrimitive_INT64,\n fromPrimitive: decimalFromPrimitive_INT\n },\n DECIMAL_BYTE_ARRAY: {\n primitiveType: 'BYTE_ARRAY',\n originalType: 'DECIMAL_BYTE_ARRAY',\n toPrimitive: decimalToPrimitive_BYTE_ARRAY,\n fromPrimitive: decimalFromPrimitive_BYTE_ARRAY\n },\n DECIMAL_FIXED_LEN_BYTE_ARRAY: {\n primitiveType: 'FIXED_LEN_BYTE_ARRAY',\n originalType: 'DECIMAL_FIXED_LEN_BYTE_ARRAY',\n toPrimitive: decimalToPrimitive_BYTE_ARRAY,\n fromPrimitive: decimalFromPrimitive_BYTE_ARRAY\n }\n};\n\n/**\n * Convert a value from it's native representation to the internal/underlying\n * primitive type\n */\nexport function toPrimitive(type: ParquetType, value: any, field?: ParquetField) {\n if (!(type in PARQUET_LOGICAL_TYPES)) {\n throw new Error(`invalid type: ${type}`);\n }\n\n return PARQUET_LOGICAL_TYPES[type].toPrimitive(value, field);\n}\n\n/**\n * Convert a value from it's internal/underlying primitive representation to\n * the native representation\n */\nexport function fromPrimitive(type: ParquetType, value: any, field?: ParquetField) {\n if (!(type in PARQUET_LOGICAL_TYPES)) {\n throw new Error(`invalid type: ${type}`);\n }\n\n if ('fromPrimitive' in PARQUET_LOGICAL_TYPES[type]) {\n return PARQUET_LOGICAL_TYPES[type].fromPrimitive?.(value, field);\n // tslint:disable-next-line:no-else-after-return\n }\n return value;\n}\n\nfunction toPrimitive_BOOLEAN(value: any) {\n return Boolean(value);\n}\n\nfunction fromPrimitive_BOOLEAN(value: any) {\n return Boolean(value);\n}\n\nfunction toPrimitive_FLOAT(value: any) {\n const v = parseFloat(value);\n if (isNaN(v)) {\n throw new Error(`invalid value for FLOAT: ${value}`);\n }\n\n return v;\n}\n\nfunction toPrimitive_DOUBLE(value: any) {\n const v = parseFloat(value);\n if (isNaN(v)) {\n throw new Error(`invalid value for DOUBLE: ${value}`);\n }\n\n return v;\n}\n\nfunction toPrimitive_INT8(value: any) {\n const v = parseInt(value, 10);\n if (v < -0x80 || v > 0x7f || isNaN(v)) {\n throw new Error(`invalid value for INT8: ${value}`);\n }\n\n return v;\n}\n\nfunction toPrimitive_UINT8(value: any) {\n const v = parseInt(value, 10);\n if (v < 0 || v > 0xff || isNaN(v)) {\n throw new Error(`invalid value for UINT8: ${value}`);\n }\n\n return v;\n}\n\nfunction toPrimitive_INT16(value: any) {\n const v = parseInt(value, 10);\n if (v < -0x8000 || v > 0x7fff || isNaN(v)) {\n throw new Error(`invalid value for INT16: ${value}`);\n }\n\n return v;\n}\n\nfunction toPrimitive_UINT16(value: any) {\n const v = parseInt(value, 10);\n if (v < 0 || v > 0xffff || isNaN(v)) {\n throw new Error(`invalid value for UINT16: ${value}`);\n }\n\n return v;\n}\n\nfunction toPrimitive_INT32(value: any) {\n const v = parseInt(value, 10);\n if (v < -0x80000000 || v > 0x7fffffff || isNaN(v)) {\n throw new Error(`invalid value for INT32: ${value}`);\n }\n\n return v;\n}\n\nfunction decimalToPrimitive_INT32(value: number, field: ParquetField) {\n const primitiveValue = value * 10 ** (field.scale || 0);\n const v = Math.round(((primitiveValue * 10 ** -field.presision!) % 1) * 10 ** field.presision!);\n if (v < -0x80000000 || v > 0x7fffffff || isNaN(v)) {\n throw new Error(`invalid value for INT32: ${value}`);\n }\n\n return v;\n}\n\nfunction toPrimitive_UINT32(value: any) {\n const v = parseInt(value, 10);\n if (v < 0 || v > 0xffffffffffff || isNaN(v)) {\n throw new Error(`invalid value for UINT32: ${value}`);\n }\n\n return v;\n}\n\nfunction toPrimitive_INT64(value: any) {\n const v = parseInt(value, 10);\n if (isNaN(v)) {\n throw new Error(`invalid value for INT64: ${value}`);\n }\n\n return v;\n}\n\nfunction decimalToPrimitive_INT64(value: number, field: ParquetField) {\n const primitiveValue = value * 10 ** (field.scale || 0);\n const v = Math.round(((primitiveValue * 10 ** -field.presision!) % 1) * 10 ** field.presision!);\n if (isNaN(v)) {\n throw new Error(`invalid value for INT64: ${value}`);\n }\n\n return v;\n}\n\nfunction toPrimitive_UINT64(value: any) {\n const v = parseInt(value, 10);\n if (v < 0 || isNaN(v)) {\n throw new Error(`invalid value for UINT64: ${value}`);\n }\n\n return v;\n}\n\nfunction toPrimitive_INT96(value: any) {\n const v = parseInt(value, 10);\n if (isNaN(v)) {\n throw new Error(`invalid value for INT96: ${value}`);\n }\n\n return v;\n}\n\nfunction toPrimitive_BYTE_ARRAY(value: any) {\n return Buffer.from(value);\n}\n\nfunction decimalToPrimitive_BYTE_ARRAY(value: any) {\n // TBD\n return Buffer.from(value);\n}\n\nfunction toPrimitive_UTF8(value: any) {\n return Buffer.from(value, 'utf8');\n}\n\nfunction fromPrimitive_UTF8(value: any) {\n return value.toString();\n}\n\nfunction toPrimitive_JSON(value: any) {\n return Buffer.from(JSON.stringify(value));\n}\n\nfunction fromPrimitive_JSON(value: any) {\n return JSON.parse(value);\n}\n\nfunction toPrimitive_BSON(value: any) {\n return Buffer.from(BSON.serialize(value));\n}\n\nfunction fromPrimitive_BSON(value: any) {\n return BSON.deserialize(value);\n}\n\nfunction toPrimitive_TIME_MILLIS(value: any) {\n const v = parseInt(value, 10);\n if (v < 0 || v > 0xffffffffffffffff || isNaN(v)) {\n throw new Error(`invalid value for TIME_MILLIS: ${value}`);\n }\n\n return v;\n}\n\nfunction toPrimitive_TIME_MICROS(value: any) {\n const v = parseInt(value, 10);\n if (v < 0 || isNaN(v)) {\n throw new Error(`invalid value for TIME_MICROS: ${value}`);\n }\n\n return v;\n}\n\nconst kMillisPerDay = 86400000;\n\nfunction toPrimitive_DATE(value: any) {\n /* convert from date */\n if (value instanceof Date) {\n return value.getTime() / kMillisPerDay;\n }\n\n /* convert from integer */\n {\n const v = parseInt(value, 10);\n if (v < 0 || isNaN(v)) {\n throw new Error(`invalid value for DATE: ${value}`);\n }\n\n return v;\n }\n}\n\nfunction fromPrimitive_DATE(value: any) {\n return new Date(value * kMillisPerDay);\n}\n\nfunction toPrimitive_TIMESTAMP_MILLIS(value: any) {\n /* convert from date */\n if (value instanceof Date) {\n return value.getTime();\n }\n\n /* convert from integer */\n {\n const v = parseInt(value, 10);\n if (v < 0 || isNaN(v)) {\n throw new Error(`invalid value for TIMESTAMP_MILLIS: ${value}`);\n }\n\n return v;\n }\n}\n\nfunction fromPrimitive_TIMESTAMP_MILLIS(value: any) {\n return new Date(value);\n}\n\nfunction toPrimitive_TIMESTAMP_MICROS(value: any) {\n /* convert from date */\n if (value instanceof Date) {\n return value.getTime() * 1000;\n }\n\n /* convert from integer */\n {\n const v = parseInt(value, 10);\n if (v < 0 || isNaN(v)) {\n throw new Error(`invalid value for TIMESTAMP_MICROS: ${value}`);\n }\n\n return v;\n }\n}\n\nfunction fromPrimitive_TIMESTAMP_MICROS(value: any) {\n return new Date(value / 1000);\n}\n\nfunction toPrimitive_INTERVAL(value: any) {\n if (!value.months || !value.days || !value.milliseconds) {\n throw new Error(\n 'value for INTERVAL must be object { months: ..., days: ..., milliseconds: ... }'\n );\n }\n\n const buf = Buffer.alloc(12);\n\n buf.writeUInt32LE(value.months, 0);\n buf.writeUInt32LE(value.days, 4);\n buf.writeUInt32LE(value.milliseconds, 8);\n return buf;\n}\n\nfunction fromPrimitive_INTERVAL(value: any) {\n const buf = Buffer.from(value);\n const months = buf.readUInt32LE(0);\n const days = buf.readUInt32LE(4);\n const millis = buf.readUInt32LE(8);\n\n return {months, days, milliseconds: millis};\n}\n\nfunction decimalFromPrimitive_INT(value: any, field: ParquetField) {\n const presisionInt = Math.round(((value * 10 ** -field.presision!) % 1) * 10 ** field.presision!);\n return presisionInt * 10 ** -(field.scale || 0);\n}\n\nfunction decimalFromPrimitive_BYTE_ARRAY(value: any, field: ParquetField) {\n let number = 0;\n if (value.length <= 4) {\n // Bytewise operators faster. Use them if it is possible\n for (let i = 0; i < value.length; i++) {\n // `value.length - i - 1` bytes have reverse order (big-endian)\n const component = value[i] << (8 * (value.length - i - 1));\n number += component;\n }\n } else {\n for (let i = 0; i < value.length; i++) {\n // `value.length - i - 1` bytes have reverse order (big-endian)\n const component = value[i] * 2 ** (8 * (value.length - 1 - i));\n number += component;\n }\n }\n\n const presisionInt = Math.round(\n ((number * 10 ** -field.presision!) % 1) * 10 ** field.presision!\n );\n return presisionInt * 10 ** -(field.scale || 0);\n}\n"],"file":"types.js"}
|
|
1
|
+
{"version":3,"file":"types.js","names":["BSON","PARQUET_LOGICAL_TYPES","BOOLEAN","primitiveType","toPrimitive","toPrimitive_BOOLEAN","fromPrimitive","fromPrimitive_BOOLEAN","INT32","toPrimitive_INT32","INT64","toPrimitive_INT64","INT96","toPrimitive_INT96","FLOAT","toPrimitive_FLOAT","DOUBLE","toPrimitive_DOUBLE","BYTE_ARRAY","toPrimitive_BYTE_ARRAY","FIXED_LEN_BYTE_ARRAY","UTF8","originalType","toPrimitive_UTF8","fromPrimitive_UTF8","TIME_MILLIS","toPrimitive_TIME_MILLIS","TIME_MICROS","toPrimitive_TIME_MICROS","DATE","toPrimitive_DATE","fromPrimitive_DATE","TIMESTAMP_MILLIS","toPrimitive_TIMESTAMP_MILLIS","fromPrimitive_TIMESTAMP_MILLIS","TIMESTAMP_MICROS","toPrimitive_TIMESTAMP_MICROS","fromPrimitive_TIMESTAMP_MICROS","UINT_8","toPrimitive_UINT8","UINT_16","toPrimitive_UINT16","UINT_32","toPrimitive_UINT32","UINT_64","toPrimitive_UINT64","INT_8","toPrimitive_INT8","INT_16","toPrimitive_INT16","INT_32","INT_64","JSON","toPrimitive_JSON","fromPrimitive_JSON","toPrimitive_BSON","fromPrimitive_BSON","INTERVAL","typeLength","toPrimitive_INTERVAL","fromPrimitive_INTERVAL","DECIMAL_INT32","decimalToPrimitive_INT32","decimalFromPrimitive_INT","DECIMAL_INT64","decimalToPrimitive_INT64","DECIMAL_BYTE_ARRAY","decimalToPrimitive_BYTE_ARRAY","decimalFromPrimitive_BYTE_ARRAY","DECIMAL_FIXED_LEN_BYTE_ARRAY","type","value","field","Error","Boolean","v","parseFloat","isNaN","parseInt","primitiveValue","scale","Math","round","presision","Buffer","from","toString","stringify","parse","serialize","deserialize","kMillisPerDay","Date","getTime","months","days","milliseconds","buf","alloc","writeUInt32LE","readUInt32LE","millis","presisionInt","number","length","i","component"],"sources":["../../../../src/parquetjs/schema/types.ts"],"sourcesContent":["// Forked from https://github.com/kbajalc/parquets under MIT license (Copyright (c) 2017 ironSource Ltd.)\n/* eslint-disable camelcase */\nimport BSON from 'bson';\nimport {OriginalType, ParquetField, ParquetType, PrimitiveType} from './declare';\n\nexport interface ParquetTypeKit {\n primitiveType: PrimitiveType;\n originalType?: OriginalType;\n typeLength?: number;\n toPrimitive: Function;\n fromPrimitive?: Function;\n}\n\nexport const PARQUET_LOGICAL_TYPES: Record<ParquetType, ParquetTypeKit> = {\n BOOLEAN: {\n primitiveType: 'BOOLEAN',\n toPrimitive: toPrimitive_BOOLEAN,\n fromPrimitive: fromPrimitive_BOOLEAN\n },\n INT32: {\n primitiveType: 'INT32',\n toPrimitive: toPrimitive_INT32\n },\n INT64: {\n primitiveType: 'INT64',\n toPrimitive: toPrimitive_INT64\n },\n INT96: {\n primitiveType: 'INT96',\n toPrimitive: toPrimitive_INT96\n },\n FLOAT: {\n primitiveType: 'FLOAT',\n toPrimitive: toPrimitive_FLOAT\n },\n DOUBLE: {\n primitiveType: 'DOUBLE',\n toPrimitive: toPrimitive_DOUBLE\n },\n BYTE_ARRAY: {\n primitiveType: 'BYTE_ARRAY',\n toPrimitive: toPrimitive_BYTE_ARRAY\n },\n FIXED_LEN_BYTE_ARRAY: {\n primitiveType: 'FIXED_LEN_BYTE_ARRAY',\n toPrimitive: toPrimitive_BYTE_ARRAY\n },\n UTF8: {\n primitiveType: 'BYTE_ARRAY',\n originalType: 'UTF8',\n toPrimitive: toPrimitive_UTF8,\n fromPrimitive: fromPrimitive_UTF8\n },\n TIME_MILLIS: {\n primitiveType: 'INT32',\n originalType: 'TIME_MILLIS',\n toPrimitive: toPrimitive_TIME_MILLIS\n },\n TIME_MICROS: {\n primitiveType: 'INT64',\n originalType: 'TIME_MICROS',\n toPrimitive: toPrimitive_TIME_MICROS\n },\n DATE: {\n primitiveType: 'INT32',\n originalType: 'DATE',\n toPrimitive: toPrimitive_DATE,\n fromPrimitive: fromPrimitive_DATE\n },\n TIMESTAMP_MILLIS: {\n primitiveType: 'INT64',\n originalType: 'TIMESTAMP_MILLIS',\n toPrimitive: toPrimitive_TIMESTAMP_MILLIS,\n fromPrimitive: fromPrimitive_TIMESTAMP_MILLIS\n },\n TIMESTAMP_MICROS: {\n primitiveType: 'INT64',\n originalType: 'TIMESTAMP_MICROS',\n toPrimitive: toPrimitive_TIMESTAMP_MICROS,\n fromPrimitive: fromPrimitive_TIMESTAMP_MICROS\n },\n UINT_8: {\n primitiveType: 'INT32',\n originalType: 'UINT_8',\n toPrimitive: toPrimitive_UINT8\n },\n UINT_16: {\n primitiveType: 'INT32',\n originalType: 'UINT_16',\n toPrimitive: toPrimitive_UINT16\n },\n UINT_32: {\n primitiveType: 'INT32',\n originalType: 'UINT_32',\n toPrimitive: toPrimitive_UINT32\n },\n UINT_64: {\n primitiveType: 'INT64',\n originalType: 'UINT_64',\n toPrimitive: toPrimitive_UINT64\n },\n INT_8: {\n primitiveType: 'INT32',\n originalType: 'INT_8',\n toPrimitive: toPrimitive_INT8\n },\n INT_16: {\n primitiveType: 'INT32',\n originalType: 'INT_16',\n toPrimitive: toPrimitive_INT16\n },\n INT_32: {\n primitiveType: 'INT32',\n originalType: 'INT_32',\n toPrimitive: toPrimitive_INT32\n },\n INT_64: {\n primitiveType: 'INT64',\n originalType: 'INT_64',\n toPrimitive: toPrimitive_INT64\n },\n JSON: {\n primitiveType: 'BYTE_ARRAY',\n originalType: 'JSON',\n toPrimitive: toPrimitive_JSON,\n fromPrimitive: fromPrimitive_JSON\n },\n BSON: {\n primitiveType: 'BYTE_ARRAY',\n originalType: 'BSON',\n toPrimitive: toPrimitive_BSON,\n fromPrimitive: fromPrimitive_BSON\n },\n INTERVAL: {\n primitiveType: 'FIXED_LEN_BYTE_ARRAY',\n originalType: 'INTERVAL',\n typeLength: 12,\n toPrimitive: toPrimitive_INTERVAL,\n fromPrimitive: fromPrimitive_INTERVAL\n },\n DECIMAL_INT32: {\n primitiveType: 'INT32',\n originalType: 'DECIMAL_INT32',\n toPrimitive: decimalToPrimitive_INT32,\n fromPrimitive: decimalFromPrimitive_INT\n },\n DECIMAL_INT64: {\n primitiveType: 'INT64',\n originalType: 'DECIMAL_INT64',\n toPrimitive: decimalToPrimitive_INT64,\n fromPrimitive: decimalFromPrimitive_INT\n },\n DECIMAL_BYTE_ARRAY: {\n primitiveType: 'BYTE_ARRAY',\n originalType: 'DECIMAL_BYTE_ARRAY',\n toPrimitive: decimalToPrimitive_BYTE_ARRAY,\n fromPrimitive: decimalFromPrimitive_BYTE_ARRAY\n },\n DECIMAL_FIXED_LEN_BYTE_ARRAY: {\n primitiveType: 'FIXED_LEN_BYTE_ARRAY',\n originalType: 'DECIMAL_FIXED_LEN_BYTE_ARRAY',\n toPrimitive: decimalToPrimitive_BYTE_ARRAY,\n fromPrimitive: decimalFromPrimitive_BYTE_ARRAY\n }\n};\n\n/**\n * Convert a value from it's native representation to the internal/underlying\n * primitive type\n */\nexport function toPrimitive(type: ParquetType, value: any, field?: ParquetField) {\n if (!(type in PARQUET_LOGICAL_TYPES)) {\n throw new Error(`invalid type: ${type}`);\n }\n\n return PARQUET_LOGICAL_TYPES[type].toPrimitive(value, field);\n}\n\n/**\n * Convert a value from it's internal/underlying primitive representation to\n * the native representation\n */\nexport function fromPrimitive(type: ParquetType, value: any, field?: ParquetField) {\n if (!(type in PARQUET_LOGICAL_TYPES)) {\n throw new Error(`invalid type: ${type}`);\n }\n\n if ('fromPrimitive' in PARQUET_LOGICAL_TYPES[type]) {\n return PARQUET_LOGICAL_TYPES[type].fromPrimitive?.(value, field);\n // tslint:disable-next-line:no-else-after-return\n }\n return value;\n}\n\nfunction toPrimitive_BOOLEAN(value: any) {\n return Boolean(value);\n}\n\nfunction fromPrimitive_BOOLEAN(value: any) {\n return Boolean(value);\n}\n\nfunction toPrimitive_FLOAT(value: any) {\n const v = parseFloat(value);\n if (isNaN(v)) {\n throw new Error(`invalid value for FLOAT: ${value}`);\n }\n\n return v;\n}\n\nfunction toPrimitive_DOUBLE(value: any) {\n const v = parseFloat(value);\n if (isNaN(v)) {\n throw new Error(`invalid value for DOUBLE: ${value}`);\n }\n\n return v;\n}\n\nfunction toPrimitive_INT8(value: any) {\n const v = parseInt(value, 10);\n if (v < -0x80 || v > 0x7f || isNaN(v)) {\n throw new Error(`invalid value for INT8: ${value}`);\n }\n\n return v;\n}\n\nfunction toPrimitive_UINT8(value: any) {\n const v = parseInt(value, 10);\n if (v < 0 || v > 0xff || isNaN(v)) {\n throw new Error(`invalid value for UINT8: ${value}`);\n }\n\n return v;\n}\n\nfunction toPrimitive_INT16(value: any) {\n const v = parseInt(value, 10);\n if (v < -0x8000 || v > 0x7fff || isNaN(v)) {\n throw new Error(`invalid value for INT16: ${value}`);\n }\n\n return v;\n}\n\nfunction toPrimitive_UINT16(value: any) {\n const v = parseInt(value, 10);\n if (v < 0 || v > 0xffff || isNaN(v)) {\n throw new Error(`invalid value for UINT16: ${value}`);\n }\n\n return v;\n}\n\nfunction toPrimitive_INT32(value: any) {\n const v = parseInt(value, 10);\n if (v < -0x80000000 || v > 0x7fffffff || isNaN(v)) {\n throw new Error(`invalid value for INT32: ${value}`);\n }\n\n return v;\n}\n\nfunction decimalToPrimitive_INT32(value: number, field: ParquetField) {\n const primitiveValue = value * 10 ** (field.scale || 0);\n const v = Math.round(((primitiveValue * 10 ** -field.presision!) % 1) * 10 ** field.presision!);\n if (v < -0x80000000 || v > 0x7fffffff || isNaN(v)) {\n throw new Error(`invalid value for INT32: ${value}`);\n }\n\n return v;\n}\n\nfunction toPrimitive_UINT32(value: any) {\n const v = parseInt(value, 10);\n if (v < 0 || v > 0xffffffffffff || isNaN(v)) {\n throw new Error(`invalid value for UINT32: ${value}`);\n }\n\n return v;\n}\n\nfunction toPrimitive_INT64(value: any) {\n const v = parseInt(value, 10);\n if (isNaN(v)) {\n throw new Error(`invalid value for INT64: ${value}`);\n }\n\n return v;\n}\n\nfunction decimalToPrimitive_INT64(value: number, field: ParquetField) {\n const primitiveValue = value * 10 ** (field.scale || 0);\n const v = Math.round(((primitiveValue * 10 ** -field.presision!) % 1) * 10 ** field.presision!);\n if (isNaN(v)) {\n throw new Error(`invalid value for INT64: ${value}`);\n }\n\n return v;\n}\n\nfunction toPrimitive_UINT64(value: any) {\n const v = parseInt(value, 10);\n if (v < 0 || isNaN(v)) {\n throw new Error(`invalid value for UINT64: ${value}`);\n }\n\n return v;\n}\n\nfunction toPrimitive_INT96(value: any) {\n const v = parseInt(value, 10);\n if (isNaN(v)) {\n throw new Error(`invalid value for INT96: ${value}`);\n }\n\n return v;\n}\n\nfunction toPrimitive_BYTE_ARRAY(value: any) {\n return Buffer.from(value);\n}\n\nfunction decimalToPrimitive_BYTE_ARRAY(value: any) {\n // TBD\n return Buffer.from(value);\n}\n\nfunction toPrimitive_UTF8(value: any) {\n return Buffer.from(value, 'utf8');\n}\n\nfunction fromPrimitive_UTF8(value: any) {\n return value.toString();\n}\n\nfunction toPrimitive_JSON(value: any) {\n return Buffer.from(JSON.stringify(value));\n}\n\nfunction fromPrimitive_JSON(value: any) {\n return JSON.parse(value);\n}\n\nfunction toPrimitive_BSON(value: any) {\n return Buffer.from(BSON.serialize(value));\n}\n\nfunction fromPrimitive_BSON(value: any) {\n return BSON.deserialize(value);\n}\n\nfunction toPrimitive_TIME_MILLIS(value: any) {\n const v = parseInt(value, 10);\n if (v < 0 || v > 0xffffffffffffffff || isNaN(v)) {\n throw new Error(`invalid value for TIME_MILLIS: ${value}`);\n }\n\n return v;\n}\n\nfunction toPrimitive_TIME_MICROS(value: any) {\n const v = parseInt(value, 10);\n if (v < 0 || isNaN(v)) {\n throw new Error(`invalid value for TIME_MICROS: ${value}`);\n }\n\n return v;\n}\n\nconst kMillisPerDay = 86400000;\n\nfunction toPrimitive_DATE(value: any) {\n /* convert from date */\n if (value instanceof Date) {\n return value.getTime() / kMillisPerDay;\n }\n\n /* convert from integer */\n {\n const v = parseInt(value, 10);\n if (v < 0 || isNaN(v)) {\n throw new Error(`invalid value for DATE: ${value}`);\n }\n\n return v;\n }\n}\n\nfunction fromPrimitive_DATE(value: any) {\n return new Date(value * kMillisPerDay);\n}\n\nfunction toPrimitive_TIMESTAMP_MILLIS(value: any) {\n /* convert from date */\n if (value instanceof Date) {\n return value.getTime();\n }\n\n /* convert from integer */\n {\n const v = parseInt(value, 10);\n if (v < 0 || isNaN(v)) {\n throw new Error(`invalid value for TIMESTAMP_MILLIS: ${value}`);\n }\n\n return v;\n }\n}\n\nfunction fromPrimitive_TIMESTAMP_MILLIS(value: any) {\n return new Date(value);\n}\n\nfunction toPrimitive_TIMESTAMP_MICROS(value: any) {\n /* convert from date */\n if (value instanceof Date) {\n return value.getTime() * 1000;\n }\n\n /* convert from integer */\n {\n const v = parseInt(value, 10);\n if (v < 0 || isNaN(v)) {\n throw new Error(`invalid value for TIMESTAMP_MICROS: ${value}`);\n }\n\n return v;\n }\n}\n\nfunction fromPrimitive_TIMESTAMP_MICROS(value: any) {\n return new Date(value / 1000);\n}\n\nfunction toPrimitive_INTERVAL(value: any) {\n if (!value.months || !value.days || !value.milliseconds) {\n throw new Error(\n 'value for INTERVAL must be object { months: ..., days: ..., milliseconds: ... }'\n );\n }\n\n const buf = Buffer.alloc(12);\n\n buf.writeUInt32LE(value.months, 0);\n buf.writeUInt32LE(value.days, 4);\n buf.writeUInt32LE(value.milliseconds, 8);\n return buf;\n}\n\nfunction fromPrimitive_INTERVAL(value: any) {\n const buf = Buffer.from(value);\n const months = buf.readUInt32LE(0);\n const days = buf.readUInt32LE(4);\n const millis = buf.readUInt32LE(8);\n\n return {months, days, milliseconds: millis};\n}\n\nfunction decimalFromPrimitive_INT(value: any, field: ParquetField) {\n const presisionInt = Math.round(((value * 10 ** -field.presision!) % 1) * 10 ** field.presision!);\n return presisionInt * 10 ** -(field.scale || 0);\n}\n\nfunction decimalFromPrimitive_BYTE_ARRAY(value: any, field: ParquetField) {\n let number = 0;\n if (value.length <= 4) {\n // Bytewise operators faster. Use them if it is possible\n for (let i = 0; i < value.length; i++) {\n // `value.length - i - 1` bytes have reverse order (big-endian)\n const component = value[i] << (8 * (value.length - i - 1));\n number += component;\n }\n } else {\n for (let i = 0; i < value.length; i++) {\n // `value.length - i - 1` bytes have reverse order (big-endian)\n const component = value[i] * 2 ** (8 * (value.length - 1 - i));\n number += component;\n }\n }\n\n const presisionInt = Math.round(\n ((number * 10 ** -field.presision!) % 1) * 10 ** field.presision!\n );\n return presisionInt * 10 ** -(field.scale || 0);\n}\n"],"mappings":"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"}
|