calc-flow-python 2026.9.25__tar.gz → 2026.10.13__tar.gz

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 (720) hide show
  1. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/Cargo.lock +33 -6
  2. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/Cargo.toml +3 -1
  3. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/PKG-INFO +22 -75
  4. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/README.md +20 -72
  5. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/Cargo.toml +29 -0
  6. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/benches/m4_state_window.rs +97 -2
  7. calc_flow_python-2026.10.13/crates/calc-flow/benches/stream_asof_e2e.rs +375 -0
  8. calc_flow_python-2026.10.13/crates/calc-flow/benches/stream_asof_eviction.rs +500 -0
  9. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/benches/stream_asof_perf.rs +60 -18
  10. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/benches/stream_join_perf.rs +355 -31
  11. calc_flow_python-2026.10.13/crates/calc-flow/benches/stream_sql_aggregate.rs +723 -0
  12. calc_flow_python-2026.10.13/crates/calc-flow/benches/stream_union.rs +57 -0
  13. calc_flow_python-2026.10.13/crates/calc-flow/benches/stream_window_groups.rs +535 -0
  14. calc_flow_python-2026.10.13/crates/calc-flow/benches/support/native_join_components.rs +495 -0
  15. calc_flow_python-2026.10.13/crates/calc-flow/benches/support/streaming_soak/contracts.rs +1853 -0
  16. calc_flow_python-2026.10.13/crates/calc-flow/benches/support/streaming_soak/reporting.rs +620 -0
  17. calc_flow_python-2026.9.25/crates/calc-flow/src/runtime/streaming/soak.rs → calc_flow_python-2026.10.13/crates/calc-flow/benches/support/streaming_soak.rs +390 -3628
  18. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/rolling-kernels.json +32 -0
  19. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/batch.rs +110 -207
  20. calc_flow_python-2026.10.13/crates/calc-flow/src/benchmark_internals/dispatch_trace.rs +288 -0
  21. calc_flow_python-2026.10.13/crates/calc-flow/src/benchmark_internals.rs +880 -0
  22. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/config.rs +80 -7
  23. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/connector/capability.rs +0 -54
  24. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/connector/secret.rs +12 -0
  25. calc_flow_python-2026.10.13/crates/calc-flow/src/continuous/benchmark_trace.rs +68 -0
  26. calc_flow_python-2026.10.13/crates/calc-flow/src/continuous/checkpointing_tests.rs +114 -0
  27. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/continuous.rs +150 -322
  28. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/datafusion.rs +673 -124
  29. calc_flow_python-2026.10.13/crates/calc-flow/src/datafusion_compact.rs +372 -0
  30. calc_flow_python-2026.10.13/crates/calc-flow/src/datafusion_compact_planner.rs +932 -0
  31. calc_flow_python-2026.10.13/crates/calc-flow/src/datafusion_eager_input.rs +87 -0
  32. calc_flow_python-2026.10.13/crates/calc-flow/src/datafusion_global_float_plan_tests.rs +283 -0
  33. calc_flow_python-2026.10.13/crates/calc-flow/src/datafusion_global_record.rs +108 -0
  34. calc_flow_python-2026.10.13/crates/calc-flow/src/datafusion_grouped_float.rs +244 -0
  35. calc_flow_python-2026.10.13/crates/calc-flow/src/datafusion_grouped_float_continuation_tests.rs +324 -0
  36. calc_flow_python-2026.10.13/crates/calc-flow/src/datafusion_grouped_float_diagnostics.rs +288 -0
  37. calc_flow_python-2026.10.13/crates/calc-flow/src/datafusion_grouped_float_seed_tests.rs +132 -0
  38. calc_flow_python-2026.10.13/crates/calc-flow/src/datafusion_owned.rs +550 -0
  39. calc_flow_python-2026.10.13/crates/calc-flow/src/datafusion_template.rs +254 -0
  40. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/expression.rs +217 -19
  41. calc_flow_python-2026.10.13/crates/calc-flow/src/json/owned_size.rs +44 -0
  42. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/json.rs +3 -0
  43. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/lib.rs +12 -6
  44. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/admission/direct/tests.rs +101 -0
  45. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/admission/direct.rs +309 -0
  46. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/admission/identity_tests/columnar/descriptors.rs +182 -0
  47. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/admission/identity_tests/columnar/direct/lifecycle.rs +251 -0
  48. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/admission/identity_tests/columnar/direct/right.rs +481 -0
  49. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/admission/identity_tests/columnar/direct.rs +514 -0
  50. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/admission/identity_tests/columnar/right_keys.rs +205 -0
  51. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/admission/identity_tests/columnar.rs +1120 -0
  52. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/admission/identity_tests/cpu.rs +248 -0
  53. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/admission/identity_tests/parallel_cpu.rs +591 -0
  54. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/admission/parallel.rs +321 -0
  55. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/admission/right.rs +272 -0
  56. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/admission.rs +2186 -0
  57. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/checkpoint/cost.rs +42 -0
  58. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/checkpoint/cpu.rs +154 -0
  59. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/checkpoint/current_format_tests.rs +207 -0
  60. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/checkpoint/incremental.rs +1606 -0
  61. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/checkpoint/index_v3/log/chain.rs +299 -0
  62. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/checkpoint/index_v3/log/journal.rs +227 -0
  63. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/checkpoint/index_v3/log/model.rs +828 -0
  64. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/checkpoint/index_v3/log/read.rs +611 -0
  65. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/checkpoint/index_v3/log/tests.rs +295 -0
  66. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/checkpoint/index_v3/log/write.rs +514 -0
  67. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/checkpoint/index_v3/log.rs +163 -0
  68. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/checkpoint/index_v3/owned.rs +446 -0
  69. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/checkpoint/index_v3/owners.rs +528 -0
  70. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/checkpoint/index_v3.rs +2080 -0
  71. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/checkpoint/payload_segments.rs +5 -0
  72. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/checkpoint/prepared.rs +23 -0
  73. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/operator/asof/checkpoint/validation.rs +7 -5
  74. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/checkpoint.rs +1317 -0
  75. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/operator/asof/codec/framing.rs +65 -13
  76. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/operator/asof/codec.rs +68 -26
  77. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/copy.rs +651 -0
  78. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/cpu.rs +64 -0
  79. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/operator/asof/duplicate_fallback.rs +13 -3
  80. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/finalize/output_ranges.rs +498 -0
  81. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/finalize/owner_runs.rs +435 -0
  82. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/finalize/prefix/tests/cpu.rs +388 -0
  83. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/finalize/prefix.rs +234 -0
  84. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/finalize/probe/tests.rs +591 -0
  85. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/finalize/probe.rs +171 -0
  86. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/finalize.rs +1294 -0
  87. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/operator/asof/metadata.rs +1 -0
  88. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/operator/asof/mod.rs +287 -104
  89. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/output/gather_lifecycle_bridge/multi.rs +242 -0
  90. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/output/gather_lifecycle_bridge.rs +383 -0
  91. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/output/tests/all_shared.rs +336 -0
  92. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/output/tests.rs +1012 -0
  93. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/output.rs +567 -0
  94. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/output_plan/backing.rs +57 -0
  95. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/output_plan/tests/backing_allocation.rs +165 -0
  96. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/output_plan/tests.rs +114 -0
  97. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/output_plan.rs +441 -0
  98. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/payload_projection.rs +278 -0
  99. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/replay/anchor/tests.rs +149 -0
  100. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/replay/anchor.rs +336 -0
  101. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/replay/capture.rs +159 -0
  102. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/replay/codec.rs +312 -0
  103. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/replay/restore.rs +466 -0
  104. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/replay/tests.rs +183 -0
  105. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/replay.rs +332 -0
  106. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/retirement.rs +76 -0
  107. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/operator/asof/schema.rs +1 -1
  108. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/state/capacity.rs +289 -0
  109. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/state/expiration_cost_tests.rs +154 -0
  110. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/state/key_dictionary/compaction.rs +132 -0
  111. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/state/key_dictionary/entries.rs +292 -0
  112. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/state/key_dictionary/expiration.rs +209 -0
  113. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/state/key_dictionary/funding.rs +183 -0
  114. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/state/key_dictionary.rs +870 -0
  115. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/state/key_shards.rs +13 -0
  116. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/state/left.rs +2053 -0
  117. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/state/ownership.rs +218 -0
  118. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/state/payload.rs +863 -0
  119. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/state/right/merge_tests.rs +100 -0
  120. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/state/right.rs +1203 -0
  121. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/state/sequences.rs +526 -0
  122. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/state/string_keys.rs +86 -0
  123. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/state.rs +2579 -0
  124. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/tests/checkpoint_delta.rs +525 -0
  125. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/tests/dominated_payloads.rs +294 -0
  126. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/tests/expiration_index.rs +305 -0
  127. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/tests/expiration_output_integration.rs +732 -0
  128. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/tests/fixtures/legacy-v3/empty.json +75 -0
  129. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/tests/fixtures/legacy-v3/general-spare-shared.json +84 -0
  130. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/tests/fixtures/legacy-v3/populated.json +88 -0
  131. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/tests/fixtures/legacy-v3/terminal.json +75 -0
  132. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/tests/fixtures/legacy-v3/tight-state-cap.json +88 -0
  133. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/tests/fixtures/legacy-v4/dominated-retained.json +82 -0
  134. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/tests/fixtures/legacy-v5/.gitattributes +1 -0
  135. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/tests/fixtures/legacy-v5/retained-projection.json +86 -0
  136. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/tests/gather_admission.rs +184 -0
  137. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/tests/restored_workspace.rs +591 -0
  138. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/tests/retained_projection.rs +404 -0
  139. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/tests/retained_projection_contracts.rs +933 -0
  140. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/tests/source_replay.rs +179 -0
  141. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/tests.rs +2135 -0
  142. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/asof/workspace.rs +1228 -0
  143. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/operator/cross_section/late.rs +2 -1
  144. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/operator/cross_section/tests/late.rs +33 -4
  145. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/operator/cross_section.rs +1524 -172
  146. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/operator/expression/projection.rs +2 -1
  147. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/operator/expression.rs +185 -36
  148. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/admission_masks.rs +310 -0
  149. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/benchmark_checkpoint.rs +1102 -0
  150. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/benchmark_checkpoint_full_tests.rs +480 -0
  151. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/benchmark_checkpoint_tests.rs +532 -0
  152. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/borrowed_key.rs +253 -0
  153. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/checkpoint_compaction.rs +372 -0
  154. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/checkpoint_v2/budget.rs +145 -0
  155. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/checkpoint_v2/candidate/test_controls.rs +104 -0
  156. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/checkpoint_v2/candidate.rs +444 -0
  157. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/checkpoint_v2/construction.rs +217 -0
  158. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/checkpoint_v2/frame.rs +288 -0
  159. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/checkpoint_v2/frame_tests.rs +249 -0
  160. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/checkpoint_v2/geometry.rs +178 -0
  161. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/checkpoint_v2/history/merge.rs +161 -0
  162. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/checkpoint_v2/history.rs +178 -0
  163. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/checkpoint_v2/inventory.rs +367 -0
  164. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/checkpoint_v2/ipc/accounting.rs +382 -0
  165. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/checkpoint_v2/ipc/concat/bulk/flat.rs +118 -0
  166. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/checkpoint_v2/ipc/concat/bulk.rs +192 -0
  167. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/checkpoint_v2/ipc/concat/snapshot.rs +130 -0
  168. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/checkpoint_v2/ipc/concat.rs +390 -0
  169. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/checkpoint_v2/ipc/framing.rs +149 -0
  170. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/checkpoint_v2/ipc/nodes.rs +407 -0
  171. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/checkpoint_v2/ipc/reader.rs +185 -0
  172. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/checkpoint_v2/ipc/schema.rs +401 -0
  173. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/checkpoint_v2/ipc.rs +134 -0
  174. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/checkpoint_v2/loans.rs +74 -0
  175. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/checkpoint_v2/managed.rs +89 -0
  176. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/checkpoint_v2/metadata.rs +162 -0
  177. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/checkpoint_v2/payload.rs +204 -0
  178. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/checkpoint_v2/restore.rs +69 -0
  179. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/checkpoint_v2/row.rs +444 -0
  180. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/checkpoint_v2/work.rs +101 -0
  181. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/checkpoint_v2/writer/budget.rs +517 -0
  182. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/checkpoint_v2/writer/buffer.rs +120 -0
  183. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/checkpoint_v2/writer/buffer_tests.rs +73 -0
  184. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/checkpoint_v2/writer/compact.rs +193 -0
  185. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/checkpoint_v2/writer/compact_tests.rs +686 -0
  186. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/checkpoint_v2/writer/cut.rs +55 -0
  187. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/checkpoint_v2/writer/digest_tests.rs +116 -0
  188. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/checkpoint_v2/writer/encode/delta.rs +326 -0
  189. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/checkpoint_v2/writer/encode/rebase/funding.rs +56 -0
  190. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/checkpoint_v2/writer/encode/rebase/input.rs +353 -0
  191. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/checkpoint_v2/writer/encode/rebase/merge.rs +273 -0
  192. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/checkpoint_v2/writer/encode/rebase/pending.rs +179 -0
  193. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/checkpoint_v2/writer/encode/rebase.rs +190 -0
  194. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/checkpoint_v2/writer/encode/restored.rs +204 -0
  195. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/checkpoint_v2/writer/encode/retarget.rs +57 -0
  196. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/checkpoint_v2/writer/encode.rs +514 -0
  197. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/checkpoint_v2/writer/funding_tests.rs +527 -0
  198. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/checkpoint_v2/writer/metadata.rs +215 -0
  199. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/checkpoint_v2/writer/pending_capture_tests.rs +351 -0
  200. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/checkpoint_v2/writer/pending_rebase_tests.rs +438 -0
  201. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/checkpoint_v2/writer/pending_tests.rs +324 -0
  202. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/checkpoint_v2/writer/prepared_tests.rs +302 -0
  203. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/checkpoint_v2/writer/rebase_admission_tests.rs +111 -0
  204. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/checkpoint_v2/writer/rebase_edge_tests.rs +465 -0
  205. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/checkpoint_v2/writer/rebase_owner_tests.rs +156 -0
  206. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/checkpoint_v2/writer/rebase_tests.rs +202 -0
  207. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/checkpoint_v2/writer/rebase_trust_capture_tests.rs +73 -0
  208. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/checkpoint_v2/writer/rebase_trust_tests.rs +174 -0
  209. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/checkpoint_v2/writer/row.rs +63 -0
  210. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/checkpoint_v2/writer/wire_tests.rs +720 -0
  211. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/checkpoint_v2/writer.rs +896 -0
  212. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/checkpoint_v2.rs +26 -0
  213. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/columnar/metadata.rs +96 -0
  214. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/columnar/owned_copy.rs +949 -0
  215. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/columnar/restored/utf8.rs +153 -0
  216. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/columnar/restored/validity.rs +53 -0
  217. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/columnar/restored.rs +230 -0
  218. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/columnar/sparse/tests.rs +262 -0
  219. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/columnar/sparse.rs +279 -0
  220. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/columnar.rs +297 -0
  221. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/data_work/control.rs +82 -0
  222. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/data_work/inputs.rs +71 -0
  223. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/data_work/pairs.rs +74 -0
  224. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/data_work/partition.rs +54 -0
  225. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/data_work/process.rs +283 -0
  226. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/data_work/worker.rs +96 -0
  227. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/data_work.rs +81 -0
  228. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/expiration.rs +301 -0
  229. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/fixtures/README.md +13 -0
  230. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/fixtures/checkpoint-v1.json +309 -0
  231. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/key_arena.rs +441 -0
  232. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/operator/join/materialization.rs +28 -18
  233. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/metadata_validation/inventory.rs +131 -0
  234. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/metadata_validation/profile.rs +274 -0
  235. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/metadata_validation/schema/inventory.rs +89 -0
  236. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/metadata_validation/schema/plan.rs +100 -0
  237. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/metadata_validation/schema/restore_bases/boolean_tests.rs +610 -0
  238. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/metadata_validation/schema/restore_bases/float_tests.rs +210 -0
  239. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/metadata_validation/schema/restore_bases/input.rs +98 -0
  240. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/metadata_validation/schema/restore_bases/inspector.rs +407 -0
  241. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/metadata_validation/schema/restore_bases/inventory.rs +320 -0
  242. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/metadata_validation/schema/restore_bases/nullable_float_tests.rs +237 -0
  243. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/metadata_validation/schema/restore_bases/tests.rs +757 -0
  244. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/metadata_validation/schema/restore_bases.rs +534 -0
  245. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/metadata_validation/schema/restore_segments/frame.rs +305 -0
  246. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/metadata_validation/schema/restore_segments/input.rs +63 -0
  247. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/metadata_validation/schema/restore_segments/inventory.rs +161 -0
  248. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/metadata_validation/schema/restore_segments/tests.rs +754 -0
  249. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/metadata_validation/schema/restore_segments.rs +579 -0
  250. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/metadata_validation/schema/restore_utf8/input.rs +63 -0
  251. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/metadata_validation/schema/restore_utf8/inspector.rs +251 -0
  252. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/metadata_validation/schema/restore_utf8/inventory.rs +199 -0
  253. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/metadata_validation/schema/restore_utf8/nullable_tests.rs +470 -0
  254. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/metadata_validation/schema/restore_utf8/tests.rs +818 -0
  255. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/metadata_validation/schema/restore_utf8.rs +642 -0
  256. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/metadata_validation/schema/tests.rs +728 -0
  257. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/metadata_validation/schema.rs +332 -0
  258. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/metadata_validation/tests.rs +639 -0
  259. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/metadata_validation.rs +332 -0
  260. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/native_dictionary.rs +536 -0
  261. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/native_lookup.rs +609 -0
  262. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/output_gather/owned/funding.rs +33 -0
  263. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/output_gather/owned/side.rs +198 -0
  264. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/output_gather/owned/side_tests.rs +297 -0
  265. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/output_gather/owned.rs +218 -0
  266. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/output_gather/test_support.rs +53 -0
  267. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/output_gather.rs +137 -0
  268. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/row_ipc.rs +216 -0
  269. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/sql_key_scratch.rs +313 -0
  270. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/tests/checkpoint_compaction_tests.rs +1002 -0
  271. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/tests/checkpoint_v2_behavior_tests.rs +558 -0
  272. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/tests/checkpoint_v2_bounded_history_tests.rs +194 -0
  273. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/tests/checkpoint_v2_bounded_restore_tests.rs +184 -0
  274. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/tests/checkpoint_v2_capture_tests.rs +78 -0
  275. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/tests/checkpoint_v2_history_tests.rs +165 -0
  276. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/tests/checkpoint_v2_loan_tests.rs +313 -0
  277. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/tests/checkpoint_v2_map_behavior_tests.rs +237 -0
  278. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/tests/checkpoint_v2_overlap_tests.rs +31 -0
  279. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/tests/checkpoint_v2_restore_admission_tests.rs +184 -0
  280. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/tests/checkpoint_v2_tests.rs +390 -0
  281. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/tests/checkpoint_v2_v1_reuse_tests.rs +113 -0
  282. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/tests/checkpoint_v2_writer_cancel_tests.rs +355 -0
  283. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/tests/checkpoint_v2_writer_cut_tests.rs +135 -0
  284. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/tests/checkpoint_v2_writer_lifecycle_tests.rs +208 -0
  285. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/tests/checkpoint_v2_writer_migration_tests.rs +393 -0
  286. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/tests/checkpoint_v2_writer_restore_tests.rs +149 -0
  287. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/tests/checkpoint_v2_writer_tests.rs +441 -0
  288. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/tests/column_gather_admission_tests.rs +84 -0
  289. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/tests/column_gather_budget_tests.rs +164 -0
  290. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/tests/column_gather_emit_tests.rs +105 -0
  291. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/tests/column_gather_lifecycle_tests.rs +92 -0
  292. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/tests/column_gather_output_tests.rs +193 -0
  293. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/tests/column_gather_tests.rs +156 -0
  294. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/tests/columnar_state_tests.rs +2451 -0
  295. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/tests/complete_expiry_boundary_tests.rs +254 -0
  296. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/tests/complete_expiry_tests.rs +70 -0
  297. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/tests/empty_checkpoint_tests.rs +76 -0
  298. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/tests/expiration_admission_tests.rs +209 -0
  299. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/tests/expiration_heap_tests.rs +232 -0
  300. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/tests/hash_stream_tests.rs +34 -0
  301. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/tests/j2a_dictionary_tests.rs +485 -0
  302. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/tests/native_index_allocation_tests.rs +450 -0
  303. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/tests/native_lookup_tests.rs +1042 -0
  304. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/tests/optimization_tests.rs +449 -0
  305. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/tests/ordered_probe_tests.rs +273 -0
  306. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/tests/output_gather_tests.rs +731 -0
  307. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/tests/owned_probe_tests.rs +313 -0
  308. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/join/tests/sql_key_scratch_tests.rs +1414 -0
  309. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/operator/join.rs +2999 -963
  310. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/operator/mod.rs +35 -0
  311. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/retained_columns.rs +95 -0
  312. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/rolling/budget.rs +275 -0
  313. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/rolling/compile.rs +966 -0
  314. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/operator/rolling/generated_kernel_manifest.rs +33 -0
  315. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/operator/rolling/kernel/entity_parallel.rs +16 -6
  316. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/operator/rolling/kernel/entity_parallel_tests.rs +27 -22
  317. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/rolling/kernel/mean.rs +497 -0
  318. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/operator/rolling/kernel.rs +1190 -231
  319. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/operator/rolling/late.rs +12 -0
  320. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/operator/rolling/ordered_stream.rs +432 -36
  321. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/rolling/state_codec.rs +1441 -0
  322. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/operator/rolling/state_v3.rs +3 -1
  323. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/operator/rolling/tests/late.rs +5 -4
  324. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/rolling/tests.rs +4540 -0
  325. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/rolling.rs +4362 -0
  326. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/sql/checkpoint_test_hooks.rs +191 -0
  327. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/sql/compact/capture/current_safety_tests.rs +517 -0
  328. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/sql/compact/capture.rs +489 -0
  329. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/sql/compact/computed_filter_tests.rs +331 -0
  330. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/sql/compact/constant_group_tests.rs +246 -0
  331. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/sql/compact/control.rs +223 -0
  332. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/sql/compact/control_tests.rs +231 -0
  333. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/sql/compact/cte_eager_tests.rs +269 -0
  334. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/sql/compact/cte_input_tests.rs +220 -0
  335. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/sql/compact/cte_tests.rs +188 -0
  336. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/sql/compact/delta_float_tests.rs +130 -0
  337. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/sql/compact/delta_tests.rs +578 -0
  338. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/sql/compact/direct_async_tests.rs +497 -0
  339. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/sql/compact/empty_prefix_tests.rs +174 -0
  340. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/sql/compact/float_count_tests.rs +361 -0
  341. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/sql/compact/float_extrema_tests.rs +466 -0
  342. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/sql/compact/global_float_filter_tests.rs +282 -0
  343. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/sql/compact/global_float_sum_avg_tests.rs +434 -0
  344. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/sql/compact/global_float_where_tests.rs +478 -0
  345. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/sql/compact/global_integer_avg_tests.rs +273 -0
  346. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/sql/compact/global_predicate_tests.rs +252 -0
  347. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/sql/compact/global_record_controls.rs +250 -0
  348. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/sql/compact/group_key_tests.rs +242 -0
  349. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/sql/compact/grouped_checkpoint_reuse_tests.rs +136 -0
  350. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/sql/compact/grouped_composite_safety_tests.rs +110 -0
  351. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/sql/compact/grouped_composite_tests.rs +261 -0
  352. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/sql/compact/grouped_filter_tests.rs +287 -0
  353. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/sql/compact/grouped_float_safety_tests.rs +109 -0
  354. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/sql/compact/grouped_float_sum_avg_tests.rs +406 -0
  355. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/sql/compact/grouped_float_tests.rs +464 -0
  356. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/sql/compact/grouped_integer_avg_tests.rs +386 -0
  357. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/sql/compact/grouped_string_safety_tests.rs +106 -0
  358. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/sql/compact/grouped_string_tests.rs +282 -0
  359. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/sql/compact/grouped_sum_tests.rs +251 -0
  360. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/sql/compact/grouped_where_tests.rs +186 -0
  361. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/sql/compact/identity.rs +262 -0
  362. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/sql/compact/input_arithmetic_tests.rs +266 -0
  363. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/sql/compact/input_float_cast_tests.rs +349 -0
  364. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/sql/compact/log.rs +236 -0
  365. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/sql/compact/post_arithmetic_tests.rs +200 -0
  366. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/sql/compact/post_case_tests.rs +293 -0
  367. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/sql/compact/post_having_tests.rs +295 -0
  368. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/sql/compact/post_order_tests.rs +277 -0
  369. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/sql/compact/post_projection_tests.rs +272 -0
  370. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/sql/compact/restore.rs +347 -0
  371. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/sql/compact/state_fixture_tests.rs +950 -0
  372. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/sql/compact/storage.rs +270 -0
  373. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/sql/compact/storage_tests.rs +372 -0
  374. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/sql/compact/string_extrema_tests.rs +399 -0
  375. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/sql/compact.rs +152 -0
  376. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/sql/compact_checkpoint_tests.rs +663 -0
  377. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/sql/compact_plan_tests.rs +850 -0
  378. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/sql/compact_state/export.rs +521 -0
  379. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/sql/compact_state.rs +1101 -0
  380. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/sql/compact_state_tests.rs +819 -0
  381. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/sql/current_checkpoint_tests.rs +347 -0
  382. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/sql/current_retained.rs +662 -0
  383. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/sql/decimal_avg_tests.rs +384 -0
  384. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/sql/decimal_tests.rs +414 -0
  385. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/sql/dirty.rs +138 -0
  386. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/sql/global_record/coalescer/checkpoint.rs +456 -0
  387. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/sql/global_record/coalescer.rs +331 -0
  388. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/sql/global_record.rs +621 -0
  389. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/sql/group_key.rs +50 -0
  390. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/sql/grouped_float.rs +253 -0
  391. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/sql/grouped_float_proof_tests.rs +166 -0
  392. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/sql/grouped_seed_tests.rs +231 -0
  393. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/sql/grouped_sum.rs +99 -0
  394. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/sql/incremental.rs +3916 -0
  395. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/sql/incremental_tests.rs +1595 -0
  396. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/sql/input_checks.rs +41 -0
  397. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/sql/ipc.rs +186 -0
  398. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/sql/metadata.rs +127 -0
  399. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/sql/native_expression.rs +522 -0
  400. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/sql/normalize_groups.rs +293 -0
  401. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/sql/output_order.rs +313 -0
  402. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/sql/predicate.rs +172 -0
  403. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/sql/recovery_test_hooks.rs +171 -0
  404. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/sql/restore.rs +172 -0
  405. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/sql/restore_tests.rs +349 -0
  406. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/sql/retained_contract_tests.rs +637 -0
  407. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/sql/retained_planning_tests.rs +167 -0
  408. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/sql/retained_tests.rs +274 -0
  409. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/sql/retention.rs +342 -0
  410. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/sql/variable_extrema.rs +170 -0
  411. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/sql.rs +2289 -0
  412. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/state_budget.rs +84 -0
  413. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/operator/stream.rs +95 -5
  414. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/window/group_tests.rs +289 -0
  415. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/window/kernel_tests.rs +329 -0
  416. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/window/kernels.rs +144 -0
  417. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/window/key_tests.rs +261 -0
  418. calc_flow_python-2026.10.13/crates/calc-flow/src/operator/window/keys.rs +55 -0
  419. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/operator/window.rs +1765 -471
  420. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/pipeline/batch.rs +44 -0
  421. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/pipeline/mod.rs +11 -4
  422. calc_flow_python-2026.10.13/crates/calc-flow/src/pipeline/stream/projection.rs +419 -0
  423. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/pipeline/stream.rs +164 -64
  424. calc_flow_python-2026.10.13/crates/calc-flow/src/runtime/streaming/channel/fusion_observer.rs +62 -0
  425. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/runtime/streaming/channel.rs +43 -244
  426. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/runtime/streaming/checkpoint/coordinator.rs +68 -1
  427. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/runtime/streaming/checkpoint_runtime.rs +26 -0
  428. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/runtime/streaming/context.rs +42 -0
  429. calc_flow_python-2026.10.13/crates/calc-flow/src/runtime/streaming/edge_queue.rs +250 -0
  430. calc_flow_python-2026.10.13/crates/calc-flow/src/runtime/streaming/gather_work/admission_probe.rs +86 -0
  431. calc_flow_python-2026.10.13/crates/calc-flow/src/runtime/streaming/gather_work/cleanup.rs +385 -0
  432. calc_flow_python-2026.10.13/crates/calc-flow/src/runtime/streaming/gather_work/columns.rs +196 -0
  433. calc_flow_python-2026.10.13/crates/calc-flow/src/runtime/streaming/gather_work/parallel.rs +167 -0
  434. calc_flow_python-2026.10.13/crates/calc-flow/src/runtime/streaming/gather_work/process.rs +737 -0
  435. calc_flow_python-2026.10.13/crates/calc-flow/src/runtime/streaming/gather_work/row_gather.rs +83 -0
  436. calc_flow_python-2026.10.13/crates/calc-flow/src/runtime/streaming/gather_work/tests/cleanup.rs +495 -0
  437. calc_flow_python-2026.10.13/crates/calc-flow/src/runtime/streaming/gather_work/tests/parallel.rs +188 -0
  438. calc_flow_python-2026.10.13/crates/calc-flow/src/runtime/streaming/gather_work/tests.rs +1311 -0
  439. calc_flow_python-2026.10.13/crates/calc-flow/src/runtime/streaming/gather_work/worker.rs +341 -0
  440. calc_flow_python-2026.10.13/crates/calc-flow/src/runtime/streaming/gather_work.rs +1265 -0
  441. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/runtime/streaming/job.rs +10 -0
  442. calc_flow_python-2026.10.13/crates/calc-flow/src/runtime/streaming/local_edge.rs +245 -0
  443. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/runtime/streaming/metrics.rs +11 -0
  444. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/runtime/streaming/mod.rs +7 -0
  445. calc_flow_python-2026.10.13/crates/calc-flow/src/runtime/streaming/operator_task/benchmark_replay/dispatch.rs +322 -0
  446. calc_flow_python-2026.10.13/crates/calc-flow/src/runtime/streaming/operator_task/benchmark_replay.rs +1199 -0
  447. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/runtime/streaming/operator_task/cooperation_tests.rs +4 -3
  448. calc_flow_python-2026.10.13/crates/calc-flow/src/runtime/streaming/operator_task/join_checkpoint_credit.rs +317 -0
  449. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/runtime/streaming/operator_task/late_control_tests.rs +10 -8
  450. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/runtime/streaming/operator_task/performance_evidence.rs +2 -1
  451. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/runtime/streaming/operator_task/tests/asof_tests.rs +81 -2
  452. calc_flow_python-2026.10.13/crates/calc-flow/src/runtime/streaming/operator_task/tests/dispatch_trace_tests.rs +55 -0
  453. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/runtime/streaming/operator_task/tests/error_propagation_tests.rs +2 -1
  454. calc_flow_python-2026.10.13/crates/calc-flow/src/runtime/streaming/operator_task/tests/join_checkpoint_owner_tests.rs +197 -0
  455. calc_flow_python-2026.10.13/crates/calc-flow/src/runtime/streaming/operator_task/tests/segment_publication_tests.rs +305 -0
  456. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/runtime/streaming/operator_task.rs +1149 -133
  457. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/runtime/streaming/progress/aggregate.rs +13 -10
  458. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/runtime/streaming/progress/driver.rs +182 -26
  459. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/runtime/streaming/progress/durable.rs +2 -0
  460. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/runtime/streaming/progress/mod.rs +0 -30
  461. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/runtime/streaming/projection.rs +96 -3
  462. calc_flow_python-2026.10.13/crates/calc-flow/src/runtime/streaming/runner/asof/join_preload/inventory.rs +142 -0
  463. calc_flow_python-2026.10.13/crates/calc-flow/src/runtime/streaming/runner/asof/join_preload/ownership_tests.rs +187 -0
  464. calc_flow_python-2026.10.13/crates/calc-flow/src/runtime/streaming/runner/asof/join_preload.rs +143 -0
  465. calc_flow_python-2026.10.13/crates/calc-flow/src/runtime/streaming/runner/asof/join_preload_tests.rs +521 -0
  466. calc_flow_python-2026.10.13/crates/calc-flow/src/runtime/streaming/runner/asof/load_work.rs +164 -0
  467. calc_flow_python-2026.10.13/crates/calc-flow/src/runtime/streaming/runner/asof/preload_tests.rs +338 -0
  468. calc_flow_python-2026.10.13/crates/calc-flow/src/runtime/streaming/runner/asof.rs +306 -0
  469. calc_flow_python-2026.10.13/crates/calc-flow/src/runtime/streaming/runner/checkpoint_task/tests.rs +187 -0
  470. calc_flow_python-2026.10.13/crates/calc-flow/src/runtime/streaming/runner/checkpoint_task.rs +1310 -0
  471. calc_flow_python-2026.10.13/crates/calc-flow/src/runtime/streaming/runner/join_terminal.rs +112 -0
  472. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/runtime/streaming/runner/operator_fusion/allocation_evidence.rs +9 -2
  473. calc_flow_python-2026.10.13/crates/calc-flow/src/runtime/streaming/runner/operator_fusion/asof_chain_entry_tests.rs +188 -0
  474. calc_flow_python-2026.10.13/crates/calc-flow/src/runtime/streaming/runner/operator_fusion/asof_chain_tests/emission_controls.rs +195 -0
  475. calc_flow_python-2026.10.13/crates/calc-flow/src/runtime/streaming/runner/operator_fusion/asof_chain_tests.rs +580 -0
  476. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/runtime/streaming/runner/operator_fusion.rs +151 -11
  477. calc_flow_python-2026.10.13/crates/calc-flow/src/runtime/streaming/runner/source_history/projection.rs +73 -0
  478. calc_flow_python-2026.10.13/crates/calc-flow/src/runtime/streaming/runner/source_history.rs +185 -0
  479. calc_flow_python-2026.10.13/crates/calc-flow/src/runtime/streaming/runner/sql_recovery.rs +193 -0
  480. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/runtime/streaming/runner/supervision.rs +48 -4
  481. calc_flow_python-2026.10.13/crates/calc-flow/src/runtime/streaming/runner/supervision_loan_tests.rs +332 -0
  482. calc_flow_python-2026.10.13/crates/calc-flow/src/runtime/streaming/runner/tests/asof_tests/fusion_controls.rs +511 -0
  483. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/runtime/streaming/runner/tests/asof_tests.rs +2 -0
  484. calc_flow_python-2026.10.13/crates/calc-flow/src/runtime/streaming/runner/tests/restore_bases_tests.rs +355 -0
  485. calc_flow_python-2026.10.13/crates/calc-flow/src/runtime/streaming/runner/tests/restore_boolean_tests.rs +379 -0
  486. calc_flow_python-2026.10.13/crates/calc-flow/src/runtime/streaming/runner/tests/restore_float_tests.rs +394 -0
  487. calc_flow_python-2026.10.13/crates/calc-flow/src/runtime/streaming/runner/tests/restore_nullable_float_tests.rs +409 -0
  488. calc_flow_python-2026.10.13/crates/calc-flow/src/runtime/streaming/runner/tests/restore_segments_tests.rs +299 -0
  489. calc_flow_python-2026.10.13/crates/calc-flow/src/runtime/streaming/runner/tests/restore_terminal_join_tests.rs +490 -0
  490. calc_flow_python-2026.10.13/crates/calc-flow/src/runtime/streaming/runner/tests/restore_utf8_tests.rs +409 -0
  491. calc_flow_python-2026.10.13/crates/calc-flow/src/runtime/streaming/runner/tests/restore_v2_tests/terminal_tests.rs +333 -0
  492. calc_flow_python-2026.10.13/crates/calc-flow/src/runtime/streaming/runner/tests/restore_v2_tests.rs +409 -0
  493. calc_flow_python-2026.10.13/crates/calc-flow/src/runtime/streaming/runner/tests/restore_writer_v2_tests.rs +417 -0
  494. calc_flow_python-2026.10.13/crates/calc-flow/src/runtime/streaming/runner/tests/sql_recovery_tests/managed_capture.rs +537 -0
  495. calc_flow_python-2026.10.13/crates/calc-flow/src/runtime/streaming/runner/tests/sql_recovery_tests/queued_stop.rs +472 -0
  496. calc_flow_python-2026.10.13/crates/calc-flow/src/runtime/streaming/runner/tests/sql_recovery_tests.rs +1618 -0
  497. calc_flow_python-2026.10.13/crates/calc-flow/src/runtime/streaming/runner/tests/terminal_join_control_tests.rs +418 -0
  498. calc_flow_python-2026.10.13/crates/calc-flow/src/runtime/streaming/runner/tests/terminal_join_launch_cancel_tests.rs +525 -0
  499. calc_flow_python-2026.10.13/crates/calc-flow/src/runtime/streaming/runner/tests.rs +11496 -0
  500. calc_flow_python-2026.10.13/crates/calc-flow/src/runtime/streaming/runner.rs +4342 -0
  501. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/runtime/streaming/sink_task.rs +1020 -141
  502. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/runtime/streaming/source_task.rs +314 -38
  503. calc_flow_python-2026.10.13/crates/calc-flow/src/runtime/streaming/sql_recovery_work.rs +923 -0
  504. calc_flow_python-2026.10.13/crates/calc-flow/src/runtime/streaming/supervisor/preparation_rollback_tests.rs +109 -0
  505. calc_flow_python-2026.10.13/crates/calc-flow/src/runtime/streaming/supervisor/ready_group/tests.rs +182 -0
  506. calc_flow_python-2026.10.13/crates/calc-flow/src/runtime/streaming/supervisor/ready_group.rs +163 -0
  507. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/runtime/streaming/supervisor/ready_pair/native_tests.rs +9 -3
  508. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/runtime/streaming/supervisor.rs +192 -1
  509. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/state/backend.rs +160 -1
  510. calc_flow_python-2026.10.13/crates/calc-flow/src/state/local/preload.rs +236 -0
  511. calc_flow_python-2026.10.13/crates/calc-flow/src/state/local/publication.rs +145 -0
  512. calc_flow_python-2026.10.13/crates/calc-flow/src/state/local/publication_tests.rs +441 -0
  513. calc_flow_python-2026.10.13/crates/calc-flow/src/state/local/staging.rs +117 -0
  514. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/state/local.rs +249 -194
  515. calc_flow_python-2026.10.13/crates/calc-flow/src/state/manifest/source_entries.rs +90 -0
  516. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/state/manifest.rs +140 -201
  517. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/state/mod.rs +8 -2
  518. calc_flow_python-2026.10.13/crates/calc-flow/src/state/source_history/budget.rs +145 -0
  519. calc_flow_python-2026.10.13/crates/calc-flow/src/state/source_history/files.rs +63 -0
  520. calc_flow_python-2026.10.13/crates/calc-flow/src/state/source_history/tests.rs +222 -0
  521. calc_flow_python-2026.10.13/crates/calc-flow/src/state/source_history/work.rs +99 -0
  522. calc_flow_python-2026.10.13/crates/calc-flow/src/state/source_history.rs +417 -0
  523. calc_flow_python-2026.10.13/crates/calc-flow/src/state/transaction/tests/publication.rs +580 -0
  524. calc_flow_python-2026.10.13/crates/calc-flow/src/state/transaction/tests/source_history.rs +258 -0
  525. calc_flow_python-2026.10.13/crates/calc-flow/src/state/transaction/working.rs +52 -0
  526. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/state/transaction.rs +358 -66
  527. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/static_input.rs +0 -22
  528. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow-connectors/Cargo.toml +4 -3
  529. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow-connectors/src/arrow_schema.rs +1 -0
  530. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow-connectors/src/clickhouse_sink.rs +22 -0
  531. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow-connectors/src/evidence.rs +60 -7
  532. calc_flow_python-2026.10.13/crates/calc-flow-connectors/src/file/frozen.rs +226 -0
  533. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow-connectors/src/file.rs +117 -52
  534. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow-connectors/src/file_sink.rs +120 -18
  535. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow-connectors/src/kafka.rs +1040 -79
  536. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow-connectors/src/lib.rs +1 -1
  537. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow-connectors/src/mysql/sink.rs +9 -0
  538. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow-connectors/src/options.rs +7 -0
  539. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow-connectors/src/postgresql.rs +95 -10
  540. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow-connectors/src/postgresql_cdc.rs +90 -7
  541. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow-connectors/tests/file_connector.rs +1 -0
  542. calc_flow_python-2026.10.13/crates/calc-flow-connectors/tests/file_cursor.rs +189 -0
  543. calc_flow_python-2026.10.13/crates/calc-flow-connectors/tests/frozen_file_replay/window.rs +265 -0
  544. calc_flow_python-2026.10.13/crates/calc-flow-connectors/tests/frozen_file_replay.rs +822 -0
  545. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow-connectors/tests/kafka_connector.rs +46 -5
  546. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow-connectors/tests/late_output_file.rs +172 -16
  547. calc_flow_python-2026.10.13/crates/calc-flow-connectors/tests/postgresql_cdc.rs +317 -0
  548. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow-connectors/tests/postgresql_connector.rs +87 -2
  549. calc_flow_python-2026.10.13/crates/calc-flow-connectors/tests/utc_asof_codec.rs +115 -0
  550. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow-python/Cargo.toml +3 -2
  551. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow-python/src/config.rs +30 -20
  552. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow-python/src/continuous.rs +254 -13
  553. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow-python/src/provider.rs +86 -21
  554. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/pyproject.toml +3 -7
  555. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/python/calc_flow/__init__.py +3 -1
  556. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/python/calc_flow/_native.pyi +2 -2
  557. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/python/calc_flow/array.py +4 -4
  558. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/python/calc_flow/capabilities.py +10 -14
  559. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/python/calc_flow/compute.py +79 -10
  560. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/python/calc_flow/pipeline.py +25 -6
  561. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/python/calc_flow/runtime.py +55 -8
  562. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/python/calc_flow/stream.py +12 -6
  563. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/python/calc_flow/symbolic/_generated_rolling_kernels.py +4 -0
  564. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/python/calc_flow/symbolic/analyzer.py +111 -16
  565. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/python/calc_flow/symbolic/asof_analysis.py +19 -4
  566. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/python/calc_flow/symbolic/expr.py +2 -2
  567. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/python/calc_flow/symbolic/lower/asof.py +2 -2
  568. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/python/calc_flow/symbolic/lower/event_windows.py +2 -1
  569. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/python/calc_flow/symbolic/lower/late_output.py +1 -0
  570. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/python/calc_flow/symbolic/lower/planners.py +44 -10
  571. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/python/calc_flow/symbolic/lower/schema.py +1 -0
  572. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/python/calc_flow/symbolic/lower/segments.py +109 -36
  573. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/python/calc_flow/symbolic/lower/sql.py +1 -0
  574. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/python/calc_flow/symbolic/nodes.py +41 -1
  575. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/python/calc_flow/symbolic/ops.py +471 -0
  576. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/python/calc_flow/symbolic/optimizer.py +73 -22
  577. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/python/calc_flow/symbolic/program.py +139 -11
  578. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/python/calc_flow/symbolic/sql.py +2 -1
  579. calc_flow_python-2026.9.25/crates/calc-flow/src/operator/asof/admission.rs +0 -328
  580. calc_flow_python-2026.9.25/crates/calc-flow/src/operator/asof/checkpoint/encoding.rs +0 -296
  581. calc_flow_python-2026.9.25/crates/calc-flow/src/operator/asof/checkpoint.rs +0 -508
  582. calc_flow_python-2026.9.25/crates/calc-flow/src/operator/asof/finalize/prefix.rs +0 -98
  583. calc_flow_python-2026.9.25/crates/calc-flow/src/operator/asof/finalize.rs +0 -277
  584. calc_flow_python-2026.9.25/crates/calc-flow/src/operator/asof/output/tests.rs +0 -108
  585. calc_flow_python-2026.9.25/crates/calc-flow/src/operator/asof/output.rs +0 -229
  586. calc_flow_python-2026.9.25/crates/calc-flow/src/operator/asof/state.rs +0 -401
  587. calc_flow_python-2026.9.25/crates/calc-flow/src/operator/asof/tests.rs +0 -489
  588. calc_flow_python-2026.9.25/crates/calc-flow/src/operator/asof/workspace.rs +0 -459
  589. calc_flow_python-2026.9.25/crates/calc-flow/src/operator/rolling.rs +0 -10743
  590. calc_flow_python-2026.9.25/crates/calc-flow/src/operator/sql.rs +0 -321
  591. calc_flow_python-2026.9.25/crates/calc-flow/src/runtime/streaming/runner/asof.rs +0 -82
  592. calc_flow_python-2026.9.25/crates/calc-flow/src/runtime/streaming/runner/supervision_loan_tests.rs +0 -69
  593. calc_flow_python-2026.9.25/crates/calc-flow/src/runtime/streaming/runner.rs +0 -16153
  594. calc_flow_python-2026.9.25/crates/calc-flow-connectors/tests/postgresql_cdc.rs +0 -160
  595. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/LICENSE +0 -0
  596. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/LICENSE +0 -0
  597. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/benches/allocation_regression.rs +0 -0
  598. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/benches/core.rs +0 -0
  599. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/benches/sql_datafusion_performance.rs +0 -0
  600. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/benches/stream_join_materialization.rs +0 -0
  601. {calc_flow_python-2026.9.25/crates/calc-flow/src/runtime/streaming/soak → calc_flow_python-2026.10.13/crates/calc-flow/benches/support}/diagnostics.rs +0 -0
  602. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/examples/README.md +0 -0
  603. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/examples/continuous_runtime.rs +0 -0
  604. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/examples/export_schema.rs +0 -0
  605. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/examples/expression_pipeline.rs +0 -0
  606. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/examples/gen_v3_schema.rs +0 -0
  607. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/examples/sql_join.rs +0 -0
  608. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/examples/windowed_streaming.rs +0 -0
  609. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/config/asof.rs +0 -0
  610. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/config/late_output.rs +0 -0
  611. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/connector/format.rs +0 -0
  612. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/connector/mod.rs +0 -0
  613. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/connector/registry.rs +0 -0
  614. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/context.rs +0 -0
  615. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/datafusion_predicate.rs +0 -0
  616. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/datafusion_rolling/sql_aggregate.rs +0 -0
  617. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/datafusion_rolling.rs +0 -0
  618. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/error.rs +0 -0
  619. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/operator/asof/identity.rs +0 -0
  620. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/operator/asof/identity_compare.rs +0 -0
  621. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/operator/asof/spec.rs +0 -0
  622. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/operator/asof/status.rs +0 -0
  623. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/operator/batch.rs +0 -0
  624. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/operator/checkpoint.rs +0 -0
  625. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/operator/late_output/identity.rs +0 -0
  626. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/operator/late_output/plan.rs +0 -0
  627. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/operator/late_output/tests/ownership.rs +0 -0
  628. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/operator/late_output/tests.rs +0 -0
  629. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/operator/late_output.rs +0 -0
  630. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/operator/output_chunk.rs +0 -0
  631. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/operator/rolling/kernel/sorted.rs +0 -0
  632. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/operator/rolling_metrics/lease_tests.rs +0 -0
  633. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/operator/rolling_metrics.rs +0 -0
  634. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/operator/row_cost.rs +0 -0
  635. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/operator/union.rs +0 -0
  636. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/pipeline/compile.rs +0 -0
  637. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/project_store/asof.rs +0 -0
  638. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/project_store.rs +0 -0
  639. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/runtime/mod.rs +0 -0
  640. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/runtime/streaming/checkpoint/mod.rs +0 -0
  641. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/runtime/streaming/checkpoint/storage.rs +0 -0
  642. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/runtime/streaming/checkpoint_status.rs +0 -0
  643. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/runtime/streaming/entity_work/tests.rs +0 -0
  644. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/runtime/streaming/entity_work.rs +0 -0
  645. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/runtime/streaming/failure.rs +0 -0
  646. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/runtime/streaming/job/asof.rs +0 -0
  647. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/runtime/streaming/message.rs +0 -0
  648. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/runtime/streaming/progress/generated.rs +0 -0
  649. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/runtime/streaming/progress/prepare.rs +0 -0
  650. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/runtime/streaming/progress/snapshot.rs +0 -0
  651. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/runtime/streaming/progress/status.rs +0 -0
  652. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/runtime/streaming/progress/trace.rs +0 -0
  653. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/runtime/streaming/progress/types.rs +0 -0
  654. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/runtime/streaming/registry.rs +0 -0
  655. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/runtime/streaming/runner/entity_work_tests/lifecycle_tests/checkpoint_tests.rs +0 -0
  656. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/runtime/streaming/runner/entity_work_tests/lifecycle_tests.rs +0 -0
  657. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/runtime/streaming/runner/entity_work_tests.rs +0 -0
  658. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/runtime/streaming/runner/operator_fusion/allocation_evidence_guards.rs +0 -0
  659. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/runtime/streaming/supervisor/ready_pair/tests.rs +0 -0
  660. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/runtime/streaming/supervisor/ready_pair.rs +0 -0
  661. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/runtime/streaming/supervisor/terminal.rs +0 -0
  662. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/runtime/streaming/test_seams.rs +0 -0
  663. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/state/segment.rs +0 -0
  664. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/time/event_time.rs +0 -0
  665. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/time/mod.rs +0 -0
  666. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow/src/udf.rs +0 -0
  667. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow-connectors/README.md +0 -0
  668. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow-connectors/examples/kafka_custom_decoder.rs +0 -0
  669. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow-connectors/examples/kafka_protobuf_source.rs +0 -0
  670. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow-connectors/examples/late_output_recovery.rs +0 -0
  671. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow-connectors/src/clickhouse.rs +0 -0
  672. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow-connectors/src/csv.rs +0 -0
  673. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow-connectors/src/database_types.rs +0 -0
  674. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow-connectors/src/http.rs +0 -0
  675. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow-connectors/src/json_lines.rs +0 -0
  676. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow-connectors/src/mysql/config.rs +0 -0
  677. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow-connectors/src/mysql/mod.rs +0 -0
  678. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow-connectors/src/mysql/source.rs +0 -0
  679. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow-connectors/src/mysql/types.rs +0 -0
  680. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow-connectors/src/parquet.rs +0 -0
  681. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow-connectors/src/protobuf.rs +0 -0
  682. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow-connectors/src/websocket.rs +0 -0
  683. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow-connectors/tests/clickhouse_connector.rs +0 -0
  684. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow-connectors/tests/http_websocket_connectors.rs +0 -0
  685. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow-connectors/tests/mysql_connector/checkpoint.rs +0 -0
  686. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow-connectors/tests/mysql_connector.rs +0 -0
  687. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow-python/build.rs +0 -0
  688. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow-python/src/batch.rs +0 -0
  689. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow-python/src/config/kafka_tests.rs +0 -0
  690. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow-python/src/connector.rs +0 -0
  691. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow-python/src/decoder.rs +0 -0
  692. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow-python/src/error.rs +0 -0
  693. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow-python/src/execution_options.rs +0 -0
  694. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow-python/src/lib.rs +0 -0
  695. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow-python/src/pipeline.rs +0 -0
  696. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow-python/src/runtime/dispatch.rs +0 -0
  697. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow-python/src/runtime/profile.rs +0 -0
  698. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow-python/src/runtime.rs +0 -0
  699. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow-python/src/store.rs +0 -0
  700. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/crates/calc-flow-python/src/udf.rs +0 -0
  701. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/python/calc_flow/_compat.py +0 -0
  702. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/python/calc_flow/_stream_inputs.py +0 -0
  703. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/python/calc_flow/asof_join_spec.py +0 -0
  704. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/python/calc_flow/config.py +0 -0
  705. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/python/calc_flow/errors.py +0 -0
  706. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/python/calc_flow/join_spec.py +0 -0
  707. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/python/calc_flow/py.typed +0 -0
  708. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/python/calc_flow/store.py +0 -0
  709. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/python/calc_flow/symbolic/__init__.py +0 -0
  710. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/python/calc_flow/symbolic/asof.py +0 -0
  711. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/python/calc_flow/symbolic/domains.py +0 -0
  712. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/python/calc_flow/symbolic/errors.py +0 -0
  713. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/python/calc_flow/symbolic/late_output.py +0 -0
  714. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/python/calc_flow/symbolic/lower/__init__.py +0 -0
  715. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/python/calc_flow/symbolic/lower/bindings.py +0 -0
  716. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/python/calc_flow/symbolic/lower/program.py +0 -0
  717. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/python/calc_flow/symbolic/lower/strategies.py +0 -0
  718. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/python/calc_flow/symbolic/types.py +0 -0
  719. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/python/calc_flow/symbolic/windows.py +0 -0
  720. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.13}/python/calc_flow/udf.py +0 -0
