@gscdump/engine 3.1.0 → 3.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (200) hide show
  1. package/LICENSE +21 -0
  2. package/dist/THIRD-PARTY-LICENSES.md +2 -2
  3. package/dist/adapters/hyparquet.d.mts +2 -2
  4. package/dist/adapters/hyparquet.mjs +2 -2
  5. package/dist/iceberg/catalog.d.mts +2 -2
  6. package/dist/iceberg/catalog.mjs +2 -2
  7. package/dist/node_modules/.pnpm/hyparquet@1.29.1/node_modules/hyparquet/src/assemble.mjs +3 -0
  8. package/dist/node_modules/.pnpm/hyparquet@1.29.1/node_modules/hyparquet/src/bloom.mjs +14 -0
  9. package/dist/node_modules/.pnpm/hyparquet@1.29.1/node_modules/hyparquet/src/column.mjs +8 -0
  10. package/dist/node_modules/.pnpm/hyparquet@1.29.1/node_modules/hyparquet/src/convert.mjs +3 -0
  11. package/dist/node_modules/.pnpm/hyparquet@1.29.1/node_modules/hyparquet/src/datapage.mjs +6 -0
  12. package/dist/node_modules/.pnpm/hyparquet@1.29.1/node_modules/hyparquet/src/delta.mjs +2 -0
  13. package/dist/node_modules/.pnpm/hyparquet@1.29.1/node_modules/hyparquet/src/encoding.mjs +2 -0
  14. package/dist/node_modules/.pnpm/hyparquet@1.29.1/node_modules/hyparquet/src/filter.mjs +4 -0
  15. package/dist/node_modules/.pnpm/hyparquet@1.29.1/node_modules/hyparquet/src/index.mjs +8 -0
  16. package/dist/node_modules/.pnpm/hyparquet@1.29.1/node_modules/hyparquet/src/indexes.mjs +5 -0
  17. package/dist/node_modules/.pnpm/hyparquet@1.29.1/node_modules/hyparquet/src/metadata.mjs +7 -0
  18. package/dist/node_modules/.pnpm/hyparquet@1.29.1/node_modules/hyparquet/src/node.mjs +2 -0
  19. package/dist/node_modules/.pnpm/hyparquet@1.29.1/node_modules/hyparquet/src/plan.mjs +6 -0
  20. package/dist/node_modules/.pnpm/hyparquet@1.29.1/node_modules/hyparquet/src/read.mjs +7 -0
  21. package/dist/node_modules/.pnpm/hyparquet@1.29.1/node_modules/hyparquet/src/rowgroup.mjs +7 -0
  22. package/dist/node_modules/.pnpm/hyparquet@1.29.1/node_modules/hyparquet/src/scan.mjs +6 -0
  23. package/dist/node_modules/.pnpm/hyparquet@1.29.1/node_modules/hyparquet/src/types.d.mts +9 -0
  24. package/dist/node_modules/.pnpm/hyparquet@1.29.1/node_modules/hyparquet/src/utils.mjs +2 -0
  25. package/dist/node_modules/.pnpm/hyparquet@1.29.1/node_modules/hyparquet/src/variant.mjs +3 -0
  26. package/dist/node_modules/.pnpm/hyparquet@1.29.1/node_modules/hyparquet/types/index.d.mts +10 -0
  27. package/dist/node_modules/.pnpm/hyparquet@1.29.1/node_modules/hyparquet/types/node.d.mts +3 -0
  28. package/dist/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.2}/node_modules/hyparquet/src/index.mjs +1 -0
  29. package/dist/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.2}/node_modules/hyparquet/src/plan.mjs +115 -87
  30. package/dist/node_modules/.pnpm/hyparquet@1.29.2/node_modules/hyparquet/src/query.mjs +3 -0
  31. package/dist/node_modules/.pnpm/hyparquet@1.29.2/node_modules/hyparquet/src/read.mjs +78 -0
  32. package/dist/node_modules/.pnpm/hyparquet@1.29.2/node_modules/hyparquet/src/scan.mjs +74 -0
  33. package/dist/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.2}/node_modules/hyparquet/src/types.d.mts +1 -9
  34. package/dist/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.2}/node_modules/hyparquet/types/index.d.mts +7 -3
  35. package/dist/node_modules/.pnpm/hyparquet@1.29.2/node_modules/hyparquet/types/node.d.mts +3 -0
  36. package/dist/node_modules/.pnpm/hyparquet@1.29.2/node_modules/hyparquet/types/scan.d.mts +1 -0
  37. package/dist/node_modules/.pnpm/hyparquet@1.29.2/node_modules/hyparquet/types/utils.d.mts +1 -0
  38. package/dist/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
  39. package/dist/node_modules/.pnpm/{icebird@0.8.22_patch_hash_4fa7fd5702c4ce432fb2902c6abe07cc55565e87f6375b96ece63a10999712e6 → icebird@0.8.26_patch_hash_75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244}/node_modules/icebird/src/fetch.mjs +1 -1
  40. package/dist/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
  41. package/dist/node_modules/.pnpm/icebird@0.8.26_patch_hash_75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244/node_modules/icebird/src/read.mjs +11 -0
  42. package/dist/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
  43. package/dist/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
  44. package/dist/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
  45. package/dist/node_modules/.pnpm/{icebird@0.8.22_patch_hash_4fa7fd5702c4ce432fb2902c6abe07cc55565e87f6375b96ece63a10999712e6 → icebird@0.8.26_patch_hash_75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244}/node_modules/icebird/src/write/rewrite.mjs +3 -0
  46. package/dist/node_modules/.pnpm/icebird@0.8.26_patch_hash_75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244/node_modules/icebird/types/create.d.mts +1 -0
  47. package/dist/node_modules/.pnpm/icebird@0.8.26_patch_hash_75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244/node_modules/icebird/types/fetch.d.mts +2 -0
  48. package/dist/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
  49. package/dist/node_modules/.pnpm/icebird@0.8.26_patch_hash_75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244/node_modules/icebird/types/manifest.d.mts +1 -0
  50. package/dist/node_modules/.pnpm/icebird@0.8.26_patch_hash_75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244/node_modules/icebird/types/metadata.d.mts +1 -0
  51. package/dist/node_modules/.pnpm/icebird@0.8.26_patch_hash_75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244/node_modules/icebird/types/read.d.mts +3 -0
  52. package/dist/node_modules/.pnpm/icebird@0.8.26_patch_hash_75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244/node_modules/icebird/types/s3.d.mts +1 -0
  53. package/dist/node_modules/.pnpm/icebird@0.8.26_patch_hash_75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244/node_modules/icebird/types/sql/icebergDataSource.d.mts +2 -0
  54. package/dist/node_modules/.pnpm/icebird@0.8.26_patch_hash_75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244/node_modules/icebird/types/sql/icebergQuery.d.mts +2 -0
  55. package/dist/node_modules/.pnpm/squirreling@0.16.2/node_modules/squirreling/src/ast.d.mts +1 -0
  56. package/dist/node_modules/.pnpm/squirreling@0.16.2/node_modules/squirreling/src/backend/batchAdapters.mjs +3 -0
  57. package/dist/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/execute/aggregates.mjs +2 -1
  58. package/dist/node_modules/.pnpm/squirreling@0.16.2/node_modules/squirreling/src/execute/batchResults.mjs +3 -0
  59. package/dist/node_modules/.pnpm/squirreling@0.16.2/node_modules/squirreling/src/execute/batches.mjs +4 -0
  60. package/dist/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/execute/execute.mjs +7 -1
  61. package/dist/node_modules/.pnpm/squirreling@0.16.2/node_modules/squirreling/src/execute/rowScope.mjs +2 -0
  62. package/dist/node_modules/.pnpm/squirreling@0.16.2/node_modules/squirreling/src/execute/scanColumn.mjs +1 -0
  63. package/dist/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/execute/streamingAggregate.mjs +4 -1
  64. package/dist/node_modules/.pnpm/squirreling@0.16.2/node_modules/squirreling/src/execute/utils.mjs +2 -0
  65. package/dist/node_modules/.pnpm/squirreling@0.16.2/node_modules/squirreling/src/expression/alias.mjs +1 -0
  66. package/dist/node_modules/.pnpm/squirreling@0.16.2/node_modules/squirreling/src/expression/batch.mjs +10 -0
  67. package/dist/node_modules/.pnpm/squirreling@0.16.2/node_modules/squirreling/src/expression/binary.mjs +2 -0
  68. package/dist/node_modules/.pnpm/squirreling@0.16.2/node_modules/squirreling/src/expression/date.mjs +1 -0
  69. package/dist/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/expression/evaluate.mjs +4 -3
  70. package/dist/node_modules/.pnpm/squirreling@0.16.2/node_modules/squirreling/src/expression/math.mjs +1 -0
  71. package/dist/node_modules/.pnpm/squirreling@0.16.2/node_modules/squirreling/src/expression/scalar.mjs +4 -0
  72. package/dist/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/index.mjs +2 -0
  73. package/dist/node_modules/.pnpm/squirreling@0.16.2/node_modules/squirreling/src/parse/extractTables.mjs +1 -0
  74. package/dist/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/plan/columns.mjs +1 -0
  75. package/dist/node_modules/.pnpm/squirreling@0.16.2/node_modules/squirreling/src/spatial/wkt.mjs +1 -0
  76. package/dist/node_modules/.pnpm/squirreling@0.16.2/node_modules/squirreling/src/validation/keywords.mjs +1 -0
  77. package/dist/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/validation/tables.mjs +1 -0
  78. package/dist/storage.d.mts +2 -2
  79. package/dist/vendor/hysnappy-purejs.mjs +1 -1
  80. package/package.json +9 -9
  81. package/dist/node_modules/.pnpm/hyparquet@1.28.2/node_modules/hyparquet/src/read.mjs +0 -128
  82. package/dist/node_modules/.pnpm/hyparquet@1.28.2/node_modules/hyparquet/types/node.d.mts +0 -3
  83. package/dist/node_modules/.pnpm/icebird@0.8.22_patch_hash_4fa7fd5702c4ce432fb2902c6abe07cc55565e87f6375b96ece63a10999712e6/node_modules/icebird/src/read.mjs +0 -9
  84. package/dist/node_modules/.pnpm/icebird@0.8.22_patch_hash_4fa7fd5702c4ce432fb2902c6abe07cc55565e87f6375b96ece63a10999712e6/node_modules/icebird/types/read.d.mts +0 -2
  85. package/dist/node_modules/.pnpm/icebird@0.8.22_patch_hash_4fa7fd5702c4ce432fb2902c6abe07cc55565e87f6375b96ece63a10999712e6/node_modules/icebird/types/sql/icebergDataSource.d.mts +0 -2
  86. package/dist/node_modules/.pnpm/icebird@0.8.22_patch_hash_4fa7fd5702c4ce432fb2902c6abe07cc55565e87f6375b96ece63a10999712e6/node_modules/icebird/types/sql/icebergQuery.d.mts +0 -2
  87. package/dist/node_modules/.pnpm/{icebird@0.8.22_patch_hash_4fa7fd5702c4ce432fb2902c6abe07cc55565e87f6375b96ece63a10999712e6/node_modules/icebird/src/avro/avro.metadata.mjs → hyparquet@1.29.1/node_modules/hyparquet/src/constants.mjs} +0 -0
  88. package/dist/node_modules/.pnpm/{icebird@0.8.22_patch_hash_4fa7fd5702c4ce432fb2902c6abe07cc55565e87f6375b96ece63a10999712e6/node_modules/icebird/src/catalog/file.mjs → hyparquet@1.29.1/node_modules/hyparquet/src/geoparquet.mjs} +0 -0
  89. package/dist/node_modules/.pnpm/{icebird@0.8.22_patch_hash_4fa7fd5702c4ce432fb2902c6abe07cc55565e87f6375b96ece63a10999712e6/node_modules/icebird/src/puffin/roaring.mjs → hyparquet@1.29.1/node_modules/hyparquet/src/plain.mjs} +0 -0
  90. package/dist/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.1}/node_modules/hyparquet/src/query.mjs +0 -0
  91. package/dist/node_modules/.pnpm/{icebird@0.8.22_patch_hash_4fa7fd5702c4ce432fb2902c6abe07cc55565e87f6375b96ece63a10999712e6/node_modules/icebird/src/sql/whereFilter.mjs → hyparquet@1.29.1/node_modules/hyparquet/src/schema.mjs} +0 -0
  92. package/dist/node_modules/.pnpm/{icebird@0.8.22_patch_hash_4fa7fd5702c4ce432fb2902c6abe07cc55565e87f6375b96ece63a10999712e6/node_modules/icebird/src/write/geospatial.mjs → hyparquet@1.29.1/node_modules/hyparquet/src/snappy.mjs} +0 -0
  93. package/dist/node_modules/.pnpm/{squirreling@0.15.3/node_modules/squirreling/src/backend/dataSource.mjs → hyparquet@1.29.1/node_modules/hyparquet/src/thrift.mjs} +0 -0
  94. package/dist/node_modules/.pnpm/{squirreling@0.15.3/node_modules/squirreling/src/execute/scanColumn.mjs → hyparquet@1.29.1/node_modules/hyparquet/src/wkb.mjs} +0 -0
  95. package/dist/node_modules/.pnpm/{squirreling@0.15.3/node_modules/squirreling/src/execute/utils.mjs → hyparquet@1.29.1/node_modules/hyparquet/src/xxhash.mjs} +0 -0
  96. package/dist/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.1}/node_modules/hyparquet/types/indexes.d.mts +0 -0
  97. package/dist/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.1}/node_modules/hyparquet/types/metadata.d.mts +0 -0
  98. package/dist/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.1}/node_modules/hyparquet/types/query.d.mts +0 -0
  99. package/dist/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.1}/node_modules/hyparquet/types/read.d.mts +0 -0
  100. package/dist/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
  101. package/dist/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.1}/node_modules/hyparquet/types/snappy.d.mts +0 -0
  102. package/dist/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
  103. package/dist/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.2}/node_modules/hyparquet/src/assemble.mjs +0 -0
  104. package/dist/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.2}/node_modules/hyparquet/src/bloom.mjs +0 -0
  105. package/dist/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.2}/node_modules/hyparquet/src/column.mjs +0 -0
  106. package/dist/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.2}/node_modules/hyparquet/src/constants.mjs +0 -0
  107. package/dist/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.2}/node_modules/hyparquet/src/convert.mjs +0 -0
  108. package/dist/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.2}/node_modules/hyparquet/src/datapage.mjs +0 -0
  109. package/dist/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.2}/node_modules/hyparquet/src/delta.mjs +0 -0
  110. package/dist/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.2}/node_modules/hyparquet/src/encoding.mjs +0 -0
  111. package/dist/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.2}/node_modules/hyparquet/src/filter.mjs +0 -0
  112. package/dist/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.2}/node_modules/hyparquet/src/geoparquet.mjs +0 -0
  113. package/dist/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.2}/node_modules/hyparquet/src/indexes.mjs +0 -0
  114. package/dist/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.2}/node_modules/hyparquet/src/metadata.mjs +0 -0
  115. package/dist/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.2}/node_modules/hyparquet/src/node.mjs +0 -0
  116. package/dist/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.2}/node_modules/hyparquet/src/plain.mjs +0 -0
  117. package/dist/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.2}/node_modules/hyparquet/src/rowgroup.mjs +0 -0
  118. package/dist/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.2}/node_modules/hyparquet/src/schema.mjs +0 -0
  119. package/dist/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.2}/node_modules/hyparquet/src/snappy.mjs +0 -0
  120. package/dist/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.2}/node_modules/hyparquet/src/thrift.mjs +0 -0
  121. package/dist/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.2}/node_modules/hyparquet/src/utils.mjs +0 -0
  122. package/dist/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.2}/node_modules/hyparquet/src/variant.mjs +0 -0
  123. package/dist/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.2}/node_modules/hyparquet/src/wkb.mjs +0 -0
  124. package/dist/node_modules/.pnpm/{hyparquet@1.28.2 → hyparquet@1.29.2}/node_modules/hyparquet/src/xxhash.mjs +0 -0
  125. package/dist/node_modules/.pnpm/{icebird@0.8.22_patch_hash_4fa7fd5702c4ce432fb2902c6abe07cc55565e87f6375b96ece63a10999712e6/node_modules/icebird/types/fetch.d.mts → hyparquet@1.29.2/node_modules/hyparquet/types/indexes.d.mts} +0 -0
  126. package/dist/node_modules/.pnpm/{icebird@0.8.22_patch_hash_4fa7fd5702c4ce432fb2902c6abe07cc55565e87f6375b96ece63a10999712e6/node_modules/icebird → hyparquet@1.29.2/node_modules/hyparquet}/types/metadata.d.mts +0 -0
  127. package/dist/node_modules/.pnpm/{icebird@0.8.22_patch_hash_4fa7fd5702c4ce432fb2902c6abe07cc55565e87f6375b96ece63a10999712e6/node_modules/icebird/types/manifest.d.mts → hyparquet@1.29.2/node_modules/hyparquet/types/query.d.mts} +0 -0
  128. package/dist/node_modules/.pnpm/{icebird@0.8.22_patch_hash_4fa7fd5702c4ce432fb2902c6abe07cc55565e87f6375b96ece63a10999712e6/node_modules/icebird/types/s3.d.mts → hyparquet@1.29.2/node_modules/hyparquet/types/read.d.mts} +0 -0
  129. package/dist/node_modules/.pnpm/{squirreling@0.15.3/node_modules/squirreling/src/ast.d.mts → hyparquet@1.29.2/node_modules/hyparquet/types/snappy.d.mts} +0 -0
  130. package/dist/node_modules/.pnpm/{squirreling@0.15.3/node_modules/squirreling/src/expression/alias.mjs → icebird@0.8.26_patch_hash_75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244/node_modules/icebird/src/avro/avro.metadata.mjs} +0 -0
  131. package/dist/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
  132. package/dist/node_modules/.pnpm/{squirreling@0.15.3/node_modules/squirreling/src/expression/binary.mjs → icebird@0.8.26_patch_hash_75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244/node_modules/icebird/src/catalog/file.mjs} +0 -0
  133. package/dist/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
  134. package/dist/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
  135. package/dist/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
  136. package/dist/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
  137. package/dist/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
  138. package/dist/node_modules/.pnpm/{icebird@0.8.22_patch_hash_4fa7fd5702c4ce432fb2902c6abe07cc55565e87f6375b96ece63a10999712e6 → icebird@0.8.26_patch_hash_75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244}/node_modules/icebird/src/manifest.mjs +0 -0
  139. package/dist/node_modules/.pnpm/{icebird@0.8.22_patch_hash_4fa7fd5702c4ce432fb2902c6abe07cc55565e87f6375b96ece63a10999712e6 → icebird@0.8.26_patch_hash_75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244}/node_modules/icebird/src/metadata.mjs +0 -0
  140. package/dist/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
  141. package/dist/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
  142. package/dist/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
  143. package/dist/node_modules/.pnpm/{squirreling@0.15.3/node_modules/squirreling/src/expression/date.mjs → icebird@0.8.26_patch_hash_75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244/node_modules/icebird/src/puffin/roaring.mjs} +0 -0
  144. package/dist/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
  145. package/dist/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
  146. package/dist/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
  147. package/dist/node_modules/.pnpm/{squirreling@0.15.3/node_modules/squirreling/src/expression/math.mjs → icebird@0.8.26_patch_hash_75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244/node_modules/icebird/src/sql/whereFilter.mjs} +0 -0
  148. package/dist/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
  149. package/dist/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
  150. package/dist/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
  151. package/dist/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
  152. package/dist/node_modules/.pnpm/{squirreling@0.15.3/node_modules/squirreling/src/parse/extractTables.mjs → icebird@0.8.26_patch_hash_75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244/node_modules/icebird/src/write/geospatial.mjs} +0 -0
  153. package/dist/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
  154. package/dist/node_modules/.pnpm/{icebird@0.8.22_patch_hash_4fa7fd5702c4ce432fb2902c6abe07cc55565e87f6375b96ece63a10999712e6 → icebird@0.8.26_patch_hash_75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244}/node_modules/icebird/src/write/manifest.mjs +0 -0
  155. package/dist/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
  156. package/dist/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
  157. package/dist/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
  158. package/dist/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
  159. package/dist/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
  160. package/dist/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
  161. package/dist/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
  162. package/dist/node_modules/.pnpm/{icebird@0.8.22_patch_hash_4fa7fd5702c4ce432fb2902c6abe07cc55565e87f6375b96ece63a10999712e6 → icebird@0.8.26_patch_hash_75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244}/node_modules/icebird/src/write/stage.mjs +0 -0
  163. package/dist/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
  164. package/dist/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
  165. package/dist/node_modules/.pnpm/{icebird@0.8.22_patch_hash_4fa7fd5702c4ce432fb2902c6abe07cc55565e87f6375b96ece63a10999712e6 → icebird@0.8.26_patch_hash_75eacba5b0363ee2a40baa0ef77c7fb20d06389025186ca95b514a927cad0244}/node_modules/icebird/src/write/write.mjs +0 -0
  166. package/dist/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
  167. package/dist/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
  168. package/dist/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
  169. package/dist/node_modules/.pnpm/{squirreling@0.15.3/node_modules/squirreling/src/spatial/wkt.mjs → squirreling@0.16.2/node_modules/squirreling/src/backend/batch.mjs} +0 -0
  170. package/dist/node_modules/.pnpm/{squirreling@0.15.3/node_modules/squirreling/src/validation/keywords.mjs → squirreling@0.16.2/node_modules/squirreling/src/backend/dataSource.mjs} +0 -0
  171. package/dist/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/execute/accumulator.mjs +0 -0
  172. package/dist/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/execute/join.mjs +1 -1
  173. package/dist/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/execute/sort.mjs +0 -0
  174. package/dist/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/execute/window.mjs +1 -1
  175. /package/dist/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/execute/yield.mjs +0 -0
  176. /package/dist/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/expression/regexp.mjs +0 -0
  177. /package/dist/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/expression/strings.mjs +0 -0
  178. /package/dist/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/index.d.mts +0 -0
  179. /package/dist/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/parse/expression.mjs +0 -0
  180. /package/dist/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/parse/functions.mjs +0 -0
  181. /package/dist/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/parse/joins.mjs +0 -0
  182. /package/dist/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/parse/parse.mjs +0 -0
  183. /package/dist/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/parse/primary.mjs +0 -0
  184. /package/dist/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/parse/state.mjs +0 -0
  185. /package/dist/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/parse/tokenize.mjs +0 -0
  186. /package/dist/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/parse/types.d.mts +0 -0
  187. /package/dist/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/plan/plan.mjs +0 -0
  188. /package/dist/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/plan/types.d.mts +0 -0
  189. /package/dist/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/spatial/bbox.mjs +0 -0
  190. /package/dist/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/spatial/equality.mjs +0 -0
  191. /package/dist/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/spatial/operations.mjs +0 -0
  192. /package/dist/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/spatial/pointRelations.mjs +0 -0
  193. /package/dist/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/spatial/primitives.mjs +0 -0
  194. /package/dist/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/spatial/segments.mjs +0 -0
  195. /package/dist/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/spatial/spatial.mjs +0 -0
  196. /package/dist/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/types.d.mts +0 -0
  197. /package/dist/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/validation/aggregates.mjs +0 -0
  198. /package/dist/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/validation/executionErrors.mjs +0 -0
  199. /package/dist/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/validation/functions.mjs +0 -0
  200. /package/dist/node_modules/.pnpm/{squirreling@0.15.3 → squirreling@0.16.2}/node_modules/squirreling/src/validation/parseErrors.mjs +0 -0
