@gscdump/engine 1.3.2 → 1.4.1

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 (366) hide show
  1. package/dist/adapters/duckdb-node.d.mts +7 -0
  2. package/dist/adapters/duckdb-node.mjs +94 -0
  3. package/dist/adapters/filesystem.d.mts +1 -1
  4. package/dist/adapters/filesystem.mjs +1 -1
  5. package/dist/adapters/hyparquet.d.mts +4 -3
  6. package/dist/adapters/hyparquet.mjs +7 -3
  7. package/dist/adapters/node-harness.d.mts +38 -0
  8. package/dist/adapters/node-harness.mjs +47 -0
  9. package/dist/adapters/node.d.mts +4 -100
  10. package/dist/adapters/node.mjs +4 -240
  11. package/dist/adapters/parquet-attach.d.mts +23 -0
  12. package/dist/adapters/parquet-attach.mjs +21 -0
  13. package/dist/adapters/r2-manifest.d.mts +82 -0
  14. package/dist/adapters/r2-manifest.mjs +364 -0
  15. package/dist/adapters/r2.d.mts +1 -1
  16. package/dist/adapters/read-optional.mjs +15 -0
  17. package/dist/adapters/snapshot-attach.d.mts +38 -0
  18. package/dist/adapters/snapshot-attach.mjs +85 -0
  19. package/dist/analysis-types.d.mts +56 -1
  20. package/dist/analyzer/define.d.mts +48 -0
  21. package/dist/analyzer/define.mjs +60 -0
  22. package/dist/analyzer/dispatch.d.mts +17 -0
  23. package/dist/analyzer/index.d.mts +4 -14
  24. package/dist/analyzer/index.mjs +4 -112
  25. package/dist/analyzer/registry.d.mts +33 -0
  26. package/dist/analyzer/registry.mjs +49 -0
  27. package/dist/analyzer/types.d.mts +95 -0
  28. package/dist/analyzer/types.mjs +5 -0
  29. package/dist/coerce.d.mts +4 -0
  30. package/dist/compaction.d.mts +14 -0
  31. package/dist/{_chunks/parquet-plan.mjs → compaction.mjs} +2 -138
  32. package/dist/contracts.d.mts +1 -2
  33. package/dist/{_chunks/schema.d.mts → drizzle-schema.d.mts} +22 -54
  34. package/dist/{_chunks/schema.mjs → drizzle-schema.mjs} +2 -78
  35. package/dist/{_chunks/snapshot.d.mts → duckdb.d.mts} +1 -14
  36. package/dist/duckdb.mjs +207 -0
  37. package/dist/engine.d.mts +4 -0
  38. package/dist/engine.mjs +385 -0
  39. package/dist/entities.d.mts +3 -52
  40. package/dist/entities.mjs +867 -2
  41. package/dist/errors.d.mts +114 -1
  42. package/dist/gc.mjs +92 -0
  43. package/dist/iceberg/append-sink.d.mts +14 -0
  44. package/dist/iceberg/append-sink.mjs +142 -0
  45. package/dist/iceberg/catalog.d.mts +71 -0
  46. package/dist/iceberg/catalog.mjs +109 -0
  47. package/dist/iceberg/index.d.mts +4 -13
  48. package/dist/iceberg/index.mjs +3 -244
  49. package/dist/iceberg/overwrite-writer.d.mts +161 -0
  50. package/dist/iceberg/overwrite-writer.mjs +102 -0
  51. package/dist/iceberg/pyiceberg-runtime.mjs +34 -0
  52. package/dist/iceberg/schema.d.mts +69 -0
  53. package/dist/{_chunks/schema2.mjs → iceberg/schema.mjs} +3 -2
  54. package/dist/index.d.mts +14 -190
  55. package/dist/index.mjs +10 -645
  56. package/dist/ingest-accumulator.d.mts +1 -1
  57. package/dist/ingest.d.mts +1 -1
  58. package/dist/layout.d.mts +31 -0
  59. package/dist/node_modules/.pnpm/hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/brotli.bitreader.mjs +88 -0
  60. package/dist/node_modules/.pnpm/hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/brotli.blocks.mjs +120 -0
  61. package/dist/node_modules/.pnpm/hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/brotli.context.mjs +1805 -0
  62. package/dist/node_modules/.pnpm/hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/brotli.contextmap.mjs +49 -0
  63. package/dist/node_modules/.pnpm/hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/brotli.dictionary.mjs +984 -0
  64. package/dist/node_modules/.pnpm/hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/brotli.huffman.mjs +266 -0
  65. package/dist/node_modules/.pnpm/hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/brotli.mjs +340 -0
  66. package/dist/node_modules/.pnpm/hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/brotli.prefix.mjs +109 -0
  67. package/dist/node_modules/.pnpm/hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/brotli.streams.mjs +21 -0
  68. package/dist/node_modules/.pnpm/hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/brotli.transform.mjs +190 -0
  69. package/dist/node_modules/.pnpm/hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/compressors.mjs +7 -0
  70. package/dist/node_modules/.pnpm/hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/gzip.huffman.mjs +121 -0
  71. package/dist/node_modules/.pnpm/hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/gzip.mjs +176 -0
  72. package/dist/node_modules/.pnpm/hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/index.mjs +7 -0
  73. package/dist/node_modules/.pnpm/hyparquet-compressors@1.1.1/node_modules/hyparquet-compressors/src/lz4.mjs +52 -0
  74. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/bloom.mjs +93 -0
  75. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/bytewriter.mjs +91 -0
  76. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/column.mjs +186 -0
  77. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/datapage.mjs +113 -0
  78. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/delta.mjs +111 -0
  79. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/dictionary.mjs +99 -0
  80. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/dremel.mjs +116 -0
  81. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/encoding.mjs +51 -0
  82. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/geospatial.mjs +84 -0
  83. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/index.mjs +7 -0
  84. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/indexes.mjs +31 -0
  85. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/metadata.mjs +138 -0
  86. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/node.mjs +8 -0
  87. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/parquet-writer.mjs +139 -0
  88. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/plain.mjs +68 -0
  89. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/schema.mjs +254 -0
  90. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/snappy.mjs +125 -0
  91. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/splitstream.mjs +38 -0
  92. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/thrift.mjs +79 -0
  93. package/dist/{_chunks/libs/hyparquet-writer.d.mts → node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/types.d.mts} +2 -2
  94. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/unconvert.mjs +247 -0
  95. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/variant.mjs +321 -0
  96. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/wkb.mjs +79 -0
  97. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/write-rows.mjs +122 -0
  98. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/src/write.mjs +5 -0
  99. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/types/bytewriter.d.mts +1 -0
  100. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/types/index.d.mts +10 -0
  101. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/types/node.d.mts +3 -0
  102. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/types/parquet-writer.d.mts +2 -0
  103. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/types/schema.d.mts +2 -0
  104. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/types/wkb.d.mts +1 -0
  105. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/types/write-rows.d.mts +1 -0
  106. package/dist/node_modules/.pnpm/hyparquet-writer@0.16.1_patch_hash_7a5e451ac7634d7546ac56bcc5eadacf7715a6241640c2b5a5bc0cfc9763b8ec/node_modules/hyparquet-writer/types/write.d.mts +1 -0
  107. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/assemble.mjs +3 -0
  108. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/bloom.mjs +69 -0
  109. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/column.mjs +8 -0
  110. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/constants.mjs +80 -0
  111. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/convert.mjs +3 -0
  112. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/datapage.mjs +6 -0
  113. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/delta.mjs +2 -0
  114. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/encoding.mjs +2 -0
  115. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/filter.mjs +3 -0
  116. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/geoparquet.mjs +1 -0
  117. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/index.mjs +7 -0
  118. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/indexes.mjs +5 -0
  119. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/metadata.mjs +7 -0
  120. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/node.mjs +3 -0
  121. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/plain.mjs +1 -0
  122. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/plan.mjs +5 -0
  123. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/query.mjs +3 -0
  124. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/read.mjs +6 -0
  125. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/rowgroup.mjs +7 -0
  126. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/schema.mjs +54 -0
  127. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/snappy.mjs +1 -0
  128. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/thrift.mjs +1 -0
  129. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/types.d.mts +1 -0
  130. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/utils.mjs +19 -0
  131. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/variant.mjs +3 -0
  132. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/wkb.mjs +1 -0
  133. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/src/xxhash.mjs +68 -0
  134. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/types/index.d.mts +7 -0
  135. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/types/indexes.d.mts +1 -0
  136. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/types/metadata.d.mts +1 -0
  137. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/types/node.d.mts +2 -0
  138. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/types/query.d.mts +1 -0
  139. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/types/read.d.mts +1 -0
  140. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/types/snappy.d.mts +1 -0
  141. package/dist/node_modules/.pnpm/hyparquet@1.26.1/node_modules/hyparquet/types/utils.d.mts +1 -0
  142. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/assemble.mjs +144 -0
  143. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/bloom.mjs +124 -0
  144. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/column.mjs +127 -0
  145. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/constants.mjs +75 -0
  146. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/convert.mjs +118 -0
  147. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/datapage.mjs +144 -0
  148. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/delta.mjs +65 -0
  149. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/encoding.mjs +76 -0
  150. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/filter.mjs +98 -0
  151. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/geoparquet.mjs +24 -0
  152. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/index.mjs +7 -0
  153. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/indexes.mjs +16 -0
  154. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/metadata.mjs +235 -0
  155. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/node.mjs +7 -0
  156. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/plain.mjs +78 -0
  157. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/plan.mjs +147 -0
  158. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/query.mjs +3 -0
  159. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/read.mjs +106 -0
  160. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/rowgroup.mjs +154 -0
  161. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/schema.mjs +75 -0
  162. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/snappy.mjs +70 -0
  163. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/thrift.mjs +86 -0
  164. package/dist/{_chunks/libs/hyparquet.d.mts → node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/types.d.mts} +6 -8
  165. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/utils.mjs +31 -0
  166. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/variant.mjs +225 -0
  167. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/wkb.mjs +94 -0
  168. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/src/xxhash.mjs +68 -0
  169. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/types/index.d.mts +10 -0
  170. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/types/indexes.d.mts +1 -0
  171. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/types/metadata.d.mts +1 -0
  172. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/types/node.d.mts +3 -0
  173. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/types/query.d.mts +1 -0
  174. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/types/read.d.mts +1 -0
  175. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/types/snappy.d.mts +1 -0
  176. package/dist/node_modules/.pnpm/hyparquet@1.26.2/node_modules/hyparquet/types/utils.d.mts +1 -0
  177. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/avro/avro.metadata.mjs +1 -0
  178. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/avro/avro.read.mjs +4 -0
  179. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/avro/avro.write.mjs +2 -0
  180. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/catalog/file.mjs +1 -0
  181. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/catalog/loadTable.mjs +3 -0
  182. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/catalog/rest.mjs +73 -0
  183. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/create.mjs +67 -0
  184. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/delete.mjs +2 -0
  185. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/fetch.mjs +8 -0
  186. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/index.mjs +13 -0
  187. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/json.mjs +147 -0
  188. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/manifest.mjs +2 -0
  189. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/metadata.mjs +3 -0
  190. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/prune.mjs +4 -0
  191. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/puffin/deletion-vector.mjs +2 -0
  192. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/puffin/puffin.mjs +2 -0
  193. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/puffin/roaring.mjs +1 -0
  194. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/read.mjs +9 -0
  195. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/s3.mjs +3 -0
  196. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/schema.mjs +76 -0
  197. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/sigv4.mjs +2 -0
  198. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/sql/icebergDataSource.mjs +8 -0
  199. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/sql/icebergQuery.mjs +5 -0
  200. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/sql/whereFilter.mjs +1 -0
  201. package/dist/{_chunks/libs/icebird.d.mts → node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/types.d.mts} +5 -33
  202. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/utils.mjs +8 -0
  203. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/write/commit.mjs +5 -0
  204. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/write/conversions.mjs +19 -0
  205. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/write/delete-file.mjs +3 -0
  206. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/write/geospatial.mjs +1 -0
  207. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/write/manifest-list.mjs +2 -0
  208. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/write/manifest.mjs +3 -0
  209. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/write/parquet.mjs +5 -0
  210. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/write/partition.mjs +75 -0
  211. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/write/rewrite.mjs +10 -0
  212. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/write/serde.mjs +2 -0
  213. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/write/snapshot.mjs +5 -0
  214. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/write/sort.mjs +3 -0
  215. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/write/stage-deletion-vector.mjs +11 -0
  216. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/write/stage-position-delete.mjs +8 -0
  217. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/write/stage.mjs +10 -0
  218. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/write/stats.mjs +4 -0
  219. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/write/transform.mjs +60 -0
  220. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/src/write/write.mjs +45 -0
  221. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/types/catalog/file.d.mts +1 -0
  222. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/types/catalog/rest.d.mts +1 -0
  223. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/types/create.d.mts +1 -0
  224. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/types/fetch.d.mts +1 -0
  225. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/types/index.d.mts +13 -0
  226. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/types/manifest.d.mts +1 -0
  227. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/types/metadata.d.mts +1 -0
  228. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/types/read.d.mts +2 -0
  229. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/types/s3.d.mts +1 -0
  230. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/types/sql/icebergDataSource.d.mts +2 -0
  231. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/types/sql/icebergQuery.d.mts +2 -0
  232. package/dist/node_modules/.pnpm/icebird@0.8.15_patch_hash_d1902372376af18885e7c7dce807f1ecab86c2f86a9d1ff65d51e3b63b64b057/node_modules/icebird/types/write/write.d.mts +32 -0
  233. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/ast.d.mts +1 -0
  234. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/backend/dataSource.mjs +1 -0
  235. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/execute/accumulator.mjs +2 -0
  236. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/execute/aggregates.mjs +10 -0
  237. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/execute/execute.mjs +15 -0
  238. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/execute/join.mjs +5 -0
  239. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/execute/scanColumn.mjs +1 -0
  240. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/execute/sort.mjs +5 -0
  241. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/execute/streamingAggregate.mjs +9 -0
  242. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/execute/utils.mjs +1 -0
  243. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/execute/window.mjs +5 -0
  244. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/execute/yield.mjs +17 -0
  245. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/expression/alias.mjs +1 -0
  246. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/expression/binary.mjs +1 -0
  247. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/expression/date.mjs +1 -0
  248. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/expression/evaluate.mjs +15 -0
  249. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/expression/math.mjs +1 -0
  250. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/expression/regexp.mjs +2 -0
  251. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/expression/strings.mjs +3 -0
  252. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/index.d.mts +1 -0
  253. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/index.mjs +9 -0
  254. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/parse/expression.mjs +6 -0
  255. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/parse/extractTables.mjs +1 -0
  256. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/parse/functions.mjs +5 -0
  257. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/parse/joins.mjs +7 -0
  258. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/parse/parse.mjs +10 -0
  259. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/parse/primary.mjs +8 -0
  260. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/parse/state.mjs +2 -0
  261. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/parse/tokenize.mjs +3 -0
  262. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/parse/types.d.mts +1 -0
  263. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/plan/columns.mjs +3 -0
  264. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/plan/plan.mjs +7 -0
  265. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/plan/types.d.mts +1 -0
  266. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/spatial/bbox.mjs +2 -0
  267. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/spatial/equality.mjs +2 -0
  268. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/spatial/operations.mjs +5 -0
  269. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/spatial/pointRelations.mjs +2 -0
  270. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/spatial/primitives.mjs +2 -0
  271. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/spatial/segments.mjs +2 -0
  272. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/spatial/spatial.mjs +6 -0
  273. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/spatial/wkt.mjs +1 -0
  274. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/types.d.mts +3 -0
  275. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/validation/aggregates.mjs +3 -0
  276. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/validation/executionErrors.mjs +2 -0
  277. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/validation/functions.mjs +2 -0
  278. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/validation/keywords.mjs +1 -0
  279. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/validation/parseErrors.mjs +2 -0
  280. package/dist/node_modules/.pnpm/squirreling@0.15.0/node_modules/squirreling/src/validation/tables.mjs +2 -0
  281. package/dist/parquet-plan.d.mts +15 -0
  282. package/dist/parquet-plan.mjs +139 -0
  283. package/dist/parquet-pushdown.mjs +58 -0
  284. package/dist/period/index.d.mts +52 -1
  285. package/dist/planner.d.mts +2 -14
  286. package/dist/planner.mjs +2 -1
  287. package/dist/profile.d.mts +21 -0
  288. package/dist/profile.mjs +27 -0
  289. package/dist/query-dim.d.mts +54 -0
  290. package/dist/query-dim.mjs +91 -0
  291. package/dist/report/define.d.mts +8 -0
  292. package/dist/report/define.mjs +15 -0
  293. package/dist/report/hash.d.mts +13 -0
  294. package/dist/report/hash.mjs +29 -0
  295. package/dist/report/index.d.mts +4 -170
  296. package/dist/report/index.mjs +3 -55
  297. package/dist/report/registry.d.mts +18 -0
  298. package/dist/report/registry.mjs +14 -0
  299. package/dist/report/types.d.mts +139 -0
  300. package/dist/resolver/adapter.d.mts +13 -0
  301. package/dist/resolver/adapter.mjs +27 -0
  302. package/dist/resolver/canonical-source.d.mts +5 -0
  303. package/dist/resolver/canonical-source.mjs +14 -0
  304. package/dist/resolver/compile.d.mts +15 -0
  305. package/dist/resolver/compile.mjs +396 -0
  306. package/dist/resolver/datasets.d.mts +16 -0
  307. package/dist/resolver/datasets.mjs +159 -0
  308. package/dist/resolver/extras-overlay.d.mts +37 -0
  309. package/dist/resolver/extras-overlay.mjs +17 -0
  310. package/dist/resolver/filter-utils.d.mts +10 -0
  311. package/dist/resolver/filter-utils.mjs +59 -0
  312. package/dist/resolver/fragments.d.mts +60 -0
  313. package/dist/resolver/fragments.mjs +206 -0
  314. package/dist/resolver/index.d.mts +11 -371
  315. package/dist/resolver/index.mjs +10 -1
  316. package/dist/resolver/pg-adapter.d.mts +56 -0
  317. package/dist/resolver/pg-adapter.mjs +110 -0
  318. package/dist/resolver/run-query.d.mts +172 -0
  319. package/dist/resolver/run-query.mjs +241 -0
  320. package/dist/resolver/schema-drift.d.mts +15 -0
  321. package/dist/resolver/schema-drift.mjs +12 -0
  322. package/dist/rollups.d.mts +4 -4
  323. package/dist/rollups.mjs +3 -2
  324. package/dist/schedule.mjs +100 -0
  325. package/dist/schema.d.mts +34 -1
  326. package/dist/schema.mjs +78 -1
  327. package/dist/sink-node.d.mts +1 -159
  328. package/dist/sink-node.mjs +1 -133
  329. package/dist/sink.d.mts +125 -0
  330. package/dist/sinks/in-memory-sink.d.mts +25 -0
  331. package/dist/sinks/in-memory-sink.mjs +61 -0
  332. package/dist/sinks/index.d.mts +2 -0
  333. package/dist/sinks/index.mjs +2 -0
  334. package/dist/snapshot.d.mts +14 -0
  335. package/dist/source/attached-table.d.mts +45 -0
  336. package/dist/source/attached-table.mjs +55 -0
  337. package/dist/source/create-sql-query-source.d.mts +24 -0
  338. package/dist/source/create-sql-query-source.mjs +28 -0
  339. package/dist/source/index.d.mts +6 -66
  340. package/dist/source/index.mjs +9 -82
  341. package/dist/source/source-types.d.mts +49 -0
  342. package/dist/{_chunks/storage.d.mts → storage.d.mts} +4 -14
  343. package/dist/sync-config.d.mts +36 -0
  344. package/dist/sync-config.mjs +98 -0
  345. package/dist/vendor/hysnappy-purejs.mjs +12 -1
  346. package/package.json +4 -4
  347. package/dist/_chunks/analysis-types.d.mts +0 -57
  348. package/dist/_chunks/contracts.d.mts +0 -1
  349. package/dist/_chunks/engine.mjs +0 -731
  350. package/dist/_chunks/entities.mjs +0 -967
  351. package/dist/_chunks/errors.d.mts +0 -115
  352. package/dist/_chunks/index.d.mts +0 -53
  353. package/dist/_chunks/libs/hyparquet-compressors.mjs +0 -2796
  354. package/dist/_chunks/libs/hyparquet-writer.mjs +0 -2524
  355. package/dist/_chunks/libs/hyparquet.mjs +0 -2596
  356. package/dist/_chunks/libs/icebird.mjs +0 -564
  357. package/dist/_chunks/registry.d.mts +0 -213
  358. package/dist/_chunks/resolver.mjs +0 -1220
  359. package/dist/_chunks/sink.d.mts +0 -257
  360. /package/dist/{_chunks → analyzer}/dispatch.mjs +0 -0
  361. /package/dist/{_chunks/coerce.mjs → coerce.mjs} +0 -0
  362. /package/dist/{_chunks/layout.mjs → layout.mjs} +0 -0
  363. /package/dist/{_chunks/manifest-store-utils.mjs → manifest-store-utils.mjs} +0 -0
  364. /package/dist/{_chunks/libs/fzstd.mjs → node_modules/.pnpm/fzstd@0.1.1/node_modules/fzstd/esm/index.mjs} +0 -0
  365. /package/dist/{_chunks → resolver}/types.d.mts +0 -0
  366. /package/dist/{_chunks/schedule.d.mts → schedule.d.mts} +0 -0
