@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,7 +1,7 @@
1
- import { parquetMetadataAsync } from "../../../../hyparquet@1.28.2/node_modules/hyparquet/src/metadata.mjs";
2
- import { asyncBufferFromUrl, cachedAsyncBuffer } from "../../../../hyparquet@1.28.2/node_modules/hyparquet/src/utils.mjs";
3
- import { parquetReadObjects } from "../../../../hyparquet@1.28.2/node_modules/hyparquet/src/read.mjs";
4
- import "../../../../hyparquet@1.28.2/node_modules/hyparquet/src/node.mjs";
1
+ import { parquetMetadataAsync } from "../../../../hyparquet@1.29.1/node_modules/hyparquet/src/metadata.mjs";
2
+ import { asyncBufferFromUrl, cachedAsyncBuffer } from "../../../../hyparquet@1.29.1/node_modules/hyparquet/src/utils.mjs";
3
+ import { parquetReadObjects } from "../../../../hyparquet@1.29.1/node_modules/hyparquet/src/read.mjs";
4
+ import "../../../../hyparquet@1.29.1/node_modules/hyparquet/src/node.mjs";
5
5
  import { compressors } from "../../../../hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/compressors.mjs";
6
6
  import "../../../../hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/index.mjs";
7
7
  import { ByteWriter } from "../../../../hyparquet-writer@0.16.6_patch_hash=549d1fd1fb9614da77df9123bf6978a8fccfe1d9bb8882863ce6159f666e821a/node_modules/hyparquet-writer/src/bytewriter.mjs";
@@ -10,6 +10,12 @@ import { avroMetadata } from "./avro/avro.metadata.mjs";
10
10
  import { avroRead } from "./avro/avro.read.mjs";
11
11
  import { puffinReadDeletionVector } from "./puffin/puffin.mjs";
12
12
  import { sanitize } from "./utils.mjs";
