@gscdump/lakehouse 3.4.0 → 3.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/THIRD-PARTY-LICENSES.md +2 -2
- package/dist/_virtual/node_modules/.pnpm/{hyparquet-writer@0.16.6_patch_hash=549d1fd1fb9614da77df9123bf6978a8fccfe1d9bb8882863ce6159f666e821a → hyparquet-writer@0.16.9_patch_hash=d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f}/node_modules/hyparquet-writer/src/bloom.mjs +1 -1
- package/dist/_virtual/node_modules/.pnpm/{hyparquet-writer@0.16.6_patch_hash=549d1fd1fb9614da77df9123bf6978a8fccfe1d9bb8882863ce6159f666e821a → hyparquet-writer@0.16.9_patch_hash=d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f}/node_modules/hyparquet-writer/src/bytewriter.mjs +7 -7
- package/dist/_virtual/node_modules/.pnpm/{hyparquet-writer@0.16.6_patch_hash=549d1fd1fb9614da77df9123bf6978a8fccfe1d9bb8882863ce6159f666e821a → hyparquet-writer@0.16.9_patch_hash=d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f}/node_modules/hyparquet-writer/src/column.mjs +6 -5
- package/dist/_virtual/node_modules/.pnpm/{hyparquet-writer@0.16.6_patch_hash=549d1fd1fb9614da77df9123bf6978a8fccfe1d9bb8882863ce6159f666e821a → hyparquet-writer@0.16.9_patch_hash=d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f}/node_modules/hyparquet-writer/src/datapage.mjs +1 -1
- package/dist/_virtual/node_modules/.pnpm/{hyparquet-writer@0.16.6_patch_hash=549d1fd1fb9614da77df9123bf6978a8fccfe1d9bb8882863ce6159f666e821a → hyparquet-writer@0.16.9_patch_hash=d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f}/node_modules/hyparquet-writer/src/dremel.mjs +1 -1
- package/dist/_virtual/node_modules/.pnpm/{hyparquet-writer@0.16.6_patch_hash=549d1fd1fb9614da77df9123bf6978a8fccfe1d9bb8882863ce6159f666e821a → hyparquet-writer@0.16.9_patch_hash=d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f}/node_modules/hyparquet-writer/src/indexes.mjs +1 -1
- package/dist/_virtual/node_modules/.pnpm/{hyparquet-writer@0.16.6_patch_hash=549d1fd1fb9614da77df9123bf6978a8fccfe1d9bb8882863ce6159f666e821a → hyparquet-writer@0.16.9_patch_hash=d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f}/node_modules/hyparquet-writer/src/metadata.mjs +2 -2
- package/dist/_virtual/node_modules/.pnpm/{hyparquet-writer@0.16.6_patch_hash=549d1fd1fb9614da77df9123bf6978a8fccfe1d9bb8882863ce6159f666e821a → hyparquet-writer@0.16.9_patch_hash=d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f}/node_modules/hyparquet-writer/src/parquet-writer.mjs +1 -1
- package/dist/_virtual/node_modules/.pnpm/{hyparquet-writer@0.16.6_patch_hash=549d1fd1fb9614da77df9123bf6978a8fccfe1d9bb8882863ce6159f666e821a → hyparquet-writer@0.16.9_patch_hash=d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f}/node_modules/hyparquet-writer/src/snappy.mjs +21 -27
- package/dist/_virtual/node_modules/.pnpm/{hyparquet-writer@0.16.6_patch_hash=549d1fd1fb9614da77df9123bf6978a8fccfe1d9bb8882863ce6159f666e821a → hyparquet-writer@0.16.9_patch_hash=d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f}/node_modules/hyparquet-writer/src/types.d.mts +1 -1
- package/dist/_virtual/node_modules/.pnpm/{hyparquet-writer@0.16.6_patch_hash=549d1fd1fb9614da77df9123bf6978a8fccfe1d9bb8882863ce6159f666e821a → hyparquet-writer@0.16.9_patch_hash=d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f}/node_modules/hyparquet-writer/src/unconvert.mjs +9 -7
- package/dist/_virtual/node_modules/.pnpm/{hyparquet-writer@0.16.6_patch_hash=549d1fd1fb9614da77df9123bf6978a8fccfe1d9bb8882863ce6159f666e821a → hyparquet-writer@0.16.9_patch_hash=d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f}/node_modules/hyparquet-writer/src/variant.mjs +29 -22
- package/dist/_virtual/node_modules/.pnpm/{hyparquet-writer@0.16.6_patch_hash=549d1fd1fb9614da77df9123bf6978a8fccfe1d9bb8882863ce6159f666e821a → hyparquet-writer@0.16.9_patch_hash=d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f}/node_modules/hyparquet-writer/types/index.d.mts +1 -1
- package/dist/_virtual/node_modules/.pnpm/hyparquet-writer@0.16.9_patch_hash=d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f/node_modules/hyparquet-writer/types/parquet-writer.d.mts +2 -0
- package/dist/_virtual/node_modules/.pnpm/hyparquet-writer@0.16.9_patch_hash=d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f/node_modules/hyparquet-writer/types/schema.d.mts +2 -0
- package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.29.1 → hyparquet@1.29.2}/node_modules/hyparquet/src/index.mjs +3 -3
- package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.29.1 → hyparquet@1.29.2}/node_modules/hyparquet/src/node.mjs +3 -3
- package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.29.1 → hyparquet@1.29.2}/node_modules/hyparquet/src/utils.mjs +18 -1
- package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244 → icebird@0.8.27_patch_hash=651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/src/avro/avro.read.mjs +1 -1
- package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244 → icebird@0.8.27_patch_hash=651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/src/avro/avro.write.mjs +2 -2
- package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244 → icebird@0.8.27_patch_hash=651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/src/delete.mjs +13 -1
- package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244 → icebird@0.8.27_patch_hash=651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/src/fetch.mjs +8 -11
- package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244 → icebird@0.8.27_patch_hash=651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/src/index.mjs +1 -1
- package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244 → icebird@0.8.27_patch_hash=651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/src/manifest.mjs +59 -13
- package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244 → icebird@0.8.27_patch_hash=651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/src/read.mjs +144 -50
- package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244 → icebird@0.8.27_patch_hash=651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/src/s3.mjs +2 -2
- package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244 → icebird@0.8.27_patch_hash=651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/src/sql/icebergDataSource.mjs +1 -1
- package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244 → icebird@0.8.27_patch_hash=651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/src/sql/icebergQuery.mjs +1 -1
- package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244 → icebird@0.8.27_patch_hash=651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/src/types.d.mts +5 -5
- package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244 → icebird@0.8.27_patch_hash=651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/src/write/commit.mjs +66 -14
- package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244 → icebird@0.8.27_patch_hash=651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/src/write/parquet.mjs +2 -2
- package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244 → icebird@0.8.27_patch_hash=651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/src/write/rewrite.mjs +1 -1
- package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244 → icebird@0.8.27_patch_hash=651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/src/write/snapshot.mjs +4 -2
- package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244 → icebird@0.8.27_patch_hash=651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/src/write/stage-deletion-vector.mjs +32 -16
- package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244 → icebird@0.8.27_patch_hash=651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/types/fetch.d.mts +1 -1
- package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244 → icebird@0.8.27_patch_hash=651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/types/index.d.mts +1 -1
- package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244 → icebird@0.8.27_patch_hash=651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/types/manifest.d.mts +2 -3
- package/dist/_virtual/node_modules/.pnpm/icebird@0.8.27_patch_hash=651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7/node_modules/icebird/types/read.d.mts +3 -0
- package/dist/_virtual/node_modules/.pnpm/icebird@0.8.27_patch_hash=651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7/node_modules/icebird/types/sql/icebergDataSource.d.mts +2 -0
- package/dist/_virtual/node_modules/.pnpm/icebird@0.8.27_patch_hash=651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7/node_modules/icebird/types/sql/icebergQuery.d.mts +2 -0
- package/dist/_virtual/node_modules/.pnpm/{squirreling@0.16.2 → squirreling@0.16.3}/node_modules/squirreling/src/execute/aggregates.mjs +1 -0
- package/dist/_virtual/node_modules/.pnpm/squirreling@0.16.3/node_modules/squirreling/src/execute/fold.mjs +2 -0
- package/dist/_virtual/node_modules/.pnpm/{squirreling@0.16.2 → squirreling@0.16.3}/node_modules/squirreling/src/execute/streamingAggregate.mjs +1 -0
- package/dist/_virtual/node_modules/.pnpm/{squirreling@0.16.2 → squirreling@0.16.3}/node_modules/squirreling/src/execute/window.mjs +1 -0
- package/dist/_virtual/node_modules/.pnpm/{squirreling@0.16.2 → squirreling@0.16.3}/node_modules/squirreling/src/expression/regexp.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 +12 -8
- package/dist/dataset-runtime.mjs +1 -1
- package/dist/manifest-cache-resolver.mjs +50 -0
- package/dist/orphan-sweep.mjs +3 -3
- package/dist/unsafe-raw.d.mts +5 -5
- package/dist/unsafe-raw.mjs +5 -5
- package/package.json +2 -2
- package/dist/_virtual/node_modules/.pnpm/hyparquet-writer@0.16.6_patch_hash=549d1fd1fb9614da77df9123bf6978a8fccfe1d9bb8882863ce6159f666e821a/node_modules/hyparquet-writer/types/parquet-writer.d.mts +0 -2
- package/dist/_virtual/node_modules/.pnpm/hyparquet-writer@0.16.6_patch_hash=549d1fd1fb9614da77df9123bf6978a8fccfe1d9bb8882863ce6159f666e821a/node_modules/hyparquet-writer/types/schema.d.mts +0 -2
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.28.1/node_modules/hyparquet/src/assemble.mjs +0 -3
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.28.1/node_modules/hyparquet/src/bloom.mjs +0 -69
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.28.1/node_modules/hyparquet/src/column.mjs +0 -8
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.28.1/node_modules/hyparquet/src/convert.mjs +0 -3
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.28.1/node_modules/hyparquet/src/datapage.mjs +0 -6
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.28.1/node_modules/hyparquet/src/delta.mjs +0 -2
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.28.1/node_modules/hyparquet/src/encoding.mjs +0 -2
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.28.1/node_modules/hyparquet/src/filter.mjs +0 -4
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.28.1/node_modules/hyparquet/src/geoparquet.mjs +0 -1
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.28.1/node_modules/hyparquet/src/index.mjs +0 -7
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.28.1/node_modules/hyparquet/src/indexes.mjs +0 -5
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.28.1/node_modules/hyparquet/src/metadata.mjs +0 -7
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.28.1/node_modules/hyparquet/src/node.mjs +0 -3
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.28.1/node_modules/hyparquet/src/plain.mjs +0 -1
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.28.1/node_modules/hyparquet/src/plan.mjs +0 -6
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.28.1/node_modules/hyparquet/src/read.mjs +0 -6
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.28.1/node_modules/hyparquet/src/rowgroup.mjs +0 -7
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.28.1/node_modules/hyparquet/src/schema.mjs +0 -54
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.28.1/node_modules/hyparquet/src/snappy.mjs +0 -1
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.28.1/node_modules/hyparquet/src/thrift.mjs +0 -1
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.28.1/node_modules/hyparquet/src/types.d.mts +0 -1
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.28.1/node_modules/hyparquet/src/utils.mjs +0 -19
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.28.1/node_modules/hyparquet/src/variant.mjs +0 -3
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.28.1/node_modules/hyparquet/src/wkb.mjs +0 -1
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.28.1/node_modules/hyparquet/types/index.d.mts +0 -7
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.28.1/node_modules/hyparquet/types/node.d.mts +0 -2
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.29.1/node_modules/hyparquet/src/constants.mjs +0 -80
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.29.1/node_modules/hyparquet/src/query.mjs +0 -3
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.29.1/node_modules/hyparquet/src/snappy.mjs +0 -68
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.29.1/node_modules/hyparquet/src/xxhash.mjs +0 -68
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.29.1/node_modules/hyparquet/types/indexes.d.mts +0 -1
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.29.1/node_modules/hyparquet/types/query.d.mts +0 -1
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.29.1/node_modules/hyparquet/types/read.d.mts +0 -1
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.29.1/node_modules/hyparquet/types/snappy.d.mts +0 -1
- package/dist/_virtual/node_modules/.pnpm/hyparquet@1.29.1/node_modules/hyparquet/types/utils.d.mts +0 -1
- package/dist/_virtual/node_modules/.pnpm/icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244/node_modules/icebird/types/metadata.d.mts +0 -1
- package/dist/_virtual/node_modules/.pnpm/icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244/node_modules/icebird/types/read.d.mts +0 -3
- package/dist/_virtual/node_modules/.pnpm/icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244/node_modules/icebird/types/sql/icebergDataSource.d.mts +0 -2
- package/dist/_virtual/node_modules/.pnpm/icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244/node_modules/icebird/types/sql/icebergQuery.d.mts +0 -2
- /package/dist/_virtual/node_modules/.pnpm/{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_ → db0@0.3.4_drizzle-orm@1.0.0-rc.4_@cloudflare+workers-types@5.20260831.1_valibot@1.4.2_typescript@6.0.3__zod@4.5.4_}/node_modules/db0/dist/index.d.mts +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{hyparquet-writer@0.16.6_patch_hash=549d1fd1fb9614da77df9123bf6978a8fccfe1d9bb8882863ce6159f666e821a → hyparquet-writer@0.16.9_patch_hash=d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f}/node_modules/hyparquet-writer/src/delta.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{hyparquet-writer@0.16.6_patch_hash=549d1fd1fb9614da77df9123bf6978a8fccfe1d9bb8882863ce6159f666e821a → hyparquet-writer@0.16.9_patch_hash=d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f}/node_modules/hyparquet-writer/src/dictionary.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{hyparquet-writer@0.16.6_patch_hash=549d1fd1fb9614da77df9123bf6978a8fccfe1d9bb8882863ce6159f666e821a → hyparquet-writer@0.16.9_patch_hash=d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f}/node_modules/hyparquet-writer/src/encoding.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{hyparquet-writer@0.16.6_patch_hash=549d1fd1fb9614da77df9123bf6978a8fccfe1d9bb8882863ce6159f666e821a → hyparquet-writer@0.16.9_patch_hash=d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f}/node_modules/hyparquet-writer/src/geospatial.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{hyparquet-writer@0.16.6_patch_hash=549d1fd1fb9614da77df9123bf6978a8fccfe1d9bb8882863ce6159f666e821a → hyparquet-writer@0.16.9_patch_hash=d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f}/node_modules/hyparquet-writer/src/index.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{hyparquet-writer@0.16.6_patch_hash=549d1fd1fb9614da77df9123bf6978a8fccfe1d9bb8882863ce6159f666e821a → hyparquet-writer@0.16.9_patch_hash=d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f}/node_modules/hyparquet-writer/src/node.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{hyparquet-writer@0.16.6_patch_hash=549d1fd1fb9614da77df9123bf6978a8fccfe1d9bb8882863ce6159f666e821a → hyparquet-writer@0.16.9_patch_hash=d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f}/node_modules/hyparquet-writer/src/plain.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{hyparquet-writer@0.16.6_patch_hash=549d1fd1fb9614da77df9123bf6978a8fccfe1d9bb8882863ce6159f666e821a → hyparquet-writer@0.16.9_patch_hash=d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f}/node_modules/hyparquet-writer/src/schema.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{hyparquet-writer@0.16.6_patch_hash=549d1fd1fb9614da77df9123bf6978a8fccfe1d9bb8882863ce6159f666e821a → hyparquet-writer@0.16.9_patch_hash=d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f}/node_modules/hyparquet-writer/src/splitstream.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{hyparquet-writer@0.16.6_patch_hash=549d1fd1fb9614da77df9123bf6978a8fccfe1d9bb8882863ce6159f666e821a → hyparquet-writer@0.16.9_patch_hash=d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f}/node_modules/hyparquet-writer/src/thrift.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{hyparquet-writer@0.16.6_patch_hash=549d1fd1fb9614da77df9123bf6978a8fccfe1d9bb8882863ce6159f666e821a → hyparquet-writer@0.16.9_patch_hash=d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f}/node_modules/hyparquet-writer/src/wkb.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{hyparquet-writer@0.16.6_patch_hash=549d1fd1fb9614da77df9123bf6978a8fccfe1d9bb8882863ce6159f666e821a → hyparquet-writer@0.16.9_patch_hash=d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f}/node_modules/hyparquet-writer/src/write-rows.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{hyparquet-writer@0.16.6_patch_hash=549d1fd1fb9614da77df9123bf6978a8fccfe1d9bb8882863ce6159f666e821a → hyparquet-writer@0.16.9_patch_hash=d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f}/node_modules/hyparquet-writer/src/write.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{hyparquet-writer@0.16.6_patch_hash=549d1fd1fb9614da77df9123bf6978a8fccfe1d9bb8882863ce6159f666e821a → hyparquet-writer@0.16.9_patch_hash=d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f}/node_modules/hyparquet-writer/types/bytewriter.d.mts +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{hyparquet-writer@0.16.6_patch_hash=549d1fd1fb9614da77df9123bf6978a8fccfe1d9bb8882863ce6159f666e821a → hyparquet-writer@0.16.9_patch_hash=d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f}/node_modules/hyparquet-writer/types/node.d.mts +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{hyparquet-writer@0.16.6_patch_hash=549d1fd1fb9614da77df9123bf6978a8fccfe1d9bb8882863ce6159f666e821a → hyparquet-writer@0.16.9_patch_hash=d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f}/node_modules/hyparquet-writer/types/wkb.d.mts +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{hyparquet-writer@0.16.6_patch_hash=549d1fd1fb9614da77df9123bf6978a8fccfe1d9bb8882863ce6159f666e821a → hyparquet-writer@0.16.9_patch_hash=d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f}/node_modules/hyparquet-writer/types/write-rows.d.mts +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{hyparquet-writer@0.16.6_patch_hash=549d1fd1fb9614da77df9123bf6978a8fccfe1d9bb8882863ce6159f666e821a → hyparquet-writer@0.16.9_patch_hash=d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f}/node_modules/hyparquet-writer/types/write.d.mts +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.29.1 → hyparquet@1.29.2}/node_modules/hyparquet/src/assemble.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.29.1 → hyparquet@1.29.2}/node_modules/hyparquet/src/bloom.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.29.1 → hyparquet@1.29.2}/node_modules/hyparquet/src/column.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.28.1 → hyparquet@1.29.2}/node_modules/hyparquet/src/constants.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.29.1 → hyparquet@1.29.2}/node_modules/hyparquet/src/convert.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.29.1 → hyparquet@1.29.2}/node_modules/hyparquet/src/datapage.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.29.1 → hyparquet@1.29.2}/node_modules/hyparquet/src/delta.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.29.1 → hyparquet@1.29.2}/node_modules/hyparquet/src/encoding.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.29.1 → hyparquet@1.29.2}/node_modules/hyparquet/src/filter.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.29.1 → hyparquet@1.29.2}/node_modules/hyparquet/src/geoparquet.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.29.1 → hyparquet@1.29.2}/node_modules/hyparquet/src/indexes.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.29.1 → hyparquet@1.29.2}/node_modules/hyparquet/src/metadata.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.29.1 → hyparquet@1.29.2}/node_modules/hyparquet/src/plain.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.29.1 → hyparquet@1.29.2}/node_modules/hyparquet/src/plan.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.28.1 → hyparquet@1.29.2}/node_modules/hyparquet/src/query.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.29.1 → hyparquet@1.29.2}/node_modules/hyparquet/src/read.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.29.1 → hyparquet@1.29.2}/node_modules/hyparquet/src/rowgroup.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.29.1 → hyparquet@1.29.2}/node_modules/hyparquet/src/scan.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.29.1 → hyparquet@1.29.2}/node_modules/hyparquet/src/schema.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.29.1 → hyparquet@1.29.2}/node_modules/hyparquet/src/thrift.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.29.1 → hyparquet@1.29.2}/node_modules/hyparquet/src/types.d.mts +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.29.1 → hyparquet@1.29.2}/node_modules/hyparquet/src/variant.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.29.1 → hyparquet@1.29.2}/node_modules/hyparquet/src/wkb.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.28.1 → hyparquet@1.29.2}/node_modules/hyparquet/src/xxhash.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.29.1 → hyparquet@1.29.2}/node_modules/hyparquet/types/index.d.mts +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.28.1 → hyparquet@1.29.2}/node_modules/hyparquet/types/indexes.d.mts +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.28.1 → hyparquet@1.29.2}/node_modules/hyparquet/types/metadata.d.mts +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.29.1 → hyparquet@1.29.2}/node_modules/hyparquet/types/node.d.mts +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.28.1 → hyparquet@1.29.2}/node_modules/hyparquet/types/query.d.mts +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.28.1 → hyparquet@1.29.2}/node_modules/hyparquet/types/read.d.mts +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.29.1 → hyparquet@1.29.2}/node_modules/hyparquet/types/scan.d.mts +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.28.1 → hyparquet@1.29.2}/node_modules/hyparquet/types/snappy.d.mts +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.28.1 → hyparquet@1.29.2}/node_modules/hyparquet/types/utils.d.mts +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244 → icebird@0.8.27_patch_hash=651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/src/avro/avro.metadata.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244 → icebird@0.8.27_patch_hash=651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/src/catalog/file.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244 → icebird@0.8.27_patch_hash=651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/src/catalog/loadTable.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244 → icebird@0.8.27_patch_hash=651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/src/catalog/rest.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244 → icebird@0.8.27_patch_hash=651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/src/create.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244 → icebird@0.8.27_patch_hash=651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/src/json.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244 → icebird@0.8.27_patch_hash=651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/src/metadata.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244 → icebird@0.8.27_patch_hash=651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/src/prune.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244 → icebird@0.8.27_patch_hash=651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/src/puffin/deletion-vector.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244 → icebird@0.8.27_patch_hash=651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/src/puffin/puffin.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244 → icebird@0.8.27_patch_hash=651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/src/puffin/roaring.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244 → icebird@0.8.27_patch_hash=651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/src/schema.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244 → icebird@0.8.27_patch_hash=651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/src/sigv4.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244 → icebird@0.8.27_patch_hash=651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/src/sql/whereFilter.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244 → icebird@0.8.27_patch_hash=651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/src/utils.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244 → icebird@0.8.27_patch_hash=651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/src/write/conversions.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244 → icebird@0.8.27_patch_hash=651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/src/write/delete-file.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244 → icebird@0.8.27_patch_hash=651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/src/write/geospatial.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244 → icebird@0.8.27_patch_hash=651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/src/write/manifest-list.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244 → icebird@0.8.27_patch_hash=651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/src/write/manifest.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244 → icebird@0.8.27_patch_hash=651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/src/write/partition.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244 → icebird@0.8.27_patch_hash=651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/src/write/serde.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244 → icebird@0.8.27_patch_hash=651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/src/write/sort.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244 → icebird@0.8.27_patch_hash=651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/src/write/stage-position-delete.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244 → icebird@0.8.27_patch_hash=651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/src/write/stage.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244 → icebird@0.8.27_patch_hash=651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/src/write/stats.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244 → icebird@0.8.27_patch_hash=651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/src/write/transform.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244 → icebird@0.8.27_patch_hash=651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/src/write/write.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244 → icebird@0.8.27_patch_hash=651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/types/catalog/file.d.mts +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244 → icebird@0.8.27_patch_hash=651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/types/catalog/rest.d.mts +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244 → icebird@0.8.27_patch_hash=651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/types/create.d.mts +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.29.1/node_modules/hyparquet → icebird@0.8.27_patch_hash=651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7/node_modules/icebird}/types/metadata.d.mts +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244 → icebird@0.8.27_patch_hash=651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/types/s3.d.mts +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244 → icebird@0.8.27_patch_hash=651b5cc1b513184638c98e21a0852c4559044ae60f8449fbe9d81a894ea5b4d7}/node_modules/icebird/types/write/write.d.mts +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.16.2 → squirreling@0.16.3}/node_modules/squirreling/src/ast.d.mts +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.16.2 → squirreling@0.16.3}/node_modules/squirreling/src/backend/batch.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.16.2 → squirreling@0.16.3}/node_modules/squirreling/src/backend/batchAdapters.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.16.2 → squirreling@0.16.3}/node_modules/squirreling/src/backend/dataSource.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.16.2 → squirreling@0.16.3}/node_modules/squirreling/src/execute/accumulator.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.16.2 → squirreling@0.16.3}/node_modules/squirreling/src/execute/batchResults.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.16.2 → squirreling@0.16.3}/node_modules/squirreling/src/execute/batches.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.16.2 → squirreling@0.16.3}/node_modules/squirreling/src/execute/execute.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.16.2 → squirreling@0.16.3}/node_modules/squirreling/src/execute/join.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.16.2 → squirreling@0.16.3}/node_modules/squirreling/src/execute/rowScope.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.16.2 → squirreling@0.16.3}/node_modules/squirreling/src/execute/scanColumn.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.16.2 → squirreling@0.16.3}/node_modules/squirreling/src/execute/sort.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.16.2 → squirreling@0.16.3}/node_modules/squirreling/src/execute/utils.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.16.2 → squirreling@0.16.3}/node_modules/squirreling/src/execute/yield.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.16.2 → squirreling@0.16.3}/node_modules/squirreling/src/expression/alias.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.16.2 → squirreling@0.16.3}/node_modules/squirreling/src/expression/batch.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.16.2 → squirreling@0.16.3}/node_modules/squirreling/src/expression/binary.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.16.2 → squirreling@0.16.3}/node_modules/squirreling/src/expression/date.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.16.2 → squirreling@0.16.3}/node_modules/squirreling/src/expression/evaluate.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.16.2 → squirreling@0.16.3}/node_modules/squirreling/src/expression/math.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.16.2 → squirreling@0.16.3}/node_modules/squirreling/src/expression/scalar.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.16.2 → squirreling@0.16.3}/node_modules/squirreling/src/expression/strings.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.16.2 → squirreling@0.16.3}/node_modules/squirreling/src/index.d.mts +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.16.2 → squirreling@0.16.3}/node_modules/squirreling/src/index.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.16.2 → squirreling@0.16.3}/node_modules/squirreling/src/parse/expression.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.16.2 → squirreling@0.16.3}/node_modules/squirreling/src/parse/extractTables.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.16.2 → squirreling@0.16.3}/node_modules/squirreling/src/parse/functions.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.16.2 → squirreling@0.16.3}/node_modules/squirreling/src/parse/joins.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.16.2 → squirreling@0.16.3}/node_modules/squirreling/src/parse/parse.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.16.2 → squirreling@0.16.3}/node_modules/squirreling/src/parse/primary.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.16.2 → squirreling@0.16.3}/node_modules/squirreling/src/parse/state.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.16.2 → squirreling@0.16.3}/node_modules/squirreling/src/parse/tokenize.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.16.2 → squirreling@0.16.3}/node_modules/squirreling/src/parse/types.d.mts +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.16.2 → squirreling@0.16.3}/node_modules/squirreling/src/plan/columns.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.16.2 → squirreling@0.16.3}/node_modules/squirreling/src/plan/plan.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.16.2 → squirreling@0.16.3}/node_modules/squirreling/src/plan/types.d.mts +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.16.2 → squirreling@0.16.3}/node_modules/squirreling/src/spatial/bbox.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.16.2 → squirreling@0.16.3}/node_modules/squirreling/src/spatial/equality.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.16.2 → squirreling@0.16.3}/node_modules/squirreling/src/spatial/operations.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.16.2 → squirreling@0.16.3}/node_modules/squirreling/src/spatial/pointRelations.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.16.2 → squirreling@0.16.3}/node_modules/squirreling/src/spatial/primitives.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.16.2 → squirreling@0.16.3}/node_modules/squirreling/src/spatial/segments.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.16.2 → squirreling@0.16.3}/node_modules/squirreling/src/spatial/spatial.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.16.2 → squirreling@0.16.3}/node_modules/squirreling/src/spatial/wkt.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.16.2 → squirreling@0.16.3}/node_modules/squirreling/src/types.d.mts +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.16.2 → squirreling@0.16.3}/node_modules/squirreling/src/validation/aggregates.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.16.2 → squirreling@0.16.3}/node_modules/squirreling/src/validation/executionErrors.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.16.2 → squirreling@0.16.3}/node_modules/squirreling/src/validation/functions.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.16.2 → squirreling@0.16.3}/node_modules/squirreling/src/validation/keywords.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.16.2 → squirreling@0.16.3}/node_modules/squirreling/src/validation/parseErrors.mjs +0 -0
- /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.16.2 → squirreling@0.16.3}/node_modules/squirreling/src/validation/tables.mjs +0 -0
|
@@ -4,7 +4,7 @@ import { icebergManifests } from "./manifest.mjs";
|
|
|
4
4
|
import { s3SignedResolver } from "./s3.mjs";
|
|
5
5
|
import "./metadata.mjs";
|
|
6
6
|
import "./create.mjs";
|
|
7
|
-
import "../../../../squirreling@0.16.
|
|
7
|
+
import "../../../../squirreling@0.16.3/node_modules/squirreling/src/index.mjs";
|
|
8
8
|
import "./read.mjs";
|
|
9
9
|
import { icebergAppend, icebergCreateTable, icebergDropTable } from "./write/write.mjs";
|
|
10
10
|
import "./catalog/file.mjs";
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
+
import { avroMetadata } from "./avro/avro.metadata.mjs";
|
|
2
|
+
import { avroRead } from "./avro/avro.read.mjs";
|
|
1
3
|
import { fetchAvroRecords, urlResolver } from "./fetch.mjs";
|
|
4
|
+
const MANIFEST_FETCH_CONCURRENCY = 8;
|
|
2
5
|
async function icebergManifests({ metadata, resolver, snapshotId, partitionFilter }) {
|
|
3
6
|
resolver ??= urlResolver();
|
|
4
7
|
const rawTarget = snapshotId ?? metadata["current-snapshot-id"];
|
|
@@ -10,20 +13,60 @@ async function icebergManifests({ metadata, resolver, snapshotId, partitionFilte
|
|
|
10
13
|
if (snapshot["manifest-list"]) {
|
|
11
14
|
const manifestListUrl = snapshot["manifest-list"];
|
|
12
15
|
manifests = await fetchAvroRecords(manifestListUrl, resolver);
|
|
13
|
-
} else if (snapshot.manifests) manifests = snapshot
|
|
16
|
+
} else if (snapshot.manifests) manifests = await resolveInlineManifests(snapshot, resolver);
|
|
14
17
|
else throw new Error("No manifest information found in snapshot");
|
|
15
18
|
if (partitionFilter) manifests = manifests.filter((manifest) => {
|
|
16
|
-
let keep = true;
|
|
17
19
|
try {
|
|
18
|
-
|
|
20
|
+
return partitionFilter(manifest.partitions, manifest.partition_spec_id ?? 0, manifest) !== false;
|
|
19
21
|
} catch {
|
|
20
|
-
|
|
22
|
+
return true;
|
|
21
23
|
}
|
|
22
|
-
return keep;
|
|
23
24
|
});
|
|
24
25
|
return await fetchManifests(manifests, resolver);
|
|
25
26
|
}
|
|
26
|
-
|
|
27
|
+
async function resolveInlineManifests(snapshot, resolver) {
|
|
28
|
+
return await mapWithConcurrency(snapshot.manifests ?? [], async (manifestPath) => {
|
|
29
|
+
const ab = await resolver.reader(manifestPath);
|
|
30
|
+
const buffer = await ab.slice(0, ab.byteLength);
|
|
31
|
+
const reader = {
|
|
32
|
+
view: new DataView(buffer),
|
|
33
|
+
offset: 0
|
|
34
|
+
};
|
|
35
|
+
const { metadata, syncMarker } = await avroMetadata(reader);
|
|
36
|
+
const entries = await avroRead({
|
|
37
|
+
reader,
|
|
38
|
+
metadata,
|
|
39
|
+
syncMarker
|
|
40
|
+
});
|
|
41
|
+
const counts = [
|
|
42
|
+
0,
|
|
43
|
+
0,
|
|
44
|
+
0
|
|
45
|
+
];
|
|
46
|
+
const rows = [
|
|
47
|
+
0n,
|
|
48
|
+
0n,
|
|
49
|
+
0n
|
|
50
|
+
];
|
|
51
|
+
for (const entry of entries) {
|
|
52
|
+
counts[entry.status]++;
|
|
53
|
+
rows[entry.status] += BigInt(entry.data_file.record_count);
|
|
54
|
+
}
|
|
55
|
+
return {
|
|
56
|
+
manifest_path: manifestPath,
|
|
57
|
+
manifest_length: BigInt(ab.byteLength),
|
|
58
|
+
partition_spec_id: Number(metadata["partition-spec-id"] ?? 0),
|
|
59
|
+
content: 0,
|
|
60
|
+
added_snapshot_id: BigInt(snapshot["snapshot-id"]),
|
|
61
|
+
added_files_count: counts[1],
|
|
62
|
+
existing_files_count: counts[0],
|
|
63
|
+
deleted_files_count: counts[2],
|
|
64
|
+
added_rows_count: rows[1],
|
|
65
|
+
existing_rows_count: rows[0],
|
|
66
|
+
deleted_rows_count: rows[2]
|
|
67
|
+
};
|
|
68
|
+
});
|
|
69
|
+
}
|
|
27
70
|
async function fetchOneManifest(manifest, resolver) {
|
|
28
71
|
const url = manifest.manifest_path;
|
|
29
72
|
const entries = await fetchAvroRecords(url, resolver, Number(manifest.manifest_length));
|
|
@@ -43,17 +86,20 @@ async function fetchOneManifest(manifest, resolver) {
|
|
|
43
86
|
};
|
|
44
87
|
}
|
|
45
88
|
async function fetchManifests(manifests, resolver) {
|
|
46
|
-
|
|
89
|
+
return await mapWithConcurrency(manifests, (manifest) => fetchOneManifest(manifest, resolver));
|
|
90
|
+
}
|
|
91
|
+
async function mapWithConcurrency(items, fn) {
|
|
92
|
+
const results = new Array(items.length);
|
|
47
93
|
let next = 0;
|
|
48
94
|
async function worker() {
|
|
49
|
-
while (next <
|
|
50
|
-
const
|
|
51
|
-
results[
|
|
95
|
+
while (next < items.length) {
|
|
96
|
+
const index = next++;
|
|
97
|
+
results[index] = await fn(items[index]);
|
|
52
98
|
}
|
|
53
99
|
}
|
|
54
|
-
const poolSize = Math.min(MANIFEST_FETCH_CONCURRENCY,
|
|
100
|
+
const poolSize = Math.min(MANIFEST_FETCH_CONCURRENCY, items.length);
|
|
55
101
|
const workers = [];
|
|
56
|
-
for (let
|
|
102
|
+
for (let index = 0; index < poolSize; index++) workers.push(worker());
|
|
57
103
|
await Promise.all(workers);
|
|
58
104
|
return results;
|
|
59
105
|
}
|
|
@@ -82,4 +128,4 @@ function splitManifestEntries(manifests) {
|
|
|
82
128
|
deleteEntries
|
|
83
129
|
};
|
|
84
130
|
}
|
|
85
|
-
export { icebergManifests, splitManifestEntries };
|
|
131
|
+
export { icebergManifests, resolveInlineManifests, splitManifestEntries };
|
|
@@ -1,16 +1,18 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import "../../../../hyparquet@1.29.
|
|
1
|
+
import { isListLike, isMapLike } from "../../../../hyparquet@1.29.2/node_modules/hyparquet/src/schema.mjs";
|
|
2
|
+
import { parquetSchema } from "../../../../hyparquet@1.29.2/node_modules/hyparquet/src/metadata.mjs";
|
|
3
|
+
import { cachedAsyncBuffer } from "../../../../hyparquet@1.29.2/node_modules/hyparquet/src/utils.mjs";
|
|
4
|
+
import { columnsNeededForFilter, matchFilter } from "../../../../hyparquet@1.29.2/node_modules/hyparquet/src/filter.mjs";
|
|
5
|
+
import { parquetScan } from "../../../../hyparquet@1.29.2/node_modules/hyparquet/src/scan.mjs";
|
|
6
|
+
import { parquetReadObjects } from "../../../../hyparquet@1.29.2/node_modules/hyparquet/src/read.mjs";
|
|
7
|
+
import "../../../../hyparquet@1.29.2/node_modules/hyparquet/src/node.mjs";
|
|
6
8
|
import { compressors } from "../../../../hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/compressors.mjs";
|
|
7
9
|
import "../../../../hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/index.mjs";
|
|
8
10
|
import { equalityMatch, sanitize } from "./utils.mjs";
|
|
11
|
+
import { applicablePositionDeletes, deleteFileAppliesToDataEntry } from "./delete.mjs";
|
|
9
12
|
import { readParquetMetadata } from "./fetch.mjs";
|
|
10
13
|
import "./manifest.mjs";
|
|
11
14
|
import "./metadata.mjs";
|
|
12
|
-
import
|
|
13
|
-
import "../../../../squirreling@0.16.2/node_modules/squirreling/src/index.mjs";
|
|
15
|
+
import "../../../../squirreling@0.16.3/node_modules/squirreling/src/index.mjs";
|
|
14
16
|
async function* readDataFile({ dataEntry, fileRowStart, fileRowEnd, schema, metadata, resolver, rowLineage, positionDeletesMap = /* @__PURE__ */ new Map(), equalityDeleteGroups = [], wantedColumns, rowGroupConcurrency = 1, filter, signal }) {
|
|
15
17
|
const { data_file, sequence_number, partition_spec_id } = dataEntry;
|
|
16
18
|
if (sequence_number === void 0) throw new Error("sequence number not found, check v2 inheritance logic");
|
|
@@ -19,25 +21,22 @@ async function* readDataFile({ dataEntry, fileRowStart, fileRowEnd, schema, meta
|
|
|
19
21
|
const resolved = await resolver.reader(data_file.file_path, Number(data_file.file_size_in_bytes));
|
|
20
22
|
const asyncBuffer = cachedAsyncBuffer(resolved);
|
|
21
23
|
const parquetMetadata = await readParquetMetadata(asyncBuffer);
|
|
22
|
-
const
|
|
23
|
-
let parquetIcebergSchema;
|
|
24
|
-
if (kv?.value) parquetIcebergSchema = JSON.parse(kv.value);
|
|
25
|
-
else if (parquetMetadata.schema.some((s) => s.field_id !== void 0)) parquetIcebergSchema = parquetSchemaToIceberg(parquetMetadata.schema);
|
|
26
|
-
else parquetIcebergSchema = schema;
|
|
24
|
+
const parquetIcebergSchema = fileIcebergSchema(parquetMetadata, schema, tableNameMappings(metadata));
|
|
27
25
|
const parquetColumnNames = [];
|
|
26
|
+
const projectors = [];
|
|
28
27
|
for (const field of schema.fields) {
|
|
29
28
|
const parquetField = parquetIcebergSchema.fields.find((f) => f.id === field.id);
|
|
30
|
-
if (parquetField && field.type !== "unknown")
|
|
31
|
-
|
|
29
|
+
if (parquetField && field.type !== "unknown") {
|
|
30
|
+
parquetColumnNames.push(sanitize(parquetField.name));
|
|
31
|
+
projectors.push(nestedProjector(field.type, parquetField.type));
|
|
32
|
+
} else {
|
|
33
|
+
parquetColumnNames.push(void 0);
|
|
34
|
+
projectors.push(void 0);
|
|
35
|
+
}
|
|
32
36
|
}
|
|
33
37
|
const lineageColumns = rowLineage ? rowLineageColumnNames(parquetIcebergSchema) : {};
|
|
34
38
|
const dataColumnNamesById = columnNamesById(parquetIcebergSchema);
|
|
35
|
-
const
|
|
36
|
-
const positionDeletes = /* @__PURE__ */ new Set();
|
|
37
|
-
if (positionDeleteGroups) for (const group of positionDeleteGroups) {
|
|
38
|
-
if (!deleteFileAppliesToDataEntry(dataEntry, group.deleteEntry, metadata, "position")) continue;
|
|
39
|
-
for (const pos of group.positions) positionDeletes.add(pos);
|
|
40
|
-
}
|
|
39
|
+
const positionDeletes = applicablePositionDeletes(dataEntry, positionDeletesMap.get(data_file.file_path), metadata);
|
|
41
40
|
const applicableEqualityGroups = equalityDeleteGroups.filter((group) => deleteFileAppliesToDataEntry(dataEntry, group.deleteEntry, metadata, "equality"));
|
|
42
41
|
const wantedSet = wantedColumns ? new Set(wantedColumns) : null;
|
|
43
42
|
const wantsLineageOutput = !wantedSet || wantedSet.has("_row_id") || wantedSet.has("_last_updated_sequence_number");
|
|
@@ -104,18 +103,14 @@ async function* readDataFile({ dataEntry, fileRowStart, fileRowEnd, schema, meta
|
|
|
104
103
|
const field = schema.fields[i];
|
|
105
104
|
if (wantedSet && !wantedSet.has(field.name)) continue;
|
|
106
105
|
const parquetColumnName = parquetColumnNames[i];
|
|
107
|
-
if (parquetColumnName)
|
|
108
|
-
|
|
106
|
+
if (parquetColumnName) {
|
|
107
|
+
const project = projectors[i];
|
|
108
|
+
const value = row[parquetColumnName];
|
|
109
|
+
mapped[field.name] = project ? project(value) : value;
|
|
110
|
+
} else {
|
|
109
111
|
const partitionField = partitionSpec?.fields.find((pf) => pf["source-id"] === field.id && pf.transform === "identity");
|
|
110
|
-
let nameMapping;
|
|
111
|
-
if (metadata.properties?.["schema.name-mapping.default"]) nameMapping = nameMappingById(JSON.parse(metadata.properties["schema.name-mapping.default"]), field.id);
|
|
112
112
|
if (partitionField && Object.hasOwn(data_file.partition, partitionField.name)) mapped[field.name] = data_file.partition[partitionField.name] ?? null;
|
|
113
|
-
else if (
|
|
114
|
-
for (const name of nameMapping.names) if (parquetColumnNames.indexOf(name) !== -1) {
|
|
115
|
-
mapped[field.name] = row[name];
|
|
116
|
-
break;
|
|
117
|
-
}
|
|
118
|
-
} else if (field["initial-default"] !== void 0) mapped[field.name] = field["initial-default"];
|
|
113
|
+
else if (field["initial-default"] !== void 0) mapped[field.name] = field["initial-default"];
|
|
119
114
|
else mapped[field.name] = null;
|
|
120
115
|
}
|
|
121
116
|
}
|
|
@@ -206,15 +201,6 @@ function normalizeRowGroupConcurrency(value) {
|
|
|
206
201
|
if (!Number.isFinite(normalized) || normalized < 1) throw new Error("rowGroupConcurrency must be at least 1");
|
|
207
202
|
return normalized;
|
|
208
203
|
}
|
|
209
|
-
function nameMappingById(mappings, fieldId) {
|
|
210
|
-
for (const m of mappings) {
|
|
211
|
-
if (m["field-id"] === fieldId) return m;
|
|
212
|
-
if (m.fields) {
|
|
213
|
-
const hit = nameMappingById(m.fields, fieldId);
|
|
214
|
-
if (hit) return hit;
|
|
215
|
-
}
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
204
|
function rowLineageColumnNames(parquetIcebergSchema) {
|
|
219
205
|
return {
|
|
220
206
|
rowId: columnNameByFieldId(parquetIcebergSchema, 2147483540),
|
|
@@ -225,22 +211,130 @@ function columnNameByFieldId(schema, fieldId) {
|
|
|
225
211
|
const field = schema.fields.find((f) => f.id === fieldId);
|
|
226
212
|
return field ? sanitize(field.name) : void 0;
|
|
227
213
|
}
|
|
228
|
-
function
|
|
214
|
+
function tableNameMappings(metadata) {
|
|
215
|
+
const json = metadata.properties?.["schema.name-mapping.default"];
|
|
216
|
+
return json ? JSON.parse(json) : void 0;
|
|
217
|
+
}
|
|
218
|
+
function fileIcebergSchema(parquetMetadata, schema, nameMappings) {
|
|
219
|
+
const kv = parquetMetadata.key_value_metadata?.find((k) => k.key === "iceberg.schema");
|
|
220
|
+
if (kv?.value) return JSON.parse(kv.value);
|
|
221
|
+
const hasIds = parquetMetadata.schema.some((s) => s.field_id !== void 0);
|
|
222
|
+
const mappings = hasIds ? void 0 : nameMappings;
|
|
223
|
+
const fallbackFields = hasIds || nameMappings ? void 0 : schema.fields;
|
|
224
|
+
return {
|
|
225
|
+
type: "struct",
|
|
226
|
+
"schema-id": schema["schema-id"],
|
|
227
|
+
fields: parquetFieldsToIceberg(parquetSchema(parquetMetadata).children, mappings, fallbackFields)
|
|
228
|
+
};
|
|
229
|
+
}
|
|
230
|
+
function parquetFieldsToIceberg(nodes, mappings, fallbackFields) {
|
|
229
231
|
const fields = [];
|
|
230
|
-
for (const
|
|
231
|
-
|
|
232
|
+
for (const node of nodes) {
|
|
233
|
+
const { name, field_id } = node.element;
|
|
234
|
+
const mapping = mappings?.find((m) => m.names.includes(name));
|
|
235
|
+
const fallback = fallbackFields?.find((f) => f.name === name);
|
|
236
|
+
const id = field_id ?? mapping?.["field-id"] ?? fallback?.id;
|
|
237
|
+
if (id === void 0) continue;
|
|
232
238
|
fields.push({
|
|
233
|
-
id
|
|
234
|
-
name
|
|
239
|
+
id,
|
|
240
|
+
name,
|
|
235
241
|
required: false,
|
|
236
|
-
type:
|
|
242
|
+
type: parquetTypeToIceberg(node, mapping?.fields, fallback?.type)
|
|
237
243
|
});
|
|
238
244
|
}
|
|
239
|
-
return
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
245
|
+
return fields;
|
|
246
|
+
}
|
|
247
|
+
function parquetTypeToIceberg(node, mappings, fallback) {
|
|
248
|
+
if (isListLike(node)) {
|
|
249
|
+
const element = node.children[0].children[0];
|
|
250
|
+
const mapping = mappings?.find((m) => m.names.includes("element"));
|
|
251
|
+
const fallbackList = typeof fallback === "object" && fallback.type === "list" ? fallback : void 0;
|
|
252
|
+
return {
|
|
253
|
+
type: "list",
|
|
254
|
+
"element-id": element.element.field_id ?? mapping?.["field-id"] ?? fallbackList?.["element-id"] ?? -1,
|
|
255
|
+
"element-required": false,
|
|
256
|
+
element: parquetTypeToIceberg(element, mapping?.fields, fallbackList?.element)
|
|
257
|
+
};
|
|
258
|
+
}
|
|
259
|
+
if (isMapLike(node)) {
|
|
260
|
+
const [key, value] = ["key", "value"].map((childName) => {
|
|
261
|
+
const child = node.children[0].children.find((c) => c.element.name === childName);
|
|
262
|
+
if (!child) throw new Error(`parquet map column ${node.element.name} missing ${childName}`);
|
|
263
|
+
return child;
|
|
264
|
+
});
|
|
265
|
+
const keyMapping = mappings?.find((m) => m.names.includes("key"));
|
|
266
|
+
const valueMapping = mappings?.find((m) => m.names.includes("value"));
|
|
267
|
+
const fallbackMap = typeof fallback === "object" && fallback.type === "map" ? fallback : void 0;
|
|
268
|
+
return {
|
|
269
|
+
type: "map",
|
|
270
|
+
"key-id": key.element.field_id ?? keyMapping?.["field-id"] ?? fallbackMap?.["key-id"] ?? -1,
|
|
271
|
+
key: parquetTypeToIceberg(key, keyMapping?.fields, fallbackMap?.key),
|
|
272
|
+
"value-id": value.element.field_id ?? valueMapping?.["field-id"] ?? fallbackMap?.["value-id"] ?? -1,
|
|
273
|
+
"value-required": false,
|
|
274
|
+
value: parquetTypeToIceberg(value, valueMapping?.fields, fallbackMap?.value)
|
|
275
|
+
};
|
|
276
|
+
}
|
|
277
|
+
if (node.children.length) {
|
|
278
|
+
const fallbackStruct = typeof fallback === "object" && fallback.type === "struct" ? fallback : void 0;
|
|
279
|
+
return {
|
|
280
|
+
type: "struct",
|
|
281
|
+
"schema-id": 0,
|
|
282
|
+
fields: parquetFieldsToIceberg(node.children, mappings, fallbackStruct?.fields)
|
|
283
|
+
};
|
|
284
|
+
}
|
|
285
|
+
return "unknown";
|
|
286
|
+
}
|
|
287
|
+
function nestedProjector(type, fileType) {
|
|
288
|
+
if (typeof type === "string" || typeof fileType === "string") return void 0;
|
|
289
|
+
if (type.type === "struct" && fileType.type === "struct") {
|
|
290
|
+
const plan = [];
|
|
291
|
+
let identity = type.fields.length === fileType.fields.length;
|
|
292
|
+
for (const field of type.fields) {
|
|
293
|
+
const fileField = fileType.fields.find((f) => f.id === field.id);
|
|
294
|
+
if (fileField) {
|
|
295
|
+
const source = sanitize(fileField.name);
|
|
296
|
+
const project = nestedProjector(field.type, fileField.type);
|
|
297
|
+
if (source !== field.name || project) identity = false;
|
|
298
|
+
plan.push({
|
|
299
|
+
name: field.name,
|
|
300
|
+
source,
|
|
301
|
+
project
|
|
302
|
+
});
|
|
303
|
+
} else {
|
|
304
|
+
identity = false;
|
|
305
|
+
plan.push({
|
|
306
|
+
name: field.name,
|
|
307
|
+
missing: field["initial-default"] ?? null
|
|
308
|
+
});
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
if (identity) return void 0;
|
|
312
|
+
return (value) => {
|
|
313
|
+
if (value == null) return value;
|
|
314
|
+
const out = {};
|
|
315
|
+
for (const { name, source, project, missing } of plan) if (source === void 0) out[name] = missing;
|
|
316
|
+
else {
|
|
317
|
+
const child = value[source];
|
|
318
|
+
out[name] = project ? project(child) : child ?? null;
|
|
319
|
+
}
|
|
320
|
+
return out;
|
|
321
|
+
};
|
|
322
|
+
}
|
|
323
|
+
if (type.type === "list" && fileType.type === "list") {
|
|
324
|
+
const project = nestedProjector(type.element, fileType.element);
|
|
325
|
+
if (!project) return void 0;
|
|
326
|
+
return (value) => Array.isArray(value) ? value.map(project) : value;
|
|
327
|
+
}
|
|
328
|
+
if (type.type === "map" && fileType.type === "map") {
|
|
329
|
+
const project = nestedProjector(type.value, fileType.value);
|
|
330
|
+
if (!project) return void 0;
|
|
331
|
+
return (value) => {
|
|
332
|
+
if (value == null || typeof value !== "object") return value;
|
|
333
|
+
const out = {};
|
|
334
|
+
for (const key of Object.keys(value)) out[key] = project(value[key]);
|
|
335
|
+
return out;
|
|
336
|
+
};
|
|
337
|
+
}
|
|
244
338
|
}
|
|
245
339
|
function columnNamesById(schema) {
|
|
246
340
|
const out = {};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ByteWriter } from "../../../../hyparquet-writer@0.16.
|
|
2
|
-
import "../../../../hyparquet-writer@0.16.
|
|
1
|
+
import { ByteWriter } from "../../../../hyparquet-writer@0.16.9_patch_hash=d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f/node_modules/hyparquet-writer/src/bytewriter.mjs";
|
|
2
|
+
import "../../../../hyparquet-writer@0.16.9_patch_hash=d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f/node_modules/hyparquet-writer/src/node.mjs";
|
|
3
3
|
import { signRequest } from "./sigv4.mjs";
|
|
4
4
|
function s3SignedResolver({ accessKeyId, secretAccessKey, sessionToken, region, endpoint, pathStyle = false }) {
|
|
5
5
|
const ep = endpoint ? new URL(endpoint.replace(/\/$/, "") + "/") : void 0;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import "../fetch.mjs";
|
|
2
2
|
import "../manifest.mjs";
|
|
3
3
|
import "../metadata.mjs";
|
|
4
|
-
import "../../../../../squirreling@0.16.
|
|
4
|
+
import "../../../../../squirreling@0.16.3/node_modules/squirreling/src/index.mjs";
|
|
5
5
|
import "../read.mjs";
|
|
6
6
|
import "../prune.mjs";
|
|
7
7
|
import "./whereFilter.mjs";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import "../fetch.mjs";
|
|
2
2
|
import "../catalog/loadTable.mjs";
|
|
3
|
-
import "../../../../../squirreling@0.16.
|
|
3
|
+
import "../../../../../squirreling@0.16.3/node_modules/squirreling/src/index.mjs";
|
|
4
4
|
import "./icebergDataSource.mjs";
|
|
5
5
|
export {};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { AsyncBuffer } from "../../../../hyparquet@1.29.
|
|
2
|
-
import "../../../../hyparquet@1.29.
|
|
3
|
-
import { Writer } from "../../../../hyparquet-writer@0.16.
|
|
4
|
-
import "../../../../hyparquet-writer@0.16.
|
|
1
|
+
import { AsyncBuffer } from "../../../../hyparquet@1.29.2/node_modules/hyparquet/types/index.mjs";
|
|
2
|
+
import "../../../../hyparquet@1.29.2/node_modules/hyparquet/types/node.mjs";
|
|
3
|
+
import { Writer } from "../../../../hyparquet-writer@0.16.9_patch_hash=d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f/node_modules/hyparquet-writer/types/index.mjs";
|
|
4
|
+
import "../../../../hyparquet-writer@0.16.9_patch_hash=d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f/node_modules/hyparquet-writer/types/node.mjs";
|
|
5
5
|
interface WriterOptions {
|
|
6
6
|
/**
|
|
7
7
|
* If `'*'`, the writer must create the object only if it does not already
|
|
@@ -141,7 +141,7 @@ interface Snapshot {
|
|
|
141
141
|
'sequence-number': number;
|
|
142
142
|
'timestamp-ms': number;
|
|
143
143
|
'manifest-list': string;
|
|
144
|
-
manifests?:
|
|
144
|
+
manifests?: string[]; // v1 only: manifest file locations
|
|
145
145
|
summary: {
|
|
146
146
|
// spec: "value of these fields should be of string type"
|
|
147
147
|
operation: string;
|
|
@@ -290,26 +290,78 @@ function validateAssignedId(id, kind, path, priorAssignedIds, priorLastColumnId)
|
|
|
290
290
|
if (prior.kind !== kind) throw new Error(`add-schema: ${kind} ${path} uses id ${id} previously assigned to ${prior.kind} ${prior.path}`);
|
|
291
291
|
}
|
|
292
292
|
function validateNewRequiredFields(schema, priorLastColumnId) {
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
293
|
+
validateNewRequiredFieldsIn(schema.fields, "", priorLastColumnId);
|
|
294
|
+
}
|
|
295
|
+
function validateNewRequiredFieldsIn(fields, prefix, priorLastColumnId) {
|
|
296
|
+
for (const field of fields) {
|
|
297
|
+
const path = prefix ? `${prefix}.${field.name}` : field.name;
|
|
298
|
+
const isNew = field.id > priorLastColumnId;
|
|
299
|
+
if (isNew && field.required) {
|
|
300
|
+
if (field["initial-default"] == null) throw new Error(`add-schema: required field ${path} (id ${field.id}) needs a non-null initial-default`);
|
|
301
|
+
if (field["write-default"] == null) throw new Error(`add-schema: required field ${path} (id ${field.id}) needs a non-null write-default`);
|
|
302
|
+
}
|
|
303
|
+
if (isNew && field["initial-default"] == null) continue;
|
|
304
|
+
validateNewRequiredTypeFields(field.type, path, priorLastColumnId);
|
|
296
305
|
}
|
|
297
306
|
}
|
|
307
|
+
function validateNewRequiredTypeFields(type, path, priorLastColumnId) {
|
|
308
|
+
if (typeof type === "string") return;
|
|
309
|
+
if (type.type === "struct") validateNewRequiredFieldsIn(type.fields, path, priorLastColumnId);
|
|
310
|
+
else if (type.type === "list") validateNewRequiredTypeFields(type.element, `${path}.element`, priorLastColumnId);
|
|
311
|
+
else if (type.type === "map") validateNewRequiredTypeFields(type.value, `${path}.value`, priorLastColumnId);
|
|
312
|
+
}
|
|
298
313
|
function validateSchemaEvolution(schemas, newSchema, priorLastColumnId, formatVersion) {
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
314
|
+
const priorTypes = /* @__PURE__ */ new Map();
|
|
315
|
+
for (const schema of schemas) indexPriorFields(schema.fields, priorTypes);
|
|
316
|
+
validateFieldsEvolution(newSchema.fields, "", priorTypes, priorLastColumnId, formatVersion);
|
|
317
|
+
}
|
|
318
|
+
function indexPriorFields(fields, index) {
|
|
319
|
+
for (const field of fields) {
|
|
320
|
+
index.set(field.id, {
|
|
321
|
+
type: field.type,
|
|
322
|
+
"initial-default": field["initial-default"]
|
|
323
|
+
});
|
|
324
|
+
indexPriorType(field.type, index);
|
|
305
325
|
}
|
|
306
326
|
}
|
|
307
|
-
function
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
327
|
+
function indexPriorType(type, index) {
|
|
328
|
+
if (typeof type === "string") return;
|
|
329
|
+
if (type.type === "struct") indexPriorFields(type.fields, index);
|
|
330
|
+
else if (type.type === "list") {
|
|
331
|
+
index.set(type["element-id"], { type: type.element });
|
|
332
|
+
indexPriorType(type.element, index);
|
|
333
|
+
} else if (type.type === "map") {
|
|
334
|
+
index.set(type["key-id"], { type: type.key });
|
|
335
|
+
index.set(type["value-id"], { type: type.value });
|
|
336
|
+
indexPriorType(type.key, index);
|
|
337
|
+
indexPriorType(type.value, index);
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
function validateFieldsEvolution(fields, prefix, priorTypes, priorLastColumnId, formatVersion) {
|
|
341
|
+
for (const field of fields) {
|
|
342
|
+
const path = prefix ? `${prefix}.${field.name}` : field.name;
|
|
343
|
+
const prior = field.id > priorLastColumnId ? void 0 : priorTypes.get(field.id);
|
|
344
|
+
if (prior) {
|
|
345
|
+
if (!canPromoteType(prior.type, field.type, formatVersion)) throw new Error(`add-schema: cannot promote field ${path} from ${typeToString(prior.type)} to ${typeToString(field.type)}`);
|
|
346
|
+
if (!defaultsEqual(prior["initial-default"], field["initial-default"])) throw new Error(`add-schema: initial-default for field ${path} cannot change`);
|
|
347
|
+
}
|
|
348
|
+
validateTypeEvolution(field.type, path, priorTypes, priorLastColumnId, formatVersion);
|
|
311
349
|
}
|
|
312
350
|
}
|
|
351
|
+
function validateTypeEvolution(type, path, priorTypes, priorLastColumnId, formatVersion) {
|
|
352
|
+
if (typeof type === "string") return;
|
|
353
|
+
if (type.type === "struct") validateFieldsEvolution(type.fields, path, priorTypes, priorLastColumnId, formatVersion);
|
|
354
|
+
else if (type.type === "list") validateChildEvolution(type["element-id"], type.element, `${path}.element`, priorTypes, priorLastColumnId, formatVersion);
|
|
355
|
+
else if (type.type === "map") {
|
|
356
|
+
validateChildEvolution(type["key-id"], type.key, `${path}.key`, priorTypes, priorLastColumnId, formatVersion);
|
|
357
|
+
validateChildEvolution(type["value-id"], type.value, `${path}.value`, priorTypes, priorLastColumnId, formatVersion);
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
function validateChildEvolution(id, type, path, priorTypes, priorLastColumnId, formatVersion) {
|
|
361
|
+
const prior = id > priorLastColumnId ? void 0 : priorTypes.get(id);
|
|
362
|
+
if (prior && !canPromoteType(prior.type, type, formatVersion)) throw new Error(`add-schema: cannot promote ${path} from ${typeToString(prior.type)} to ${typeToString(type)}`);
|
|
363
|
+
validateTypeEvolution(type, path, priorTypes, priorLastColumnId, formatVersion);
|
|
364
|
+
}
|
|
313
365
|
function canPromoteType(from, to, formatVersion) {
|
|
314
366
|
if (typesEqual(from, to)) return true;
|
|
315
367
|
if (typeof from !== "string" || typeof to !== "string") return false;
|
|
@@ -321,7 +373,7 @@ function canPromoteType(from, to, formatVersion) {
|
|
|
321
373
|
}
|
|
322
374
|
function typesEqual(a, b) {
|
|
323
375
|
if (typeof a === "string" || typeof b === "string") return a === b;
|
|
324
|
-
return
|
|
376
|
+
return a.type === b.type;
|
|
325
377
|
}
|
|
326
378
|
function decimalPromotionAllowed(from, to) {
|
|
327
379
|
const a = parseDecimalType(from);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { parquetWrite } from "../../../../../hyparquet-writer@0.16.
|
|
2
|
-
import "../../../../../hyparquet-writer@0.16.
|
|
1
|
+
import { parquetWrite } from "../../../../../hyparquet-writer@0.16.9_patch_hash=d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f/node_modules/hyparquet-writer/src/write.mjs";
|
|
2
|
+
import "../../../../../hyparquet-writer@0.16.9_patch_hash=d26d002aede61ad95dd633d6557b56897cdcbc45dfc3a5d93fa0e9075ad5425f/node_modules/hyparquet-writer/src/node.mjs";
|
|
3
3
|
import { sanitize } from "../utils.mjs";
|
|
4
4
|
import { typeName } from "../schema.mjs";
|
|
5
5
|
import { decimalRequiredBytes, parseDecimalType } from "./conversions.mjs";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { concat } from "../../../../../hyparquet@1.29.
|
|
1
|
+
import { concat } from "../../../../../hyparquet@1.29.2/node_modules/hyparquet/src/utils.mjs";
|
|
2
2
|
import { uuid4 } from "../utils.mjs";
|
|
3
3
|
import { fetchDeleteMaps } from "../fetch.mjs";
|
|
4
4
|
import { icebergManifests, splitManifestEntries } from "../manifest.mjs";
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { fetchAvroRecords } from "../fetch.mjs";
|
|
2
|
+
import { resolveInlineManifests } from "../manifest.mjs";
|
|
2
3
|
import { transformResultType } from "./transform.mjs";
|
|
3
4
|
import { writeManifestList } from "./manifest-list.mjs";
|
|
4
5
|
import { computeFieldSummary } from "./stats.mjs";
|
|
@@ -13,8 +14,9 @@ function currentSnapshot(metadata) {
|
|
|
13
14
|
}
|
|
14
15
|
async function loadPriorManifests(metadata, resolver) {
|
|
15
16
|
const snap = currentSnapshot(metadata);
|
|
16
|
-
if (!snap
|
|
17
|
-
return await fetchAvroRecords(snap["manifest-list"], resolver);
|
|
17
|
+
if (!snap) return [];
|
|
18
|
+
if (snap["manifest-list"]) return await fetchAvroRecords(snap["manifest-list"], resolver);
|
|
19
|
+
return await resolveInlineManifests(snap, resolver);
|
|
18
20
|
}
|
|
19
21
|
async function buildSnapshotUpdate({ tableUrl, metadata, resolver, snapshotId, sequenceNumber, manifestUuid, timestampMs, formatVersion, newManifests, summary, writtenFiles, priorManifests, skipPriorManifestPaths }) {
|
|
20
22
|
const writerFn = resolver.writer;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
+
import { uuid4 } from "../utils.mjs";
|
|
2
|
+
import { deleteFileAppliesToDataEntry, isDeletionVector } from "../delete.mjs";
|
|
1
3
|
import { writeDeletionVector } from "../puffin/deletion-vector.mjs";
|
|
2
4
|
import { writePuffinFile } from "../puffin/puffin.mjs";
|
|
3
|
-
import { uuid4 } from "../utils.mjs";
|
|
4
5
|
import { fetchDeleteMaps } from "../fetch.mjs";
|
|
5
6
|
import { validateSchemaForVersion } from "../schema.mjs";
|
|
6
7
|
import { buildPartitionSummaries, buildSnapshotUpdate, currentSnapshot, loadPriorManifests } from "./snapshot.mjs";
|
|
7
|
-
import { deleteFileAppliesToDataEntry } from "../delete.mjs";
|
|
8
8
|
import { writeDeleteManifest, writeExistingDeleteManifest } from "./manifest.mjs";
|
|
9
9
|
import { checkWriteFormat, newSnapshotId } from "./stage.mjs";
|
|
10
10
|
import { findDataFileEntries, loadManifestEntries, partitionTupleKey } from "./stage-position-delete.mjs";
|
|
@@ -61,6 +61,36 @@ async function icebergStageDeletionVector({ tableUrl, metadata, deletes, resolve
|
|
|
61
61
|
}
|
|
62
62
|
targets.add(targetPath);
|
|
63
63
|
}
|
|
64
|
+
let expandedTargets = true;
|
|
65
|
+
while (expandedTargets) {
|
|
66
|
+
expandedTargets = false;
|
|
67
|
+
for (const [entry, coveredTargets] of positionDeleteTargets) {
|
|
68
|
+
if (isDeletionVector(entry) || obsoletePositionDeleteEntries.has(entry)) continue;
|
|
69
|
+
let appliesToTarget = false;
|
|
70
|
+
for (const targetPath of coveredTargets) {
|
|
71
|
+
const info = byFile.get(targetPath);
|
|
72
|
+
if (info && deleteFileAppliesToDataEntry(info.dataEntry, entry, metadata, "position")) {
|
|
73
|
+
appliesToTarget = true;
|
|
74
|
+
break;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
if (!appliesToTarget) continue;
|
|
78
|
+
obsoletePositionDeleteEntries.add(entry);
|
|
79
|
+
for (const targetPath of coveredTargets) {
|
|
80
|
+
const found = dataFileMap.get(targetPath);
|
|
81
|
+
if (!found || !deleteFileAppliesToDataEntry(found.entry, entry, metadata, "position")) continue;
|
|
82
|
+
if (byFile.has(targetPath)) continue;
|
|
83
|
+
byFile.set(targetPath, {
|
|
84
|
+
positions: /* @__PURE__ */ new Set(),
|
|
85
|
+
partition: found.partition,
|
|
86
|
+
partitionSpecId: found.partitionSpecId,
|
|
87
|
+
dataEntry: found.entry
|
|
88
|
+
});
|
|
89
|
+
targetPaths.add(targetPath);
|
|
90
|
+
expandedTargets = true;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
64
94
|
for (const [targetPath, info] of byFile) {
|
|
65
95
|
const groups = positionDeletesMap.get(targetPath) ?? [];
|
|
66
96
|
for (const group of groups) {
|
|
@@ -68,20 +98,6 @@ async function icebergStageDeletionVector({ tableUrl, metadata, deletes, resolve
|
|
|
68
98
|
for (const pos of group.positions) info.positions.add(pos);
|
|
69
99
|
}
|
|
70
100
|
}
|
|
71
|
-
for (const [entry, coveredTargets] of positionDeleteTargets) {
|
|
72
|
-
if (isDeletionVectorForTarget(entry, targetPaths)) continue;
|
|
73
|
-
let allTargetsCovered = true;
|
|
74
|
-
let appliesToTarget = false;
|
|
75
|
-
for (const targetPath of coveredTargets) {
|
|
76
|
-
if (!targetPaths.has(targetPath)) {
|
|
77
|
-
allTargetsCovered = false;
|
|
78
|
-
break;
|
|
79
|
-
}
|
|
80
|
-
const info = byFile.get(targetPath);
|
|
81
|
-
if (info && deleteFileAppliesToDataEntry(info.dataEntry, entry, metadata, "position")) appliesToTarget = true;
|
|
82
|
-
}
|
|
83
|
-
if (allTargetsCovered && appliesToTarget) obsoletePositionDeleteEntries.add(entry);
|
|
84
|
-
}
|
|
85
101
|
}
|
|
86
102
|
const skipPriorManifestPaths = /* @__PURE__ */ new Set();
|
|
87
103
|
const replacementManifests = [];
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import "../../../../hyparquet@1.29.
|
|
1
|
+
import "../../../../hyparquet@1.29.2/node_modules/hyparquet/types/node.mjs";
|
|
2
2
|
import { Resolver } from "../src/types.mjs";
|
|
3
3
|
/**
|
|
4
4
|
* Wrap a `Resolver` so reads of the same path share one HTTP fetch and
|
|
@@ -4,7 +4,7 @@ import { cachingResolver } from "./fetch.mjs";
|
|
|
4
4
|
import "./create.mjs";
|
|
5
5
|
import "./catalog/file.mjs";
|
|
6
6
|
import { s3SignedResolver } from "./s3.mjs";
|
|
7
|
-
import "../../../../squirreling@0.16.
|
|
7
|
+
import "../../../../squirreling@0.16.3/node_modules/squirreling/src/index.mjs";
|
|
8
8
|
import "./read.mjs";
|
|
9
9
|
import "./metadata.mjs";
|
|
10
10
|
import { icebergManifests } from "./manifest.mjs";
|