@@ -0,0 +1,91 @@
1
+ function ByteWriter(initalSize = 1024) {
2
+ this.buffer = new ArrayBuffer(initalSize);
3
+ this.view = new DataView(this.buffer);
4
+ this.offset = 0;
5
+ this.index = 0;
6
+ return this;
7
+ }
8
+ ByteWriter.prototype.ensure = function(size) {
9
+ if (this.index + size > this.buffer.byteLength) {
10
+ const newSize = Math.max(this.buffer.byteLength * 2, this.index + size);
11
+ const newBuffer = new ArrayBuffer(newSize);
12
+ new Uint8Array(newBuffer).set(new Uint8Array(this.buffer));
13
+ this.buffer = newBuffer;
14
+ this.view = new DataView(this.buffer);
15
+ }
16
+ };
17
+ ByteWriter.prototype.finish = function() {};
18
+ ByteWriter.prototype.getBuffer = function() {
19
+ return this.buffer.slice(0, this.index);
20
+ };
21
+ ByteWriter.prototype.getBytes = function() {
22
+ return new Uint8Array(this.buffer, 0, this.index);
23
+ };
24
+ ByteWriter.prototype.appendUint8 = function(value) {
25
+ this.ensure(this.index + 1);
26
+ this.view.setUint8(this.index, value);
27
+ this.offset++;
28
+ this.index++;
29
+ };
30
+ ByteWriter.prototype.appendUint32 = function(value) {
31
+ this.ensure(this.index + 4);
32
+ this.view.setUint32(this.index, value, true);
33
+ this.offset += 4;
34
+ this.index += 4;
35
+ };
36
+ ByteWriter.prototype.appendInt32 = function(value) {
37
+ this.ensure(this.index + 4);
38
+ this.view.setInt32(this.index, value, true);
39
+ this.offset += 4;
40
+ this.index += 4;
41
+ };
42
+ ByteWriter.prototype.appendInt64 = function(value) {
43
+ this.ensure(this.index + 8);
44
+ this.view.setBigInt64(this.index, BigInt(value), true);
45
+ this.offset += 8;
46
+ this.index += 8;
47
+ };
48
+ ByteWriter.prototype.appendFloat32 = function(value) {
49
+ this.ensure(this.index + 8);
50
+ this.view.setFloat32(this.index, value, true);
51
+ this.offset += 4;
52
+ this.index += 4;
53
+ };
54
+ ByteWriter.prototype.appendFloat64 = function(value) {
55
+ this.ensure(this.index + 8);
56
+ this.view.setFloat64(this.index, value, true);
57
+ this.offset += 8;
58
+ this.index += 8;
59
+ };
60
+ ByteWriter.prototype.appendBuffer = function(value) {
61
+ this.appendBytes(new Uint8Array(value));
62
+ };
63
+ ByteWriter.prototype.appendBytes = function(value) {
64
+ this.ensure(this.index + value.length);
65
+ new Uint8Array(this.buffer, this.index, value.length).set(value);
66
+ this.offset += value.length;
67
+ this.index += value.length;
68
+ };
69
+ ByteWriter.prototype.appendVarInt = function(value) {
70
+ while (true) if ((value & -128) === 0) {
71
+ this.appendUint8(value);
72
+ return;
73
+ } else {
74
+ this.appendUint8(value & 127 | 128);
75
+ value >>>= 7;
76
+ }
77
+ };
78
+ ByteWriter.prototype.appendVarBigInt = function(value) {
79
+ while (true) if ((value & -128n) === 0n) {
80
+ this.appendUint8(Number(value));
81
+ return;
82
+ } else {
83
+ this.appendUint8(Number(value & 127n | 128n));
84
+ value >>= 7n;
85
+ }
86
+ };
87
+ ByteWriter.prototype.appendZigZag = function(value) {
88
+ if (typeof value === "number") this.appendVarInt(value << 1 ^ value >> 31);
89
+ else this.appendVarBigInt(value << 1n ^ value >> 63n);
90
+ };
91
+ export { ByteWriter };
@@ -0,0 +1,186 @@
1
+ import { BloomBuilder } from "./bloom.mjs";
2
+ import { writeDataPageV2 } from "./datapage.mjs";
3
+ import { estimateValueSize, useDictionary, writeDictionaryPage } from "./dictionary.mjs";
4
+ import { geospatialStatistics } from "./geospatial.mjs";
5
+ import { unconvert, unconvertMinMax } from "./unconvert.mjs";
6
+ function writeColumn({ writer, column, pageData }) {
7
+ const { columnName, element, schemaPath, stats, pageSize, encoding: userEncoding } = column;
8
+ const { type, type_length } = element;
9
+ if (!type) throw new Error(`column ${columnName} cannot determine type`);
10
+ const { values, definitionLevels, repetitionLevels, maxDefinitionLevel } = pageData;
11
+ const offsetStart = writer.offset;
12
+ const encodings = [];
13
+ const isGeospatial = element?.logical_type?.type === "GEOMETRY" || element?.logical_type?.type === "GEOGRAPHY";
14
+ const statistics = stats ? getStatistics(values) : void 0;
15
+ const geospatial_statistics = stats && isGeospatial ? geospatialStatistics(values) : void 0;
16
+ let bloomFilter;
17
+ if (column.bloomFilter) {
18
+ const builder = new BloomBuilder(element, typeof column.bloomFilter === "object" ? column.bloomFilter : void 0);
19
+ for (const v of values) builder.insert(v);
20
+ bloomFilter = builder.finalize();
21
+ }
22
+ let dictionary_page_offset;
23
+ const { dictionary, indexes } = useDictionary(values, type, type_length, userEncoding, pageSize);
24
+ let encoding;
25
+ let writeValues;
26
+ let writeType = type;
27
+ if (dictionary && indexes) {
28
+ writeValues = indexes;
29
+ writeType = "INT32";
30
+ encoding = "RLE_DICTIONARY";
31
+ dictionary_page_offset = BigInt(writer.offset);
32
+ writeDictionaryPage(writer, column, unconvert(element, dictionary));
33
+ } else {
34
+ writeValues = unconvert(element, values);
35
+ encoding = userEncoding ?? (type === "BOOLEAN" && values.length > 16 ? "RLE" : "PLAIN");
36
+ }
37
+ encodings.push(encoding);
38
+ const pageBoundaries = getPageBoundaries(writeValues, writeType, type_length, pageSize);
39
+ const columnIndex = column.columnIndex && pageBoundaries.length > 1 ? {
40
+ null_pages: [],
41
+ min_values: [],
42
+ max_values: [],
43
+ boundary_order: "UNORDERED",
44
+ null_counts: []
45
+ } : void 0;
46
+ const offsetIndex = column.offsetIndex && pageBoundaries.length > 1 ? { page_locations: [] } : void 0;
47
+ const data_page_offset = BigInt(writer.offset);
48
+ let first_row_index = 0n;
49
+ let prevStart = 0;
50
+ let prevMinValue;
51
+ let prevMaxValue;
52
+ let ascending = true;
53
+ let descending = true;
54
+ for (const { start, end } of pageBoundaries) {
55
+ const pageOffset = writer.offset;
56
+ const pageChunk = {
57
+ values: writeValues.slice(start, end),
58
+ definitionLevels: definitionLevels.slice(start, end),
59
+ repetitionLevels: repetitionLevels.slice(start, end),
60
+ maxDefinitionLevel
61
+ };
62
+ writeDataPageV2({
63
+ writer,
64
+ column,
65
+ encoding,
66
+ pageData: pageChunk
67
+ });
68
+ if (columnIndex) {
69
+ const { min_value, max_value, null_count = 0n } = getStatistics(values.slice(start, end));
70
+ columnIndex.null_pages.push(null_count === BigInt(end - start));
71
+ columnIndex.min_values.push(unconvertMinMax(min_value, element, false) ?? /* @__PURE__ */ new Uint8Array());
72
+ columnIndex.max_values.push(unconvertMinMax(max_value, element, true) ?? /* @__PURE__ */ new Uint8Array());
73
+ columnIndex.null_counts?.push(null_count);
74
+ if (prevMinValue !== void 0 && min_value !== void 0) {
75
+ if (prevMinValue > min_value) ascending = false;
76
+ if (prevMinValue < min_value) descending = false;
77
+ }
78
+ if (prevMaxValue !== void 0 && max_value !== void 0) {
79
+ if (prevMaxValue > max_value) ascending = false;
80
+ if (prevMaxValue < max_value) descending = false;
81
+ }
82
+ prevMinValue = min_value;
83
+ prevMaxValue = max_value;
84
+ }
85
+ if (offsetIndex) {
86
+ if (repetitionLevels.length) {
87
+ for (let i = prevStart + 1; i <= start; i++) if (repetitionLevels[i] === 0) first_row_index++;
88
+ } else first_row_index = BigInt(start);
89
+ offsetIndex.page_locations.push({
90
+ offset: BigInt(pageOffset),
91
+ compressed_page_size: writer.offset - pageOffset,
92
+ first_row_index
93
+ });
94
+ }
95
+ prevStart = start;
96
+ }
97
+ if (columnIndex) {
98
+ if (ascending) columnIndex.boundary_order = "ASCENDING";
99
+ else if (descending) columnIndex.boundary_order = "DESCENDING";
100
+ }
101
+ let encoding_stats;
102
+ if (stats) {
103
+ encoding_stats = [];
104
+ if (dictionary_page_offset !== void 0) encoding_stats.push({
105
+ page_type: "DICTIONARY_PAGE",
106
+ encoding: "PLAIN",
107
+ count: 1
108
+ });
109
+ encoding_stats.push({
110
+ page_type: "DATA_PAGE_V2",
111
+ encoding,
112
+ count: pageBoundaries.length
113
+ });
114
+ }
115
+ return {
116
+ chunk: {
117
+ meta_data: {
118
+ type,
119
+ encodings,
120
+ path_in_schema: schemaPath.slice(1).map((s) => s.name),
121
+ codec: column.codec ?? "UNCOMPRESSED",
122
+ num_values: BigInt(values.length),
123
+ total_compressed_size: BigInt(writer.offset - offsetStart),
124
+ total_uncompressed_size: BigInt(writer.offset - offsetStart),
125
+ data_page_offset,
126
+ dictionary_page_offset,
127
+ statistics,
128
+ encoding_stats,
129
+ geospatial_statistics
130
+ },
131
+ file_offset: BigInt(offsetStart)
132
+ },
133
+ columnIndex,
134
+ offsetIndex,
135
+ bloomFilter
136
+ };
137
+ }
138
+ function getPageBoundaries(values, type, type_length, pageSize) {
139
+ if (!pageSize) return [{
140
+ start: 0,
141
+ end: values.length
142
+ }];
143
+ const boundaries = [];
144
+ let start = 0;
145
+ let accumulatedBytes = 0;
146
+ for (let i = 0; i < values.length; i++) {
147
+ const valueSize = estimateValueSize(values[i], type, type_length);
148
+ accumulatedBytes += valueSize;
149
+ if (accumulatedBytes >= pageSize && i > start) {
150
+ boundaries.push({
151
+ start,
152
+ end: i
153
+ });
154
+ start = i;
155
+ accumulatedBytes = valueSize;
156
+ }
157
+ }
158
+ if (start < values.length) boundaries.push({
159
+ start,
160
+ end: values.length
161
+ });
162
+ return boundaries;
163
+ }
164
+ function getStatistics(values) {
165
+ let min_value = void 0;
166
+ let max_value = void 0;
167
+ let null_count = 0n;
168
+ for (const value of values) {
169
+ if (value === null || value === void 0) {
170
+ null_count++;
171
+ continue;
172
+ }
173
+ if (typeof value === "object") continue;
174
+ if (typeof value === "number" && Number.isNaN(value)) continue;
175
+ if (min_value === void 0 || value < min_value) min_value = value;
176
+ if (max_value === void 0 || value > max_value) max_value = value;
177
+ }
178
+ if (min_value === 0) min_value = -0;
179
+ if (max_value === 0) max_value = 0;
180
+ return {
181
+ min_value,
182
+ max_value,
183
+ null_count
184
+ };
185
+ }
186
+ export { writeColumn };
@@ -0,0 +1,113 @@
1
+ import { ByteWriter } from "./bytewriter.mjs";
2
+ import { serializeTCompactProtocol } from "./thrift.mjs";
3
+ import { Encodings, PageTypes } from "../../../../hyparquet@1.26.1/node_modules/hyparquet/src/constants.mjs";
4
+ import { deltaBinaryPack, deltaByteArray, deltaLengthByteArray } from "./delta.mjs";
5
+ import { writeRleBitPackedHybrid } from "./encoding.mjs";
6
+ import { writePlain } from "./plain.mjs";
7
+ import { getMaxRepetitionLevel } from "./schema.mjs";
8
+ import { writeByteStreamSplit } from "./splitstream.mjs";
9
+ function writeDataPageV2({ writer, column, encoding, pageData }) {
10
+ const { columnName, element, codec, compressors } = column;
11
+ const { type, type_length, repetition_type } = element;
12
+ if (!type) throw new Error(`column ${columnName} cannot determine type`);
13
+ if (repetition_type === "REPEATED") throw new Error(`column ${columnName} repeated types not supported`);
14
+ const levelWriter = new ByteWriter();
15
+ const { definition_levels_byte_length, repetition_levels_byte_length, num_nulls, num_values, num_rows } = writeLevels(levelWriter, column, pageData);
16
+ const nonnull = num_nulls ? pageData.values.filter((v) => v !== null && v !== void 0) : pageData.values;
17
+ const page = new ByteWriter();
18
+ if (encoding === "PLAIN") writePlain(page, nonnull, type, type_length);
19
+ else if (encoding === "RLE") {
20
+ if (type !== "BOOLEAN") throw new Error("RLE encoding only supported for BOOLEAN type");
21
+ const rleData = new ByteWriter();
22
+ writeRleBitPackedHybrid(rleData, nonnull, 1);
23
+ page.appendUint32(rleData.offset);
24
+ page.appendBytes(rleData.getBytes());
25
+ } else if (encoding === "PLAIN_DICTIONARY" || encoding === "RLE_DICTIONARY") {
26
+ let maxValue = 0;
27
+ for (const v of nonnull) if (v > maxValue) maxValue = v;
28
+ const bitWidth = Math.ceil(Math.log2(maxValue + 1));
29
+ page.appendUint8(bitWidth);
30
+ writeRleBitPackedHybrid(page, nonnull, bitWidth);
31
+ } else if (encoding === "DELTA_BINARY_PACKED") {
32
+ if (type !== "INT32" && type !== "INT64") throw new Error("DELTA_BINARY_PACKED encoding only supported for INT32 and INT64 types");
33
+ deltaBinaryPack(page, nonnull);
34
+ } else if (encoding === "DELTA_LENGTH_BYTE_ARRAY") {
35
+ if (type !== "BYTE_ARRAY") throw new Error("DELTA_LENGTH_BYTE_ARRAY encoding only supported for BYTE_ARRAY type");
36
+ deltaLengthByteArray(page, nonnull);
37
+ } else if (encoding === "DELTA_BYTE_ARRAY") {
38
+ if (type !== "BYTE_ARRAY") throw new Error("DELTA_BYTE_ARRAY encoding only supported for BYTE_ARRAY type");
39
+ deltaByteArray(page, nonnull);
40
+ } else if (encoding === "BYTE_STREAM_SPLIT") writeByteStreamSplit(page, nonnull, type, type_length);
41
+ else throw new Error(`parquet unsupported encoding: ${encoding}`);
42
+ const pageBytes = page.getBytes();
43
+ const compressedBytes = compressors[codec]?.(pageBytes) ?? pageBytes;
44
+ writePageHeader(writer, {
45
+ type: "DATA_PAGE_V2",
46
+ uncompressed_page_size: levelWriter.offset + page.offset,
47
+ compressed_page_size: levelWriter.offset + compressedBytes.length,
48
+ data_page_header_v2: {
49
+ num_values,
50
+ num_nulls,
51
+ num_rows,
52
+ encoding,
53
+ definition_levels_byte_length,
54
+ repetition_levels_byte_length,
55
+ is_compressed: !!codec
56
+ }
57
+ });
58
+ writer.appendBytes(levelWriter.getBytes());
59
+ writer.appendBytes(compressedBytes);
60
+ }
61
+ function writePageHeader(writer, header) {
62
+ serializeTCompactProtocol(writer, {
63
+ field_1: PageTypes.indexOf(header.type),
64
+ field_2: header.uncompressed_page_size,
65
+ field_3: header.compressed_page_size,
66
+ field_4: header.crc,
67
+ field_5: header.data_page_header && {
68
+ field_1: header.data_page_header.num_values,
69
+ field_2: Encodings.indexOf(header.data_page_header.encoding),
70
+ field_3: Encodings.indexOf(header.data_page_header.definition_level_encoding),
71
+ field_4: Encodings.indexOf(header.data_page_header.repetition_level_encoding)
72
+ },
73
+ field_7: header.dictionary_page_header && {
74
+ field_1: header.dictionary_page_header.num_values,
75
+ field_2: Encodings.indexOf(header.dictionary_page_header.encoding)
76
+ },
77
+ field_8: header.data_page_header_v2 && {
78
+ field_1: header.data_page_header_v2.num_values,
79
+ field_2: header.data_page_header_v2.num_nulls,
80
+ field_3: header.data_page_header_v2.num_rows,
81
+ field_4: Encodings.indexOf(header.data_page_header_v2.encoding),
82
+ field_5: header.data_page_header_v2.definition_levels_byte_length,
83
+ field_6: header.data_page_header_v2.repetition_levels_byte_length,
84
+ field_7: header.data_page_header_v2.is_compressed ? void 0 : false
85
+ }
86
+ });
87
+ }
88
+ function writeLevels(writer, column, dataPage) {
89
+ const { schemaPath } = column;
90
+ const { values, definitionLevels, repetitionLevels, maxDefinitionLevel } = dataPage;
91
+ const num_values = definitionLevels.length || values.length;
92
+ let num_nulls = 0;
93
+ let num_rows = 0;
94
+ if (repetitionLevels.length) {
95
+ for (let i = 0; i < repetitionLevels.length; i++) if (repetitionLevels[i] === 0) num_rows++;
96
+ } else num_rows = values.length;
97
+ if (definitionLevels.length) {
98
+ for (let i = 0; i < definitionLevels.length; i++) if (definitionLevels[i] < maxDefinitionLevel) num_nulls++;
99
+ }
100
+ const maxRepetitionLevel = getMaxRepetitionLevel(schemaPath);
101
+ let repetition_levels_byte_length = 0;
102
+ if (maxRepetitionLevel) repetition_levels_byte_length = writeRleBitPackedHybrid(writer, repetitionLevels, Math.ceil(Math.log2(maxRepetitionLevel + 1)));
103
+ let definition_levels_byte_length = 0;
104
+ if (maxDefinitionLevel) definition_levels_byte_length = writeRleBitPackedHybrid(writer, definitionLevels, Math.ceil(Math.log2(maxDefinitionLevel + 1)));
105
+ return {
106
+ definition_levels_byte_length,
107
+ repetition_levels_byte_length,
108
+ num_values,
109
+ num_nulls,
110
+ num_rows
111
+ };
112
+ }
113
+ export { writeDataPageV2, writePageHeader };
@@ -0,0 +1,111 @@
1
+ const BLOCK_SIZE = 128;
2
+ const MINIBLOCKS_PER_BLOCK = 4;
3
+ const VALUES_PER_MINIBLOCK = BLOCK_SIZE / MINIBLOCKS_PER_BLOCK;
4
+ function deltaBinaryPack(writer, values) {
5
+ const count = values.length;
6
+ if (count === 0) {
7
+ writer.appendVarInt(BLOCK_SIZE);
8
+ writer.appendVarInt(MINIBLOCKS_PER_BLOCK);
9
+ writer.appendVarInt(0);
10
+ writer.appendVarInt(0);
11
+ return;
12
+ }
13
+ if (typeof values[0] !== "number" && typeof values[0] !== "bigint") throw new Error("deltaBinaryPack only supports number or bigint arrays");
14
+ writer.appendVarInt(BLOCK_SIZE);
15
+ writer.appendVarInt(MINIBLOCKS_PER_BLOCK);
16
+ writer.appendVarInt(count);
17
+ writer.appendZigZag(values[0]);
18
+ let index = 1;
19
+ while (index < count) {
20
+ const blockEnd = Math.min(index + BLOCK_SIZE, count);
21
+ const blockSize = blockEnd - index;
22
+ const blockDeltas = new BigInt64Array(blockSize);
23
+ let minDelta = BigInt(values[index]) - BigInt(values[index - 1]);
24
+ blockDeltas[0] = minDelta;
25
+ for (let i = 1; i < blockSize; i++) {
26
+ const delta = BigInt(values[index + i]) - BigInt(values[index + i - 1]);
27
+ blockDeltas[i] = delta;
28
+ if (delta < minDelta) minDelta = delta;
29
+ }
30
+ writer.appendZigZag(minDelta);
31
+ const bitWidths = new Uint8Array(MINIBLOCKS_PER_BLOCK);
32
+ for (let mb = 0; mb < MINIBLOCKS_PER_BLOCK; mb++) {
33
+ const mbStart = mb * VALUES_PER_MINIBLOCK;
34
+ const mbEnd = Math.min(mbStart + VALUES_PER_MINIBLOCK, blockSize);
35
+ let maxAdjusted = 0n;
36
+ for (let i = mbStart; i < mbEnd; i++) {
37
+ const adjusted = blockDeltas[i] - minDelta;
38
+ if (adjusted > maxAdjusted) maxAdjusted = adjusted;
39
+ }
40
+ bitWidths[mb] = bitWidth(maxAdjusted);
41
+ }
42
+ writer.appendBytes(bitWidths);
43
+ for (let mb = 0; mb < MINIBLOCKS_PER_BLOCK; mb++) {
44
+ const bitWidth = bitWidths[mb];
45
+ if (bitWidth === 0) continue;
46
+ const mbStart = mb * VALUES_PER_MINIBLOCK;
47
+ const mbEnd = Math.min(mbStart + VALUES_PER_MINIBLOCK, blockSize);
48
+ let buffer = 0n;
49
+ let bitsUsed = 0;
50
+ for (let i = 0; i < VALUES_PER_MINIBLOCK; i++) {
51
+ const adjusted = mbStart + i < mbEnd ? blockDeltas[mbStart + i] - minDelta : 0n;
52
+ buffer |= adjusted << BigInt(bitsUsed);
53
+ bitsUsed += bitWidth;
54
+ while (bitsUsed >= 8) {
55
+ writer.appendUint8(Number(buffer & 255n));
56
+ buffer >>= 8n;
57
+ bitsUsed -= 8;
58
+ }
59
+ }
60
+ }
61
+ index = blockEnd;
62
+ }
63
+ }
64
+ function deltaLengthByteArray(writer, values) {
65
+ const lengths = new Int32Array(values.length);
66
+ for (let i = 0; i < values.length; i++) {
67
+ const value = values[i];
68
+ if (!(value instanceof Uint8Array)) throw new Error("deltaLengthByteArray expects Uint8Array values");
69
+ lengths[i] = value.length;
70
+ }
71
+ deltaBinaryPack(writer, lengths);
72
+ for (const value of values) writer.appendBytes(value);
73
+ }
74
+ function deltaByteArray(writer, values) {
75
+ if (values.length === 0) {
76
+ deltaBinaryPack(writer, []);
77
+ deltaBinaryPack(writer, []);
78
+ return;
79
+ }
80
+ const prefixLengths = new Int32Array(values.length);
81
+ const suffixLengths = new Int32Array(values.length);
82
+ const suffixes = new Array(values.length);
83
+ if (!(values[0] instanceof Uint8Array)) throw new Error("deltaByteArray expects Uint8Array values");
84
+ prefixLengths[0] = 0;
85
+ suffixLengths[0] = values[0].length;
86
+ suffixes[0] = values[0];
87
+ for (let i = 1; i < values.length; i++) {
88
+ const prev = values[i - 1];
89
+ const curr = values[i];
90
+ if (!(curr instanceof Uint8Array)) throw new Error("deltaByteArray expects Uint8Array values");
91
+ let prefixLen = 0;
92
+ const maxPrefix = Math.min(prev.length, curr.length);
93
+ while (prefixLen < maxPrefix && prev[prefixLen] === curr[prefixLen]) prefixLen++;
94
+ prefixLengths[i] = prefixLen;
95
+ suffixLengths[i] = curr.length - prefixLen;
96
+ suffixes[i] = curr.subarray(prefixLen);
97
+ }
98
+ deltaBinaryPack(writer, prefixLengths);
99
+ deltaBinaryPack(writer, suffixLengths);
100
+ for (const suffix of suffixes) writer.appendBytes(suffix);
101
+ }
102
+ function bitWidth(value) {
103
+ if (value === 0n) return 0;
104
+ let bits = 0;
105
+ while (value > 0n) {
106
+ bits++;
107
+ value >>= 1n;
108
+ }
109
+ return bits;
110
+ }
111
+ export { deltaBinaryPack, deltaByteArray, deltaLengthByteArray };
@@ -0,0 +1,99 @@
1
+ import { ByteWriter } from "./bytewriter.mjs";
2
+ import { writePlain } from "./plain.mjs";
3
+ import { writePageHeader } from "./datapage.mjs";
4
+ function estimateValueSize(value, type, type_length) {
5
+ if (value === null || value === void 0) return 0;
6
+ if (type === "BOOLEAN") return .125;
7
+ if (type === "INT32" || type === "FLOAT") return 4;
8
+ if (type === "INT64" || type === "DOUBLE") return 8;
9
+ if (type === "INT96") return 12;
10
+ if (type === "FIXED_LEN_BYTE_ARRAY") return type_length ?? 0;
11
+ if (type === "BYTE_ARRAY") {
12
+ if (value instanceof Uint8Array) return value.byteLength;
13
+ if (typeof value === "string") return value.length;
14
+ }
15
+ return 0;
16
+ }
17
+ function hashBytes(bytes) {
18
+ let h = 2166136261;
19
+ for (let i = 0; i < bytes.length; i++) {
20
+ h ^= bytes[i];
21
+ h = Math.imul(h, 16777619);
22
+ }
23
+ return h >>> 0;
24
+ }
25
+ function bytesEqual(a, b) {
26
+ if (a.length !== b.length) return false;
27
+ for (let i = 0; i < a.length; i++) if (a[i] !== b[i]) return false;
28
+ return true;
29
+ }
30
+ function useDictionary(values, type, type_length, encoding, pageSize) {
31
+ if (encoding && encoding !== "RLE_DICTIONARY") return {};
32
+ if (type === "BOOLEAN") return {};
33
+ const sample = values.slice(0, 1e3);
34
+ const sampleKeys = /* @__PURE__ */ new Set();
35
+ for (const value of sample) sampleKeys.add(value instanceof Uint8Array ? hashBytes(value) : value);
36
+ if (sampleKeys.size === 0 || sampleKeys.size / sample.length > .5) return {};
37
+ const dictionary = [];
38
+ const indexes = new Array(values.length);
39
+ const valueIndex = /* @__PURE__ */ new Map();
40
+ const hashBuckets = /* @__PURE__ */ new Map();
41
+ let dictSize = 0;
42
+ for (let i = 0; i < values.length; i++) {
43
+ const value = values[i];
44
+ if (value === null || value === void 0) continue;
45
+ let index;
46
+ if (value instanceof Uint8Array) {
47
+ const hash = hashBytes(value);
48
+ const bucket = hashBuckets.get(hash);
49
+ if (bucket) {
50
+ for (const j of bucket) if (bytesEqual(dictionary[j], value)) {
51
+ index = j;
52
+ break;
53
+ }
54
+ }
55
+ if (index === void 0) {
56
+ dictSize += value.byteLength;
57
+ if (pageSize && dictSize > pageSize) return {};
58
+ index = dictionary.length;
59
+ dictionary.push(value);
60
+ if (bucket) bucket.push(index);
61
+ else hashBuckets.set(hash, [index]);
62
+ }
63
+ } else {
64
+ index = valueIndex.get(value);
65
+ if (index === void 0) {
66
+ dictSize += estimateValueSize(value, type, type_length);
67
+ if (pageSize && dictSize > pageSize) return {};
68
+ index = dictionary.length;
69
+ dictionary.push(value);
70
+ valueIndex.set(value, index);
71
+ }
72
+ }
73
+ indexes[i] = index;
74
+ }
75
+ return {
76
+ dictionary,
77
+ indexes
78
+ };
79
+ }
80
+ function writeDictionaryPage(writer, column, dictionary) {
81
+ const { element, codec, compressors } = column;
82
+ const { type, type_length } = element;
83
+ if (!type) throw new Error(`column ${column.columnName} cannot determine type`);
84
+ const dictionaryPage = new ByteWriter();
85
+ writePlain(dictionaryPage, dictionary, type, type_length);
86
+ const dictionaryBytes = dictionaryPage.getBytes();
87
+ const compressedBytes = compressors[codec]?.(dictionaryBytes) ?? dictionaryBytes;
88
+ writePageHeader(writer, {
89
+ type: "DICTIONARY_PAGE",
90
+ uncompressed_page_size: dictionaryBytes.byteLength,
91
+ compressed_page_size: compressedBytes.byteLength,
92
+ dictionary_page_header: {
93
+ num_values: dictionary.length,
94
+ encoding: "PLAIN"
95
+ }
96
+ });
97
+ writer.appendBytes(compressedBytes);
98
+ }
99
+ export { estimateValueSize, useDictionary, writeDictionaryPage };