@gscdump/lakehouse 3.2.0 → 3.3.0
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 +21 -0
- package/dist/THIRD-PARTY-LICENSES.md +2 -2
- package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.1}/node_modules/hyparquet/src/index.mjs +2 -1
- package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.1}/node_modules/hyparquet/src/node.mjs +2 -1
- package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.1}/node_modules/hyparquet/src/plan.mjs +115 -87
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.29.1/node_modules/hyparquet/src/read.mjs +78 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.29.1/node_modules/hyparquet/src/scan.mjs +203 -0
- package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.1}/node_modules/hyparquet/types/index.d.mts +1 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.29.2/node_modules/hyparquet/src/snappy.mjs +68 -0
- package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.22_patch_hash=4fa7fd5702c4ce432fb2902c6abe07cc55565e87f6375b96ece63a10999712e6 → icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244}/node_modules/icebird/src/avro/avro.read.mjs +1 -1
- package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.22_patch_hash=4fa7fd5702c4ce432fb2902c6abe07cc55565e87f6375b96ece63a10999712e6 → icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244}/node_modules/icebird/src/fetch.mjs +14 -6
- package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.22_patch_hash=4fa7fd5702c4ce432fb2902c6abe07cc55565e87f6375b96ece63a10999712e6 → icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244}/node_modules/icebird/src/index.mjs +1 -1
- package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.22_patch_hash=4fa7fd5702c4ce432fb2902c6abe07cc55565e87f6375b96ece63a10999712e6 → icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244}/node_modules/icebird/src/manifest.mjs +1 -0
- package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.22_patch_hash=4fa7fd5702c4ce432fb2902c6abe07cc55565e87f6375b96ece63a10999712e6 → icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244}/node_modules/icebird/src/metadata.mjs +1 -9
- package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.22_patch_hash=4fa7fd5702c4ce432fb2902c6abe07cc55565e87f6375b96ece63a10999712e6 → icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244}/node_modules/icebird/src/read.mjs +45 -110
- package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.22_patch_hash=4fa7fd5702c4ce432fb2902c6abe07cc55565e87f6375b96ece63a10999712e6 → icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244}/node_modules/icebird/src/sql/icebergDataSource.mjs +1 -1
- package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.22_patch_hash=4fa7fd5702c4ce432fb2902c6abe07cc55565e87f6375b96ece63a10999712e6 → icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244}/node_modules/icebird/src/sql/icebergQuery.mjs +1 -1
- package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.22_patch_hash=4fa7fd5702c4ce432fb2902c6abe07cc55565e87f6375b96ece63a10999712e6 → icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244}/node_modules/icebird/src/types.d.mts +2 -2
- package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.22_patch_hash=4fa7fd5702c4ce432fb2902c6abe07cc55565e87f6375b96ece63a10999712e6 → icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244}/node_modules/icebird/src/write/manifest.mjs +45 -1
- package/dist/_virtual/node_modules/.pnpm/icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244/node_modules/icebird/src/write/rewrite.mjs +296 -0
- package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.22_patch_hash=4fa7fd5702c4ce432fb2902c6abe07cc55565e87f6375b96ece63a10999712e6 → icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244}/node_modules/icebird/src/write/stage.mjs +14 -8
- package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.22_patch_hash=4fa7fd5702c4ce432fb2902c6abe07cc55565e87f6375b96ece63a10999712e6 → icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244}/node_modules/icebird/src/write/write.mjs +2 -1
- package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.22_patch_hash=4fa7fd5702c4ce432fb2902c6abe07cc55565e87f6375b96ece63a10999712e6 → icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244}/node_modules/icebird/types/fetch.d.mts +1 -0
- package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.22_patch_hash=4fa7fd5702c4ce432fb2902c6abe07cc55565e87f6375b96ece63a10999712e6 → icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244}/node_modules/icebird/types/index.d.mts +1 -1
- package/dist/_virtual/node_modules/.pnpm/icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244/node_modules/icebird/types/metadata.d.mts +1 -0
- package/dist/_virtual/node_modules/.pnpm/icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244/node_modules/icebird/types/read.d.mts +3 -0
- package/dist/_virtual/node_modules/.pnpm/icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244/node_modules/icebird/types/sql/icebergDataSource.d.mts +2 -0
- package/dist/_virtual/node_modules/.pnpm/icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244/node_modules/icebird/types/sql/icebergQuery.d.mts +2 -0
- package/dist/_virtual/node_modules/.pnpm/squirreling@0.16.2/node_modules/squirreling/src/backend/batchAdapters.mjs +3 -0
- package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/execute/aggregates.mjs +2 -1
- package/dist/_virtual/node_modules/.pnpm/squirreling@0.16.2/node_modules/squirreling/src/execute/batchResults.mjs +3 -0
- package/dist/_virtual/node_modules/.pnpm/squirreling@0.16.2/node_modules/squirreling/src/execute/batches.mjs +4 -0
- package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/execute/execute.mjs +7 -1
- package/dist/_virtual/node_modules/.pnpm/squirreling@0.16.2/node_modules/squirreling/src/execute/rowScope.mjs +2 -0
- package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/execute/streamingAggregate.mjs +4 -1
- package/dist/_virtual/node_modules/.pnpm/squirreling@0.16.2/node_modules/squirreling/src/execute/utils.mjs +2 -0
- package/dist/_virtual/node_modules/.pnpm/squirreling@0.16.2/node_modules/squirreling/src/expression/batch.mjs +10 -0
- package/dist/_virtual/node_modules/.pnpm/squirreling@0.16.2/node_modules/squirreling/src/expression/binary.mjs +2 -0
- package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/expression/evaluate.mjs +4 -3
- package/dist/_virtual/node_modules/.pnpm/squirreling@0.16.2/node_modules/squirreling/src/expression/scalar.mjs +4 -0
- package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/index.mjs +2 -0
- package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/plan/columns.mjs +1 -0
- package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/validation/tables.mjs +1 -0
- package/dist/_virtual/node_modules/.pnpm/unstorage@1.17.5_aws4fetch@1.0.20_db0@0.3.4_ioredis@5.10.1_supports-color@10.2.2_/node_modules/unstorage/drivers/db0.d.mts +1 -1
- package/dist/catalog.d.mts +3 -3
- package/dist/catalog.mjs +5 -5
- package/dist/dataset-runtime.mjs +1 -1
- package/dist/orphan-sweep.mjs +3 -3
- package/dist/unsafe-raw.d.mts +5 -5
- package/dist/unsafe-raw.mjs +5 -5
- package/dist/vendor/hysnappy-purejs.mjs +1 -1
- package/package.json +5 -5
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.28.2/node_modules/hyparquet/src/read.mjs +0 -128
- package/dist/_virtual/node_modules/.pnpm/icebird@0.8.22_patch_hash=4fa7fd5702c4ce432fb2902c6abe07cc55565e87f6375b96ece63a10999712e6/node_modules/icebird/src/write/rewrite.mjs +0 -174
- package/dist/_virtual/node_modules/.pnpm/icebird@0.8.22_patch_hash=4fa7fd5702c4ce432fb2902c6abe07cc55565e87f6375b96ece63a10999712e6/node_modules/icebird/types/read.d.mts +0 -2
- package/dist/_virtual/node_modules/.pnpm/icebird@0.8.22_patch_hash=4fa7fd5702c4ce432fb2902c6abe07cc55565e87f6375b96ece63a10999712e6/node_modules/icebird/types/sql/icebergDataSource.d.mts +0 -2
- package/dist/_virtual/node_modules/.pnpm/icebird@0.8.22_patch_hash=4fa7fd5702c4ce432fb2902c6abe07cc55565e87f6375b96ece63a10999712e6/node_modules/icebird/types/sql/icebergQuery.d.mts +0 -2
- package/dist/_virtual/node_modules/.pnpm/squirreling@0.15.3/node_modules/squirreling/src/expression/binary.mjs +0 -1
- package/dist/_virtual/node_modules/.pnpm/{db0@0.3.4_drizzle-orm@1.0.0-rc.4_@cloudflare+workers-types@5.20260816.1_valibot@1.4.2_typescript@6.0.3__zod@4.4.3_ → db0@0.3.4_drizzle-orm@1.0.0-rc.4_@cloudflare+workers-types@5.20260827.1_valibot@1.4.2_typescript@6.0.3__zod@4.4.3_}/node_modules/db0/dist/index.d.mts +0 -0
- package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.1}/node_modules/hyparquet/src/assemble.mjs +0 -0
- package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.1}/node_modules/hyparquet/src/bloom.mjs +0 -0
- package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.1}/node_modules/hyparquet/src/column.mjs +0 -0
- package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.1}/node_modules/hyparquet/src/constants.mjs +0 -0
- package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.1}/node_modules/hyparquet/src/convert.mjs +0 -0
- package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.1}/node_modules/hyparquet/src/datapage.mjs +0 -0
- package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.1}/node_modules/hyparquet/src/delta.mjs +0 -0
- package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.1}/node_modules/hyparquet/src/encoding.mjs +0 -0
- package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.1}/node_modules/hyparquet/src/filter.mjs +0 -0
- package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.1}/node_modules/hyparquet/src/geoparquet.mjs +0 -0
- package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.1}/node_modules/hyparquet/src/indexes.mjs +0 -0
- package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.1}/node_modules/hyparquet/src/metadata.mjs +0 -0
- package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.1}/node_modules/hyparquet/src/plain.mjs +0 -0
- package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.1}/node_modules/hyparquet/src/query.mjs +0 -0
- package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.1}/node_modules/hyparquet/src/rowgroup.mjs +0 -0
- package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.1}/node_modules/hyparquet/src/schema.mjs +0 -0
- package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.1}/node_modules/hyparquet/src/snappy.mjs +0 -0
- package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.1}/node_modules/hyparquet/src/thrift.mjs +0 -0
- package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.1}/node_modules/hyparquet/src/types.d.mts +0 -0
- package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.1}/node_modules/hyparquet/src/utils.mjs +0 -0
- package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.1}/node_modules/hyparquet/src/variant.mjs +0 -0
- package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.1}/node_modules/hyparquet/src/wkb.mjs +0 -0
- package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.1}/node_modules/hyparquet/src/xxhash.mjs +0 -0
- package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.1}/node_modules/hyparquet/types/indexes.d.mts +0 -0
- package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.1}/node_modules/hyparquet/types/metadata.d.mts +0 -0
- package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.1}/node_modules/hyparquet/types/node.d.mts +0 -0
- package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.1}/node_modules/hyparquet/types/query.d.mts +0 -0
- package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.1}/node_modules/hyparquet/types/read.d.mts +0 -0
- package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.28.2/node_modules/hyparquet/types/utils.d.mts → hyparquet@1.29.1/node_modules/hyparquet/types/scan.d.mts} +0 -0
- package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.1}/node_modules/hyparquet/types/snappy.d.mts +0 -0
- package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.22_patch_hash=4fa7fd5702c4ce432fb2902c6abe07cc55565e87f6375b96ece63a10999712e6/node_modules/icebird/types/create.d.mts → hyparquet@1.29.1/node_modules/hyparquet/types/utils.d.mts} +0 -0
- package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.22_patch_hash=4fa7fd5702c4ce432fb2902c6abe07cc55565e87f6375b96ece63a10999712e6 → icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244}/node_modules/icebird/src/avro/avro.metadata.mjs +0 -0
- package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.22_patch_hash=4fa7fd5702c4ce432fb2902c6abe07cc55565e87f6375b96ece63a10999712e6 → icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244}/node_modules/icebird/src/avro/avro.write.mjs +0 -0
- package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.22_patch_hash=4fa7fd5702c4ce432fb2902c6abe07cc55565e87f6375b96ece63a10999712e6 → icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244}/node_modules/icebird/src/catalog/file.mjs +0 -0
- package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.22_patch_hash=4fa7fd5702c4ce432fb2902c6abe07cc55565e87f6375b96ece63a10999712e6 → icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244}/node_modules/icebird/src/catalog/loadTable.mjs +0 -0
- package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.22_patch_hash=4fa7fd5702c4ce432fb2902c6abe07cc55565e87f6375b96ece63a10999712e6 → icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244}/node_modules/icebird/src/catalog/rest.mjs +0 -0
- package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.22_patch_hash=4fa7fd5702c4ce432fb2902c6abe07cc55565e87f6375b96ece63a10999712e6 → icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244}/node_modules/icebird/src/create.mjs +0 -0
- package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.22_patch_hash=4fa7fd5702c4ce432fb2902c6abe07cc55565e87f6375b96ece63a10999712e6 → icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244}/node_modules/icebird/src/delete.mjs +0 -0
- package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.22_patch_hash=4fa7fd5702c4ce432fb2902c6abe07cc55565e87f6375b96ece63a10999712e6 → icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244}/node_modules/icebird/src/json.mjs +0 -0
- package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.22_patch_hash=4fa7fd5702c4ce432fb2902c6abe07cc55565e87f6375b96ece63a10999712e6 → icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244}/node_modules/icebird/src/prune.mjs +0 -0
- package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.22_patch_hash=4fa7fd5702c4ce432fb2902c6abe07cc55565e87f6375b96ece63a10999712e6 → icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244}/node_modules/icebird/src/puffin/deletion-vector.mjs +0 -0
- package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.22_patch_hash=4fa7fd5702c4ce432fb2902c6abe07cc55565e87f6375b96ece63a10999712e6 → icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244}/node_modules/icebird/src/puffin/puffin.mjs +0 -0
- package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.22_patch_hash=4fa7fd5702c4ce432fb2902c6abe07cc55565e87f6375b96ece63a10999712e6 → icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244}/node_modules/icebird/src/puffin/roaring.mjs +0 -0
- package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.22_patch_hash=4fa7fd5702c4ce432fb2902c6abe07cc55565e87f6375b96ece63a10999712e6 → icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244}/node_modules/icebird/src/s3.mjs +0 -0
- package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.22_patch_hash=4fa7fd5702c4ce432fb2902c6abe07cc55565e87f6375b96ece63a10999712e6 → icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244}/node_modules/icebird/src/schema.mjs +0 -0
- package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.22_patch_hash=4fa7fd5702c4ce432fb2902c6abe07cc55565e87f6375b96ece63a10999712e6 → icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244}/node_modules/icebird/src/sigv4.mjs +0 -0
- package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.22_patch_hash=4fa7fd5702c4ce432fb2902c6abe07cc55565e87f6375b96ece63a10999712e6 → icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244}/node_modules/icebird/src/sql/whereFilter.mjs +0 -0
- package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.22_patch_hash=4fa7fd5702c4ce432fb2902c6abe07cc55565e87f6375b96ece63a10999712e6 → icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244}/node_modules/icebird/src/utils.mjs +0 -0
- package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.22_patch_hash=4fa7fd5702c4ce432fb2902c6abe07cc55565e87f6375b96ece63a10999712e6 → icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244}/node_modules/icebird/src/write/commit.mjs +0 -0
- package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.22_patch_hash=4fa7fd5702c4ce432fb2902c6abe07cc55565e87f6375b96ece63a10999712e6 → icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244}/node_modules/icebird/src/write/conversions.mjs +0 -0
- package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.22_patch_hash=4fa7fd5702c4ce432fb2902c6abe07cc55565e87f6375b96ece63a10999712e6 → icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244}/node_modules/icebird/src/write/delete-file.mjs +0 -0
- package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.22_patch_hash=4fa7fd5702c4ce432fb2902c6abe07cc55565e87f6375b96ece63a10999712e6 → icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244}/node_modules/icebird/src/write/geospatial.mjs +0 -0
- package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.22_patch_hash=4fa7fd5702c4ce432fb2902c6abe07cc55565e87f6375b96ece63a10999712e6 → icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244}/node_modules/icebird/src/write/manifest-list.mjs +0 -0
- package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.22_patch_hash=4fa7fd5702c4ce432fb2902c6abe07cc55565e87f6375b96ece63a10999712e6 → icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244}/node_modules/icebird/src/write/parquet.mjs +0 -0
- package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.22_patch_hash=4fa7fd5702c4ce432fb2902c6abe07cc55565e87f6375b96ece63a10999712e6 → icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244}/node_modules/icebird/src/write/partition.mjs +0 -0
- package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.22_patch_hash=4fa7fd5702c4ce432fb2902c6abe07cc55565e87f6375b96ece63a10999712e6 → icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244}/node_modules/icebird/src/write/serde.mjs +0 -0
- package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.22_patch_hash=4fa7fd5702c4ce432fb2902c6abe07cc55565e87f6375b96ece63a10999712e6 → icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244}/node_modules/icebird/src/write/snapshot.mjs +0 -0
- package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.22_patch_hash=4fa7fd5702c4ce432fb2902c6abe07cc55565e87f6375b96ece63a10999712e6 → icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244}/node_modules/icebird/src/write/sort.mjs +0 -0
- package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.22_patch_hash=4fa7fd5702c4ce432fb2902c6abe07cc55565e87f6375b96ece63a10999712e6 → icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244}/node_modules/icebird/src/write/stage-deletion-vector.mjs +0 -0
- package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.22_patch_hash=4fa7fd5702c4ce432fb2902c6abe07cc55565e87f6375b96ece63a10999712e6 → icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244}/node_modules/icebird/src/write/stage-position-delete.mjs +0 -0
- package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.22_patch_hash=4fa7fd5702c4ce432fb2902c6abe07cc55565e87f6375b96ece63a10999712e6 → icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244}/node_modules/icebird/src/write/stats.mjs +0 -0
- package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.22_patch_hash=4fa7fd5702c4ce432fb2902c6abe07cc55565e87f6375b96ece63a10999712e6 → icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244}/node_modules/icebird/src/write/transform.mjs +0 -0
- package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.22_patch_hash=4fa7fd5702c4ce432fb2902c6abe07cc55565e87f6375b96ece63a10999712e6 → icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244}/node_modules/icebird/types/catalog/file.d.mts +0 -0
- package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.22_patch_hash=4fa7fd5702c4ce432fb2902c6abe07cc55565e87f6375b96ece63a10999712e6 → icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244}/node_modules/icebird/types/catalog/rest.d.mts +0 -0
- package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.22_patch_hash=4fa7fd5702c4ce432fb2902c6abe07cc55565e87f6375b96ece63a10999712e6/node_modules/icebird/types/metadata.d.mts → icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244/node_modules/icebird/types/create.d.mts} +0 -0
- package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.22_patch_hash=4fa7fd5702c4ce432fb2902c6abe07cc55565e87f6375b96ece63a10999712e6 → icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244}/node_modules/icebird/types/manifest.d.mts +0 -0
- package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.22_patch_hash=4fa7fd5702c4ce432fb2902c6abe07cc55565e87f6375b96ece63a10999712e6 → icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244}/node_modules/icebird/types/s3.d.mts +0 -0
- package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.22_patch_hash=4fa7fd5702c4ce432fb2902c6abe07cc55565e87f6375b96ece63a10999712e6 → icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244}/node_modules/icebird/types/write/write.d.mts +0 -0
- package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/ast.d.mts +0 -0
- package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3/node_modules/squirreling/src/backend/dataSource.mjs → squirreling@0.16.2/node_modules/squirreling/src/backend/batch.mjs} +0 -0
- package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3/node_modules/squirreling/src/execute/scanColumn.mjs → squirreling@0.16.2/node_modules/squirreling/src/backend/dataSource.mjs} +0 -0
- package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/execute/accumulator.mjs +0 -0
- package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/execute/join.mjs +1 -1
- package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3/node_modules/squirreling/src/execute/utils.mjs → squirreling@0.16.2/node_modules/squirreling/src/execute/scanColumn.mjs} +0 -0
- package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/execute/sort.mjs +0 -0
- package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/execute/window.mjs +1 -1
- /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/execute/yield.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/expression/alias.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/expression/date.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/expression/math.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/expression/regexp.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/expression/strings.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/index.d.mts +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/parse/expression.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/parse/extractTables.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/parse/functions.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/parse/joins.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/parse/parse.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/parse/primary.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/parse/state.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/parse/tokenize.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/parse/types.d.mts +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/plan/plan.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/plan/types.d.mts +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/spatial/bbox.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/spatial/equality.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/spatial/operations.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/spatial/pointRelations.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/spatial/primitives.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/spatial/segments.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/spatial/spatial.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/spatial/wkt.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/types.d.mts +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/validation/aggregates.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/validation/executionErrors.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/validation/functions.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/validation/keywords.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/validation/parseErrors.mjs +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { snappyUncompress } from "../_virtual/node_modules/.pnpm/hyparquet@1.
|
|
1
|
+
import { snappyUncompress } from "../_virtual/node_modules/.pnpm/hyparquet@1.29.2/node_modules/hyparquet/src/snappy.mjs";
|
|
2
2
|
function decode(input, outputLength) {
|
|
3
3
|
const output = new Uint8Array(outputLength);
|
|
4
4
|
snappyUncompress(input, output);
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gscdump/lakehouse",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "3.
|
|
4
|
+
"version": "3.3.0",
|
|
5
5
|
"description": "Dataset-agnostic Iceberg lakehouse layer + dataset registry for R2 Data Catalog producers (ADR-0021).",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "Harlan Wilton",
|
|
@@ -71,11 +71,11 @@
|
|
|
71
71
|
"node": ">=22"
|
|
72
72
|
},
|
|
73
73
|
"devDependencies": {
|
|
74
|
-
"@types/node": "^26.
|
|
75
|
-
"hyparquet": "^1.
|
|
76
|
-
"icebird": "^0.8.
|
|
74
|
+
"@types/node": "^26.4.0",
|
|
75
|
+
"hyparquet": "^1.29.2",
|
|
76
|
+
"icebird": "^0.8.26",
|
|
77
77
|
"unstorage": "^1.17.5",
|
|
78
|
-
"vitest": "^4.1.
|
|
78
|
+
"vitest": "^4.1.11"
|
|
79
79
|
},
|
|
80
80
|
"scripts": {
|
|
81
81
|
"dev": "obuild --stub",
|
package/dist/_virtual/node_modules/.pnpm/hyparquet@1.28.2/node_modules/hyparquet/src/read.mjs
DELETED
|
@@ -1,128 +0,0 @@
|
|
|
1
|
-
import { parquetMetadataAsync, parquetSchema } from "./metadata.mjs";
|
|
2
|
-
import { concat } from "./utils.mjs";
|
|
3
|
-
import { columnsNeededForFilter, matchFilter } from "./filter.mjs";
|
|
4
|
-
import { parquetPlan, prefetchAsyncBuffer, prefetchBloomFilters, prefetchPageIndexes } from "./plan.mjs";
|
|
5
|
-
import { assembleAsync, asyncGroupToRows, readRowGroup } from "./rowgroup.mjs";
|
|
6
|
-
async function parquetRead(options) {
|
|
7
|
-
options.metadata ??= await parquetMetadataAsync(options.file, options);
|
|
8
|
-
const { rowStart = 0, rowEnd, columns, onChunk, onComplete, rowFormat, filter, filterStrict = true } = options;
|
|
9
|
-
if (filter && rowFormat !== "object") throw new Error("parquet filter requires rowFormat: \"object\"");
|
|
10
|
-
const filterColumns = columnsNeededForFilter(filter);
|
|
11
|
-
if (filterColumns.length) {
|
|
12
|
-
const schemaColumns = parquetSchema(options.metadata).children.map((c) => c.element.name);
|
|
13
|
-
const missingColumns = filterColumns.filter((c) => !schemaColumns.includes(c));
|
|
14
|
-
if (missingColumns.length) throw new Error(`parquet filter columns not found: ${missingColumns.join(", ")}`);
|
|
15
|
-
}
|
|
16
|
-
let readColumns = columns;
|
|
17
|
-
let requiresProjection = false;
|
|
18
|
-
if (columns && filter) {
|
|
19
|
-
const missingFilterColumns = filterColumns.filter((c) => !columns.includes(c));
|
|
20
|
-
if (missingFilterColumns.length) {
|
|
21
|
-
readColumns = [...columns, ...missingFilterColumns];
|
|
22
|
-
requiresProjection = true;
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
let readOptions = readColumns !== columns ? {
|
|
26
|
-
...options,
|
|
27
|
-
columns: readColumns
|
|
28
|
-
} : options;
|
|
29
|
-
readOptions = await withBloomFilters(readOptions);
|
|
30
|
-
readOptions = await withPageIndexes(readOptions);
|
|
31
|
-
const asyncGroups = parquetReadAsync(readOptions);
|
|
32
|
-
if (!onComplete && !onChunk) {
|
|
33
|
-
await awaitAllColumns(asyncGroups);
|
|
34
|
-
return;
|
|
35
|
-
}
|
|
36
|
-
const schemaTree = parquetSchema(options.metadata);
|
|
37
|
-
const assembled = asyncGroups.map((arg) => assembleAsync(arg, schemaTree, options.parsers));
|
|
38
|
-
if (onChunk) for (const asyncGroup of assembled) for (const asyncColumn of asyncGroup.asyncColumns) asyncColumn.data.then(({ data, skipped }) => {
|
|
39
|
-
let rowStart = asyncGroup.groupStart + skipped;
|
|
40
|
-
for (const columnData of data) {
|
|
41
|
-
onChunk({
|
|
42
|
-
columnName: asyncColumn.pathInSchema[0],
|
|
43
|
-
columnData,
|
|
44
|
-
rowStart,
|
|
45
|
-
rowEnd: rowStart + columnData.length
|
|
46
|
-
});
|
|
47
|
-
rowStart += columnData.length;
|
|
48
|
-
}
|
|
49
|
-
}, () => {});
|
|
50
|
-
if (onComplete) {
|
|
51
|
-
await awaitAllColumns(assembled);
|
|
52
|
-
const rows = [];
|
|
53
|
-
for (const asyncGroup of assembled) {
|
|
54
|
-
const selectStart = asyncGroup.selectStart ?? Math.max(rowStart - asyncGroup.groupStart, 0);
|
|
55
|
-
const selectEnd = asyncGroup.selectEnd ?? Math.min((rowEnd ?? Infinity) - asyncGroup.groupStart, asyncGroup.groupRows);
|
|
56
|
-
const groupData = rowFormat === "object" ? await asyncGroupToRows(asyncGroup, selectStart, selectEnd, readColumns, "object") : await asyncGroupToRows(asyncGroup, selectStart, selectEnd, columns, "array");
|
|
57
|
-
if (filter) {
|
|
58
|
-
for (const row of groupData) if (matchFilter(row, filter, filterStrict)) {
|
|
59
|
-
if (requiresProjection && columns) {
|
|
60
|
-
for (const col of filterColumns) if (!columns.includes(col)) delete row[col];
|
|
61
|
-
}
|
|
62
|
-
rows.push(row);
|
|
63
|
-
}
|
|
64
|
-
} else concat(rows, groupData);
|
|
65
|
-
}
|
|
66
|
-
onComplete(rows);
|
|
67
|
-
} else await awaitAllColumns(assembled);
|
|
68
|
-
}
|
|
69
|
-
async function awaitAllColumns(asyncGroups) {
|
|
70
|
-
const all = asyncGroups.flatMap((g) => g.asyncColumns.map((c) => c.data));
|
|
71
|
-
const failed = (await Promise.allSettled(all)).find((r) => r.status === "rejected");
|
|
72
|
-
if (failed) throw failed.reason;
|
|
73
|
-
}
|
|
74
|
-
function parquetReadAsync(options) {
|
|
75
|
-
if (!options.metadata) throw new Error("parquet requires metadata");
|
|
76
|
-
const plan = parquetPlan(options);
|
|
77
|
-
options.file = prefetchAsyncBuffer(options.file, plan);
|
|
78
|
-
return plan.groups.map((groupPlan) => readRowGroup(options, plan, groupPlan));
|
|
79
|
-
}
|
|
80
|
-
async function withBloomFilters(options) {
|
|
81
|
-
if (!options.useBloomFilters) return options;
|
|
82
|
-
if (!options.filter || !options.metadata) return options;
|
|
83
|
-
const schemaTree = parquetSchema(options.metadata);
|
|
84
|
-
const schemaElements = {};
|
|
85
|
-
for (const child of schemaTree.children) schemaElements[child.element.name] = child.element;
|
|
86
|
-
const bloomFiltersByGroup = await prefetchBloomFilters({
|
|
87
|
-
file: options.file,
|
|
88
|
-
metadata: options.metadata,
|
|
89
|
-
filter: options.filter,
|
|
90
|
-
filterStrict: options.filterStrict
|
|
91
|
-
});
|
|
92
|
-
return {
|
|
93
|
-
...options,
|
|
94
|
-
bloomFiltersByGroup,
|
|
95
|
-
schemaElements
|
|
96
|
-
};
|
|
97
|
-
}
|
|
98
|
-
async function withPageIndexes(options) {
|
|
99
|
-
if (!options.usePageIndex) return options;
|
|
100
|
-
if (!options.filter || !options.metadata) return options;
|
|
101
|
-
const { pageRangesByGroup, pageLocationsByGroup } = await prefetchPageIndexes({
|
|
102
|
-
file: options.file,
|
|
103
|
-
metadata: options.metadata,
|
|
104
|
-
filter: options.filter,
|
|
105
|
-
filterStrict: options.filterStrict,
|
|
106
|
-
rowStart: options.rowStart,
|
|
107
|
-
rowEnd: options.rowEnd,
|
|
108
|
-
columns: options.columns,
|
|
109
|
-
bloomFiltersByGroup: options.bloomFiltersByGroup,
|
|
110
|
-
schemaElements: options.schemaElements,
|
|
111
|
-
parsers: options.parsers
|
|
112
|
-
});
|
|
113
|
-
return {
|
|
114
|
-
...options,
|
|
115
|
-
pageRangesByGroup,
|
|
116
|
-
pageLocationsByGroup
|
|
117
|
-
};
|
|
118
|
-
}
|
|
119
|
-
function parquetReadObjects(options) {
|
|
120
|
-
return new Promise((onComplete, reject) => {
|
|
121
|
-
parquetRead({
|
|
122
|
-
...options,
|
|
123
|
-
rowFormat: "object",
|
|
124
|
-
onComplete
|
|
125
|
-
}).catch(reject);
|
|
126
|
-
});
|
|
127
|
-
}
|
|
128
|
-
export { parquetRead, parquetReadAsync, parquetReadObjects };
|
|
@@ -1,174 +0,0 @@
|
|
|
1
|
-
import { uuid4 } from "../utils.mjs";
|
|
2
|
-
import { groupByPartition } from "./partition.mjs";
|
|
3
|
-
import { computeColumnStats } from "./stats.mjs";
|
|
4
|
-
import { buildPartitionSummaries, buildSnapshotUpdate, currentSnapshot, loadPriorManifests } from "./snapshot.mjs";
|
|
5
|
-
import { writeDataManifest } from "./manifest.mjs";
|
|
6
|
-
import { writeParquet } from "./parquet.mjs";
|
|
7
|
-
import { buildSortComparator } from "./sort.mjs";
|
|
8
|
-
import { checkWriteFormat, newSnapshotId, resolveParquetCodec } from "./stage.mjs";
|
|
9
|
-
import { icebergRead } from "../read.mjs";
|
|
10
|
-
async function icebergStageRewrite({ tableUrl, metadata, resolver, sortOrderId, partitionSpecId, targetFileRows }) {
|
|
11
|
-
if (!tableUrl) throw new Error("tableUrl is required");
|
|
12
|
-
if (!resolver?.writer) throw new Error("resolver.writer is required");
|
|
13
|
-
const writerFn = resolver.writer;
|
|
14
|
-
if (metadata["format-version"] !== 2 && metadata["format-version"] !== 3) throw new Error(`unsupported format-version: ${metadata["format-version"]}`);
|
|
15
|
-
const formatVersion = metadata["format-version"];
|
|
16
|
-
if (targetFileRows !== void 0 && !(targetFileRows > 0)) throw new Error("targetFileRows must be a positive number");
|
|
17
|
-
if (!currentSnapshot(metadata)) throw new Error("no current snapshot to rewrite");
|
|
18
|
-
const schema = metadata.schemas.find((s) => s["schema-id"] === metadata["current-schema-id"]);
|
|
19
|
-
if (!schema) throw new Error("current schema not found in metadata");
|
|
20
|
-
const specId = partitionSpecId ?? metadata["default-spec-id"];
|
|
21
|
-
const partitionSpec = metadata["partition-specs"].find((s) => s["spec-id"] === specId);
|
|
22
|
-
if (!partitionSpec) throw new Error(`partition spec ${specId} not found in metadata`);
|
|
23
|
-
const orderId = sortOrderId ?? metadata["default-sort-order-id"] ?? 0;
|
|
24
|
-
const sortOrder = (metadata["sort-orders"] ?? []).find((o) => o["order-id"] === orderId);
|
|
25
|
-
if (sortOrderId !== void 0 && !sortOrder) throw new Error(`sort order ${sortOrderId} not found in metadata`);
|
|
26
|
-
const comparator = buildSortComparator(sortOrder, schema);
|
|
27
|
-
const appliedSortOrderId = comparator ? orderId : 0;
|
|
28
|
-
checkWriteFormat(metadata.properties?.["write.format.default"]);
|
|
29
|
-
const codec = resolveParquetCodec(metadata.properties?.["write.parquet.compression-codec"]);
|
|
30
|
-
const liveRows = await icebergRead({
|
|
31
|
-
tableUrl,
|
|
32
|
-
metadata,
|
|
33
|
-
resolver
|
|
34
|
-
});
|
|
35
|
-
const sortedRows = comparator ? [...liveRows].sort(comparator) : liveRows;
|
|
36
|
-
const rowLineage = formatVersion >= 3;
|
|
37
|
-
const allLineage = rowLineage && liveRows.length > 0 && liveRows.every((r) => r._row_id != null && r._last_updated_sequence_number != null);
|
|
38
|
-
const minRowId = allLineage ? liveRows.reduce((min, r) => r._row_id < min ? r._row_id : min, liveRows[0]._row_id) : void 0;
|
|
39
|
-
const groups = partitionSpec.fields.length ? groupByPartition(sortedRows, schema, partitionSpec) : [{
|
|
40
|
-
partition: {},
|
|
41
|
-
records: sortedRows
|
|
42
|
-
}];
|
|
43
|
-
const snapshotId = newSnapshotId(metadata);
|
|
44
|
-
const manifestUuid = uuid4();
|
|
45
|
-
const writeSchema = rowLineage ? {
|
|
46
|
-
...schema,
|
|
47
|
-
fields: [
|
|
48
|
-
...schema.fields,
|
|
49
|
-
{
|
|
50
|
-
id: 2147483540,
|
|
51
|
-
name: "_row_id",
|
|
52
|
-
required: false,
|
|
53
|
-
type: "long"
|
|
54
|
-
},
|
|
55
|
-
{
|
|
56
|
-
id: 2147483539,
|
|
57
|
-
name: "_last_updated_sequence_number",
|
|
58
|
-
required: false,
|
|
59
|
-
type: "long"
|
|
60
|
-
}
|
|
61
|
-
]
|
|
62
|
-
} : schema;
|
|
63
|
-
const writtenDataFiles = [];
|
|
64
|
-
for (const group of groups) {
|
|
65
|
-
const chunks = targetFileRows ? chunkRecords(group.records, targetFileRows) : [group.records];
|
|
66
|
-
for (const chunk of chunks) {
|
|
67
|
-
if (chunk.length === 0) continue;
|
|
68
|
-
const dataPath = `${tableUrl}/data/${uuid4()}.parquet`;
|
|
69
|
-
const dataWriter = writerFn(dataPath);
|
|
70
|
-
await writeParquet({
|
|
71
|
-
writer: dataWriter,
|
|
72
|
-
schema: writeSchema,
|
|
73
|
-
records: chunk,
|
|
74
|
-
codec
|
|
75
|
-
});
|
|
76
|
-
const stats = computeColumnStats(chunk, schema);
|
|
77
|
-
writtenDataFiles.push({
|
|
78
|
-
partition: group.partition,
|
|
79
|
-
dataFile: {
|
|
80
|
-
content: 0,
|
|
81
|
-
file_path: dataPath,
|
|
82
|
-
file_format: "parquet",
|
|
83
|
-
partition: group.partition,
|
|
84
|
-
record_count: BigInt(chunk.length),
|
|
85
|
-
file_size_in_bytes: BigInt(dataWriter.offset),
|
|
86
|
-
value_counts: stats.value_counts,
|
|
87
|
-
null_value_counts: stats.null_value_counts,
|
|
88
|
-
nan_value_counts: stats.nan_value_counts,
|
|
89
|
-
lower_bounds: stats.lower_bounds,
|
|
90
|
-
upper_bounds: stats.upper_bounds,
|
|
91
|
-
sort_order_id: appliedSortOrderId
|
|
92
|
-
},
|
|
93
|
-
path: dataPath
|
|
94
|
-
});
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
const manifestPath = `${tableUrl}/metadata/${manifestUuid}-m0.avro`;
|
|
98
|
-
const manifestWriter = writerFn(manifestPath);
|
|
99
|
-
await writeDataManifest({
|
|
100
|
-
writer: manifestWriter,
|
|
101
|
-
schema,
|
|
102
|
-
partitionSpec,
|
|
103
|
-
snapshotId,
|
|
104
|
-
dataFiles: writtenDataFiles.map((f) => f.dataFile),
|
|
105
|
-
formatVersion
|
|
106
|
-
});
|
|
107
|
-
const manifestLength = BigInt(manifestWriter.offset);
|
|
108
|
-
const sequenceNumber = BigInt(metadata["last-sequence-number"] ?? 0) + 1n;
|
|
109
|
-
const timestampMs = Date.now();
|
|
110
|
-
const addedRowCount = writtenDataFiles.reduce((sum, f) => sum + f.dataFile.record_count, 0n);
|
|
111
|
-
const addedFilesSize = writtenDataFiles.reduce((sum, f) => sum + f.dataFile.file_size_in_bytes, 0n);
|
|
112
|
-
const partitions = buildPartitionSummaries(writtenDataFiles.map((f) => f.dataFile.partition), schema, partitionSpec);
|
|
113
|
-
const newManifest = {
|
|
114
|
-
manifest_path: manifestPath,
|
|
115
|
-
manifest_length: manifestLength,
|
|
116
|
-
partition_spec_id: partitionSpec["spec-id"],
|
|
117
|
-
content: 0,
|
|
118
|
-
sequence_number: sequenceNumber,
|
|
119
|
-
min_sequence_number: sequenceNumber,
|
|
120
|
-
added_snapshot_id: snapshotId,
|
|
121
|
-
added_files_count: writtenDataFiles.length,
|
|
122
|
-
existing_files_count: 0,
|
|
123
|
-
deleted_files_count: 0,
|
|
124
|
-
added_rows_count: addedRowCount,
|
|
125
|
-
existing_rows_count: 0n,
|
|
126
|
-
deleted_rows_count: 0n,
|
|
127
|
-
partitions
|
|
128
|
-
};
|
|
129
|
-
if (allLineage) newManifest.first_row_id = minRowId;
|
|
130
|
-
const priorManifests = await loadPriorManifests(metadata, resolver);
|
|
131
|
-
const skipPriorManifestPaths = new Set(priorManifests.map((m) => m.manifest_path));
|
|
132
|
-
let deletedDataFiles = 0;
|
|
133
|
-
let deletedRecords = 0n;
|
|
134
|
-
for (const m of priorManifests) {
|
|
135
|
-
if (m.content !== 0) continue;
|
|
136
|
-
deletedDataFiles += (m.added_files_count ?? 0) + (m.existing_files_count ?? 0);
|
|
137
|
-
deletedRecords += BigInt(m.added_rows_count ?? 0) + BigInt(m.existing_rows_count ?? 0);
|
|
138
|
-
}
|
|
139
|
-
const summary = {
|
|
140
|
-
operation: "replace",
|
|
141
|
-
"added-data-files": String(writtenDataFiles.length),
|
|
142
|
-
"added-records": String(addedRowCount),
|
|
143
|
-
"added-files-size": String(addedFilesSize),
|
|
144
|
-
"deleted-data-files": String(deletedDataFiles),
|
|
145
|
-
"deleted-records": String(deletedRecords),
|
|
146
|
-
"total-records": String(addedRowCount),
|
|
147
|
-
"total-files-size": String(addedFilesSize),
|
|
148
|
-
"total-data-files": String(writtenDataFiles.length),
|
|
149
|
-
"total-delete-files": "0",
|
|
150
|
-
"total-position-deletes": "0",
|
|
151
|
-
"total-equality-deletes": "0"
|
|
152
|
-
};
|
|
153
|
-
return await buildSnapshotUpdate({
|
|
154
|
-
tableUrl,
|
|
155
|
-
metadata,
|
|
156
|
-
resolver,
|
|
157
|
-
snapshotId,
|
|
158
|
-
sequenceNumber,
|
|
159
|
-
manifestUuid,
|
|
160
|
-
timestampMs,
|
|
161
|
-
formatVersion,
|
|
162
|
-
newManifests: [newManifest],
|
|
163
|
-
summary,
|
|
164
|
-
writtenFiles: [...writtenDataFiles.map((f) => f.path), manifestPath],
|
|
165
|
-
priorManifests,
|
|
166
|
-
skipPriorManifestPaths
|
|
167
|
-
});
|
|
168
|
-
}
|
|
169
|
-
function chunkRecords(arr, size) {
|
|
170
|
-
const out = [];
|
|
171
|
-
for (let i = 0; i < arr.length; i += size) out.push(arr.slice(i, i + size));
|
|
172
|
-
return out;
|
|
173
|
-
}
|
|
174
|
-
export { icebergStageRewrite };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|