@loaders.gl/parquet 5.0.0-alpha.2 → 5.0.0-alpha.4
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/LICENSE +1 -1
- package/dist/bundled.d.ts +1 -1
- package/dist/bundled.d.ts.map +1 -1
- package/dist/bundled.js.map +1 -1
- package/dist/delta-format.d.ts +9 -0
- package/dist/delta-format.d.ts.map +1 -0
- package/dist/delta-format.js +12 -0
- package/dist/delta-format.js.map +1 -0
- package/dist/delta-source-loader-types.d.ts +27 -0
- package/dist/delta-source-loader-types.d.ts.map +1 -0
- package/dist/delta-source-loader-types.js +28 -0
- package/dist/delta-source-loader-types.js.map +1 -0
- package/dist/delta-source.d.ts +48 -0
- package/dist/delta-source.d.ts.map +1 -0
- package/dist/delta-source.js +222 -0
- package/dist/delta-source.js.map +1 -0
- package/dist/delta-types.d.ts +38 -0
- package/dist/delta-types.d.ts.map +1 -0
- package/dist/delta-types.js +5 -0
- package/dist/delta-types.js.map +1 -0
- package/dist/geoparquet-loader.js +1 -1
- package/dist/iceberg-rest-catalog.d.ts +49 -0
- package/dist/iceberg-rest-catalog.d.ts.map +1 -0
- package/dist/iceberg-rest-catalog.js +78 -0
- package/dist/iceberg-rest-catalog.js.map +1 -0
- package/dist/iceberg-table-source.d.ts +63 -0
- package/dist/iceberg-table-source.d.ts.map +1 -0
- package/dist/iceberg-table-source.js +797 -0
- package/dist/iceberg-table-source.js.map +1 -0
- package/dist/iceberg-types.d.ts +150 -0
- package/dist/iceberg-types.d.ts.map +1 -0
- package/dist/iceberg-types.js +5 -0
- package/dist/iceberg-types.js.map +1 -0
- package/dist/index.cjs +15841 -3306
- package/dist/index.cjs.map +3 -3
- package/dist/index.d.ts +8 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/arrow/convert-schema-from-parquet.d.ts +3 -1
- package/dist/lib/arrow/convert-schema-from-parquet.d.ts.map +1 -1
- package/dist/lib/arrow/convert-schema-from-parquet.js +94 -19
- package/dist/lib/arrow/convert-schema-from-parquet.js.map +1 -1
- package/dist/lib/arrow/create-nested-arrow-vector.js +89 -0
- package/dist/lib/arrow/create-nested-arrow-vector.js.map +1 -1
- package/dist/lib/constants.js +1 -1
- package/dist/lib/encoders/encode-table-to-parquet-js.d.ts.map +1 -1
- package/dist/lib/encoders/encode-table-to-parquet-js.js +202 -7
- package/dist/lib/encoders/encode-table-to-parquet-js.js.map +1 -1
- package/dist/lib/geo/geoparquet-covering.d.ts +19 -0
- package/dist/lib/geo/geoparquet-covering.d.ts.map +1 -0
- package/dist/lib/geo/geoparquet-covering.js +137 -0
- package/dist/lib/geo/geoparquet-covering.js.map +1 -0
- package/dist/lib/geo/geospatial-metadata.d.ts.map +1 -1
- package/dist/lib/geo/geospatial-metadata.js +39 -13
- package/dist/lib/geo/geospatial-metadata.js.map +1 -1
- package/dist/lib/parquet-bloom-filter-planner.d.ts +16 -0
- package/dist/lib/parquet-bloom-filter-planner.d.ts.map +1 -0
- package/dist/lib/parquet-bloom-filter-planner.js +57 -0
- package/dist/lib/parquet-bloom-filter-planner.js.map +1 -0
- package/dist/lib/parquet-bloom-filter.d.ts +30 -0
- package/dist/lib/parquet-bloom-filter.d.ts.map +1 -0
- package/dist/lib/parquet-bloom-filter.js +289 -0
- package/dist/lib/parquet-bloom-filter.js.map +1 -0
- package/dist/lib/parquet-encryption.d.ts +80 -0
- package/dist/lib/parquet-encryption.d.ts.map +1 -0
- package/dist/lib/parquet-encryption.js +190 -0
- package/dist/lib/parquet-encryption.js.map +1 -0
- package/dist/lib/parquet-page-index.d.ts +34 -5
- package/dist/lib/parquet-page-index.d.ts.map +1 -1
- package/dist/lib/parquet-page-index.js +114 -28
- package/dist/lib/parquet-page-index.js.map +1 -1
- package/dist/lib/parquet-predicate.d.ts +5 -1
- package/dist/lib/parquet-predicate.d.ts.map +1 -1
- package/dist/lib/parquet-predicate.js +42 -14
- package/dist/lib/parquet-predicate.js.map +1 -1
- package/dist/lib/parquet-source-worker-decoder.d.ts +4 -1
- package/dist/lib/parquet-source-worker-decoder.d.ts.map +1 -1
- package/dist/lib/parquet-source-worker-decoder.js +83 -17
- package/dist/lib/parquet-source-worker-decoder.js.map +1 -1
- package/dist/lib/parquet-source-worker-types.d.ts +24 -0
- package/dist/lib/parquet-source-worker-types.d.ts.map +1 -1
- package/dist/lib/parsers/get-parquet-schema.d.ts.map +1 -1
- package/dist/lib/parsers/get-parquet-schema.js +3 -1
- package/dist/lib/parsers/get-parquet-schema.js.map +1 -1
- package/dist/lib/parsers/parse-parquet-to-arrow-js.d.ts.map +1 -1
- package/dist/lib/parsers/parse-parquet-to-arrow-js.js +327 -18
- package/dist/lib/parsers/parse-parquet-to-arrow-js.js.map +1 -1
- package/dist/lib/parsers/parse-parquet-to-arrow.d.ts.map +1 -1
- package/dist/lib/parsers/parse-parquet-to-arrow.js +5 -5
- package/dist/lib/parsers/parse-parquet-to-arrow.js.map +1 -1
- package/dist/lib/parsers/parse-parquet-to-columns.d.ts.map +1 -1
- package/dist/lib/parsers/parse-parquet-to-columns.js +3 -1
- package/dist/lib/parsers/parse-parquet-to-columns.js.map +1 -1
- package/dist/lib/parsers/parse-parquet-to-json.d.ts.map +1 -1
- package/dist/lib/parsers/parse-parquet-to-json.js +18 -2
- package/dist/lib/parsers/parse-parquet-to-json.js.map +1 -1
- package/dist/lib/slice-parquet-batch.d.ts +9 -0
- package/dist/lib/slice-parquet-batch.d.ts.map +1 -0
- package/dist/lib/slice-parquet-batch.js +28 -0
- package/dist/lib/slice-parquet-batch.js.map +1 -0
- package/dist/lib/sources/parquet-range-file.d.ts +1 -1
- package/dist/lib/sources/parquet-range-file.d.ts.map +1 -1
- package/dist/lib/sources/parquet-range-file.js +28 -22
- package/dist/lib/sources/parquet-range-file.js.map +1 -1
- package/dist/lib/utils/normalize-parquet-options.d.ts.map +1 -1
- package/dist/lib/utils/normalize-parquet-options.js +15 -1
- package/dist/lib/utils/normalize-parquet-options.js.map +1 -1
- package/dist/parquet-dataset-source.cjs +16528 -4928
- package/dist/parquet-dataset-source.cjs.map +3 -3
- package/dist/parquet-dataset-source.d.ts +31 -4
- package/dist/parquet-dataset-source.d.ts.map +1 -1
- package/dist/parquet-dataset-source.js +296 -74
- package/dist/parquet-dataset-source.js.map +1 -1
- package/dist/parquet-encoded-page-types.d.ts +108 -0
- package/dist/parquet-encoded-page-types.d.ts.map +1 -0
- package/dist/parquet-encoded-page-types.js +5 -0
- package/dist/parquet-encoded-page-types.js.map +1 -0
- package/dist/parquet-js-loader-types.d.ts +2 -0
- package/dist/parquet-js-loader-types.d.ts.map +1 -1
- package/dist/parquet-js-loader-types.js +2 -1
- package/dist/parquet-js-loader-types.js.map +1 -1
- package/dist/parquet-js-loader.d.ts +1 -0
- package/dist/parquet-js-loader.d.ts.map +1 -1
- package/dist/parquet-js-loader.js +2 -1
- package/dist/parquet-js-loader.js.map +1 -1
- package/dist/parquet-js-writer.d.ts +23 -2
- package/dist/parquet-js-writer.d.ts.map +1 -1
- package/dist/parquet-js-writer.js +1 -1
- package/dist/parquet-js-writer.js.map +1 -1
- package/dist/parquet-loader-base.js +1 -1
- package/dist/parquet-loader-options.d.ts +11 -0
- package/dist/parquet-loader-options.d.ts.map +1 -1
- package/dist/parquet-loader-options.js.map +1 -1
- package/dist/parquet-source-capabilities.d.ts +8 -1
- package/dist/parquet-source-capabilities.d.ts.map +1 -1
- package/dist/parquet-source-capabilities.js +10 -0
- package/dist/parquet-source-capabilities.js.map +1 -1
- package/dist/parquet-source-loader-types.d.ts +10 -0
- package/dist/parquet-source-loader-types.d.ts.map +1 -1
- package/dist/parquet-source-loader-types.js +11 -1
- package/dist/parquet-source-loader-types.js.map +1 -1
- package/dist/parquet-source-loader.cjs +14121 -2796
- package/dist/parquet-source-loader.cjs.map +3 -3
- package/dist/parquet-source-loader.d.ts +51 -4
- package/dist/parquet-source-loader.d.ts.map +1 -1
- package/dist/parquet-source-loader.js +651 -38
- package/dist/parquet-source-loader.js.map +1 -1
- package/dist/parquet-source-types.d.ts +180 -30
- package/dist/parquet-source-types.d.ts.map +1 -1
- package/dist/parquet-source-worker.js +7378 -6989
- package/dist/parquet-source-worker.js.map +4 -4
- package/dist/parquet-worker-node.cjs +8501 -1045
- package/dist/parquet-worker-node.cjs.map +4 -4
- package/dist/parquet-worker-url.js +5 -1
- package/dist/parquet-worker-url.js.map +1 -1
- package/dist/parquet-worker.js +289 -218
- package/dist/parquet-worker.js.map +4 -4
- package/dist/parquetjs/codecs/declare.d.ts +15 -0
- package/dist/parquetjs/codecs/declare.d.ts.map +1 -1
- package/dist/parquetjs/codecs/declare.js +10 -0
- package/dist/parquetjs/codecs/declare.js.map +1 -1
- package/dist/parquetjs/codecs/delta.d.ts.map +1 -1
- package/dist/parquetjs/codecs/delta.js +356 -7
- package/dist/parquetjs/codecs/delta.js.map +1 -1
- package/dist/parquetjs/codecs/index.d.ts.map +1 -1
- package/dist/parquetjs/codecs/index.js +4 -0
- package/dist/parquetjs/codecs/index.js.map +1 -1
- package/dist/parquetjs/codecs/plain.d.ts +1 -1
- package/dist/parquetjs/codecs/plain.d.ts.map +1 -1
- package/dist/parquetjs/codecs/plain.js +153 -12
- package/dist/parquetjs/codecs/plain.js.map +1 -1
- package/dist/parquetjs/codecs/rle.d.ts +4 -0
- package/dist/parquetjs/codecs/rle.d.ts.map +1 -1
- package/dist/parquetjs/codecs/rle.js +406 -3
- package/dist/parquetjs/codecs/rle.js.map +1 -1
- package/dist/parquetjs/compression.d.ts +9 -0
- package/dist/parquetjs/compression.d.ts.map +1 -1
- package/dist/parquetjs/compression.js +86 -67
- package/dist/parquetjs/compression.js.map +1 -1
- package/dist/parquetjs/encoder/dictionary-planner.d.ts.map +1 -1
- package/dist/parquetjs/encoder/dictionary-planner.js +5 -2
- package/dist/parquetjs/encoder/dictionary-planner.js.map +1 -1
- package/dist/parquetjs/encoder/parquet-encoder.d.ts +43 -1
- package/dist/parquetjs/encoder/parquet-encoder.d.ts.map +1 -1
- package/dist/parquetjs/encoder/parquet-encoder.js +691 -34
- package/dist/parquetjs/encoder/parquet-encoder.js.map +1 -1
- package/dist/parquetjs/parquet-thrift/BoundingBox.d.ts +29 -0
- package/dist/parquetjs/parquet-thrift/BoundingBox.d.ts.map +1 -0
- package/dist/parquetjs/parquet-thrift/BoundingBox.js +85 -0
- package/dist/parquetjs/parquet-thrift/BoundingBox.js.map +1 -0
- package/dist/parquetjs/parquet-thrift/ColumnChunk.d.ts +5 -0
- package/dist/parquetjs/parquet-thrift/ColumnChunk.d.ts.map +1 -1
- package/dist/parquetjs/parquet-thrift/ColumnChunk.js +35 -0
- package/dist/parquetjs/parquet-thrift/ColumnChunk.js.map +1 -1
- package/dist/parquetjs/parquet-thrift/ColumnCryptoMetaData.d.ts +35 -0
- package/dist/parquetjs/parquet-thrift/ColumnCryptoMetaData.d.ts.map +1 -0
- package/dist/parquetjs/parquet-thrift/ColumnCryptoMetaData.js +135 -0
- package/dist/parquetjs/parquet-thrift/ColumnCryptoMetaData.js.map +1 -0
- package/dist/parquetjs/parquet-thrift/ColumnMetaData.d.ts +10 -0
- package/dist/parquetjs/parquet-thrift/ColumnMetaData.d.ts.map +1 -1
- package/dist/parquetjs/parquet-thrift/ColumnMetaData.js +73 -0
- package/dist/parquetjs/parquet-thrift/ColumnMetaData.js.map +1 -1
- package/dist/parquetjs/parquet-thrift/EncryptionAlgorithm.d.ts +22 -0
- package/dist/parquetjs/parquet-thrift/EncryptionAlgorithm.d.ts.map +1 -0
- package/dist/parquetjs/parquet-thrift/EncryptionAlgorithm.js +111 -0
- package/dist/parquetjs/parquet-thrift/EncryptionAlgorithm.js.map +1 -0
- package/dist/parquetjs/parquet-thrift/FileCryptoMetaData.d.ts +16 -0
- package/dist/parquetjs/parquet-thrift/FileCryptoMetaData.d.ts.map +1 -0
- package/dist/parquetjs/parquet-thrift/FileCryptoMetaData.js +57 -0
- package/dist/parquetjs/parquet-thrift/FileCryptoMetaData.js.map +1 -0
- package/dist/parquetjs/parquet-thrift/FileMetaData.d.ts +5 -0
- package/dist/parquetjs/parquet-thrift/FileMetaData.d.ts.map +1 -1
- package/dist/parquetjs/parquet-thrift/FileMetaData.js +35 -0
- package/dist/parquetjs/parquet-thrift/FileMetaData.js.map +1 -1
- package/dist/parquetjs/parquet-thrift/GeospatialStatistics.d.ts +18 -0
- package/dist/parquetjs/parquet-thrift/GeospatialStatistics.d.ts.map +1 -0
- package/dist/parquetjs/parquet-thrift/GeospatialStatistics.js +62 -0
- package/dist/parquetjs/parquet-thrift/GeospatialStatistics.js.map +1 -0
- package/dist/parquetjs/parquet-thrift/SizeStatistics.d.ts +26 -0
- package/dist/parquetjs/parquet-thrift/SizeStatistics.d.ts.map +1 -0
- package/dist/parquetjs/parquet-thrift/SizeStatistics.js +85 -0
- package/dist/parquetjs/parquet-thrift/SizeStatistics.js.map +1 -0
- package/dist/parquetjs/parquet-thrift/index.d.ts +6 -0
- package/dist/parquetjs/parquet-thrift/index.d.ts.map +1 -1
- package/dist/parquetjs/parquet-thrift/index.js +6 -0
- package/dist/parquetjs/parquet-thrift/index.js.map +1 -1
- package/dist/parquetjs/parser/decoders.d.ts +10 -1
- package/dist/parquetjs/parser/decoders.d.ts.map +1 -1
- package/dist/parquetjs/parser/decoders.js +318 -14
- package/dist/parquetjs/parser/decoders.js.map +1 -1
- package/dist/parquetjs/parser/encoded-pages.d.ts +24 -0
- package/dist/parquetjs/parser/encoded-pages.d.ts.map +1 -0
- package/dist/parquetjs/parser/encoded-pages.js +206 -0
- package/dist/parquetjs/parser/encoded-pages.js.map +1 -0
- package/dist/parquetjs/parser/parquet-reader.d.ts +88 -12
- package/dist/parquetjs/parser/parquet-reader.d.ts.map +1 -1
- package/dist/parquetjs/parser/parquet-reader.js +713 -66
- package/dist/parquetjs/parser/parquet-reader.js.map +1 -1
- package/dist/parquetjs/schema/declare.d.ts +22 -3
- package/dist/parquetjs/schema/declare.d.ts.map +1 -1
- package/dist/parquetjs/schema/declare.js.map +1 -1
- package/dist/parquetjs/schema/schema.d.ts.map +1 -1
- package/dist/parquetjs/schema/schema.js +10 -0
- package/dist/parquetjs/schema/schema.js.map +1 -1
- package/dist/parquetjs/schema/shred.d.ts.map +1 -1
- package/dist/parquetjs/schema/shred.js +219 -11
- package/dist/parquetjs/schema/shred.js.map +1 -1
- package/dist/parquetjs/schema/types.js +19 -21
- package/dist/parquetjs/schema/types.js.map +1 -1
- package/dist/parquetjs/schema/variant.d.ts +3 -0
- package/dist/parquetjs/schema/variant.d.ts.map +1 -0
- package/dist/parquetjs/schema/variant.js +248 -0
- package/dist/parquetjs/schema/variant.js.map +1 -0
- package/dist/parquetjs/utils/crc32.d.ts +3 -0
- package/dist/parquetjs/utils/crc32.d.ts.map +1 -0
- package/dist/parquetjs/utils/crc32.js +15 -0
- package/dist/parquetjs/utils/crc32.js.map +1 -0
- package/dist/parquetjs/utils/read-utils.d.ts +11 -1
- package/dist/parquetjs/utils/read-utils.d.ts.map +1 -1
- package/dist/parquetjs/utils/read-utils.js +21 -1
- package/dist/parquetjs/utils/read-utils.js.map +1 -1
- package/dist/unbundled.d.ts +2 -1
- package/dist/unbundled.d.ts.map +1 -1
- package/dist/unbundled.js +1 -0
- package/dist/unbundled.js.map +1 -1
- package/package.json +36 -13
- package/src/bundled.ts +10 -0
- package/src/delta-format.ts +12 -0
- package/src/delta-source-loader-types.ts +40 -0
- package/src/delta-source.ts +305 -0
- package/src/delta-types.ts +40 -0
- package/src/iceberg-rest-catalog.ts +122 -0
- package/src/iceberg-table-source.ts +1037 -0
- package/src/iceberg-types.ts +165 -0
- package/src/index.ts +59 -1
- package/src/lib/arrow/convert-schema-from-parquet.ts +113 -19
- package/src/lib/arrow/create-nested-arrow-vector.ts +116 -0
- package/src/lib/encoders/encode-table-to-parquet-js.ts +268 -7
- package/src/lib/geo/geoparquet-covering.ts +201 -0
- package/src/lib/geo/geospatial-metadata.ts +42 -15
- package/src/lib/parquet-bloom-filter-planner.ts +86 -0
- package/src/lib/parquet-bloom-filter.ts +345 -0
- package/src/lib/parquet-encryption.ts +344 -0
- package/src/lib/parquet-page-index.ts +180 -34
- package/src/lib/parquet-predicate.ts +52 -16
- package/src/lib/parquet-source-worker-decoder.ts +116 -20
- package/src/lib/parquet-source-worker-types.ts +25 -0
- package/src/lib/parsers/get-parquet-schema.ts +3 -1
- package/src/lib/parsers/parse-parquet-to-arrow-js.ts +397 -17
- package/src/lib/parsers/parse-parquet-to-arrow.ts +4 -5
- package/src/lib/parsers/parse-parquet-to-columns.ts +3 -1
- package/src/lib/parsers/parse-parquet-to-json.ts +18 -2
- package/src/lib/slice-parquet-batch.ts +32 -0
- package/src/lib/sources/parquet-range-file.ts +35 -29
- package/src/lib/utils/normalize-parquet-options.ts +17 -1
- package/src/parquet-dataset-source.ts +397 -85
- package/src/parquet-encoded-page-types.ts +122 -0
- package/src/parquet-js-loader-types.ts +1 -0
- package/src/parquet-js-loader.ts +2 -1
- package/src/parquet-js-writer.ts +30 -0
- package/src/parquet-loader-options.ts +11 -0
- package/src/parquet-source-capabilities.ts +18 -1
- package/src/parquet-source-loader-types.ts +10 -0
- package/src/parquet-source-loader.ts +1024 -52
- package/src/parquet-source-types.ts +197 -28
- package/src/parquet-worker-url.ts +6 -1
- package/src/parquetjs/codecs/declare.ts +27 -0
- package/src/parquetjs/codecs/delta.ts +466 -6
- package/src/parquetjs/codecs/index.ts +4 -0
- package/src/parquetjs/codecs/plain.ts +177 -11
- package/src/parquetjs/codecs/rle.ts +573 -3
- package/src/parquetjs/compression.ts +102 -76
- package/src/parquetjs/encoder/dictionary-planner.ts +7 -2
- package/src/parquetjs/encoder/parquet-encoder.ts +1016 -38
- package/src/parquetjs/parquet-thrift/BoundingBox.ts +108 -0
- package/src/parquetjs/parquet-thrift/ColumnChunk.ts +35 -0
- package/src/parquetjs/parquet-thrift/ColumnCryptoMetaData.ts +139 -0
- package/src/parquetjs/parquet-thrift/ColumnMetaData.ts +73 -0
- package/src/parquetjs/parquet-thrift/EncryptionAlgorithm.ts +127 -0
- package/src/parquetjs/parquet-thrift/FileCryptoMetaData.ts +60 -0
- package/src/parquetjs/parquet-thrift/FileMetaData.ts +35 -0
- package/src/parquetjs/parquet-thrift/GeospatialStatistics.ts +68 -0
- package/src/parquetjs/parquet-thrift/SizeStatistics.ts +98 -0
- package/src/parquetjs/parquet-thrift/index.ts +6 -0
- package/src/parquetjs/parser/decoders.ts +451 -26
- package/src/parquetjs/parser/encoded-pages.ts +278 -0
- package/src/parquetjs/parser/parquet-reader.ts +1112 -87
- package/src/parquetjs/schema/declare.ts +22 -2
- package/src/parquetjs/schema/schema.ts +10 -0
- package/src/parquetjs/schema/shred.ts +238 -11
- package/src/parquetjs/schema/types.ts +16 -25
- package/src/parquetjs/schema/variant.ts +313 -0
- package/src/parquetjs/utils/crc32.ts +15 -0
- package/src/parquetjs/utils/read-utils.ts +26 -1
- package/src/unbundled.ts +14 -0
|
@@ -8,6 +8,9 @@ import { ConvertedType, EdgeInterpolationAlgorithm, Encoding, FieldRepetitionTyp
|
|
|
8
8
|
import { decompress } from "../compression.js";
|
|
9
9
|
import { PARQUET_RDLVL_TYPE, PARQUET_RDLVL_ENCODING } from "../../lib/constants.js";
|
|
10
10
|
import { decodePageHeader, getThriftEnum, getBitWidth } from "../utils/read-utils.js";
|
|
11
|
+
import { crc32 } from "../utils/crc32.js";
|
|
12
|
+
/** Shared empty level storage for required flat columns, whose levels are implicit. */
|
|
13
|
+
const EMPTY_PARQUET_LEVEL_BUFFER = new Uint8Array(0);
|
|
11
14
|
/**
|
|
12
15
|
* Decode data pages
|
|
13
16
|
* @param buffer - input data
|
|
@@ -27,12 +30,14 @@ export async function decodeDataPages(buffer, context) {
|
|
|
27
30
|
throw new Error(`Invalid Parquet column value count ${expectedLevelCount}`);
|
|
28
31
|
}
|
|
29
32
|
const outputCapacity = expectedLevelCount ?? 0;
|
|
33
|
+
const byteArrayOutput = createArrowByteArrayOutput(buffer, context, outputCapacity);
|
|
30
34
|
const data = {
|
|
31
35
|
rlevels: createParquetLevelBuffer(context, outputCapacity, context.rLevelMax),
|
|
32
36
|
dlevels: createParquetLevelBuffer(context, outputCapacity, context.dLevelMax),
|
|
33
|
-
values: createParquetColumnValueBuffer(context, outputCapacity),
|
|
37
|
+
values: byteArrayOutput ? [] : createParquetColumnValueBuffer(context, outputCapacity),
|
|
34
38
|
pageHeaders: [],
|
|
35
|
-
count: 0
|
|
39
|
+
count: 0,
|
|
40
|
+
nullCount: 0
|
|
36
41
|
};
|
|
37
42
|
let dictionary = context.dictionary || [];
|
|
38
43
|
let levelOffset = 0;
|
|
@@ -42,14 +47,18 @@ export async function decodeDataPages(buffer, context) {
|
|
|
42
47
|
cursor.offset < cursor.size &&
|
|
43
48
|
(expectedLevelCount === undefined || levelOffset < expectedLevelCount)) {
|
|
44
49
|
// Looks like we have to decode these in sequence due to cursor updates?
|
|
45
|
-
const
|
|
50
|
+
const target = {
|
|
46
51
|
values: data.values,
|
|
47
52
|
valueOffset,
|
|
53
|
+
byteArrayOutput,
|
|
48
54
|
dictionary,
|
|
49
55
|
rlevels: data.rlevels,
|
|
50
56
|
dlevels: data.dlevels,
|
|
51
57
|
levelOffset
|
|
52
|
-
}
|
|
58
|
+
};
|
|
59
|
+
const page = context.compression === 'UNCOMPRESSED'
|
|
60
|
+
? decodeUncompressedPage(cursor, context, target)
|
|
61
|
+
: await decodePage(cursor, context, target);
|
|
53
62
|
if (page.dictionary) {
|
|
54
63
|
dictionary = page.dictionary;
|
|
55
64
|
// eslint-disable-next-line no-continue
|
|
@@ -58,6 +67,7 @@ export async function decodeDataPages(buffer, context) {
|
|
|
58
67
|
levelOffset += page.count;
|
|
59
68
|
if (page.directValuesWritten !== undefined) {
|
|
60
69
|
valueOffset += page.directValuesWritten;
|
|
70
|
+
data.nullCount += page.count - page.directValuesWritten;
|
|
61
71
|
}
|
|
62
72
|
else {
|
|
63
73
|
const valueEncoding = getThriftEnum(Encoding, page.pageHeader.data_page_header?.encoding ?? page.pageHeader.data_page_header_v2?.encoding);
|
|
@@ -75,9 +85,95 @@ export async function decodeDataPages(buffer, context) {
|
|
|
75
85
|
}
|
|
76
86
|
data.rlevels = trimParquetLevelBuffer(data.rlevels, levelOffset);
|
|
77
87
|
data.dlevels = trimParquetLevelBuffer(data.dlevels, levelOffset);
|
|
78
|
-
|
|
88
|
+
if (byteArrayOutput) {
|
|
89
|
+
data.values = [];
|
|
90
|
+
data.byteArrayData = {
|
|
91
|
+
data: byteArrayOutput.data.subarray(0, byteArrayOutput.byteLength),
|
|
92
|
+
valueOffsets: byteArrayOutput.valueOffsets.subarray(0, valueOffset + 1)
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
data.values = trimParquetValueBuffer(data.values, valueOffset);
|
|
97
|
+
}
|
|
79
98
|
return data;
|
|
80
99
|
}
|
|
100
|
+
/**
|
|
101
|
+
* Decodes an uncompressed column chunk synchronously.
|
|
102
|
+
*
|
|
103
|
+
* In-memory Parquet reads use this entry point to avoid one resolved Promise per selected column.
|
|
104
|
+
*/
|
|
105
|
+
export function decodeUncompressedDataPages(buffer, context) {
|
|
106
|
+
const cursor = { buffer, offset: 0, size: buffer.length };
|
|
107
|
+
const expectedLevelCount = context.numValues === undefined ? undefined : Number(context.numValues);
|
|
108
|
+
if (expectedLevelCount !== undefined &&
|
|
109
|
+
(!Number.isSafeInteger(expectedLevelCount) || expectedLevelCount < 0)) {
|
|
110
|
+
throw new Error(`Invalid Parquet column value count ${expectedLevelCount}`);
|
|
111
|
+
}
|
|
112
|
+
const outputCapacity = expectedLevelCount ?? 0;
|
|
113
|
+
const byteArrayOutput = createArrowByteArrayOutput(buffer, context, outputCapacity);
|
|
114
|
+
const data = {
|
|
115
|
+
rlevels: createParquetLevelBuffer(context, outputCapacity, context.rLevelMax),
|
|
116
|
+
dlevels: createParquetLevelBuffer(context, outputCapacity, context.dLevelMax),
|
|
117
|
+
values: byteArrayOutput ? [] : createParquetColumnValueBuffer(context, outputCapacity),
|
|
118
|
+
pageHeaders: [],
|
|
119
|
+
count: 0,
|
|
120
|
+
nullCount: 0
|
|
121
|
+
};
|
|
122
|
+
let dictionary = context.dictionary || [];
|
|
123
|
+
let levelOffset = 0;
|
|
124
|
+
let valueOffset = 0;
|
|
125
|
+
while (cursor.offset < (cursor.size ?? cursor.buffer.length) &&
|
|
126
|
+
(expectedLevelCount === undefined || levelOffset < expectedLevelCount)) {
|
|
127
|
+
const page = decodeUncompressedPage(cursor, context, {
|
|
128
|
+
values: data.values,
|
|
129
|
+
valueOffset,
|
|
130
|
+
byteArrayOutput,
|
|
131
|
+
dictionary,
|
|
132
|
+
rlevels: data.rlevels,
|
|
133
|
+
dlevels: data.dlevels,
|
|
134
|
+
levelOffset
|
|
135
|
+
});
|
|
136
|
+
if (page.dictionary) {
|
|
137
|
+
dictionary = page.dictionary;
|
|
138
|
+
continue;
|
|
139
|
+
}
|
|
140
|
+
levelOffset += page.count;
|
|
141
|
+
if (page.directValuesWritten !== undefined) {
|
|
142
|
+
valueOffset += page.directValuesWritten;
|
|
143
|
+
data.nullCount += page.count - page.directValuesWritten;
|
|
144
|
+
}
|
|
145
|
+
else {
|
|
146
|
+
const valueEncoding = getThriftEnum(Encoding, page.pageHeader.data_page_header?.encoding ?? page.pageHeader.data_page_header_v2?.encoding);
|
|
147
|
+
const usesDictionary = dictionary.length &&
|
|
148
|
+
(valueEncoding === 'PLAIN_DICTIONARY' || valueEncoding === 'RLE_DICTIONARY');
|
|
149
|
+
for (let index = 0; index < page.values.length; index++) {
|
|
150
|
+
const value = usesDictionary ? dictionary[Number(page.values[index])] : page.values[index];
|
|
151
|
+
if (value !== undefined)
|
|
152
|
+
data.values[valueOffset++] = value;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
data.count += page.count;
|
|
156
|
+
data.pageHeaders.push(page.pageHeader);
|
|
157
|
+
}
|
|
158
|
+
data.rlevels = trimParquetLevelBuffer(data.rlevels, levelOffset);
|
|
159
|
+
data.dlevels = trimParquetLevelBuffer(data.dlevels, levelOffset);
|
|
160
|
+
if (byteArrayOutput) {
|
|
161
|
+
data.values = [];
|
|
162
|
+
data.byteArrayData = {
|
|
163
|
+
data: byteArrayOutput.data.subarray(0, byteArrayOutput.byteLength),
|
|
164
|
+
valueOffsets: byteArrayOutput.valueOffsets.subarray(0, valueOffset + 1)
|
|
165
|
+
};
|
|
166
|
+
}
|
|
167
|
+
else {
|
|
168
|
+
data.values = trimParquetValueBuffer(data.values, valueOffset);
|
|
169
|
+
}
|
|
170
|
+
return data;
|
|
171
|
+
}
|
|
172
|
+
/** Decodes a dictionary page from an uncompressed in-memory column chunk. */
|
|
173
|
+
export function decodeUncompressedDictionaryBuffer(buffer, context) {
|
|
174
|
+
const cursor = { buffer, offset: 0, size: buffer.length };
|
|
175
|
+
return decodeUncompressedPage(cursor, context).dictionary;
|
|
176
|
+
}
|
|
81
177
|
/**
|
|
82
178
|
* Decode parquet page based on page type
|
|
83
179
|
* @param cursor
|
|
@@ -88,6 +184,8 @@ export async function decodePage(cursor, context, target) {
|
|
|
88
184
|
const { pageHeader, length } = decodePageHeader(cursor.buffer, cursor.offset);
|
|
89
185
|
cursor.offset += length;
|
|
90
186
|
const pageType = getThriftEnum(PageType, pageHeader.type);
|
|
187
|
+
const pageEnd = cursor.offset + pageHeader.compressed_page_size;
|
|
188
|
+
verifyPageChecksum(cursor, pageHeader, pageEnd, context);
|
|
91
189
|
switch (pageType) {
|
|
92
190
|
case 'DATA_PAGE':
|
|
93
191
|
page = await decodeDataPage(cursor, pageHeader, context, target);
|
|
@@ -106,6 +204,46 @@ export async function decodePage(cursor, context, target) {
|
|
|
106
204
|
}
|
|
107
205
|
return page;
|
|
108
206
|
}
|
|
207
|
+
/** Decodes one uncompressed page without introducing a Promise/microtask boundary. */
|
|
208
|
+
function decodeUncompressedPage(cursor, context, target) {
|
|
209
|
+
const { pageHeader, length } = decodePageHeader(cursor.buffer, cursor.offset);
|
|
210
|
+
cursor.offset += length;
|
|
211
|
+
const pageEnd = cursor.offset + pageHeader.compressed_page_size;
|
|
212
|
+
verifyPageChecksum(cursor, pageHeader, pageEnd, context);
|
|
213
|
+
const pageType = getThriftEnum(PageType, pageHeader.type);
|
|
214
|
+
switch (pageType) {
|
|
215
|
+
case 'DATA_PAGE':
|
|
216
|
+
return decodeDataPageValues(cursor, pageHeader, context, target);
|
|
217
|
+
case 'DATA_PAGE_V2':
|
|
218
|
+
return decodeUncompressedDataPageV2(cursor, pageHeader, context, target);
|
|
219
|
+
case 'DICTIONARY_PAGE':
|
|
220
|
+
return {
|
|
221
|
+
dictionary: decodeUncompressedDictionaryPage(cursor, pageHeader, context),
|
|
222
|
+
dlevels: EMPTY_PARQUET_LEVEL_BUFFER,
|
|
223
|
+
rlevels: EMPTY_PARQUET_LEVEL_BUFFER,
|
|
224
|
+
values: [],
|
|
225
|
+
count: 0,
|
|
226
|
+
pageHeader
|
|
227
|
+
};
|
|
228
|
+
default:
|
|
229
|
+
throw new Error(`invalid page type: ${pageType}`);
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
/** Verifies a page checksum before either the synchronous or asynchronous decode path consumes it. */
|
|
233
|
+
function verifyPageChecksum(cursor, pageHeader, pageEnd, context) {
|
|
234
|
+
if (!context.verifyPageChecksums)
|
|
235
|
+
return;
|
|
236
|
+
if (pageEnd > (cursor.size ?? cursor.buffer.length)) {
|
|
237
|
+
throw new Error('Parquet page extends beyond the available buffer');
|
|
238
|
+
}
|
|
239
|
+
if (pageHeader.crc === undefined)
|
|
240
|
+
return;
|
|
241
|
+
const expected = pageHeader.crc >>> 0;
|
|
242
|
+
const actual = crc32(cursor.buffer.subarray(cursor.offset, pageEnd));
|
|
243
|
+
if (actual !== expected) {
|
|
244
|
+
throw new Error(`Parquet page checksum mismatch: expected ${expected}, calculated ${actual}`);
|
|
245
|
+
}
|
|
246
|
+
}
|
|
109
247
|
/**
|
|
110
248
|
* Decode parquet schema
|
|
111
249
|
* @param schemaElements input schema elements data
|
|
@@ -352,11 +490,13 @@ function decodeValues(type, encoding, cursor, count, opts) {
|
|
|
352
490
|
*/
|
|
353
491
|
async function decodeDataPage(cursor, header, context, target) {
|
|
354
492
|
const cursorEnd = cursor.offset + header.compressed_page_size;
|
|
355
|
-
const valueCount = header.data_page_header?.num_values;
|
|
356
493
|
/* uncompress page */
|
|
357
494
|
let dataCursor = cursor;
|
|
358
495
|
if (context.compression !== 'UNCOMPRESSED') {
|
|
359
|
-
const
|
|
496
|
+
const compressedValues = cursor.buffer.slice(cursor.offset, cursorEnd);
|
|
497
|
+
const valuesBuf = context.decompressPage
|
|
498
|
+
? await context.decompressPage(compressedValues, header.uncompressed_page_size)
|
|
499
|
+
: await decompress(context.compression, compressedValues, header.uncompressed_page_size);
|
|
360
500
|
dataCursor = {
|
|
361
501
|
buffer: valuesBuf,
|
|
362
502
|
offset: 0,
|
|
@@ -364,6 +504,11 @@ async function decodeDataPage(cursor, header, context, target) {
|
|
|
364
504
|
};
|
|
365
505
|
cursor.offset = cursorEnd;
|
|
366
506
|
}
|
|
507
|
+
return decodeDataPageValues(dataCursor, header, context, target);
|
|
508
|
+
}
|
|
509
|
+
/** Decodes one uncompressed Data Page V1 body without introducing an asynchronous boundary. */
|
|
510
|
+
function decodeDataPageValues(dataCursor, header, context, target) {
|
|
511
|
+
const valueCount = header.data_page_header?.num_values;
|
|
367
512
|
/* read repetition levels */
|
|
368
513
|
const rLevelEncoding = getThriftEnum(Encoding, header.data_page_header?.repetition_level_encoding);
|
|
369
514
|
const rLevels = decodeLevels(dataCursor, valueCount, context.column.rLevelMax, rLevelEncoding, false, target?.rlevels, target?.levelOffset);
|
|
@@ -390,7 +535,9 @@ async function decodeDataPage(cursor, header, context, target) {
|
|
|
390
535
|
output: target?.values,
|
|
391
536
|
outputOffset: target?.valueOffset,
|
|
392
537
|
dictionary: isDictionaryEncoding(valueEncoding) ? target?.dictionary : undefined,
|
|
393
|
-
|
|
538
|
+
byteArrayOutput: target?.byteArrayOutput,
|
|
539
|
+
int64AsBigInt: shouldDecodeInt64AsBigInt(context),
|
|
540
|
+
int96AsTimestamp: context.int96AsTimestamp
|
|
394
541
|
};
|
|
395
542
|
const values = decodeValues(context.column.primitiveType, valueEncoding, dataCursor, valueCountNonNull, decodeOptions);
|
|
396
543
|
return {
|
|
@@ -456,10 +603,60 @@ async function decodeDataPageV2(cursor, header, context, target) {
|
|
|
456
603
|
}
|
|
457
604
|
let valuesBuffer = cursor.buffer.subarray(valuesOffset, cursorEnd);
|
|
458
605
|
if (dataPageHeader.is_compressed !== false && context.compression !== 'UNCOMPRESSED') {
|
|
459
|
-
valuesBuffer =
|
|
606
|
+
valuesBuffer = context.decompressPage
|
|
607
|
+
? await context.decompressPage(valuesBuffer, valuesUncompressedByteLength)
|
|
608
|
+
: await decompress(context.compression, valuesBuffer, valuesUncompressedByteLength);
|
|
460
609
|
}
|
|
461
|
-
const valuesBufCursor = { buffer: valuesBuffer, offset: 0, size: valuesBuffer.length };
|
|
462
610
|
cursor.offset = cursorEnd;
|
|
611
|
+
return decodeDataPageV2Values(valuesBuffer, header, context, target, rLevels, dLevels, valueCount, valueCountNonNull, valueEncoding);
|
|
612
|
+
}
|
|
613
|
+
/** Decodes one uncompressed Data Page V2 without awaiting an unused decompressor. */
|
|
614
|
+
function decodeUncompressedDataPageV2(cursor, header, context, target) {
|
|
615
|
+
const dataPageHeader = header.data_page_header_v2;
|
|
616
|
+
if (!dataPageHeader) {
|
|
617
|
+
throw new Error('Missing Parquet data page v2 header');
|
|
618
|
+
}
|
|
619
|
+
const cursorEnd = cursor.offset + header.compressed_page_size;
|
|
620
|
+
const levelsOffset = cursor.offset;
|
|
621
|
+
const valueCount = dataPageHeader.num_values;
|
|
622
|
+
const valueCountNonNull = valueCount - dataPageHeader.num_nulls;
|
|
623
|
+
const valueEncoding = getThriftEnum(Encoding, dataPageHeader.encoding);
|
|
624
|
+
if (header.compressed_page_size < 0 ||
|
|
625
|
+
cursorEnd > (cursor.size ?? cursor.buffer.length) ||
|
|
626
|
+
valueCountNonNull < 0) {
|
|
627
|
+
throw new Error('Invalid Parquet data page v2 header');
|
|
628
|
+
}
|
|
629
|
+
let rLevels = [];
|
|
630
|
+
if (context.column.rLevelMax > 0) {
|
|
631
|
+
const repetitionLevelCursor = createPageSliceCursor(cursor, levelsOffset, dataPageHeader.repetition_levels_byte_length);
|
|
632
|
+
rLevels = decodeLevels(repetitionLevelCursor, valueCount, context.column.rLevelMax, PARQUET_RDLVL_ENCODING, true, target?.rlevels, target?.levelOffset);
|
|
633
|
+
}
|
|
634
|
+
else if (!target) {
|
|
635
|
+
rLevels = new Array(valueCount).fill(0);
|
|
636
|
+
}
|
|
637
|
+
const definitionLevelsOffset = levelsOffset + dataPageHeader.repetition_levels_byte_length;
|
|
638
|
+
let dLevels = [];
|
|
639
|
+
if (context.column.dLevelMax > 0) {
|
|
640
|
+
const definitionLevelCursor = createPageSliceCursor(cursor, definitionLevelsOffset, dataPageHeader.definition_levels_byte_length);
|
|
641
|
+
dLevels = decodeLevels(definitionLevelCursor, valueCount, context.column.dLevelMax, PARQUET_RDLVL_ENCODING, true, target?.dlevels, target?.levelOffset);
|
|
642
|
+
}
|
|
643
|
+
else if (!target) {
|
|
644
|
+
dLevels = new Array(valueCount).fill(0);
|
|
645
|
+
}
|
|
646
|
+
const valuesOffset = definitionLevelsOffset + dataPageHeader.definition_levels_byte_length;
|
|
647
|
+
const valuesUncompressedByteLength = header.uncompressed_page_size -
|
|
648
|
+
dataPageHeader.repetition_levels_byte_length -
|
|
649
|
+
dataPageHeader.definition_levels_byte_length;
|
|
650
|
+
if (valuesOffset > cursorEnd || valuesUncompressedByteLength < 0) {
|
|
651
|
+
throw new Error('Invalid Parquet data page v2 level lengths');
|
|
652
|
+
}
|
|
653
|
+
const valuesBuffer = cursor.buffer.subarray(valuesOffset, cursorEnd);
|
|
654
|
+
cursor.offset = cursorEnd;
|
|
655
|
+
return decodeDataPageV2Values(valuesBuffer, header, context, target, rLevels, dLevels, valueCount, valueCountNonNull, valueEncoding);
|
|
656
|
+
}
|
|
657
|
+
/** Decodes a prepared Data Page V2 value section without an asynchronous boundary. */
|
|
658
|
+
function decodeDataPageV2Values(valuesBuffer, header, context, target, rLevels, dLevels, valueCount, valueCountNonNull, valueEncoding) {
|
|
659
|
+
const valuesBufCursor = { buffer: valuesBuffer, offset: 0, size: valuesBuffer.length };
|
|
463
660
|
const decodeOptions = {
|
|
464
661
|
typeLength: context.column.typeLength,
|
|
465
662
|
bitWidth: getValueBitWidth(context, valueEncoding),
|
|
@@ -467,7 +664,9 @@ async function decodeDataPageV2(cursor, header, context, target) {
|
|
|
467
664
|
output: target?.values,
|
|
468
665
|
outputOffset: target?.valueOffset,
|
|
469
666
|
dictionary: isDictionaryEncoding(valueEncoding) ? target?.dictionary : undefined,
|
|
470
|
-
|
|
667
|
+
byteArrayOutput: target?.byteArrayOutput,
|
|
668
|
+
int64AsBigInt: shouldDecodeInt64AsBigInt(context),
|
|
669
|
+
int96AsTimestamp: context.int96AsTimestamp
|
|
471
670
|
};
|
|
472
671
|
const values = decodeValues(context.column.primitiveType, valueEncoding, valuesBufCursor, valueCountNonNull, decodeOptions);
|
|
473
672
|
return {
|
|
@@ -492,8 +691,88 @@ function decodeLevels(cursor, count, levelMax, encoding, disableEnvelope, output
|
|
|
492
691
|
});
|
|
493
692
|
return output ? [] : levels;
|
|
494
693
|
}
|
|
694
|
+
/**
|
|
695
|
+
* Allocates a compact Arrow-compatible destination for supported uncompressed byte pages.
|
|
696
|
+
*
|
|
697
|
+
* Scanning only the small Thrift page headers avoids committing to the fast path when a column
|
|
698
|
+
* mixes in an encoding that still requires materialized values. The page buffer is a useful
|
|
699
|
+
* initial capacity; the destination grows for prefix-reconstructed delta values when necessary.
|
|
700
|
+
*/
|
|
701
|
+
function createArrowByteArrayOutput(buffer, context, valueCapacity) {
|
|
702
|
+
if (!context.useArrowByteArrayBuffers ||
|
|
703
|
+
context.compression !== 'UNCOMPRESSED' ||
|
|
704
|
+
!supportsArrowByteArrayOutput(context.column) ||
|
|
705
|
+
valueCapacity === 0) {
|
|
706
|
+
return undefined;
|
|
707
|
+
}
|
|
708
|
+
if (!context.hasOnlyArrowByteArrayDataPages &&
|
|
709
|
+
!hasOnlyArrowByteArrayDataPages(buffer, valueCapacity)) {
|
|
710
|
+
return undefined;
|
|
711
|
+
}
|
|
712
|
+
return {
|
|
713
|
+
data: context.column.primitiveType === 'FIXED_LEN_BYTE_ARRAY'
|
|
714
|
+
? new Uint8Array(0)
|
|
715
|
+
: new Uint8Array(Math.max(1, buffer.byteLength)),
|
|
716
|
+
valueOffsets: new Int32Array(valueCapacity + 1),
|
|
717
|
+
byteLength: 0
|
|
718
|
+
};
|
|
719
|
+
}
|
|
720
|
+
/** Returns whether a BYTE_ARRAY field maps directly to Arrow Utf8 or Binary without conversion. */
|
|
721
|
+
function supportsArrowByteArrayOutput(column) {
|
|
722
|
+
if (column.primitiveType !== 'BYTE_ARRAY' && column.primitiveType !== 'FIXED_LEN_BYTE_ARRAY') {
|
|
723
|
+
return false;
|
|
724
|
+
}
|
|
725
|
+
if (column.logicalType) {
|
|
726
|
+
return (column.logicalType.type === 'STRING' ||
|
|
727
|
+
column.logicalType.type === 'ENUM' ||
|
|
728
|
+
column.logicalType.type === 'JSON' ||
|
|
729
|
+
column.logicalType.type === 'BSON' ||
|
|
730
|
+
column.logicalType.type === 'VARIANT' ||
|
|
731
|
+
column.logicalType.type === 'GEOMETRY' ||
|
|
732
|
+
column.logicalType.type === 'GEOGRAPHY');
|
|
733
|
+
}
|
|
734
|
+
return (!column.originalType ||
|
|
735
|
+
column.originalType === 'UTF8' ||
|
|
736
|
+
column.originalType === 'ENUM' ||
|
|
737
|
+
column.originalType === 'JSON' ||
|
|
738
|
+
column.originalType === 'BSON' ||
|
|
739
|
+
column.originalType === 'INTERVAL');
|
|
740
|
+
}
|
|
741
|
+
/** Returns whether a complete column buffer contains only direct Arrow byte-array data pages. */
|
|
742
|
+
function hasOnlyArrowByteArrayDataPages(buffer, expectedLevelCount) {
|
|
743
|
+
let offset = 0;
|
|
744
|
+
let levelCount = 0;
|
|
745
|
+
while (offset < buffer.byteLength && levelCount < expectedLevelCount) {
|
|
746
|
+
const { pageHeader, length } = decodePageHeader(buffer, offset);
|
|
747
|
+
const pageType = getThriftEnum(PageType, pageHeader.type);
|
|
748
|
+
if (pageType !== 'DATA_PAGE' && pageType !== 'DATA_PAGE_V2') {
|
|
749
|
+
return false;
|
|
750
|
+
}
|
|
751
|
+
const encoding = getThriftEnum(Encoding, pageHeader.data_page_header?.encoding ?? pageHeader.data_page_header_v2?.encoding);
|
|
752
|
+
if (encoding !== 'PLAIN' &&
|
|
753
|
+
encoding !== 'DELTA_LENGTH_BYTE_ARRAY' &&
|
|
754
|
+
encoding !== 'DELTA_BYTE_ARRAY') {
|
|
755
|
+
return false;
|
|
756
|
+
}
|
|
757
|
+
const valueCount = pageHeader.data_page_header?.num_values ?? pageHeader.data_page_header_v2?.num_values;
|
|
758
|
+
if (valueCount === undefined || valueCount < 0) {
|
|
759
|
+
return false;
|
|
760
|
+
}
|
|
761
|
+
levelCount += valueCount;
|
|
762
|
+
offset += length + pageHeader.compressed_page_size;
|
|
763
|
+
if (offset > buffer.byteLength) {
|
|
764
|
+
return false;
|
|
765
|
+
}
|
|
766
|
+
}
|
|
767
|
+
return levelCount === expectedLevelCount;
|
|
768
|
+
}
|
|
495
769
|
/** Allocates compact unsigned storage for repetition and definition levels. */
|
|
496
770
|
function createParquetLevelBuffer(context, capacity, levelMax) {
|
|
771
|
+
if (context.useTypedLevelBuffers && levelMax === 0) {
|
|
772
|
+
// Required flat columns have no encoded levels. Avoid allocating two row-sized zero buffers
|
|
773
|
+
// that neither direct Arrow construction nor level decoding will inspect.
|
|
774
|
+
return EMPTY_PARQUET_LEVEL_BUFFER;
|
|
775
|
+
}
|
|
497
776
|
if (!context.useTypedLevelBuffers || capacity === 0) {
|
|
498
777
|
return levelMax > 0 ? new Array(capacity) : new Array(capacity).fill(0);
|
|
499
778
|
}
|
|
@@ -511,6 +790,8 @@ function trimParquetLevelBuffer(levels, length) {
|
|
|
511
790
|
levels.length = length;
|
|
512
791
|
return levels;
|
|
513
792
|
}
|
|
793
|
+
if (levels.length === 0 || levels.length === length)
|
|
794
|
+
return levels;
|
|
514
795
|
return levels.subarray(0, length);
|
|
515
796
|
}
|
|
516
797
|
/** Returns whether an encoding stores RLE dictionary indices instead of physical values. */
|
|
@@ -534,6 +815,7 @@ function createParquetColumnValueBuffer(context, capacity) {
|
|
|
534
815
|
case 'INT64':
|
|
535
816
|
return new BigInt64Array(capacity);
|
|
536
817
|
case 'INT96':
|
|
818
|
+
return context.int96AsTimestamp ? new BigInt64Array(capacity) : new Float64Array(capacity);
|
|
537
819
|
case 'DOUBLE':
|
|
538
820
|
return new Float64Array(capacity);
|
|
539
821
|
case 'FLOAT':
|
|
@@ -581,7 +863,10 @@ async function decodeDictionaryPage(cursor, pageHeader, context) {
|
|
|
581
863
|
};
|
|
582
864
|
cursor.offset = cursorEnd;
|
|
583
865
|
if (context.compression !== 'UNCOMPRESSED') {
|
|
584
|
-
const
|
|
866
|
+
const compressedValues = dictCursor.buffer.subarray(dictCursor.offset);
|
|
867
|
+
const valuesBuf = context.decompressPage
|
|
868
|
+
? await context.decompressPage(compressedValues, pageHeader.uncompressed_page_size)
|
|
869
|
+
: await decompress(context.compression, compressedValues, pageHeader.uncompressed_page_size);
|
|
585
870
|
dictCursor = {
|
|
586
871
|
buffer: valuesBuf,
|
|
587
872
|
offset: 0,
|
|
@@ -589,6 +874,24 @@ async function decodeDictionaryPage(cursor, pageHeader, context) {
|
|
|
589
874
|
};
|
|
590
875
|
cursor.offset = cursorEnd;
|
|
591
876
|
}
|
|
877
|
+
return decodeDictionaryValues(dictCursor, pageHeader, context);
|
|
878
|
+
}
|
|
879
|
+
/** Decodes an uncompressed dictionary page directly from a view of the column chunk. */
|
|
880
|
+
function decodeUncompressedDictionaryPage(cursor, pageHeader, context) {
|
|
881
|
+
const cursorEnd = cursor.offset + pageHeader.compressed_page_size;
|
|
882
|
+
if (cursorEnd > (cursor.size ?? cursor.buffer.length)) {
|
|
883
|
+
throw new Error('Parquet dictionary page exceeds the available buffer');
|
|
884
|
+
}
|
|
885
|
+
const dictionaryCursor = {
|
|
886
|
+
buffer: cursor.buffer.subarray(cursor.offset, cursorEnd),
|
|
887
|
+
offset: 0,
|
|
888
|
+
size: pageHeader.compressed_page_size
|
|
889
|
+
};
|
|
890
|
+
cursor.offset = cursorEnd;
|
|
891
|
+
return decodeDictionaryValues(dictionaryCursor, pageHeader, context);
|
|
892
|
+
}
|
|
893
|
+
/** Decodes one dictionary body from its current cursor without copying uncompressed page bytes. */
|
|
894
|
+
function decodeDictionaryValues(dictionaryCursor, pageHeader, context) {
|
|
592
895
|
const numValues = pageHeader?.dictionary_page_header?.num_values || 0;
|
|
593
896
|
const declaredEncoding = getThriftEnum(Encoding, pageHeader.dictionary_page_header?.encoding);
|
|
594
897
|
// Some established writers put the data-page dictionary encoding in this field even though
|
|
@@ -596,10 +899,11 @@ async function decodeDictionaryPage(cursor, pageHeader, context) {
|
|
|
596
899
|
const dictionaryValueEncoding = declaredEncoding === 'PLAIN_DICTIONARY' || declaredEncoding === 'RLE_DICTIONARY'
|
|
597
900
|
? 'PLAIN'
|
|
598
901
|
: declaredEncoding;
|
|
599
|
-
const decodedDictionaryValues = decodeValues(context.column.primitiveType, dictionaryValueEncoding,
|
|
902
|
+
const decodedDictionaryValues = decodeValues(context.column.primitiveType, dictionaryValueEncoding, dictionaryCursor, numValues, {
|
|
600
903
|
...context,
|
|
601
904
|
typeLength: context.column.typeLength,
|
|
602
|
-
int64AsBigInt: shouldDecodeInt64AsBigInt(context)
|
|
905
|
+
int64AsBigInt: shouldDecodeInt64AsBigInt(context),
|
|
906
|
+
int96AsTimestamp: context.int96AsTimestamp
|
|
603
907
|
});
|
|
604
908
|
return decodedDictionaryValues;
|
|
605
909
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decoders.js","sourceRoot":"","sources":["../../../src/parquetjs/parser/decoders.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"decoders.js","sourceRoot":"","sources":["../../../src/parquetjs/parser/decoders.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { ParquetEncodedPage } from "../../parquet-encoded-page-types.js";
|
|
2
|
+
import type { ParquetCompression, ParquetField } from "../schema/declare.js";
|
|
3
|
+
import type { ParquetPageDecompressor } from "../compression.js";
|
|
4
|
+
/** Context required to expose page framing without decoding Parquet values. */
|
|
5
|
+
export type ParquetEncodedPageContext = Readonly<{
|
|
6
|
+
/** Schema field associated with the column chunk. */
|
|
7
|
+
column: ParquetField;
|
|
8
|
+
/** Compression codec declared by the column chunk. */
|
|
9
|
+
compression: ParquetCompression;
|
|
10
|
+
/** Reusable decompressor for independently compressed pages. */
|
|
11
|
+
decompressPage: ParquetPageDecompressor;
|
|
12
|
+
/** Compression codecs a downstream decoder can consume directly. */
|
|
13
|
+
preserveCompression?: ReadonlySet<string>;
|
|
14
|
+
/** Verify page CRC values before exposing page bytes. */
|
|
15
|
+
verifyPageChecksums?: boolean;
|
|
16
|
+
}>;
|
|
17
|
+
/**
|
|
18
|
+
* Splits a plaintext column-chunk buffer into transport-neutral encoded page descriptors.
|
|
19
|
+
*
|
|
20
|
+
* This parses only page headers and level framing. It deliberately does not decode levels,
|
|
21
|
+
* dictionaries, or values, allowing the returned bytes to be consumed by a CPU or GPU backend.
|
|
22
|
+
*/
|
|
23
|
+
export declare function scanParquetEncodedPages(buffer: Uint8Array, context: ParquetEncodedPageContext): Promise<ParquetEncodedPage[]>;
|
|
24
|
+
//# sourceMappingURL=encoded-pages.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encoded-pages.d.ts","sourceRoot":"","sources":["../../../src/parquetjs/parser/encoded-pages.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,kBAAkB,EAA4B,4CAAyC;AACpG,OAAO,KAAK,EAAC,kBAAkB,EAAE,YAAY,EAAC,6BAA0B;AAKxE,OAAO,KAAK,EAAC,uBAAuB,EAAC,0BAAuB;AAE5D,+EAA+E;AAC/E,MAAM,MAAM,yBAAyB,GAAG,QAAQ,CAAC;IAC/C,qDAAqD;IACrD,MAAM,EAAE,YAAY,CAAC;IACrB,sDAAsD;IACtD,WAAW,EAAE,kBAAkB,CAAC;IAChC,gEAAgE;IAChE,cAAc,EAAE,uBAAuB,CAAC;IACxC,oEAAoE;IACpE,mBAAmB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC1C,yDAAyD;IACzD,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B,CAAC,CAAC;AAEH;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,yBAAyB,GACjC,OAAO,CAAC,kBAAkB,EAAE,CAAC,CA8B/B"}
|