@@ -0,0 +1,74 @@
1
+ import { parquetMetadataAsync, parquetSchema } from "./metadata.mjs";
2
+ import "./utils.mjs";
3
+ import { columnsNeededForFilter } from "./filter.mjs";
4
+ import { parquetPlan, prefetchAsyncBuffer, prefetchBloomFilters, prefetchPageIndexes } from "./plan.mjs";
5
+ import { readRowGroup } from "./rowgroup.mjs";
6
+ async function prepareParquetRead(options) {
7
+ const prepared = await prepareParquetOptions(options);
8
+ return {
9
+ options: prepared,
10
+ plan: parquetPlan(prepared)
11
+ };
12
+ }
13
+ async function prepareParquetOptions(options) {
14
+ const metadata = options.metadata ?? await parquetMetadataAsync(options.file, options);
15
+ const schemaColumns = parquetSchema(metadata).children.map((child) => child.element.name);
16
+ const missingFilterColumns = columnsNeededForFilter(options.filter).filter((column) => !schemaColumns.includes(column));
17
+ if (missingFilterColumns.length) throw new Error(`parquet filter columns not found: ${missingFilterColumns.join(", ")}`);
18
+ if (options.columns) {
19
+ const missingColumns = options.columns.filter((column) => !schemaColumns.includes(column));
20
+ if (missingColumns.length) throw new Error(`parquet column not found: ${missingColumns[0]}`);
21
+ }
22
+ let prepared = {
23
+ ...options,
24
+ metadata
25
+ };
26
+ prepared = await withBloomFilters(prepared);
27
+ prepared = await withPageIndexes(prepared);
28
+ return prepared;
29
+ }
30
+ function readParquetPlan(options, plan) {
31
+ const readOptions = {
32
+ ...options,
33
+ file: prefetchAsyncBuffer(options.file, plan)
34
+ };
35
+ return plan.groups.map((group) => readRowGroup(readOptions, plan, group));
36
+ }
37
+ async function withBloomFilters(options) {
38
+ if (!options.useBloomFilters || !options.filter || !options.metadata) return options;
39
+ const schemaTree = parquetSchema(options.metadata);
40
+ const schemaElements = {};
41
+ for (const child of schemaTree.children) schemaElements[child.element.name] = child.element;
42
+ const bloomFiltersByGroup = await prefetchBloomFilters({
43
+ file: options.file,
44
+ metadata: options.metadata,
45
+ filter: options.filter,
46
+ filterStrict: options.filterStrict
47
+ });
48
+ return {
49
+ ...options,
50
+ bloomFiltersByGroup,
51
+ schemaElements
52
+ };
53
+ }
54
+ async function withPageIndexes(options) {
55
+ if (!options.usePageIndex || !options.filter || !options.metadata) return options;
56
+ const { pageRangesByGroup, pageLocationsByGroup } = await prefetchPageIndexes({
57
+ file: options.file,
58
+ metadata: options.metadata,
59
+ filter: options.filter,
60
+ filterStrict: options.filterStrict,
61
+ rowStart: options.rowStart,
62
+ rowEnd: options.rowEnd,
63
+ columns: options.columns,
64
+ bloomFiltersByGroup: options.bloomFiltersByGroup,
65
+ schemaElements: options.schemaElements,
66
+ parsers: options.parsers
67
+ });
68
+ return {
69
+ ...options,
70
+ pageRangesByGroup,
71
+ pageLocationsByGroup
72
+ };
73
+ }
74
+ export { prepareParquetRead, readParquetPlan };
@@ -23,12 +23,4 @@ type ParquetQueryOperator = {
23
23
  $nin?: ParquetQueryValue[];
24
24
  $not?: ParquetQueryOperator;
25
25
  };