13
+ const SMALL_PARQUET_FILE_SIZE = 8388608;
14
+ const SMALL_PARQUET_FOOTER_SIZE = 131072;
15
+ function readParquetMetadata(file) {
16
+ if (file.byteLength >= SMALL_PARQUET_FILE_SIZE) return parquetMetadataAsync(file);
17
+ return parquetMetadataAsync(file, { initialFetchSize: SMALL_PARQUET_FOOTER_SIZE });
18
+ }
13
19
  function translateS3Url(url) {
14
20
  if (url.startsWith("s3a://") || url.startsWith("s3://")) {
15
21
  const rest = url.slice(url.indexOf("://") + 3);
@@ -153,8 +159,10 @@ async function fetchDeleteMaps(deleteEntries, resolver) {
153
159
  for (const pos of positions) set.add(pos);
154
160
  addPositionDeleteGroup(positionDeletesMap, referenced_data_file, deleteEntry, set);
155
161
  } else {
162
+ const metadata = await readParquetMetadata(file);
156
163
  const deleteRows = await parquetReadObjects({
157
164
  file,
165
+ metadata,
158
166
  compressors
159
167
  });
160
168
  const positionsByPath = /* @__PURE__ */ new Map();
@@ -176,7 +184,7 @@ async function fetchDeleteMaps(deleteEntries, resolver) {
176
184
  const equalityIds = deleteEntry.data_file.equality_ids;
177
185
  if (sequence_number === void 0) throw new Error("equality delete missing sequence number");
178
186
  if (!equalityIds?.length) throw new Error("equality delete missing equality_ids");
179
- const metadata = await parquetMetadataAsync(file);
187
+ const metadata = await readParquetMetadata(file);
180
188
  const columnNamesById = equalityColumnNamesById(metadata, equalityIds);
181
189
  const columns = equalityIds.map((id) => columnNamesById[id]);
182
190
  const deleteRows = await parquetReadObjects({
@@ -261,4 +269,4 @@ async function fetchAvroRecords(url, resolver, byteLength) {
261
269
  syncMarker
262
270
  });
263
271
  }
264
- export { cachingResolver, fetchAvroRecords, fetchDeleteMaps, resolveText, s3Lister, s3ParseUrl, translateS3Url, urlResolver };
272
+ export { cachingResolver, fetchAvroRecords, fetchDeleteMaps, readParquetMetadata, resolveText, s3Lister, s3ParseUrl, translateS3Url, urlResolver };
@@ -4,10 +4,10 @@ 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.2/node_modules/squirreling/src/index.mjs";
7
8
  import "./read.mjs";
8
9
  import { icebergAppend, icebergCreateTable, icebergDropTable } from "./write/write.mjs";
9
10
  import "./catalog/file.mjs";
10
- import "../../../../squirreling@0.15.3/node_modules/squirreling/src/index.mjs";
11
11
  import "./sql/icebergDataSource.mjs";
12
12
  import "./sql/icebergQuery.mjs";
13
13
  export { icebergAppend, icebergCreateTable, icebergDropTable, icebergManifests, restCatalogConnect, restCatalogCreateNamespace, restCatalogListTables, restCatalogLoadTable, s3SignedResolver };
@@ -29,6 +29,7 @@ async function fetchOneManifest(manifest, resolver) {
29
29
  const entries = await fetchAvroRecords(url, resolver, Number(manifest.manifest_length));
30
30
  for (const entry of entries) {
31
31
  entry.partition_spec_id = manifest.partition_spec_id ?? 0;
32
+ if (entry.snapshot_id == null) entry.snapshot_id = manifest.added_snapshot_id;
32
33
  if (entry.sequence_number === void 0) entry.sequence_number = manifest.sequence_number ?? 0n;
33
34
  if (entry.status === 1) {
34
35
  if (entry.sequence_number === void 0) entry.sequence_number = manifest.sequence_number;
@@ -40,14 +40,6 @@ function icebergLatestVersion({ tableUrl, resolver, lister }) {
40
40
  throw new Error(`failed to determine latest iceberg version of ${tableUrl}: ${err.message}`);
41
41
  });
42
42
  }
43
- async function icebergMetadata({ tableUrl, metadataFileName, resolver, lister }) {
44
- return (await resolveMetadata({
45
- tableUrl,
46
- metadataFileName,
47
- resolver,
48
- lister
49
- })).metadata;
50
- }
51
43
  async function resolveMetadata({ tableUrl, metadataFileName, resolver, lister }) {
52
44
  resolver ??= urlResolver();
53
45
  lister ??= s3Lister();
@@ -161,4 +153,4 @@ function metadataFilePreference(file, paddedVersion) {
161
153
  if (file.startsWith(`${paddedVersion}-`) && file.endsWith(".metadata.json.gz")) return 5;
162
154
  return 6;
163
155
  }
164
- export { icebergLatestVersion, icebergMetadata, loadLatestFileCatalogMetadata, resolveMetadata };
156
+ export { icebergLatestVersion, loadLatestFileCatalogMetadata, resolveMetadata };
@@ -1,91 +1,24 @@
1
- import { parquetMetadataAsync } from "../../../../hyparquet@1.28.2/node_modules/hyparquet/src/metadata.mjs";
2
- import { cachedAsyncBuffer, concat } from "../../../../hyparquet@1.28.2/node_modules/hyparquet/src/utils.mjs";
3
- import { parquetReadObjects } from "../../../../hyparquet@1.28.2/node_modules/hyparquet/src/read.mjs";
4
- import "../../../../hyparquet@1.28.2/node_modules/hyparquet/src/node.mjs";
1
+ import { cachedAsyncBuffer } from "../../../../hyparquet@1.29.1/node_modules/hyparquet/src/utils.mjs";
2
+ import { columnsNeededForFilter, matchFilter } from "../../../../hyparquet@1.29.1/node_modules/hyparquet/src/filter.mjs";
3
+ import { parquetScan } from "../../../../hyparquet@1.29.1/node_modules/hyparquet/src/scan.mjs";
4
+ import { parquetReadObjects } from "../../../../hyparquet@1.29.1/node_modules/hyparquet/src/read.mjs";
5
+ import "../../../../hyparquet@1.29.1/node_modules/hyparquet/src/node.mjs";
5
6
  import { compressors } from "../../../../hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/compressors.mjs";
6
7
  import "../../../../hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/index.mjs";
7
8
  import { equalityMatch, sanitize } from "./utils.mjs";
8
- import { fetchDeleteMaps, urlResolver } from "./fetch.mjs";
9
- import { icebergManifests, splitManifestEntries } from "./manifest.mjs";
10
- import { icebergMetadata } from "./metadata.mjs";
9
+ import { readParquetMetadata } from "./fetch.mjs";
10
+ import "./manifest.mjs";
11
+ import "./metadata.mjs";
11
12
  import { deleteFileAppliesToDataEntry } from "./delete.mjs";
12
- const DEFAULT_ROW_GROUP_CONCURRENCY = 4;
13
- async function icebergRead({ tableUrl, rowStart = 0, rowEnd = Infinity, metadataFileName, metadata, snapshotId, resolver, lister, rowGroupConcurrency = DEFAULT_ROW_GROUP_CONCURRENCY }) {
14
- if (!tableUrl) throw new Error("tableUrl is required");
15
- if (rowStart > rowEnd) throw new Error("rowStart must be less than rowEnd");
16
- if (rowStart < 0) throw new Error("rowStart must be positive");
17
- rowGroupConcurrency = normalizeRowGroupConcurrency(rowGroupConcurrency);
18
- resolver ??= urlResolver();
19
- metadata ??= await icebergMetadata({
20
- tableUrl,
21
- metadataFileName,
22
- resolver,
23
- lister
24
- });
25
- const manifestList = await icebergManifests({
26
- metadata,
27
- resolver,
28
- snapshotId
29
- });
30
- const currentSchemaId = metadata["current-schema-id"];
31
- const schema = metadata.schemas.find((s) => s["schema-id"] === currentSchemaId);
32
- if (!schema) throw new Error("current schema not found in metadata");
33
- const rowLineage = metadata["format-version"] >= 3;
34
- const { dataEntries, deleteEntries } = splitManifestEntries(manifestList);
35
- if (dataEntries.length === 0) throw new Error("No data manifest files found for current snapshot");
36
- const hasDeletes = deleteEntries.length > 0;
37
- const deleteMaps = fetchDeleteMaps(deleteEntries, resolver);
38
- const totalRowsToRead = rowEnd === Infinity ? Infinity : rowEnd - rowStart;
39
- let fileIndex = 0;
40
- let skipRows = rowStart;
41
- if (hasDeletes) skipRows = 0;
42
- else while (fileIndex < dataEntries.length && skipRows >= dataEntries[fileIndex].data_file.record_count) {
43
- skipRows -= Number(dataEntries[fileIndex].data_file.record_count);
44
- fileIndex++;
45
- }
46
- const fileReads = [];
47
- let rowsRemaining = hasDeletes ? Infinity : totalRowsToRead;
48
- for (let i = fileIndex; i < dataEntries.length && rowsRemaining > 0; i++) {
49
- const recordCount = Number(dataEntries[i].data_file.record_count);
50
- const fileRowStart = i === fileIndex ? skipRows : 0;
51
- const availableRows = recordCount - fileRowStart;
52
- if (availableRows <= 0) continue;
53
- const rowsToRead = rowsRemaining === Infinity ? availableRows : Math.min(rowsRemaining, availableRows);
54
- fileReads.push({
55
- entry: dataEntries[i],
56
- fileRowStart,
57
- fileRowEnd: fileRowStart + rowsToRead
58
- });
59
- if (rowsRemaining !== Infinity) rowsRemaining -= rowsToRead;
60
- }
61
- const { positionDeletesMap, equalityDeleteGroups } = await deleteMaps;
62
- const rows = (await Promise.all(fileReads.map(async ({ entry, fileRowStart, fileRowEnd }) => {
63
- const rows = [];
64
- for await (const batch of readDataFile({
65
- dataEntry: entry,
66
- fileRowStart,
67
- fileRowEnd,
68
- schema,
69
- metadata,
70
- resolver,
71
- rowLineage,
72
- positionDeletesMap,
73
- equalityDeleteGroups,
74
- rowGroupConcurrency
75
- })) concat(rows, batch);
76
- return rows;
77
- }))).flat();
78
- if (!hasDeletes) return rows;
79
- return rows.slice(rowStart, rowEnd === Infinity ? void 0 : rowEnd);
80
- }
81
- async function* readDataFile({ dataEntry, fileRowStart, fileRowEnd, schema, metadata, resolver, rowLineage, positionDeletesMap, equalityDeleteGroups, wantedColumns, rowGroupConcurrency = 1, filter, signal }) {
13
+ import "../../../../squirreling@0.16.2/node_modules/squirreling/src/index.mjs";
14
+ async function* readDataFile({ dataEntry, fileRowStart, fileRowEnd, schema, metadata, resolver, rowLineage, positionDeletesMap = /* @__PURE__ */ new Map(), equalityDeleteGroups = [], wantedColumns, rowGroupConcurrency = 1, filter, signal }) {
82
15
  const { data_file, sequence_number, partition_spec_id } = dataEntry;
83
16
  if (sequence_number === void 0) throw new Error("sequence number not found, check v2 inheritance logic");
84
17
  const sequenceNumber = sequence_number;
85
18
  const partitionSpec = metadata["partition-specs"].find((s) => s["spec-id"] === partition_spec_id);
86
19
  const resolved = await resolver.reader(data_file.file_path, Number(data_file.file_size_in_bytes));
87
20
  const asyncBuffer = cachedAsyncBuffer(resolved);
88
- const parquetMetadata = await parquetMetadataAsync(asyncBuffer);
21
+ const parquetMetadata = await readParquetMetadata(asyncBuffer);
89
22
  const kv = parquetMetadata.key_value_metadata?.find((k) => k.key === "iceberg.schema");
90
23
  let parquetIcebergSchema;
91
24
  if (kv?.value) parquetIcebergSchema = JSON.parse(kv.value);
@@ -130,23 +63,40 @@ async function* readDataFile({ dataEntry, fileRowStart, fileRowEnd, schema, meta
130
63
  if (parquetName) icebergToParquet[schema.fields[i].name] = parquetName;
131
64
  }
132
65
  const parquetFilter = filter ? remapFilterColumns(filter, icebergToParquet) : void 0;
133
- async function readRowGroupRange({ readStart, readEnd }) {
66
+ const readColumns = [...parquetColumns];
67
+ if (parquetFilter) {
68
+ for (const column of columnsNeededForFilter(parquetFilter)) if (!readColumns.includes(column)) readColumns.push(column);
69
+ }
70
+ const scan = await parquetScan({
71
+ file: asyncBuffer,
72
+ metadata: parquetMetadata,
73
+ columns: readColumns,
74
+ pruningFilter: parquetFilter,
75
+ rowStart: fileRowStart,
76
+ rowEnd: fileRowEnd,
77
+ compressors,
78
+ filterStrict: false,
79
+ useBloomFilters: true,
80
+ usePageIndex: true,
81
+ utf8: false
82
+ });
83
+ if (signal?.aborted) throw new DOMException("Aborted", "AbortError");
84
+ async function readCandidateRange({ readStart, readEnd }) {
134
85
  const rows = await parquetReadObjects({
135
86
  file: asyncBuffer,
136
87
  metadata: parquetMetadata,
137
- columns: parquetColumns,
88
+ columns: readColumns,
138
89
  rowStart: readStart,
139
90
  rowEnd: readEnd,
140
91
  compressors,
141
- filter: parquetFilter,
142
- filterStrict: false,
143
- useBloomFilters: true,
92
+ useOffsetIndex: true,
144
93
  utf8: false
145
94
  });
146
95
  const batch = [];
147
96
  for (let idx = 0; idx < rows.length; idx++) {
148
97
  const row = rows[idx];
149
98
  const pos = BigInt(readStart + idx);
99
+ if (parquetFilter && !matchFilter(row, parquetFilter, false)) continue;
150
100
  if (positionDeletes.has(pos)) continue;
151
101
  if (applicableEqualityGroups.some((group) => group.rows.some((predicate) => equalityMatch(row, predicate, dataColumnNamesById)))) continue;
152
102
  const mapped = {};
@@ -185,30 +135,15 @@ async function* readDataFile({ dataEntry, fileRowStart, fileRowEnd, schema, meta
185
135
  }
186
136
  return batch;
187
137
  }
188
- const rowGroupRanges = [];
189
- let groupStart = 0;
190
- for (const rowGroup of parquetMetadata.row_groups) {
191
- if (signal?.aborted) throw new DOMException("Aborted", "AbortError");
192
- const rowCount = Number(rowGroup.num_rows);
193
- const groupEnd = groupStart + rowCount;
194
- if (groupEnd <= fileRowStart) {
195
- groupStart = groupEnd;
196
- continue;
197
- }
198
- if (groupStart >= fileRowEnd) break;
199
- const readStart = Math.max(groupStart, fileRowStart);
200
- const readEnd = Math.min(groupEnd, fileRowEnd);
201
- rowGroupRanges.push({
202
- readStart,
203
- readEnd
204
- });
205
- groupStart = groupEnd;
206
- }
138
+ const candidateRanges = scan.ranges.map(({ rowStart, rowEnd }) => ({
139
+ readStart: rowStart,
140
+ readEnd: rowEnd
141
+ }));
207
142
  const concurrency = normalizeRowGroupConcurrency(rowGroupConcurrency);
208
- if (concurrency === 1 || rowGroupRanges.length <= 1) {
209
- for (const range of rowGroupRanges) {
143
+ if (concurrency === 1 || candidateRanges.length <= 1) {
144
+ for (const range of candidateRanges) {
210
145
  if (signal?.aborted) throw new DOMException("Aborted", "AbortError");
211
- const batch = await readRowGroupRange(range);
146
+ const batch = await readCandidateRange(range);
212
147
  if (batch.length > 0) yield batch;
213
148
  }
214
149
  return;
@@ -217,21 +152,21 @@ async function* readDataFile({ dataEntry, fileRowStart, fileRowEnd, schema, meta
217
152
  let nextStart = 0;
218
153
  let nextYield = 0;
219
154
  function startTask(index) {
220
- const task = readRowGroupRange(rowGroupRanges[index]).then((batch) => ({ batch }), (error) => ({ error }));
155
+ const task = readCandidateRange(candidateRanges[index]).then((batch) => ({ batch }), (error) => ({ error }));
221
156
  tasks.set(index, task);
222
157
  }
223
- while (nextStart < rowGroupRanges.length && tasks.size < concurrency) {
158
+ while (nextStart < candidateRanges.length && tasks.size < concurrency) {
224
159
  startTask(nextStart);
225
160
  nextStart++;
226
161
  }
227
- while (nextYield < rowGroupRanges.length) {
162
+ while (nextYield < candidateRanges.length) {
228
163
  if (signal?.aborted) throw new DOMException("Aborted", "AbortError");
229
164
  const task = tasks.get(nextYield);
230
165
  if (!task) throw new Error("internal row group scheduling error");
231
166
  const result = await task;
232
167
  tasks.delete(nextYield);
233
168
  if (result.error) throw result.error;
234
- while (nextStart < rowGroupRanges.length && tasks.size < concurrency) {
169
+ while (nextStart < candidateRanges.length && tasks.size < concurrency) {
235
170
  startTask(nextStart);
236
171
  nextStart++;
237
172
  }
@@ -322,4 +257,4 @@ function applyRowLineage(out, { row, pos, firstRowId, sequenceNumber, rowIdColum
322
257
  else if (firstRowId != null) out._last_updated_sequence_number = sequenceNumber;
323
258
  else out._last_updated_sequence_number = null;
324
259
  }
325
- export { icebergRead, readDataFile };
260
+ export { readDataFile };
@@ -1,8 +1,8 @@
1
1
  import "../fetch.mjs";
2
2
  import "../manifest.mjs";
3
3
  import "../metadata.mjs";
4
+ import "../../../../../squirreling@0.16.2/node_modules/squirreling/src/index.mjs";
4
5
  import "../read.mjs";
5
- import "../../../../../squirreling@0.15.3/node_modules/squirreling/src/index.mjs";
6
6
  import "../prune.mjs";
7
7
  import "./whereFilter.mjs";
8
8
  export {};
@@ -1,5 +1,5 @@
1
1
  import "../fetch.mjs";
2
2
  import "../catalog/loadTable.mjs";
3
- import "../../../../../squirreling@0.15.3/node_modules/squirreling/src/index.mjs";
3
+ import "../../../../../squirreling@0.16.2/node_modules/squirreling/src/index.mjs";
4
4
  import "./icebergDataSource.mjs";
5
5
  export {};
@@ -1,5 +1,5 @@
1
- import { AsyncBuffer } from "../../../../hyparquet@1.28.2/node_modules/hyparquet/types/index.mjs";
2
- import "../../../../hyparquet@1.28.2/node_modules/hyparquet/types/node.mjs";
1
+ import { AsyncBuffer } from "../../../../hyparquet@1.29.1/node_modules/hyparquet/types/index.mjs";
2
+ import "../../../../hyparquet@1.29.1/node_modules/hyparquet/types/node.mjs";
3
3
  import { Writer } from "../../../../hyparquet-writer@0.16.6_patch_hash=549d1fd1fb9614da77df9123bf6978a8fccfe1d9bb8882863ce6159f666e821a/node_modules/hyparquet-writer/types/index.mjs";
4
4
  import "../../../../hyparquet-writer@0.16.6_patch_hash=549d1fd1fb9614da77df9123bf6978a8fccfe1d9bb8882863ce6159f666e821a/node_modules/hyparquet-writer/types/node.mjs";
5
5
  interface WriterOptions {
@@ -38,6 +38,16 @@ function manifestEntrySchema(schema, partitionSpec, formatVersion, manifestConte
38
38
  mapField("nan_value_counts", 137, "k138_v139", 138, 139, "long"),
39
39
  mapField("lower_bounds", 125, "k126_v127", 126, 127, "bytes"),
40
40
  mapField("upper_bounds", 128, "k129_v130", 129, 130, "bytes"),
41
+ {
42
+ name: "split_offsets",
43
+ type: ["null", {
44
+ type: "array",
45
+ items: "long",
46
+ "element-id": 133
47
+ }],
48
+ default: null,
49
+ "field-id": 132
50
+ },
41
51
  {
42
52
  name: "sort_order_id",
43
53
  type: ["null", "int"],
@@ -151,6 +161,7 @@ function icebergSchemaJson(schema) {
151
161
  }
152
162
  function encodeMap(m) {
153
163
  if (!m) return null;
164
+ if (Array.isArray(m)) return m.length ? m : null;
154
165
  const entries = Object.entries(m);
155
166
  if (!entries.length) return null;
156
167
  return entries.map(([k, value]) => ({
@@ -169,6 +180,7 @@ function writeDataManifest({ writer, schema, partitionSpec, snapshotId, dataFile
169
180
  records,
170
181
  metadata: {
171
182
  "format-version": String(formatVersion),
183
+ "schema-id": String(schema["schema-id"]),
172
184
  content: "data",
173
185
  schema: icebergSchemaJson(schema),
174
186
  "partition-spec": partitionSpecJson(partitionSpec),
@@ -188,6 +200,7 @@ function writeDeleteManifest({ writer, schema, partitionSpec, snapshotId, delete
188
200
  records,
189
201
  metadata: {
190
202
  "format-version": String(formatVersion),
203
+ "schema-id": String(schema["schema-id"]),
191
204
  content: "deletes",
192
205
  schema: icebergSchemaJson(schema),
193
206
  "partition-spec": partitionSpecJson(partitionSpec),
@@ -195,6 +208,35 @@ function writeDeleteManifest({ writer, schema, partitionSpec, snapshotId, delete
195
208
  }
196
209
  });
197
210
  }
211
+ function writeExistingDataManifest({ writer, schema, partitionSpec, entries, formatVersion = 2 }) {
212
+ const records = entries.map((entry) => {
213
+ const dataFile = entry.data_file;
214
+ if (entry.status === 2) throw new Error("writeExistingDataManifest cannot rewrite deleted entries as existing");
215
+ if (dataFile.content !== 0) throw new Error(`writeExistingDataManifest expects data files (content=0), got content=${dataFile.content}`);
216
+ if (entry.partition_spec_id !== partitionSpec["spec-id"]) throw new Error(`existing data entry partition spec ${entry.partition_spec_id} does not match ${partitionSpec["spec-id"]}`);
217
+ const record = manifestEntryRecord(dataFile, schema, partitionSpec, 0n, formatVersion, 0);
218
+ record.status = 0;
219
+ record.snapshot_id = entry.snapshot_id ?? null;
220
+ record.sequence_number = entry.sequence_number ?? null;
221
+ record.file_sequence_number = entry.file_sequence_number ?? null;
222
+ if (record.snapshot_id == null) throw new Error("existing data manifest entry missing snapshot id");
223
+ if (record.sequence_number == null || record.file_sequence_number == null) throw new Error("existing data manifest entry missing sequence numbers");
224
+ return record;
225
+ });
226
+ return avroWrite({
227
+ writer,
228
+ schema: manifestEntrySchema(schema, partitionSpec, formatVersion, 0),
229
+ records,
230
+ metadata: {
231
+ "format-version": String(formatVersion),
232
+ "schema-id": String(schema["schema-id"]),
233
+ content: "data",
234
+ schema: icebergSchemaJson(schema),
235
+ "partition-spec": partitionSpecJson(partitionSpec),
236
+ "partition-spec-id": String(partitionSpec["spec-id"])
237
+ }
238
+ });
239
+ }
198
240
  function writeExistingDeleteManifest({ writer, schema, partitionSpec, entries, formatVersion = 2 }) {
199
241
  const records = entries.map((entry) => {
200
242
  const deleteFile = entry.data_file;
@@ -213,6 +255,7 @@ function writeExistingDeleteManifest({ writer, schema, partitionSpec, entries, f
213
255
  records,
214
256
  metadata: {
215
257
  "format-version": String(formatVersion),
258
+ "schema-id": String(schema["schema-id"]),
216
259
  content: "deletes",
217
260
  schema: icebergSchemaJson(schema),
218
261
  "partition-spec": partitionSpecJson(partitionSpec),
@@ -234,6 +277,7 @@ function manifestEntryRecord(dataFile, schema, partitionSpec, snapshotId, format
234
277
  nan_value_counts: encodeMap(dataFile.nan_value_counts),
235
278
  lower_bounds: encodeMap(dataFile.lower_bounds),
236
279
  upper_bounds: encodeMap(dataFile.upper_bounds),
280
+ split_offsets: dataFile.split_offsets?.length ? dataFile.split_offsets : null,
237
281
  sort_order_id: dataFile.content === 1 ? null : dataFile.sort_order_id ?? 0
238
282
  };
239
283
  if (manifestContent === 1) {
@@ -253,4 +297,4 @@ function manifestEntryRecord(dataFile, schema, partitionSpec, snapshotId, format
253
297
  data_file: dataFileRecord
254
298
  };
255
299
  }
256
- export { writeDataManifest, writeDeleteManifest, writeExistingDeleteManifest };
300
+ export { writeDataManifest, writeDeleteManifest, writeExistingDataManifest, writeExistingDeleteManifest };