@gscdump/lakehouse 3.2.0 → 3.4.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.
Files changed (167) hide show
  1. package/LICENSE +21 -0
  2. package/dist/THIRD-PARTY-LICENSES.md +2 -2
  3. package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.1}/node_modules/hyparquet/src/index.mjs +2 -1
  4. package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.1}/node_modules/hyparquet/src/node.mjs +2 -1
  5. package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.1}/node_modules/hyparquet/src/plan.mjs +115 -87
  6. package/dist/_virtual/node_modules/.pnpm/hyparquet@1.29.1/node_modules/hyparquet/src/read.mjs +78 -0
  7. package/dist/_virtual/node_modules/.pnpm/hyparquet@1.29.1/node_modules/hyparquet/src/scan.mjs +203 -0
  8. package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.1}/node_modules/hyparquet/types/index.d.mts +1 -0
  9. package/dist/_virtual/node_modules/.pnpm/hyparquet@1.29.2/node_modules/hyparquet/src/snappy.mjs +68 -0
  10. 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
  11. 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
  12. 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
  13. 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
  14. 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
  15. 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
  16. 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
  17. 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
  18. 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
  19. 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
  20. package/dist/_virtual/node_modules/.pnpm/icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244/node_modules/icebird/src/write/rewrite.mjs +296 -0
  21. 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
  22. 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
  23. 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
  24. 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
  25. package/dist/_virtual/node_modules/.pnpm/icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244/node_modules/icebird/types/metadata.d.mts +1 -0
  26. package/dist/_virtual/node_modules/.pnpm/icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244/node_modules/icebird/types/read.d.mts +3 -0
  27. package/dist/_virtual/node_modules/.pnpm/icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244/node_modules/icebird/types/sql/icebergDataSource.d.mts +2 -0
  28. package/dist/_virtual/node_modules/.pnpm/icebird@0.8.26_patch_hash=75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244/node_modules/icebird/types/sql/icebergQuery.d.mts +2 -0
  29. package/dist/_virtual/node_modules/.pnpm/squirreling@0.16.2/node_modules/squirreling/src/backend/batchAdapters.mjs +3 -0
  30. package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/execute/aggregates.mjs +2 -1
  31. package/dist/_virtual/node_modules/.pnpm/squirreling@0.16.2/node_modules/squirreling/src/execute/batchResults.mjs +3 -0
  32. package/dist/_virtual/node_modules/.pnpm/squirreling@0.16.2/node_modules/squirreling/src/execute/batches.mjs +4 -0
  33. package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/execute/execute.mjs +7 -1
  34. package/dist/_virtual/node_modules/.pnpm/squirreling@0.16.2/node_modules/squirreling/src/execute/rowScope.mjs +2 -0
  35. package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/execute/streamingAggregate.mjs +4 -1
  36. package/dist/_virtual/node_modules/.pnpm/squirreling@0.16.2/node_modules/squirreling/src/execute/utils.mjs +2 -0
  37. package/dist/_virtual/node_modules/.pnpm/squirreling@0.16.2/node_modules/squirreling/src/expression/batch.mjs +10 -0
  38. package/dist/_virtual/node_modules/.pnpm/squirreling@0.16.2/node_modules/squirreling/src/expression/binary.mjs +2 -0
  39. package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/expression/evaluate.mjs +4 -3
  40. package/dist/_virtual/node_modules/.pnpm/squirreling@0.16.2/node_modules/squirreling/src/expression/scalar.mjs +4 -0
  41. package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/index.mjs +2 -0
  42. package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/plan/columns.mjs +1 -0
  43. package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/validation/tables.mjs +1 -0
  44. 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
  45. package/dist/catalog.d.mts +3 -3
  46. package/dist/catalog.mjs +5 -5
  47. package/dist/dataset-runtime.mjs +1 -1
  48. package/dist/orphan-sweep.mjs +3 -3
  49. package/dist/unsafe-raw.d.mts +5 -5
  50. package/dist/unsafe-raw.mjs +5 -5
  51. package/dist/vendor/hysnappy-purejs.mjs +1 -1
  52. package/package.json +5 -5
  53. package/dist/_virtual/node_modules/.pnpm/hyparquet@1.28.2/node_modules/hyparquet/src/read.mjs +0 -128
  54. package/dist/_virtual/node_modules/.pnpm/icebird@0.8.22_patch_hash=4fa7fd5702c4ce432fb2902c6abe07cc55565e87f6375b96ece63a10999712e6/node_modules/icebird/src/write/rewrite.mjs +0 -174
  55. package/dist/_virtual/node_modules/.pnpm/icebird@0.8.22_patch_hash=4fa7fd5702c4ce432fb2902c6abe07cc55565e87f6375b96ece63a10999712e6/node_modules/icebird/types/read.d.mts +0 -2
  56. package/dist/_virtual/node_modules/.pnpm/icebird@0.8.22_patch_hash=4fa7fd5702c4ce432fb2902c6abe07cc55565e87f6375b96ece63a10999712e6/node_modules/icebird/types/sql/icebergDataSource.d.mts +0 -2
  57. package/dist/_virtual/node_modules/.pnpm/icebird@0.8.22_patch_hash=4fa7fd5702c4ce432fb2902c6abe07cc55565e87f6375b96ece63a10999712e6/node_modules/icebird/types/sql/icebergQuery.d.mts +0 -2
  58. package/dist/_virtual/node_modules/.pnpm/squirreling@0.15.3/node_modules/squirreling/src/expression/binary.mjs +0 -1
  59. 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
  60. package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.1}/node_modules/hyparquet/src/assemble.mjs +0 -0
  61. package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.1}/node_modules/hyparquet/src/bloom.mjs +0 -0
  62. package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.1}/node_modules/hyparquet/src/column.mjs +0 -0
  63. package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.1}/node_modules/hyparquet/src/constants.mjs +0 -0
  64. package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.1}/node_modules/hyparquet/src/convert.mjs +0 -0
  65. package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.1}/node_modules/hyparquet/src/datapage.mjs +0 -0
  66. package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.1}/node_modules/hyparquet/src/delta.mjs +0 -0
  67. package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.1}/node_modules/hyparquet/src/encoding.mjs +0 -0
  68. package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.1}/node_modules/hyparquet/src/filter.mjs +0 -0
  69. package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.1}/node_modules/hyparquet/src/geoparquet.mjs +0 -0
  70. package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.1}/node_modules/hyparquet/src/indexes.mjs +0 -0
  71. package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.1}/node_modules/hyparquet/src/metadata.mjs +0 -0
  72. package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.1}/node_modules/hyparquet/src/plain.mjs +0 -0
  73. package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.1}/node_modules/hyparquet/src/query.mjs +0 -0
  74. package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.1}/node_modules/hyparquet/src/rowgroup.mjs +0 -0
  75. package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.1}/node_modules/hyparquet/src/schema.mjs +0 -0
  76. package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.1}/node_modules/hyparquet/src/snappy.mjs +0 -0
  77. package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.1}/node_modules/hyparquet/src/thrift.mjs +0 -0
  78. package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.1}/node_modules/hyparquet/src/types.d.mts +0 -0
  79. package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.1}/node_modules/hyparquet/src/utils.mjs +0 -0
  80. package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.1}/node_modules/hyparquet/src/variant.mjs +0 -0
  81. package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.1}/node_modules/hyparquet/src/wkb.mjs +0 -0
  82. package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.1}/node_modules/hyparquet/src/xxhash.mjs +0 -0
  83. package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.1}/node_modules/hyparquet/types/indexes.d.mts +0 -0
  84. package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.1}/node_modules/hyparquet/types/metadata.d.mts +0 -0
  85. package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.1}/node_modules/hyparquet/types/node.d.mts +0 -0
  86. package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.1}/node_modules/hyparquet/types/query.d.mts +0 -0
  87. package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.1}/node_modules/hyparquet/types/read.d.mts +0 -0
  88. 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
  89. package/dist/_virtual/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.1}/node_modules/hyparquet/types/snappy.d.mts +0 -0
  90. 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
  91. 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
  92. 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
  93. 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
  94. 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
  95. 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
  96. 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
  97. 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
  98. 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
  99. 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
  100. 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
  101. 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
  102. 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
  103. 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
  104. 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
  105. 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
  106. 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
  107. 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
  108. 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
  109. 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
  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/write/delete-file.mjs +0 -0
  111. 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
  112. 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
  113. 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
  114. 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
  115. 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
  116. 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
  117. 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
  118. 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
  119. 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
  120. 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
  121. 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
  122. 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
  123. 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
  124. 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
  125. 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
  126. 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
  127. 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
  128. package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/ast.d.mts +0 -0
  129. 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
  130. 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
  131. package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/execute/accumulator.mjs +0 -0
  132. package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/execute/join.mjs +1 -1
  133. 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
  134. package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/execute/sort.mjs +0 -0
  135. package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/execute/window.mjs +1 -1
  136. /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/execute/yield.mjs +0 -0
  137. /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/expression/alias.mjs +0 -0
  138. /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/expression/date.mjs +0 -0
  139. /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/expression/math.mjs +0 -0
  140. /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/expression/regexp.mjs +0 -0
  141. /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/expression/strings.mjs +0 -0
  142. /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/index.d.mts +0 -0
  143. /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/parse/expression.mjs +0 -0
  144. /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/parse/extractTables.mjs +0 -0
  145. /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/parse/functions.mjs +0 -0
  146. /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/parse/joins.mjs +0 -0
  147. /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/parse/parse.mjs +0 -0
  148. /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/parse/primary.mjs +0 -0
  149. /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/parse/state.mjs +0 -0
  150. /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/parse/tokenize.mjs +0 -0
  151. /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/parse/types.d.mts +0 -0
  152. /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/plan/plan.mjs +0 -0
  153. /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/plan/types.d.mts +0 -0
  154. /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/spatial/bbox.mjs +0 -0
  155. /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/spatial/equality.mjs +0 -0
  156. /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/spatial/operations.mjs +0 -0
  157. /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/spatial/pointRelations.mjs +0 -0
  158. /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/spatial/primitives.mjs +0 -0
  159. /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/spatial/segments.mjs +0 -0
  160. /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/spatial/spatial.mjs +0 -0
  161. /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/spatial/wkt.mjs +0 -0
  162. /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/types.d.mts +0 -0
  163. /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/validation/aggregates.mjs +0 -0
  164. /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/validation/executionErrors.mjs +0 -0
  165. /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/validation/functions.mjs +0 -0
  166. /package/dist/_virtual/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/validation/keywords.mjs +0 -0
  167. /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.28.2/node_modules/hyparquet/src/snappy.mjs";
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.2.0",
4
+ "version": "3.4.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.2.0",
75
- "hyparquet": "^1.28.2",
76
- "icebird": "^0.8.22",
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.10"
78
+ "vitest": "^4.1.11"
79
79
  },
80
80
  "scripts": {
81
81
  "dev": "obuild --stub",
@@ -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,2 +0,0 @@
1
- import "../../../../hyparquet@1.28.2/node_modules/hyparquet/types/node.mjs";
2
- import "../src/types.mjs";
@@ -1,2 +0,0 @@
1
- import "../../src/types.mjs";
2
- import "../../../../../squirreling@0.15.3/node_modules/squirreling/src/index.mjs";
@@ -1,2 +0,0 @@
1
- import "../../src/types.mjs";
2
- import "../../../../../squirreling@0.15.3/node_modules/squirreling/src/index.mjs";
@@ -1,5 +1,5 @@
1
- import "./utils.mjs";
2
1
  import "./yield.mjs";
2
+ import "./utils.mjs";
3
3
  import "../expression/evaluate.mjs";
4
4
  import "./execute.mjs";
5
5
  export {};
@@ -1,5 +1,5 @@
1
- import "./utils.mjs";
2
1
  import "./yield.mjs";
2
+ import "./utils.mjs";
3
3
  import "../expression/evaluate.mjs";
4
4
  import "./execute.mjs";
5
5
  export {};