26
- /**
27
- * File-like object that can read slices of a file asynchronously.
28
- */
29
- interface AsyncBuffer {
30
- byteLength: number;
31
- slice(start: number, end?: number): Awaitable<ArrayBuffer>;
32
- }
33
- type Awaitable<T> = T | Promise<T>;
34
- export { AsyncBuffer, Awaitable, ParquetQueryFilter, ParquetQueryOperator, ParquetQueryValue };
26
+ export { ParquetQueryFilter, ParquetQueryOperator, ParquetQueryValue };
@@ -1,11 +1,11 @@
1
- import { AsyncBuffer as AsyncBuffer$1, ParquetQueryFilter as ParquetQueryFilter$1 } from "../src/types.mjs";
1
+ import { ParquetQueryFilter as ParquetQueryFilter$1 } from "../src/types.mjs";
2
2
  import "./indexes.mjs";
3
3
  import "./metadata.mjs";
4
4
  import "./read.mjs";
5
+ import "./scan.mjs";
5
6
  import "./query.mjs";
6
7
  import "./snappy.mjs";
7
8
  import "./utils.mjs";
8
- type AsyncBuffer = AsyncBuffer$1;
9
9
  type ParquetQueryFilter = ParquetQueryFilter$1;
10
10
  /**
11
11
  * Explicitly export types for use in downstream typescript projects through
@@ -47,8 +47,12 @@ type ParquetQueryFilter = ParquetQueryFilter$1;
47
47
  * @typedef {import('../src/types.d.ts').ColumnData} ColumnData
48
48
  * @typedef {import('../src/types.d.ts').SubColumnData} SubColumnData
49
49
  * @typedef {import('../src/types.d.ts').ParquetReadOptions} ParquetReadOptions
50
+ * @typedef {import('../src/types.d.ts').ParquetRowRange} ParquetRowRange
51
+ * @typedef {import('../src/types.d.ts').ParquetScan} ParquetScan
52
+ * @typedef {import('../src/types.d.ts').ParquetScanColumnOptions} ParquetScanColumnOptions
53
+ * @typedef {import('../src/types.d.ts').ParquetScanOptions} ParquetScanOptions
50
54
  * @typedef {import('../src/types.d.ts').MetadataOptions} MetadataOptions
51
55
  * @typedef {import('../src/types.d.ts').ParquetParsers} ParquetParsers
52
56
  * @typedef {import('../src/types.d.ts').ParquetQueryFilter} ParquetQueryFilter
53
57
  */