@@ -553,16 +553,20 @@ checksum = "fc652a48c352aef3ea3aed32080501cf3ef6ed5da78602a020c991775b0aff04"
553
553
 
554
554
  [[package]]
555
555
  name = "calc-flow"
556
- version = "2026.9.25"
556
+ version = "2026.10.13"
557
557
  dependencies = [
558
+ "ahash 0.8.12",
558
559
  "allocation-counter",
560
+ "arrow-data",
559
561
  "async-trait",
560
562
  "chrono",
561
563
  "command-group",
562
564
  "criterion",
563
565
  "datafusion",
566
+ "flatbuffers",
564
567
  "fs2",
565
568
  "futures",
569
+ "hashbrown 0.17.1",
566
570
  "hex",
567
571
  "parking_lot",
568
572
  "proptest",
@@ -582,7 +586,7 @@ dependencies = [
582
586
 
583
587
  [[package]]
584
588
  name = "calc-flow-connectors"
585
- version = "2026.9.25"
589
+ version = "2026.10.13"
586
590
  dependencies = [
587
591
  "allocation-counter",
588
592
  "arrow",
@@ -622,7 +626,7 @@ dependencies = [
622
626
 
623
627
  [[package]]
624
628
  name = "calc-flow-python"
625
- version = "2026.9.25"
629
+ version = "2026.10.13"
626
630
  dependencies = [
627
631
  "async-trait",
628
632
  "calc-flow",
@@ -2848,6 +2852,28 @@ version = "0.2.1"
2848
2852
  source = "registry+https://github.com/rust-lang/crates.io-index"
2849
2853
  checksum = "7c87def4c32ab89d880effc9e097653c8da5d6ef28e6b539d313baaacfbafcbe"
2850
2854
 
2855
+ [[package]]
2856
+ name = "openssl-src"
2857
+ version = "300.6.1+3.6.3"
2858
+ source = "registry+https://github.com/rust-lang/crates.io-index"
2859
+ checksum = "46eb8fb9fb3b61ce1c0f8a026c4c1a0714d3a9e138e7fbde78753ce2babc3846"
2860
+ dependencies = [
2861
+ "cc",
2862
+ ]
2863
+
2864
+ [[package]]
2865
+ name = "openssl-sys"
2866
+ version = "0.9.117"
2867
+ source = "registry+https://github.com/rust-lang/crates.io-index"
2868
+ checksum = "b47e7e6bb2c38cd930d25a23b40fa52e068c10e85f3e03a7f5ba5aaca5713695"
2869
+ dependencies = [
2870
+ "cc",
2871
+ "libc",
2872
+ "openssl-src",
2873
+ "pkg-config",
2874
+ "vcpkg",
2875
+ ]
2876
+
2851
2877
  [[package]]
2852
2878
  name = "ordered-float"
2853
2879
  version = "2.10.1"
@@ -3350,9 +3376,9 @@ dependencies = [
3350
3376
 
3351
3377
  [[package]]
3352
3378
  name = "quinn-proto"
3353
- version = "0.11.16"
3379
+ version = "0.11.19"
3354
3380
  source = "registry+https://github.com/rust-lang/crates.io-index"
3355
- checksum = "2f4bfc015262b9df63c8845072ce59068853ff5872180c2ce2f13038b970e560"
3381
+ checksum = "0e750cca55fe4f0439a15d0bb529da9651e79993e8e72c61a899a36d462befbe"
3356
3382
  dependencies = [
3357
3383
  "aws-lc-rs",
3358
3384
  "bytes",
@@ -3560,6 +3586,7 @@ dependencies = [
3560
3586
  "libc",
3561
3587
  "libz-sys",
3562
3588
  "num_enum",
3589
+ "openssl-sys",
3563
3590
  "pkg-config",
3564
3591
  ]
3565
3592
 
@@ -4264,7 +4291,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
4264
4291
  checksum = "32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd"
4265
4292
  dependencies = [
4266
4293
  "fastrand",
4267
- "getrandom 0.4.3",
4294
+ "getrandom 0.3.4",
4268
4295
  "once_cell",
4269
4296
  "rustix",
4270
4297
  "windows-sys 0.61.2",
@@ -3,13 +3,14 @@ members = ["crates/calc-flow", "crates/calc-flow-connectors", "crates/calc-flow-
3
3
  resolver = "3"
4
4
 
5
5
  [workspace.package]
6
- version = "2026.9.25"
6
+ version = "2026.10.13"
7
7
  edition = "2024"
8
8
  rust-version = "1.88.0"
9
9
  license = "Apache-2.0"
10
10
  repository = "https://github.com/wegamekinglc/calc-flow"
11
11
 
12
12
  [workspace.dependencies]
13
+ ahash = "0.8.12"
13
14
  async-trait = "0.1.89"
14
15
  chrono = { version = "0.4.44", features = ["serde"] }
15
16
  command-group = "5.0.1"
@@ -19,6 +20,7 @@ futures = "0.3.31"
19
20
  futures-util = "0.3.31"
20
21
  fs2 = "0.4.3"
21
22
  hex = "0.4.3"
23
+ hashbrown = "=0.17.1"
22
24
  parking_lot = "0.12.5"
23
25
  proptest = "1.7.0"
24
26
  regex = "1.12.2"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: calc-flow-python
3
- Version: 2026.9.25
3
+ Version: 2026.10.13
4
4
  Requires-Dist: pydantic>=2.12.0,<3
5
5
  Requires-Dist: pyarrow>=21.0.0,<22 ; python_full_version < '3.10'
6
6
  Requires-Dist: pyarrow>=24.0.0,<25 ; python_full_version >= '3.10'
@@ -9,7 +9,7 @@ Requires-Dist: jax>=0.4.30,<0.4.31 ; python_full_version < '3.10' and extra == '
9
9
  Requires-Dist: jax>=0.4 ; python_full_version >= '3.10' and extra == 'array'
10
10
  Requires-Dist: numpy>=2.0.0 ; extra == 'array'
11
11
  Requires-Dist: ta-lib==0.7.1 ; extra == 'benchmark'
12
- Requires-Dist: datafusion==54.0.0 ; extra == 'benchmark'
12
+ Requires-Dist: datafusion==54.0.0 ; python_full_version >= '3.10' and extra == 'benchmark'
13
13
  Requires-Dist: jax>=0.4 ; extra == 'benchmark'
14
14
  Requires-Dist: numpy>=2.0.0 ; extra == 'benchmark'
15
15
  Requires-Dist: polars>=1.32,<2 ; extra == 'benchmark'
@@ -17,7 +17,6 @@ Requires-Dist: psutil>=6.1 ; extra == 'benchmark'
17
17
  Requires-Dist: py-cpuinfo>=9 ; extra == 'benchmark'
18
18
  Requires-Dist: pytest>=8 ; extra == 'benchmark'
19
19
  Requires-Dist: pytest-benchmark>=5.2 ; extra == 'benchmark'
20
- Requires-Dist: hypothesis>=6.100 ; extra == 'dev'
21
20
  Requires-Dist: jax>=0.4 ; extra == 'dev'
22
21
  Requires-Dist: maturin>=1.14.1,<2.0 ; extra == 'dev'
23
22
  Requires-Dist: numpy>=2.0.0 ; extra == 'dev'
@@ -54,7 +53,9 @@ Calc Flow is a Python calculation library for Arrow tables and stateful streams.
54
53
  Compose typed expressions, SQL, and reusable Python functions in one pipeline.
55
54
  Collect a dataset or iterate its results as data arrives. Rust provides the internal runtime:
56
55
  DataFusion table execution, graph compilation, state, checkpoints, and recovery.
57
- Calc Flow Studio is a separate local FastAPI and React application.
56
+ Calc Flow Studio, the local FastAPI and React application, lives in the
57
+ separate [calc-flow-studio](https://github.com/wegamekinglc/calc-flow-studio)
58
+ repository.
58
59
 
59
60
  ## Install
60
61
 
@@ -127,14 +128,11 @@ crates/calc-flow (Rust core: Batch, graph compiler, DataFusion, runners, stores
127
128
  ├─ crates/calc-flow-connectors (trusted transport implementations)
128
129
  └─ crates/calc-flow-python (PyO3 _native binding + registered connectors)
129
130
  └─ python/calc_flow (Python expressions, Arrow execution + integrations)
130
- └─ web-ui/backend (calc-flow-studio FastAPI, /api/v3, loopback only)
131
- └─ web-ui/src (React + TypeScript + Vite + React Flow studio, via REST)
132
131
  ```
133
132
 
134
133
  The native dependency edges are `crates/calc-flow ← calc-flow-connectors` and
135
- `crates/calc-flow ← crates/calc-flow-python ← python/calc_flow ← web-ui/backend`.
136
- The frontend talks to the backend over the `/api/v3` REST contract only; the
137
- Python package is not a second engine.
134
+ `crates/calc-flow ← crates/calc-flow-python ← python/calc_flow`.
135
+ The Python package is not a second engine.
138
136
 
139
137
  | Path | Purpose |
140
138
  |--------------------------------|------------------------------------------------------------------------------------------------------------------------------------------|
@@ -142,8 +140,6 @@ Python package is not a second engine.
142
140
  | `crates/calc-flow-connectors/` | Trusted file, Kafka, PostgreSQL, MySQL, ClickHouse, HTTP, and WebSocket connectors behind feature gates |
143
141
  | `crates/calc-flow-python/` | PyO3 binding exposing the core as `calc_flow._native` |
144
142
  | `python/calc_flow/` | Python expressions and SQL, `pipe`, Arrow collection, owned stream results, lowering, and runtime integrations |
145
- | `web-ui/backend/` | `calc-flow-studio` FastAPI service under `/api/v3`, loopback-bound, spawned bounded continuous-job workers |
146
- | `web-ui/src/` | React + TypeScript + Vite + React Flow studio; API types generated from `web-ui/openapi.json` |
147
143
  | `schemas/` | `project-v3.schema.json`, the canonical generated project contract |
148
144
  | `examples/` | Executable Python expression and integration examples |
149
145
  | `benchmarks/` | Benchmark workloads; scheduled regression gates and informational comparisons |
@@ -169,8 +165,12 @@ Python package is not a second engine.
169
165
  deep-copied strict-JSON settings and a cooperative, timezone-aware deadline
170
166
  normalized to UTC.
171
167
  - `TableExpr.stream` and `Program.stream` own a single native job with bounded
172
- backpressure. SQL accepts one alias in a stream and runs per native batch;
173
- SQL aggregation, sorting, and limits do not span batches.
168
+ backpressure. SQL accepts one alias in a stream. Ordinary aggregates and
169
+ `GROUP BY` emit full cumulative snapshots; other SQL runs per batch.
170
+ - `Program(name, engine="sql")` or `Program(name, engine="streaming")` fixes
171
+ the engine when the immutable program is created. `Program.execute` returns
172
+ finite named tables or owned streaming results, respectively. Calls for the
173
+ other engine fail.
174
174
  - The source-driven `StreamingRunner` consumes a `StreamExecutionPlan`, owns
175
175
  async source/sink bindings, and returns a one-owner `StreamingJob`.
176
176
  - Managed epoch checkpoints use `LocalStateBackend` segments and strict v3
@@ -194,66 +194,25 @@ contain references only.
194
194
  Runtime extension authors use `UdfRegistry` for native DataFusion UDFs and
195
195
  `ProviderRegistry` for explicitly registered external operators.
196
196
 
197
- ## Studio
198
-
199
- `web-ui/backend/` is the independently packaged `calc-flow-studio` FastAPI
200
- service. `web-ui/` is the React, TypeScript, Vite, and React Flow client.
201
- The local service:
202
-
203
- - exposes the v3 REST API under `/api/v3`;
204
- - binds only to loopback and is intentionally single-user;
205
- - validates and stores v3 project documents;
206
- - runs bounded continuous jobs in spawned workers;
207
- - serves generated frontend assets from the Studio wheel.
208
-
209
- Start both development processes on macOS, Linux, or WSL:
210
-
211
- ```bash
212
- ./web-ui/scripts/start_web_ui.sh
213
- ```
214
-
215
- On native Windows PowerShell:
216
-
217
- ```powershell
218
- .\web-ui\scripts\start_web_ui.ps1
219
- ```
220
-
221
- Open `http://127.0.0.1:5173`, then stop the managed processes with the
222
- matching command for your platform:
223
-
224
- ```bash
225
- ./web-ui/scripts/stop_web_ui.sh
226
- ```
227
-
228
- ```powershell
229
- .\web-ui\scripts\stop_web_ui.ps1
230
- ```
231
-
232
- Both launchers keep logs and process state under `.calc-flow-web/`.
233
-
234
- The checked OpenAPI contract is
235
- [web-ui/openapi.json](web-ui/openapi.json); generated TypeScript request and
236
- response types are in `web-ui/src/api/schema.d.ts`.
237
-
238
197
  ## Project contracts
239
198
 
240
- Calc Flow accepts strict project-v3 documents and exposes the Studio
241
- `/api/v3` surface. Read [projects and persistence](docs/projects-guide.md)
242
- for validation, serialization, and reloading a graph. Historical changes are
243
- recorded in [CHANGELOG.md](CHANGELOG.md).
199
+ Calc Flow accepts strict project-v3 documents. Read
200
+ [projects and persistence](docs/projects-guide.md) for validation,
201
+ serialization, and reloading a graph. Historical changes are recorded in
202
+ [CHANGELOG.md](CHANGELOG.md).
244
203
 
245
204
  ## Development
246
205
 
247
206
  Large Cargo and Maturin outputs should use the repository `target/` tree.
248
207
  The complete CI/full-verification command reference is below. Local changes use
249
208
  the smallest affected checks under [AGENTS.md Verification](AGENTS.md#verification);
250
- full regression, Rust 90% coverage, and Studio backend 85% coverage belong to
251
- CI; routine performance gates run on the benchmark schedule:
209
+ full regression and Rust 90% coverage belong to
210
+ CI; routine benchmark measurements run on their own schedule:
252
211
 
253
212
  ```bash
254
213
  uv sync --extra dev
255
214
  cargo fmt --all --check
256
- cargo clippy --workspace --all-targets --all-features -- -D warnings
215
+ cargo clippy --workspace --lib --bins --tests --examples --all-features -- -D warnings
257
216
  uv run python scripts/run_rust_tests.py
258
217
  CALC_FLOW_CONNECTOR_CONTAINERS=1 \
259
218
  CALC_FLOW_KAFKA_BOOTSTRAP=localhost:9092 \
@@ -268,17 +227,6 @@ JAX_PLATFORMS=cpu uv run pytest python/tests -q
268
227
  JAX_PLATFORMS=cpu uv run python scripts/run_examples.py
269
228
  uv run ruff check .
270
229
  uv run ruff format --check .
271
-
272
- cd web-ui/backend
273
- uv run --project . --extra dev pytest --cov=calc_flow_studio
274
-
275
- cd ..
276
- npm ci
277
- npm run sync:api
278
- npm run build
279
- npm test
280
- npm run test:e2e
281
- npm audit --omit=dev
282
230
  ```
283
231
 
284
232
  Regular CI runs `cargo audit`, `cargo deny --locked check`, core package
@@ -297,10 +245,9 @@ the maintained repository commands and constraints.
297
245
  - **[Continuous streaming](docs/streaming-guide.md)** — source-to-recovery tutorial
298
246
  - **[Connectors](docs/connectors/README.md)** — transport configuration and guarantees
299
247
  - **[Projects and persistence](docs/projects-guide.md)** — JSON/YAML and file stores
300
- - **[Studio](docs/studio-guide.md)** — local editing, inspection, and job controls
301
248
  - **[Python API](docs/python-api.md)** — Python surface and examples
302
- - **[Expression workflows](docs/symbolic-workflows.md)** — declaration-to-Studio
303
- batch, stream, recovery, static matrix, and performance workflows
249
+ - **[Expression workflows](docs/symbolic-workflows.md)** — batch, stream,
250
+ recovery, static matrix, and performance workflows
304
251
  - **[Rust runtime reference](docs/rust-api.md)** — native surface and examples
305
252
  - **[API reference](docs/api-reference.md)** — supported surfaces at a glance
306
253
  - **[Expression API](docs/symbolic-api.md)** — declarations, analysis, and compile requirements
@@ -10,7 +10,9 @@ Calc Flow is a Python calculation library for Arrow tables and stateful streams.
10
10
  Compose typed expressions, SQL, and reusable Python functions in one pipeline.
11
11
  Collect a dataset or iterate its results as data arrives. Rust provides the internal runtime:
12
12
  DataFusion table execution, graph compilation, state, checkpoints, and recovery.
13
- Calc Flow Studio is a separate local FastAPI and React application.
13
+ Calc Flow Studio, the local FastAPI and React application, lives in the
14
+ separate [calc-flow-studio](https://github.com/wegamekinglc/calc-flow-studio)
15
+ repository.
14
16
 
15
17
  ## Install
16
18
 
@@ -83,14 +85,11 @@ crates/calc-flow (Rust core: Batch, graph compiler, DataFusion, runners, stores
83
85
  ├─ crates/calc-flow-connectors (trusted transport implementations)
84
86
  └─ crates/calc-flow-python (PyO3 _native binding + registered connectors)
85
87
  └─ python/calc_flow (Python expressions, Arrow execution + integrations)
86
- └─ web-ui/backend (calc-flow-studio FastAPI, /api/v3, loopback only)
87
- └─ web-ui/src (React + TypeScript + Vite + React Flow studio, via REST)
88
88
  ```
89
89
 
90
90
  The native dependency edges are `crates/calc-flow ← calc-flow-connectors` and
91
- `crates/calc-flow ← crates/calc-flow-python ← python/calc_flow ← web-ui/backend`.
92
- The frontend talks to the backend over the `/api/v3` REST contract only; the
93
- Python package is not a second engine.
91
+ `crates/calc-flow ← crates/calc-flow-python ← python/calc_flow`.
92
+ The Python package is not a second engine.
94
93
 
95
94
  | Path | Purpose |
96
95
  |--------------------------------|------------------------------------------------------------------------------------------------------------------------------------------|
@@ -98,8 +97,6 @@ Python package is not a second engine.
98
97
  | `crates/calc-flow-connectors/` | Trusted file, Kafka, PostgreSQL, MySQL, ClickHouse, HTTP, and WebSocket connectors behind feature gates |
99
98
  | `crates/calc-flow-python/` | PyO3 binding exposing the core as `calc_flow._native` |
100
99
  | `python/calc_flow/` | Python expressions and SQL, `pipe`, Arrow collection, owned stream results, lowering, and runtime integrations |
101
- | `web-ui/backend/` | `calc-flow-studio` FastAPI service under `/api/v3`, loopback-bound, spawned bounded continuous-job workers |
102
- | `web-ui/src/` | React + TypeScript + Vite + React Flow studio; API types generated from `web-ui/openapi.json` |
103
100
  | `schemas/` | `project-v3.schema.json`, the canonical generated project contract |
104
101
  | `examples/` | Executable Python expression and integration examples |
105
102
  | `benchmarks/` | Benchmark workloads; scheduled regression gates and informational comparisons |
@@ -125,8 +122,12 @@ Python package is not a second engine.
125
122
  deep-copied strict-JSON settings and a cooperative, timezone-aware deadline
126
123
  normalized to UTC.
127
124
  - `TableExpr.stream` and `Program.stream` own a single native job with bounded
128
- backpressure. SQL accepts one alias in a stream and runs per native batch;
129
- SQL aggregation, sorting, and limits do not span batches.
125
+ backpressure. SQL accepts one alias in a stream. Ordinary aggregates and
126
+ `GROUP BY` emit full cumulative snapshots; other SQL runs per batch.
127
+ - `Program(name, engine="sql")` or `Program(name, engine="streaming")` fixes
128
+ the engine when the immutable program is created. `Program.execute` returns
129
+ finite named tables or owned streaming results, respectively. Calls for the
130
+ other engine fail.
130
131
  - The source-driven `StreamingRunner` consumes a `StreamExecutionPlan`, owns
131
132
  async source/sink bindings, and returns a one-owner `StreamingJob`.
132
133
  - Managed epoch checkpoints use `LocalStateBackend` segments and strict v3
@@ -150,66 +151,25 @@ contain references only.
150
151
  Runtime extension authors use `UdfRegistry` for native DataFusion UDFs and
151
152
  `ProviderRegistry` for explicitly registered external operators.
152
153
 
153
- ## Studio
154
-
155
- `web-ui/backend/` is the independently packaged `calc-flow-studio` FastAPI
156
- service. `web-ui/` is the React, TypeScript, Vite, and React Flow client.
157
- The local service:
158
-
159
- - exposes the v3 REST API under `/api/v3`;
160
- - binds only to loopback and is intentionally single-user;
161
- - validates and stores v3 project documents;
162
- - runs bounded continuous jobs in spawned workers;
163
- - serves generated frontend assets from the Studio wheel.
164
-
165
- Start both development processes on macOS, Linux, or WSL:
166
-
167
- ```bash
168
- ./web-ui/scripts/start_web_ui.sh
169
- ```
170
-
171
- On native Windows PowerShell:
172
-
173
- ```powershell
174
- .\web-ui\scripts\start_web_ui.ps1
175
- ```
176
-
177
- Open `http://127.0.0.1:5173`, then stop the managed processes with the
178
- matching command for your platform:
179
-
180
- ```bash
181
- ./web-ui/scripts/stop_web_ui.sh
182
- ```
183
-
184
- ```powershell
185
- .\web-ui\scripts\stop_web_ui.ps1
186
- ```
187
-
188
- Both launchers keep logs and process state under `.calc-flow-web/`.
189
-
190
- The checked OpenAPI contract is
191
- [web-ui/openapi.json](web-ui/openapi.json); generated TypeScript request and
192
- response types are in `web-ui/src/api/schema.d.ts`.
193
-
194
154
  ## Project contracts
195
155
 
196
- Calc Flow accepts strict project-v3 documents and exposes the Studio
197
- `/api/v3` surface. Read [projects and persistence](docs/projects-guide.md)
198
- for validation, serialization, and reloading a graph. Historical changes are
199
- recorded in [CHANGELOG.md](CHANGELOG.md).
156
+ Calc Flow accepts strict project-v3 documents. Read
157
+ [projects and persistence](docs/projects-guide.md) for validation,
158
+ serialization, and reloading a graph. Historical changes are recorded in
159
+ [CHANGELOG.md](CHANGELOG.md).
200
160
 
201
161
  ## Development
202
162
 
203
163
  Large Cargo and Maturin outputs should use the repository `target/` tree.
204
164
  The complete CI/full-verification command reference is below. Local changes use
205
165
  the smallest affected checks under [AGENTS.md Verification](AGENTS.md#verification);
206
- full regression, Rust 90% coverage, and Studio backend 85% coverage belong to
207
- CI; routine performance gates run on the benchmark schedule:
166
+ full regression and Rust 90% coverage belong to
167
+ CI; routine benchmark measurements run on their own schedule:
208
168
 
209
169
  ```bash
210
170
  uv sync --extra dev
211
171
  cargo fmt --all --check
212
- cargo clippy --workspace --all-targets --all-features -- -D warnings
172
+ cargo clippy --workspace --lib --bins --tests --examples --all-features -- -D warnings
213
173
  uv run python scripts/run_rust_tests.py
214
174
  CALC_FLOW_CONNECTOR_CONTAINERS=1 \
215
175
  CALC_FLOW_KAFKA_BOOTSTRAP=localhost:9092 \
@@ -224,17 +184,6 @@ JAX_PLATFORMS=cpu uv run pytest python/tests -q
224
184
  JAX_PLATFORMS=cpu uv run python scripts/run_examples.py
225
185
  uv run ruff check .
226
186
  uv run ruff format --check .
227
-
228
- cd web-ui/backend
229
- uv run --project . --extra dev pytest --cov=calc_flow_studio
230
-
231
- cd ..
232
- npm ci
233
- npm run sync:api
234
- npm run build
235
- npm test
236
- npm run test:e2e
237
- npm audit --omit=dev
238
187
  ```
239
188
 
240
189
  Regular CI runs `cargo audit`, `cargo deny --locked check`, core package
@@ -253,10 +202,9 @@ the maintained repository commands and constraints.
253
202
  - **[Continuous streaming](docs/streaming-guide.md)** — source-to-recovery tutorial
254
203
  - **[Connectors](docs/connectors/README.md)** — transport configuration and guarantees
255
204
  - **[Projects and persistence](docs/projects-guide.md)** — JSON/YAML and file stores
256
- - **[Studio](docs/studio-guide.md)** — local editing, inspection, and job controls
257
205
  - **[Python API](docs/python-api.md)** — Python surface and examples
258
- - **[Expression workflows](docs/symbolic-workflows.md)** — declaration-to-Studio
259
- batch, stream, recovery, static matrix, and performance workflows
206
+ - **[Expression workflows](docs/symbolic-workflows.md)** — batch, stream,
207
+ recovery, static matrix, and performance workflows
260
208
  - **[Rust runtime reference](docs/rust-api.md)** — native surface and examples
261
209
  - **[API reference](docs/api-reference.md)** — supported surfaces at a glance
262
210
  - **[Expression API](docs/symbolic-api.md)** — declarations, analysis, and compile requirements
@@ -8,13 +8,22 @@ repository.workspace = true
8
8
  description = "Rust core for stateful DataFusion calculation pipelines"
9
9
  exclude = ["tests/**"]
10
10
 
11
+ [features]
12
+ benchmark-internals = []
13
+ benchmark-checkpoint-off = ["benchmark-internals"]
14
+ benchmark-checkpoint-diagnostic = ["benchmark-internals"]
15
+
11
16
  [dependencies]
17
+ ahash.workspace = true
18
+ arrow-data = "=58.3.0"
12
19
  async-trait.workspace = true
13
20
  chrono.workspace = true
14
21
  datafusion.workspace = true
15
22
  futures.workspace = true
16
23
  fs2.workspace = true
24
+ flatbuffers = "=25.12.19"
17
25
  hex.workspace = true
26
+ hashbrown.workspace = true
18
27
  parking_lot.workspace = true
19
28
  regex.workspace = true
20
29
  schemars.workspace = true
@@ -40,6 +49,10 @@ tokio = { workspace = true, features = ["test-util"] }
40
49
  name = "core"
41
50
  harness = false
42
51
 
52
+ [[bench]]
53
+ name = "stream_union"
54
+ harness = false
55
+
43
56
  [[bench]]
44
57
  name = "allocation_regression"
45
58
  harness = false
@@ -66,3 +79,19 @@ workspace = true
66
79
  [[bench]]
67
80
  name = "stream_asof_perf"
68
81
  harness = false
82
+
83
+ [[bench]]
84
+ name = "stream_asof_e2e"
85
+ harness = false
86
+
87
+ [[bench]]
88
+ name = "stream_sql_aggregate"
89
+ harness = false
90
+
91
+ [[bench]]
92
+ name = "stream_asof_eviction"
93
+ harness = false
94
+
95
+ [[bench]]
96
+ name = "stream_window_groups"
97
+ harness = false
@@ -206,7 +206,10 @@ fn window_execution_and_restore(c: &mut Criterion) {
206
206
  .process_data("input", input.clone(), &context, collector)
207
207
  .await
208
208
  .unwrap();
209
- black_box(());
209
+ // Drain every port so each iteration measures one fresh batch.
210
+ for port in operator.output_ports() {
211
+ black_box(collector.drain(port.name()));
212
+ }
210
213
  });
211
214
  });
212
215
  }
@@ -230,9 +233,101 @@ fn window_execution_and_restore(c: &mut Criterion) {
230
233
  });
231
234
  }
232
235
 
236
+ fn dense_schema() -> Arc<Schema> {
237
+ Arc::new(Schema::new(vec![
238
+ Field::new(
239
+ "event_time",
240
+ DataType::Timestamp(TimeUnit::Microsecond, None),
241
+ false,
242
+ ),
243
+ Field::new("group", DataType::Int64, false),
244
+ Field::new("value", DataType::Float64, true),
245
+ Field::new("ivalue", DataType::Int64, false),
246
+ ]))
247
+ }
248
+
249
+ fn dense_input(rows: usize) -> Batch {
250
+ let n = i64::try_from(rows).unwrap();
251
+ let record = RecordBatch::try_new(
252
+ dense_schema(),
253
+ vec![
254
+ Arc::new(TimestampMicrosecondArray::from_iter_values(0..n)) as ArrayRef,
255
+ Arc::new(Int64Array::from_iter_values((0..n).map(|i| i % 16))),
256
+ Arc::new(
257
+ (0..n)
258
+ .map(|i| (i % 7 != 0).then_some(f64::from(i32::try_from(i).unwrap()) * 0.5))
259
+ .collect::<datafusion::arrow::array::Float64Array>(),
260
+ ),
261
+ Arc::new(Int64Array::from_iter_values((0..n).map(|i| i * 3 - 7))),
262
+ ],
263
+ )
264
+ .unwrap();
265
+ Batch::table(vec![record], BatchMetadata::default()).unwrap()
266
+ }
267
+
268
+ fn dense_operator(hopping: bool) -> WindowAggregateOperator {
269
+ let spec = if hopping {
270
+ WindowSpec::hopping(
271
+ "event_time",
272
+ Duration::from_micros(1_000),
273
+ Duration::from_micros(100),
274
+ )
275
+ .unwrap()
276
+ } else {
277
+ WindowSpec::tumbling("event_time", Duration::from_micros(1_000)).unwrap()
278
+ }
279
+ .group_by(["group"])
280
+ .unwrap()
281
+ .aggregate(AggregateFunction::Sum, "value", "s")
282
+ .unwrap()
283
+ .aggregate(AggregateFunction::Count, "value", "c")
284
+ .unwrap()
285
+ .aggregate(AggregateFunction::Min, "ivalue", "mn")
286
+ .unwrap()
287
+ .aggregate(AggregateFunction::Max, "value", "mx")
288
+ .unwrap()
289
+ .aggregate(AggregateFunction::Avg, "ivalue", "a")
290
+ .unwrap();
291
+ WindowAggregateOperator::new("window", dense_schema(), spec).unwrap()
292
+ }
293
+
294
+ fn dense_window(c: &mut Criterion) {
295
+ let runtime = tokio::runtime::Runtime::new().unwrap();
296
+ let job = StreamJobContext::new(
297
+ 1,
298
+ STATE_PIPELINE_FINGERPRINT,
299
+ JsonMap::new(),
300
+ None,
301
+ CancellationToken::new(),
302
+ );
303
+ let input = dense_input(65_536);
304
+ for (name, hopping) in [("tumbling", false), ("hopping", true)] {
305
+ let operator = dense_operator(hopping);
306
+ let collector = EdgeCollector::new(operator.output_ports().to_vec());
307
+ let state = tokio::sync::Mutex::new((operator, collector));
308
+ c.bench_function(&format!("dense/{name}_65536_rows_16_groups"), |b| {
309
+ b.to_async(&runtime).iter(|| async {
310
+ let context = StreamOperatorContext::new(&job, "window", None);
311
+ let mut state = state.lock().await;
312
+ let (operator, collector) = &mut *state;
313
+ operator.reset().unwrap();
314
+ operator
315
+ .process_data("input", input.clone(), &context, collector)
316
+ .await
317
+ .unwrap();
318
+ // Drain every port so each iteration measures one fresh batch.
319
+ for port in operator.output_ports() {
320
+ black_box(collector.drain(port.name()));
321
+ }
322
+ });
323
+ });
324
+ }
325
+ }
326
+
233
327
  criterion_group!(
234
328
  m4_state_window,
235
329
  state_backend_io,
236
- window_execution_and_restore
330
+ window_execution_and_restore,
331
+ dense_window
237
332
  );
238
333
  criterion_main!(m4_state_window);