54
- export { AsyncBuffer, ParquetQueryFilter };
58
+ export { ParquetQueryFilter };
@@ -0,0 +1,3 @@
1
+ import "../src/types.mjs";
2
+ import { ParquetQueryFilter } from "./index.mjs";
3
+ export { ParquetQueryFilter };
@@ -1,4 +1,4 @@
1
- import "../../../../../hyparquet@1.28.2/node_modules/hyparquet/src/convert.mjs";
1
+ import "../../../../../hyparquet@1.29.1/node_modules/hyparquet/src/convert.mjs";
2
2
  import "../../../../../hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/index.mjs";
3
3
  import "./avro.metadata.mjs";
4
4
  export {};
@@ -1,5 +1,5 @@
1
- import "../../../../hyparquet@1.28.2/node_modules/hyparquet/src/node.mjs";
2
1
  import "../../../../hyparquet-writer@0.16.6_patch_hash_549d1fd1fb9614da77df9123bf6978a8fccfe1d9bb8882863ce6159f666e821a/node_modules/hyparquet-writer/src/node.mjs";
2
+ import "../../../../hyparquet@1.29.1/node_modules/hyparquet/src/node.mjs";
3
3
  import "../../../../hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/index.mjs";
4
4
  import "./avro/avro.metadata.mjs";
5
5
  import "./avro/avro.read.mjs";
@@ -3,11 +3,11 @@ import "./metadata.mjs";
3
3
  import "./catalog/rest.mjs";
4
4
  import "./create.mjs";
5
5
  import "./manifest.mjs";
6
+ import "../../../../squirreling@0.16.2/node_modules/squirreling/src/index.mjs";
6
7
  import "./read.mjs";
7
8
  import { icebergCreateTable } from "./write/write.mjs";
8
9
  import "./catalog/file.mjs";
9
10
  import "./s3.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 { icebergCreateTable };
@@ -0,0 +1,11 @@
1
+ import "../../../../hyparquet@1.29.1/node_modules/hyparquet/src/utils.mjs";
2
+ import "../../../../hyparquet@1.29.1/node_modules/hyparquet/src/filter.mjs";
3
+ import "../../../../hyparquet@1.29.1/node_modules/hyparquet/src/node.mjs";
4
+ import "../../../../hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/index.mjs";
5
+ import "./utils.mjs";
6
+ import "./fetch.mjs";
7
+ import "./metadata.mjs";
8
+ import "./delete.mjs";
9
+ import "./manifest.mjs";
10
+ import "../../../../squirreling@0.16.2/node_modules/squirreling/src/index.mjs";
11
+ export {};
@@ -1,8 +1,8 @@
1
1
  import "../fetch.mjs";
2
2
  import "../metadata.mjs";
3
3
  import "../manifest.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 {
@@ -1,4 +1,6 @@
1
+ import "../../../../../hyparquet@1.29.1/node_modules/hyparquet/src/utils.mjs";
1
2
  import "../utils.mjs";
3
+ import "../fetch.mjs";
2
4
  import "./partition.mjs";
3
5
  import "./stats.mjs";
4
6
  import "./snapshot.mjs";
@@ -6,5 +8,6 @@ import "./manifest.mjs";
6
8
  import "./parquet.mjs";
7
9
  import "./sort.mjs";
8
10
  import "./stage.mjs";
11
+ import "../manifest.mjs";
9
12
  import "../read.mjs";
10
13
  export {};
@@ -0,0 +1,2 @@
1
+ import "../../../../hyparquet@1.29.1/node_modules/hyparquet/types/node.mjs";
2
+ import "../src/types.mjs";
@@ -4,10 +4,10 @@ import "./catalog/file.mjs";
4
4
  import "./catalog/rest.mjs";
5
5
  import "./fetch.mjs";
6
6
  import "./s3.mjs";
7
+ import "../../../../squirreling@0.16.2/node_modules/squirreling/src/index.mjs";
7
8
  import "./read.mjs";
8
9
  import "./metadata.mjs";
9
10
  import "./manifest.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 { icebergCreateTable };
@@ -0,0 +1,3 @@
1
+ import "../../../../hyparquet@1.29.1/node_modules/hyparquet/types/node.mjs";
2
+ import "../src/types.mjs";
3
+ import "../../../../squirreling@0.16.2/node_modules/squirreling/src/index.mjs";
@@ -0,0 +1,2 @@
1
+ import "../../src/types.mjs";
2
+ import "../../../../../squirreling@0.16.2/node_modules/squirreling/src/index.mjs";
@@ -0,0 +1,2 @@
1
+ import "../../src/types.mjs";
2
+ import "../../../../../squirreling@0.16.2/node_modules/squirreling/src/index.mjs";
@@ -0,0 +1,3 @@
1
+ import "./batch.mjs";
2
+ import "../execute/yield.mjs";
3
+ export {};
@@ -1,6 +1,7 @@
1
+ import "./yield.mjs";
2
+ import "../backend/dataSource.mjs";
1
3
  import "../expression/alias.mjs";
2
4
  import "./utils.mjs";
3
- import "./yield.mjs";
4
5
  import "../expression/evaluate.mjs";
5
6
  import "./accumulator.mjs";
6
7
  import "./scanColumn.mjs";
@@ -0,0 +1,3 @@
1
+ import "../backend/batchAdapters.mjs";
2
+ import "./utils.mjs";
3
+ export {};
@@ -0,0 +1,4 @@
1
+ import "../backend/batch.mjs";
2
+ import "./yield.mjs";
3
+ import "./utils.mjs";
4
+ export {};
@@ -1,15 +1,21 @@
1
+ import "../backend/batch.mjs";
2
+ import "./yield.mjs";
3
+ import "../backend/batchAdapters.mjs";
1
4
  import "../backend/dataSource.mjs";
2
5
  import "../expression/alias.mjs";
3
6
  import "./utils.mjs";
4
- import "./yield.mjs";
5
7
  import "../validation/tables.mjs";
8
+ import "../expression/batch.mjs";
6
9
  import "../expression/evaluate.mjs";
7
10
  import "../parse/parse.mjs";
8
11
  import "../plan/columns.mjs";
9
12
  import "../plan/plan.mjs";
10
13
  import "./scanColumn.mjs";
11
14
  import "./sort.mjs";
15
+ import "./rowScope.mjs";
12
16
  import "./aggregates.mjs";
17
+ import "./batchResults.mjs";
18
+ import "./batches.mjs";
13
19
  import "./join.mjs";
14
20
  import "./window.mjs";
15
21
  export {};
@@ -0,0 +1,2 @@
1
+ import "../plan/columns.mjs";
2
+ export {};
@@ -1,9 +1,12 @@
1
+ import "../backend/batch.mjs";
2
+ import "./yield.mjs";
1
3
  import "../expression/alias.mjs";
2
4
  import "./utils.mjs";
3
- import "./yield.mjs";
4
5
  import "../validation/functions.mjs";
6
+ import "../expression/batch.mjs";
5
7
  import "../expression/evaluate.mjs";
6
8
  import "../plan/columns.mjs";
7
9
  import "./accumulator.mjs";
8
10
  import "./sort.mjs";
11
+ import "./rowScope.mjs";
9
12
  export {};
@@ -0,0 +1,2 @@
1
+ import "../backend/batchAdapters.mjs";
2
+ export {};
@@ -0,0 +1,10 @@
1
+ import "../backend/batch.mjs";
2
+ import "../execute/yield.mjs";
3
+ import "../execute/utils.mjs";
4
+ import "../validation/functions.mjs";
5
+ import "../validation/tables.mjs";
6
+ import "./binary.mjs";
7
+ import "./regexp.mjs";
8
+ import "./scalar.mjs";
9
+ import "./strings.mjs";
10
+ export {};
@@ -0,0 +1,2 @@
1
+ import "../execute/utils.mjs";
2
+ export {};
@@ -1,15 +1,16 @@
1
+ import "../execute/yield.mjs";
1
2
  import "./alias.mjs";
2
3
  import "../execute/utils.mjs";
3
- import "../execute/yield.mjs";
4
4
  import "../validation/parseErrors.mjs";
5
5
  import "../validation/functions.mjs";
6
6
  import "../validation/executionErrors.mjs";
7
7
  import "../validation/tables.mjs";
8
8
  import "./binary.mjs";
9
+ import "./regexp.mjs";
9
10
  import "./date.mjs";
11
+ import "./scalar.mjs";
12
+ import "./strings.mjs";
10
13
  import "./math.mjs";
11
- import "./regexp.mjs";
12
14
  import "../spatial/spatial.mjs";
13
- import "./strings.mjs";
14
15
  import "../execute/execute.mjs";
15
16
  export {};
@@ -0,0 +1,4 @@
1
+ import "../execute/utils.mjs";
2
+ import "../validation/executionErrors.mjs";
3
+ import "./date.mjs";
4
+ export {};
@@ -1,3 +1,5 @@
1
+ import "./backend/batch.mjs";
2
+ import "./backend/batchAdapters.mjs";
1
3
  import "./backend/dataSource.mjs";
2
4
  import "./expression/alias.mjs";
3
5
  import "./execute/utils.mjs";
@@ -1,3 +1,4 @@
1
+ import "../backend/dataSource.mjs";
1
2
  import "../expression/alias.mjs";
2
3
  import "../parse/parse.mjs";
3
4
  export {};
@@ -1,2 +1,3 @@
1
+ import "../backend/dataSource.mjs";
1
2
  import "./executionErrors.mjs";
2
3
  export {};
@@ -1,6 +1,6 @@
1
1
  import { CompactionThresholds } from "./compaction.mjs";
2
- import { ParquetQueryFilter } from "./node_modules/.pnpm/hyparquet@1.28.2/node_modules/hyparquet/types/index.mjs";
3
- import "./node_modules/.pnpm/hyparquet@1.28.2/node_modules/hyparquet/types/node.mjs";
2
+ import { ParquetQueryFilter } from "./node_modules/.pnpm/hyparquet@1.29.2/node_modules/hyparquet/types/index.mjs";
3
+ import "./node_modules/.pnpm/hyparquet@1.29.2/node_modules/hyparquet/types/node.mjs";
4
4
  import { Grain, Grain as Grain$1, Row, Row as Row$1, TableName, TableName as TableName$1, TenantCtx, TenantCtx as TenantCtx$1 } from "@gscdump/contracts";
5
5
  import { BuilderState, SearchType, SearchType as SearchType$1 } from "gscdump/query";
6
6
  interface WriteCtx extends TenantCtx {
@@ -1,4 +1,4 @@
1
- import { snappyUncompress as snappyUncompress$1 } from "../node_modules/.pnpm/hyparquet@1.28.2/node_modules/hyparquet/src/snappy.mjs";
1
+ import { snappyUncompress as snappyUncompress$1 } from "../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$1(input, output);
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@gscdump/engine",
3
3
  "type": "module",
4
- "version": "3.1.0",
4
+ "version": "3.3.0",
5
5
  "description": "Append-only Parquet/DuckDB storage engine + planner + adapters for the gscdump pipeline. Node + edge runtimes; opt-in heavy peers.",
6
6
  "author": {
7
7
  "name": "Harlan Wilton",
@@ -189,23 +189,23 @@
189
189
  }
190
190
  },
191
191
  "dependencies": {
192
+ "@gscdump/contracts": "^3.3.0",
193
+ "@gscdump/lakehouse": "^3.3.0",
192
194
  "drizzle-orm": "1.0.0-rc.4",
193
- "proper-lockfile": "^4.1.2",
194
- "@gscdump/contracts": "^3.1.0",
195
- "@gscdump/lakehouse": "^3.1.0",
196
- "gscdump": "^3.1.0"
195
+ "gscdump": "^3.3.0",
196
+ "proper-lockfile": "^4.1.2"
197
197
  },
198
198
  "devDependencies": {
199
199
  "@duckdb/duckdb-wasm": "1.33.1-dev57.0",
200
- "@types/node": "^26.2.0",
200
+ "@types/node": "^26.4.0",
201
201
  "@types/proper-lockfile": "^4.1.4",
202
202
  "aws4fetch": "^1.0.20",
203
- "hyparquet": "^1.28.2",
203
+ "hyparquet": "^1.29.2",
204
204
  "hyparquet-writer": "^0.16.6",
205
- "icebird": "^0.8.22",
205
+ "icebird": "^0.8.26",
206
206
  "tsx": "^4.23.12",
207
207
  "unstorage": "^1.17.5",
208
- "vitest": "^4.1.10"
208
+ "vitest": "^4.1.11"
209
209
  },
210
210
  "scripts": {
211
211
  "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,3 +0,0 @@
1
- import "../src/types.mjs";
2
- import { AsyncBuffer, ParquetQueryFilter } from "./index.mjs";
3
- export { AsyncBuffer, ParquetQueryFilter };
@@ -1,9 +0,0 @@
1
- import "../../../../hyparquet@1.28.2/node_modules/hyparquet/src/utils.mjs";
2
- import "../../../../hyparquet@1.28.2/node_modules/hyparquet/src/node.mjs";
3
- import "../../../../hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/index.mjs";
4
- import "./utils.mjs";
5
- import "./fetch.mjs";
6
- import "./metadata.mjs";
7
- import "./delete.mjs";
8
- import "./manifest.mjs";
9
- export {};