calc-flow-python 2026.9.25__tar.gz → 2026.10.12__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 (718) hide show
  1. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/Cargo.lock +30 -3
  2. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/Cargo.toml +3 -1
  3. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/PKG-INFO +9 -6
  4. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/README.md +8 -4
  5. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/Cargo.toml +29 -0
  6. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/benches/m4_state_window.rs +97 -2
  7. calc_flow_python-2026.10.12/crates/calc-flow/benches/stream_asof_e2e.rs +375 -0
  8. calc_flow_python-2026.10.12/crates/calc-flow/benches/stream_asof_eviction.rs +500 -0
  9. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/benches/stream_asof_perf.rs +60 -18
  10. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/benches/stream_join_perf.rs +355 -31
  11. calc_flow_python-2026.10.12/crates/calc-flow/benches/stream_sql_aggregate.rs +723 -0
  12. calc_flow_python-2026.10.12/crates/calc-flow/benches/stream_union.rs +57 -0
  13. calc_flow_python-2026.10.12/crates/calc-flow/benches/stream_window_groups.rs +535 -0
  14. calc_flow_python-2026.10.12/crates/calc-flow/benches/support/native_join_components.rs +495 -0
  15. calc_flow_python-2026.10.12/crates/calc-flow/benches/support/streaming_soak/contracts.rs +1853 -0
  16. calc_flow_python-2026.10.12/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.12/crates/calc-flow/benches/support/streaming_soak.rs +390 -3628
  18. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/rolling-kernels.json +32 -0
  19. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/batch.rs +110 -207
  20. calc_flow_python-2026.10.12/crates/calc-flow/src/benchmark_internals/dispatch_trace.rs +288 -0
  21. calc_flow_python-2026.10.12/crates/calc-flow/src/benchmark_internals.rs +880 -0
  22. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/config.rs +80 -7
  23. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/connector/capability.rs +0 -54
  24. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/connector/secret.rs +12 -0
  25. calc_flow_python-2026.10.12/crates/calc-flow/src/continuous/benchmark_trace.rs +68 -0
  26. calc_flow_python-2026.10.12/crates/calc-flow/src/continuous/checkpointing_tests.rs +114 -0
  27. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/continuous.rs +150 -322
  28. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/datafusion.rs +673 -124
  29. calc_flow_python-2026.10.12/crates/calc-flow/src/datafusion_compact.rs +372 -0
  30. calc_flow_python-2026.10.12/crates/calc-flow/src/datafusion_compact_planner.rs +932 -0
  31. calc_flow_python-2026.10.12/crates/calc-flow/src/datafusion_eager_input.rs +87 -0
  32. calc_flow_python-2026.10.12/crates/calc-flow/src/datafusion_global_float_plan_tests.rs +283 -0
  33. calc_flow_python-2026.10.12/crates/calc-flow/src/datafusion_global_record.rs +108 -0
  34. calc_flow_python-2026.10.12/crates/calc-flow/src/datafusion_grouped_float.rs +244 -0
  35. calc_flow_python-2026.10.12/crates/calc-flow/src/datafusion_grouped_float_continuation_tests.rs +324 -0
  36. calc_flow_python-2026.10.12/crates/calc-flow/src/datafusion_grouped_float_diagnostics.rs +288 -0
  37. calc_flow_python-2026.10.12/crates/calc-flow/src/datafusion_grouped_float_seed_tests.rs +132 -0
  38. calc_flow_python-2026.10.12/crates/calc-flow/src/datafusion_owned.rs +550 -0
  39. calc_flow_python-2026.10.12/crates/calc-flow/src/datafusion_template.rs +254 -0
  40. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/expression.rs +217 -19
  41. calc_flow_python-2026.10.12/crates/calc-flow/src/json/owned_size.rs +44 -0
  42. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/json.rs +3 -0
  43. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/lib.rs +12 -6
  44. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/admission/direct/tests.rs +101 -0
  45. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/admission/direct.rs +297 -0
  46. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/admission/identity_tests/columnar/descriptors.rs +182 -0
  47. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/admission/identity_tests/columnar/direct/lifecycle.rs +250 -0
  48. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/admission/identity_tests/columnar/direct.rs +477 -0
  49. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/admission/identity_tests/columnar/right_keys.rs +205 -0
  50. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/admission/identity_tests/columnar.rs +1120 -0
  51. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/admission/identity_tests/cpu.rs +248 -0
  52. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/admission/identity_tests/parallel_cpu.rs +591 -0
  53. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/admission/parallel.rs +321 -0
  54. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/admission.rs +2157 -0
  55. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/checkpoint/cost.rs +42 -0
  56. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/checkpoint/cpu.rs +154 -0
  57. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/checkpoint/current_format_tests.rs +207 -0
  58. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/checkpoint/incremental.rs +1597 -0
  59. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/checkpoint/index_v3/log/chain.rs +299 -0
  60. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/checkpoint/index_v3/log/journal.rs +227 -0
  61. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/checkpoint/index_v3/log/model.rs +828 -0
  62. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/checkpoint/index_v3/log/read.rs +611 -0
  63. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/checkpoint/index_v3/log/tests.rs +295 -0
  64. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/checkpoint/index_v3/log/write.rs +514 -0
  65. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/checkpoint/index_v3/log.rs +163 -0
  66. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/checkpoint/index_v3/owned.rs +446 -0
  67. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/checkpoint/index_v3/owners.rs +528 -0
  68. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/checkpoint/index_v3.rs +2080 -0
  69. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/checkpoint/payload_segments.rs +5 -0
  70. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/checkpoint/prepared.rs +23 -0
  71. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/operator/asof/checkpoint/validation.rs +7 -5
  72. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/checkpoint.rs +1317 -0
  73. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/operator/asof/codec/framing.rs +65 -13
  74. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/operator/asof/codec.rs +68 -26
  75. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/copy.rs +651 -0
  76. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/cpu.rs +64 -0
  77. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/operator/asof/duplicate_fallback.rs +13 -3
  78. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/finalize/output_ranges.rs +498 -0
  79. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/finalize/owner_runs.rs +435 -0
  80. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/finalize/prefix/tests/cpu.rs +388 -0
  81. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/finalize/prefix.rs +234 -0
  82. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/finalize/probe/tests.rs +591 -0
  83. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/finalize/probe.rs +171 -0
  84. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/finalize.rs +1294 -0
  85. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/operator/asof/metadata.rs +1 -0
  86. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/operator/asof/mod.rs +287 -104
  87. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/output/gather_lifecycle_bridge/multi.rs +242 -0
  88. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/output/gather_lifecycle_bridge.rs +383 -0
  89. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/output/tests/all_shared.rs +336 -0
  90. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/output/tests.rs +1012 -0
  91. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/output.rs +567 -0
  92. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/output_plan/backing.rs +57 -0
  93. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/output_plan/tests/backing_allocation.rs +165 -0
  94. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/output_plan/tests.rs +114 -0
  95. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/output_plan.rs +441 -0
  96. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/payload_projection.rs +278 -0
  97. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/replay/anchor/tests.rs +149 -0
  98. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/replay/anchor.rs +336 -0
  99. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/replay/capture.rs +159 -0
  100. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/replay/codec.rs +312 -0
  101. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/replay/restore.rs +466 -0
  102. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/replay/tests.rs +183 -0
  103. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/replay.rs +332 -0
  104. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/retirement.rs +76 -0
  105. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/operator/asof/schema.rs +1 -1
  106. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/state/capacity.rs +288 -0
  107. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/state/expiration_cost_tests.rs +154 -0
  108. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/state/key_dictionary/compaction.rs +132 -0
  109. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/state/key_dictionary/entries.rs +261 -0
  110. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/state/key_dictionary/expiration.rs +209 -0
  111. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/state/key_dictionary/funding.rs +183 -0
  112. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/state/key_dictionary.rs +825 -0
  113. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/state/key_shards.rs +13 -0
  114. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/state/left.rs +2053 -0
  115. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/state/ownership.rs +218 -0
  116. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/state/payload.rs +863 -0
  117. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/state/right/merge_tests.rs +100 -0
  118. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/state/right.rs +1193 -0
  119. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/state/sequences.rs +518 -0
  120. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/state/string_keys.rs +86 -0
  121. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/state.rs +2573 -0
  122. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/tests/checkpoint_delta.rs +525 -0
  123. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/tests/dominated_payloads.rs +294 -0
  124. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/tests/expiration_index.rs +305 -0
  125. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/tests/expiration_output_integration.rs +732 -0
  126. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/tests/fixtures/legacy-v3/empty.json +75 -0
  127. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/tests/fixtures/legacy-v3/general-spare-shared.json +84 -0
  128. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/tests/fixtures/legacy-v3/populated.json +88 -0
  129. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/tests/fixtures/legacy-v3/terminal.json +75 -0
  130. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/tests/fixtures/legacy-v3/tight-state-cap.json +88 -0
  131. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/tests/fixtures/legacy-v4/dominated-retained.json +82 -0
  132. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/tests/fixtures/legacy-v5/.gitattributes +1 -0
  133. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/tests/fixtures/legacy-v5/retained-projection.json +86 -0
  134. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/tests/gather_admission.rs +184 -0
  135. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/tests/restored_workspace.rs +591 -0
  136. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/tests/retained_projection.rs +404 -0
  137. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/tests/retained_projection_contracts.rs +933 -0
  138. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/tests/source_replay.rs +179 -0
  139. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/tests.rs +2135 -0
  140. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/asof/workspace.rs +1228 -0
  141. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/operator/cross_section/late.rs +2 -1
  142. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/operator/cross_section/tests/late.rs +33 -4
  143. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/operator/cross_section.rs +1524 -172
  144. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/operator/expression/projection.rs +2 -1
  145. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/operator/expression.rs +185 -36
  146. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/admission_masks.rs +310 -0
  147. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/benchmark_checkpoint.rs +1102 -0
  148. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/benchmark_checkpoint_full_tests.rs +480 -0
  149. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/benchmark_checkpoint_tests.rs +532 -0
  150. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/borrowed_key.rs +253 -0
  151. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/checkpoint_compaction.rs +372 -0
  152. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/checkpoint_v2/budget.rs +145 -0
  153. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/checkpoint_v2/candidate/test_controls.rs +104 -0
  154. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/checkpoint_v2/candidate.rs +444 -0
  155. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/checkpoint_v2/construction.rs +217 -0
  156. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/checkpoint_v2/frame.rs +288 -0
  157. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/checkpoint_v2/frame_tests.rs +249 -0
  158. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/checkpoint_v2/geometry.rs +178 -0
  159. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/checkpoint_v2/history/merge.rs +161 -0
  160. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/checkpoint_v2/history.rs +178 -0
  161. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/checkpoint_v2/inventory.rs +367 -0
  162. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/checkpoint_v2/ipc/accounting.rs +382 -0
  163. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/checkpoint_v2/ipc/concat/bulk/flat.rs +118 -0
  164. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/checkpoint_v2/ipc/concat/bulk.rs +192 -0
  165. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/checkpoint_v2/ipc/concat/snapshot.rs +130 -0
  166. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/checkpoint_v2/ipc/concat.rs +390 -0
  167. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/checkpoint_v2/ipc/framing.rs +149 -0
  168. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/checkpoint_v2/ipc/nodes.rs +407 -0
  169. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/checkpoint_v2/ipc/reader.rs +185 -0
  170. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/checkpoint_v2/ipc/schema.rs +401 -0
  171. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/checkpoint_v2/ipc.rs +134 -0
  172. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/checkpoint_v2/loans.rs +74 -0
  173. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/checkpoint_v2/managed.rs +89 -0
  174. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/checkpoint_v2/metadata.rs +162 -0
  175. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/checkpoint_v2/payload.rs +204 -0
  176. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/checkpoint_v2/restore.rs +69 -0
  177. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/checkpoint_v2/row.rs +444 -0
  178. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/checkpoint_v2/work.rs +101 -0
  179. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/checkpoint_v2/writer/budget.rs +517 -0
  180. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/checkpoint_v2/writer/buffer.rs +120 -0
  181. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/checkpoint_v2/writer/buffer_tests.rs +73 -0
  182. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/checkpoint_v2/writer/compact.rs +193 -0
  183. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/checkpoint_v2/writer/compact_tests.rs +686 -0
  184. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/checkpoint_v2/writer/cut.rs +55 -0
  185. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/checkpoint_v2/writer/digest_tests.rs +116 -0
  186. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/checkpoint_v2/writer/encode/delta.rs +326 -0
  187. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/checkpoint_v2/writer/encode/rebase/funding.rs +56 -0
  188. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/checkpoint_v2/writer/encode/rebase/input.rs +353 -0
  189. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/checkpoint_v2/writer/encode/rebase/merge.rs +273 -0
  190. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/checkpoint_v2/writer/encode/rebase/pending.rs +179 -0
  191. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/checkpoint_v2/writer/encode/rebase.rs +190 -0
  192. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/checkpoint_v2/writer/encode/restored.rs +204 -0
  193. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/checkpoint_v2/writer/encode/retarget.rs +57 -0
  194. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/checkpoint_v2/writer/encode.rs +514 -0
  195. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/checkpoint_v2/writer/funding_tests.rs +527 -0
  196. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/checkpoint_v2/writer/metadata.rs +215 -0
  197. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/checkpoint_v2/writer/pending_capture_tests.rs +351 -0
  198. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/checkpoint_v2/writer/pending_rebase_tests.rs +438 -0
  199. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/checkpoint_v2/writer/pending_tests.rs +324 -0
  200. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/checkpoint_v2/writer/prepared_tests.rs +302 -0
  201. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/checkpoint_v2/writer/rebase_admission_tests.rs +111 -0
  202. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/checkpoint_v2/writer/rebase_edge_tests.rs +465 -0
  203. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/checkpoint_v2/writer/rebase_owner_tests.rs +156 -0
  204. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/checkpoint_v2/writer/rebase_tests.rs +202 -0
  205. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/checkpoint_v2/writer/rebase_trust_capture_tests.rs +73 -0
  206. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/checkpoint_v2/writer/rebase_trust_tests.rs +174 -0
  207. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/checkpoint_v2/writer/row.rs +63 -0
  208. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/checkpoint_v2/writer/wire_tests.rs +720 -0
  209. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/checkpoint_v2/writer.rs +896 -0
  210. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/checkpoint_v2.rs +26 -0
  211. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/columnar/metadata.rs +96 -0
  212. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/columnar/owned_copy.rs +949 -0
  213. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/columnar/restored/utf8.rs +153 -0
  214. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/columnar/restored/validity.rs +53 -0
  215. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/columnar/restored.rs +230 -0
  216. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/columnar/sparse/tests.rs +262 -0
  217. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/columnar/sparse.rs +279 -0
  218. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/columnar.rs +297 -0
  219. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/data_work/control.rs +82 -0
  220. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/data_work/inputs.rs +71 -0
  221. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/data_work/pairs.rs +74 -0
  222. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/data_work/partition.rs +54 -0
  223. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/data_work/process.rs +283 -0
  224. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/data_work/worker.rs +96 -0
  225. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/data_work.rs +81 -0
  226. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/expiration.rs +301 -0
  227. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/fixtures/README.md +13 -0
  228. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/fixtures/checkpoint-v1.json +309 -0
  229. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/key_arena.rs +441 -0
  230. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/operator/join/materialization.rs +28 -18
  231. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/metadata_validation/inventory.rs +131 -0
  232. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/metadata_validation/profile.rs +274 -0
  233. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/metadata_validation/schema/inventory.rs +89 -0
  234. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/metadata_validation/schema/plan.rs +100 -0
  235. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/metadata_validation/schema/restore_bases/boolean_tests.rs +610 -0
  236. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/metadata_validation/schema/restore_bases/float_tests.rs +210 -0
  237. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/metadata_validation/schema/restore_bases/input.rs +98 -0
  238. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/metadata_validation/schema/restore_bases/inspector.rs +407 -0
  239. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/metadata_validation/schema/restore_bases/inventory.rs +320 -0
  240. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/metadata_validation/schema/restore_bases/nullable_float_tests.rs +237 -0
  241. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/metadata_validation/schema/restore_bases/tests.rs +757 -0
  242. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/metadata_validation/schema/restore_bases.rs +534 -0
  243. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/metadata_validation/schema/restore_segments/frame.rs +305 -0
  244. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/metadata_validation/schema/restore_segments/input.rs +63 -0
  245. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/metadata_validation/schema/restore_segments/inventory.rs +161 -0
  246. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/metadata_validation/schema/restore_segments/tests.rs +754 -0
  247. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/metadata_validation/schema/restore_segments.rs +579 -0
  248. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/metadata_validation/schema/restore_utf8/input.rs +63 -0
  249. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/metadata_validation/schema/restore_utf8/inspector.rs +251 -0
  250. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/metadata_validation/schema/restore_utf8/inventory.rs +199 -0
  251. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/metadata_validation/schema/restore_utf8/nullable_tests.rs +470 -0
  252. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/metadata_validation/schema/restore_utf8/tests.rs +818 -0
  253. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/metadata_validation/schema/restore_utf8.rs +642 -0
  254. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/metadata_validation/schema/tests.rs +728 -0
  255. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/metadata_validation/schema.rs +332 -0
  256. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/metadata_validation/tests.rs +639 -0
  257. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/metadata_validation.rs +332 -0
  258. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/native_dictionary.rs +536 -0
  259. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/native_lookup.rs +609 -0
  260. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/output_gather/owned/funding.rs +33 -0
  261. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/output_gather/owned/side.rs +198 -0
  262. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/output_gather/owned/side_tests.rs +297 -0
  263. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/output_gather/owned.rs +218 -0
  264. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/output_gather/test_support.rs +53 -0
  265. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/output_gather.rs +137 -0
  266. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/row_ipc.rs +216 -0
  267. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/sql_key_scratch.rs +313 -0
  268. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/tests/checkpoint_compaction_tests.rs +1002 -0
  269. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/tests/checkpoint_v2_behavior_tests.rs +558 -0
  270. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/tests/checkpoint_v2_bounded_history_tests.rs +194 -0
  271. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/tests/checkpoint_v2_bounded_restore_tests.rs +184 -0
  272. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/tests/checkpoint_v2_capture_tests.rs +78 -0
  273. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/tests/checkpoint_v2_history_tests.rs +165 -0
  274. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/tests/checkpoint_v2_loan_tests.rs +313 -0
  275. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/tests/checkpoint_v2_map_behavior_tests.rs +237 -0
  276. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/tests/checkpoint_v2_overlap_tests.rs +31 -0
  277. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/tests/checkpoint_v2_restore_admission_tests.rs +184 -0
  278. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/tests/checkpoint_v2_tests.rs +390 -0
  279. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/tests/checkpoint_v2_v1_reuse_tests.rs +113 -0
  280. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/tests/checkpoint_v2_writer_cancel_tests.rs +355 -0
  281. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/tests/checkpoint_v2_writer_cut_tests.rs +135 -0
  282. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/tests/checkpoint_v2_writer_lifecycle_tests.rs +208 -0
  283. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/tests/checkpoint_v2_writer_migration_tests.rs +393 -0
  284. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/tests/checkpoint_v2_writer_restore_tests.rs +149 -0
  285. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/tests/checkpoint_v2_writer_tests.rs +441 -0
  286. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/tests/column_gather_admission_tests.rs +84 -0
  287. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/tests/column_gather_budget_tests.rs +164 -0
  288. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/tests/column_gather_emit_tests.rs +105 -0
  289. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/tests/column_gather_lifecycle_tests.rs +92 -0
  290. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/tests/column_gather_output_tests.rs +193 -0
  291. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/tests/column_gather_tests.rs +156 -0
  292. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/tests/columnar_state_tests.rs +2451 -0
  293. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/tests/complete_expiry_boundary_tests.rs +254 -0
  294. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/tests/complete_expiry_tests.rs +70 -0
  295. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/tests/empty_checkpoint_tests.rs +76 -0
  296. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/tests/expiration_admission_tests.rs +209 -0
  297. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/tests/expiration_heap_tests.rs +232 -0
  298. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/tests/hash_stream_tests.rs +34 -0
  299. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/tests/j2a_dictionary_tests.rs +485 -0
  300. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/tests/native_index_allocation_tests.rs +450 -0
  301. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/tests/native_lookup_tests.rs +1042 -0
  302. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/tests/optimization_tests.rs +449 -0
  303. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/tests/ordered_probe_tests.rs +273 -0
  304. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/tests/output_gather_tests.rs +731 -0
  305. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/tests/owned_probe_tests.rs +313 -0
  306. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/join/tests/sql_key_scratch_tests.rs +1414 -0
  307. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/operator/join.rs +2999 -963
  308. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/operator/mod.rs +35 -0
  309. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/retained_columns.rs +95 -0
  310. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/rolling/budget.rs +275 -0
  311. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/rolling/compile.rs +966 -0
  312. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/operator/rolling/generated_kernel_manifest.rs +33 -0
  313. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/operator/rolling/kernel/entity_parallel.rs +16 -6
  314. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/operator/rolling/kernel/entity_parallel_tests.rs +27 -22
  315. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/rolling/kernel/mean.rs +497 -0
  316. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/operator/rolling/kernel.rs +1190 -231
  317. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/operator/rolling/late.rs +12 -0
  318. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/operator/rolling/ordered_stream.rs +432 -36
  319. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/rolling/state_codec.rs +1441 -0
  320. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/operator/rolling/state_v3.rs +3 -1
  321. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/operator/rolling/tests/late.rs +5 -4
  322. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/rolling/tests.rs +4540 -0
  323. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/rolling.rs +4362 -0
  324. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/sql/checkpoint_test_hooks.rs +191 -0
  325. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/sql/compact/capture/current_safety_tests.rs +517 -0
  326. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/sql/compact/capture.rs +489 -0
  327. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/sql/compact/computed_filter_tests.rs +331 -0
  328. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/sql/compact/constant_group_tests.rs +246 -0
  329. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/sql/compact/control.rs +223 -0
  330. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/sql/compact/control_tests.rs +231 -0
  331. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/sql/compact/cte_eager_tests.rs +269 -0
  332. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/sql/compact/cte_input_tests.rs +220 -0
  333. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/sql/compact/cte_tests.rs +188 -0
  334. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/sql/compact/delta_float_tests.rs +130 -0
  335. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/sql/compact/delta_tests.rs +578 -0
  336. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/sql/compact/direct_async_tests.rs +497 -0
  337. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/sql/compact/empty_prefix_tests.rs +174 -0
  338. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/sql/compact/float_count_tests.rs +361 -0
  339. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/sql/compact/float_extrema_tests.rs +466 -0
  340. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/sql/compact/global_float_filter_tests.rs +282 -0
  341. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/sql/compact/global_float_sum_avg_tests.rs +434 -0
  342. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/sql/compact/global_float_where_tests.rs +478 -0
  343. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/sql/compact/global_integer_avg_tests.rs +273 -0
  344. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/sql/compact/global_predicate_tests.rs +252 -0
  345. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/sql/compact/global_record_controls.rs +250 -0
  346. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/sql/compact/group_key_tests.rs +242 -0
  347. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/sql/compact/grouped_checkpoint_reuse_tests.rs +136 -0
  348. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/sql/compact/grouped_composite_safety_tests.rs +110 -0
  349. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/sql/compact/grouped_composite_tests.rs +261 -0
  350. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/sql/compact/grouped_filter_tests.rs +287 -0
  351. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/sql/compact/grouped_float_safety_tests.rs +109 -0
  352. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/sql/compact/grouped_float_sum_avg_tests.rs +406 -0
  353. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/sql/compact/grouped_float_tests.rs +464 -0
  354. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/sql/compact/grouped_integer_avg_tests.rs +386 -0
  355. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/sql/compact/grouped_string_safety_tests.rs +106 -0
  356. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/sql/compact/grouped_string_tests.rs +282 -0
  357. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/sql/compact/grouped_sum_tests.rs +251 -0
  358. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/sql/compact/grouped_where_tests.rs +186 -0
  359. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/sql/compact/identity.rs +262 -0
  360. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/sql/compact/input_arithmetic_tests.rs +266 -0
  361. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/sql/compact/input_float_cast_tests.rs +349 -0
  362. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/sql/compact/log.rs +236 -0
  363. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/sql/compact/post_arithmetic_tests.rs +200 -0
  364. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/sql/compact/post_case_tests.rs +293 -0
  365. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/sql/compact/post_having_tests.rs +295 -0
  366. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/sql/compact/post_order_tests.rs +277 -0
  367. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/sql/compact/post_projection_tests.rs +272 -0
  368. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/sql/compact/restore.rs +347 -0
  369. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/sql/compact/state_fixture_tests.rs +950 -0
  370. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/sql/compact/storage.rs +270 -0
  371. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/sql/compact/storage_tests.rs +372 -0
  372. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/sql/compact/string_extrema_tests.rs +399 -0
  373. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/sql/compact.rs +152 -0
  374. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/sql/compact_checkpoint_tests.rs +663 -0
  375. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/sql/compact_plan_tests.rs +850 -0
  376. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/sql/compact_state/export.rs +521 -0
  377. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/sql/compact_state.rs +1101 -0
  378. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/sql/compact_state_tests.rs +819 -0
  379. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/sql/current_checkpoint_tests.rs +347 -0
  380. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/sql/current_retained.rs +662 -0
  381. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/sql/decimal_avg_tests.rs +384 -0
  382. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/sql/decimal_tests.rs +414 -0
  383. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/sql/dirty.rs +138 -0
  384. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/sql/global_record/coalescer/checkpoint.rs +456 -0
  385. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/sql/global_record/coalescer.rs +331 -0
  386. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/sql/global_record.rs +621 -0
  387. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/sql/group_key.rs +50 -0
  388. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/sql/grouped_float.rs +253 -0
  389. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/sql/grouped_float_proof_tests.rs +166 -0
  390. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/sql/grouped_seed_tests.rs +231 -0
  391. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/sql/grouped_sum.rs +99 -0
  392. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/sql/incremental.rs +3916 -0
  393. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/sql/incremental_tests.rs +1595 -0
  394. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/sql/input_checks.rs +41 -0
  395. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/sql/ipc.rs +186 -0
  396. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/sql/metadata.rs +127 -0
  397. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/sql/native_expression.rs +522 -0
  398. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/sql/normalize_groups.rs +293 -0
  399. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/sql/output_order.rs +313 -0
  400. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/sql/predicate.rs +172 -0
  401. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/sql/recovery_test_hooks.rs +171 -0
  402. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/sql/restore.rs +172 -0
  403. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/sql/restore_tests.rs +349 -0
  404. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/sql/retained_contract_tests.rs +637 -0
  405. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/sql/retained_planning_tests.rs +167 -0
  406. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/sql/retained_tests.rs +274 -0
  407. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/sql/retention.rs +342 -0
  408. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/sql/variable_extrema.rs +170 -0
  409. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/sql.rs +2289 -0
  410. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/state_budget.rs +84 -0
  411. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/operator/stream.rs +95 -5
  412. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/window/group_tests.rs +289 -0
  413. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/window/kernel_tests.rs +329 -0
  414. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/window/kernels.rs +144 -0
  415. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/window/key_tests.rs +261 -0
  416. calc_flow_python-2026.10.12/crates/calc-flow/src/operator/window/keys.rs +55 -0
  417. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/operator/window.rs +1763 -471
  418. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/pipeline/batch.rs +44 -0
  419. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/pipeline/mod.rs +11 -4
  420. calc_flow_python-2026.10.12/crates/calc-flow/src/pipeline/stream/projection.rs +419 -0
  421. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/pipeline/stream.rs +164 -64
  422. calc_flow_python-2026.10.12/crates/calc-flow/src/runtime/streaming/channel/fusion_observer.rs +62 -0
  423. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/runtime/streaming/channel.rs +43 -244
  424. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/runtime/streaming/checkpoint/coordinator.rs +68 -1
  425. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/runtime/streaming/checkpoint_runtime.rs +26 -0
  426. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/runtime/streaming/context.rs +42 -0
  427. calc_flow_python-2026.10.12/crates/calc-flow/src/runtime/streaming/edge_queue.rs +250 -0
  428. calc_flow_python-2026.10.12/crates/calc-flow/src/runtime/streaming/gather_work/admission_probe.rs +86 -0
  429. calc_flow_python-2026.10.12/crates/calc-flow/src/runtime/streaming/gather_work/cleanup.rs +385 -0
  430. calc_flow_python-2026.10.12/crates/calc-flow/src/runtime/streaming/gather_work/columns.rs +196 -0
  431. calc_flow_python-2026.10.12/crates/calc-flow/src/runtime/streaming/gather_work/parallel.rs +167 -0
  432. calc_flow_python-2026.10.12/crates/calc-flow/src/runtime/streaming/gather_work/process.rs +737 -0
  433. calc_flow_python-2026.10.12/crates/calc-flow/src/runtime/streaming/gather_work/row_gather.rs +83 -0
  434. calc_flow_python-2026.10.12/crates/calc-flow/src/runtime/streaming/gather_work/tests/cleanup.rs +495 -0
  435. calc_flow_python-2026.10.12/crates/calc-flow/src/runtime/streaming/gather_work/tests/parallel.rs +188 -0
  436. calc_flow_python-2026.10.12/crates/calc-flow/src/runtime/streaming/gather_work/tests.rs +1311 -0
  437. calc_flow_python-2026.10.12/crates/calc-flow/src/runtime/streaming/gather_work/worker.rs +341 -0
  438. calc_flow_python-2026.10.12/crates/calc-flow/src/runtime/streaming/gather_work.rs +1265 -0
  439. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/runtime/streaming/job.rs +10 -0
  440. calc_flow_python-2026.10.12/crates/calc-flow/src/runtime/streaming/local_edge.rs +245 -0
  441. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/runtime/streaming/metrics.rs +11 -0
  442. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/runtime/streaming/mod.rs +7 -0
  443. calc_flow_python-2026.10.12/crates/calc-flow/src/runtime/streaming/operator_task/benchmark_replay/dispatch.rs +322 -0
  444. calc_flow_python-2026.10.12/crates/calc-flow/src/runtime/streaming/operator_task/benchmark_replay.rs +1199 -0
  445. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/runtime/streaming/operator_task/cooperation_tests.rs +4 -3
  446. calc_flow_python-2026.10.12/crates/calc-flow/src/runtime/streaming/operator_task/join_checkpoint_credit.rs +317 -0
  447. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/runtime/streaming/operator_task/late_control_tests.rs +10 -8
  448. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/runtime/streaming/operator_task/performance_evidence.rs +2 -1
  449. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/runtime/streaming/operator_task/tests/asof_tests.rs +81 -2
  450. calc_flow_python-2026.10.12/crates/calc-flow/src/runtime/streaming/operator_task/tests/dispatch_trace_tests.rs +55 -0
  451. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/runtime/streaming/operator_task/tests/error_propagation_tests.rs +2 -1
  452. calc_flow_python-2026.10.12/crates/calc-flow/src/runtime/streaming/operator_task/tests/join_checkpoint_owner_tests.rs +197 -0
  453. calc_flow_python-2026.10.12/crates/calc-flow/src/runtime/streaming/operator_task/tests/segment_publication_tests.rs +305 -0
  454. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/runtime/streaming/operator_task.rs +1149 -133
  455. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/runtime/streaming/progress/aggregate.rs +13 -10
  456. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/runtime/streaming/progress/driver.rs +182 -14
  457. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/runtime/streaming/progress/durable.rs +2 -0
  458. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/runtime/streaming/projection.rs +96 -3
  459. calc_flow_python-2026.10.12/crates/calc-flow/src/runtime/streaming/runner/asof/join_preload/inventory.rs +142 -0
  460. calc_flow_python-2026.10.12/crates/calc-flow/src/runtime/streaming/runner/asof/join_preload/ownership_tests.rs +187 -0
  461. calc_flow_python-2026.10.12/crates/calc-flow/src/runtime/streaming/runner/asof/join_preload.rs +143 -0
  462. calc_flow_python-2026.10.12/crates/calc-flow/src/runtime/streaming/runner/asof/join_preload_tests.rs +521 -0
  463. calc_flow_python-2026.10.12/crates/calc-flow/src/runtime/streaming/runner/asof/load_work.rs +164 -0
  464. calc_flow_python-2026.10.12/crates/calc-flow/src/runtime/streaming/runner/asof/preload_tests.rs +338 -0
  465. calc_flow_python-2026.10.12/crates/calc-flow/src/runtime/streaming/runner/asof.rs +306 -0
  466. calc_flow_python-2026.10.12/crates/calc-flow/src/runtime/streaming/runner/checkpoint_task/tests.rs +187 -0
  467. calc_flow_python-2026.10.12/crates/calc-flow/src/runtime/streaming/runner/checkpoint_task.rs +1310 -0
  468. calc_flow_python-2026.10.12/crates/calc-flow/src/runtime/streaming/runner/join_terminal.rs +112 -0
  469. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/runtime/streaming/runner/operator_fusion/allocation_evidence.rs +9 -2
  470. calc_flow_python-2026.10.12/crates/calc-flow/src/runtime/streaming/runner/operator_fusion/asof_chain_entry_tests.rs +188 -0
  471. calc_flow_python-2026.10.12/crates/calc-flow/src/runtime/streaming/runner/operator_fusion/asof_chain_tests/emission_controls.rs +195 -0
  472. calc_flow_python-2026.10.12/crates/calc-flow/src/runtime/streaming/runner/operator_fusion/asof_chain_tests.rs +580 -0
  473. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/runtime/streaming/runner/operator_fusion.rs +151 -11
  474. calc_flow_python-2026.10.12/crates/calc-flow/src/runtime/streaming/runner/source_history/projection.rs +73 -0
  475. calc_flow_python-2026.10.12/crates/calc-flow/src/runtime/streaming/runner/source_history.rs +185 -0
  476. calc_flow_python-2026.10.12/crates/calc-flow/src/runtime/streaming/runner/sql_recovery.rs +193 -0
  477. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/runtime/streaming/runner/supervision.rs +48 -4
  478. calc_flow_python-2026.10.12/crates/calc-flow/src/runtime/streaming/runner/supervision_loan_tests.rs +332 -0
  479. calc_flow_python-2026.10.12/crates/calc-flow/src/runtime/streaming/runner/tests/asof_tests/fusion_controls.rs +511 -0
  480. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/runtime/streaming/runner/tests/asof_tests.rs +2 -0
  481. calc_flow_python-2026.10.12/crates/calc-flow/src/runtime/streaming/runner/tests/restore_bases_tests.rs +355 -0
  482. calc_flow_python-2026.10.12/crates/calc-flow/src/runtime/streaming/runner/tests/restore_boolean_tests.rs +379 -0
  483. calc_flow_python-2026.10.12/crates/calc-flow/src/runtime/streaming/runner/tests/restore_float_tests.rs +394 -0
  484. calc_flow_python-2026.10.12/crates/calc-flow/src/runtime/streaming/runner/tests/restore_nullable_float_tests.rs +409 -0
  485. calc_flow_python-2026.10.12/crates/calc-flow/src/runtime/streaming/runner/tests/restore_segments_tests.rs +299 -0
  486. calc_flow_python-2026.10.12/crates/calc-flow/src/runtime/streaming/runner/tests/restore_terminal_join_tests.rs +490 -0
  487. calc_flow_python-2026.10.12/crates/calc-flow/src/runtime/streaming/runner/tests/restore_utf8_tests.rs +409 -0
  488. calc_flow_python-2026.10.12/crates/calc-flow/src/runtime/streaming/runner/tests/restore_v2_tests/terminal_tests.rs +333 -0
  489. calc_flow_python-2026.10.12/crates/calc-flow/src/runtime/streaming/runner/tests/restore_v2_tests.rs +409 -0
  490. calc_flow_python-2026.10.12/crates/calc-flow/src/runtime/streaming/runner/tests/restore_writer_v2_tests.rs +417 -0
  491. calc_flow_python-2026.10.12/crates/calc-flow/src/runtime/streaming/runner/tests/sql_recovery_tests/managed_capture.rs +537 -0
  492. calc_flow_python-2026.10.12/crates/calc-flow/src/runtime/streaming/runner/tests/sql_recovery_tests/queued_stop.rs +472 -0
  493. calc_flow_python-2026.10.12/crates/calc-flow/src/runtime/streaming/runner/tests/sql_recovery_tests.rs +1618 -0
  494. calc_flow_python-2026.10.12/crates/calc-flow/src/runtime/streaming/runner/tests/terminal_join_control_tests.rs +418 -0
  495. calc_flow_python-2026.10.12/crates/calc-flow/src/runtime/streaming/runner/tests/terminal_join_launch_cancel_tests.rs +525 -0
  496. calc_flow_python-2026.10.12/crates/calc-flow/src/runtime/streaming/runner/tests.rs +11496 -0
  497. calc_flow_python-2026.10.12/crates/calc-flow/src/runtime/streaming/runner.rs +4342 -0
  498. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/runtime/streaming/sink_task.rs +980 -100
  499. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/runtime/streaming/source_task.rs +314 -38
  500. calc_flow_python-2026.10.12/crates/calc-flow/src/runtime/streaming/sql_recovery_work.rs +923 -0
  501. calc_flow_python-2026.10.12/crates/calc-flow/src/runtime/streaming/supervisor/preparation_rollback_tests.rs +109 -0
  502. calc_flow_python-2026.10.12/crates/calc-flow/src/runtime/streaming/supervisor/ready_group/tests.rs +182 -0
  503. calc_flow_python-2026.10.12/crates/calc-flow/src/runtime/streaming/supervisor/ready_group.rs +163 -0
  504. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/runtime/streaming/supervisor/ready_pair/native_tests.rs +9 -3
  505. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/runtime/streaming/supervisor.rs +192 -1
  506. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/state/backend.rs +160 -1
  507. calc_flow_python-2026.10.12/crates/calc-flow/src/state/local/preload.rs +236 -0
  508. calc_flow_python-2026.10.12/crates/calc-flow/src/state/local/publication.rs +145 -0
  509. calc_flow_python-2026.10.12/crates/calc-flow/src/state/local/publication_tests.rs +441 -0
  510. calc_flow_python-2026.10.12/crates/calc-flow/src/state/local/staging.rs +117 -0
  511. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/state/local.rs +249 -194
  512. calc_flow_python-2026.10.12/crates/calc-flow/src/state/manifest/source_entries.rs +90 -0
  513. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/state/manifest.rs +140 -201
  514. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/state/mod.rs +8 -2
  515. calc_flow_python-2026.10.12/crates/calc-flow/src/state/source_history/budget.rs +145 -0
  516. calc_flow_python-2026.10.12/crates/calc-flow/src/state/source_history/files.rs +63 -0
  517. calc_flow_python-2026.10.12/crates/calc-flow/src/state/source_history/tests.rs +222 -0
  518. calc_flow_python-2026.10.12/crates/calc-flow/src/state/source_history/work.rs +99 -0
  519. calc_flow_python-2026.10.12/crates/calc-flow/src/state/source_history.rs +417 -0
  520. calc_flow_python-2026.10.12/crates/calc-flow/src/state/transaction/tests/publication.rs +580 -0
  521. calc_flow_python-2026.10.12/crates/calc-flow/src/state/transaction/tests/source_history.rs +258 -0
  522. calc_flow_python-2026.10.12/crates/calc-flow/src/state/transaction/working.rs +52 -0
  523. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/state/transaction.rs +358 -66
  524. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/static_input.rs +0 -22
  525. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow-connectors/Cargo.toml +4 -3
  526. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow-connectors/src/arrow_schema.rs +1 -0
  527. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow-connectors/src/clickhouse_sink.rs +22 -0
  528. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow-connectors/src/evidence.rs +60 -7
  529. calc_flow_python-2026.10.12/crates/calc-flow-connectors/src/file/frozen.rs +226 -0
  530. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow-connectors/src/file.rs +117 -52
  531. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow-connectors/src/file_sink.rs +120 -18
  532. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow-connectors/src/kafka.rs +984 -79
  533. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow-connectors/src/lib.rs +1 -1
  534. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow-connectors/src/mysql/sink.rs +9 -0
  535. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow-connectors/src/options.rs +7 -0
  536. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow-connectors/src/postgresql.rs +95 -10
  537. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow-connectors/src/postgresql_cdc.rs +90 -7
  538. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow-connectors/tests/file_connector.rs +1 -0
  539. calc_flow_python-2026.10.12/crates/calc-flow-connectors/tests/file_cursor.rs +189 -0
  540. calc_flow_python-2026.10.12/crates/calc-flow-connectors/tests/frozen_file_replay/window.rs +265 -0
  541. calc_flow_python-2026.10.12/crates/calc-flow-connectors/tests/frozen_file_replay.rs +822 -0
  542. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow-connectors/tests/kafka_connector.rs +46 -5
  543. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow-connectors/tests/late_output_file.rs +172 -16
  544. calc_flow_python-2026.10.12/crates/calc-flow-connectors/tests/postgresql_cdc.rs +317 -0
  545. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow-connectors/tests/postgresql_connector.rs +87 -2
  546. calc_flow_python-2026.10.12/crates/calc-flow-connectors/tests/utc_asof_codec.rs +115 -0
  547. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow-python/Cargo.toml +3 -2
  548. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow-python/src/config.rs +30 -20
  549. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow-python/src/continuous.rs +254 -13
  550. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow-python/src/provider.rs +86 -21
  551. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/pyproject.toml +1 -2
  552. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/python/calc_flow/__init__.py +3 -1
  553. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/python/calc_flow/_native.pyi +2 -2
  554. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/python/calc_flow/capabilities.py +10 -14
  555. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/python/calc_flow/compute.py +79 -10
  556. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/python/calc_flow/runtime.py +55 -8
  557. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/python/calc_flow/stream.py +12 -6
  558. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/python/calc_flow/symbolic/_generated_rolling_kernels.py +4 -0
  559. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/python/calc_flow/symbolic/analyzer.py +111 -16
  560. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/python/calc_flow/symbolic/asof_analysis.py +19 -4
  561. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/python/calc_flow/symbolic/expr.py +2 -2
  562. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/python/calc_flow/symbolic/lower/asof.py +2 -2
  563. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/python/calc_flow/symbolic/lower/event_windows.py +2 -1
  564. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/python/calc_flow/symbolic/lower/late_output.py +1 -0
  565. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/python/calc_flow/symbolic/lower/planners.py +44 -10
  566. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/python/calc_flow/symbolic/lower/schema.py +1 -0
  567. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/python/calc_flow/symbolic/lower/segments.py +109 -36
  568. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/python/calc_flow/symbolic/lower/sql.py +1 -0
  569. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/python/calc_flow/symbolic/nodes.py +41 -1
  570. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/python/calc_flow/symbolic/ops.py +471 -0
  571. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/python/calc_flow/symbolic/optimizer.py +73 -22
  572. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/python/calc_flow/symbolic/program.py +139 -11
  573. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/python/calc_flow/symbolic/sql.py +2 -1
  574. calc_flow_python-2026.9.25/crates/calc-flow/src/operator/asof/admission.rs +0 -328
  575. calc_flow_python-2026.9.25/crates/calc-flow/src/operator/asof/checkpoint/encoding.rs +0 -296
  576. calc_flow_python-2026.9.25/crates/calc-flow/src/operator/asof/checkpoint.rs +0 -508
  577. calc_flow_python-2026.9.25/crates/calc-flow/src/operator/asof/finalize/prefix.rs +0 -98
  578. calc_flow_python-2026.9.25/crates/calc-flow/src/operator/asof/finalize.rs +0 -277
  579. calc_flow_python-2026.9.25/crates/calc-flow/src/operator/asof/output/tests.rs +0 -108
  580. calc_flow_python-2026.9.25/crates/calc-flow/src/operator/asof/output.rs +0 -229
  581. calc_flow_python-2026.9.25/crates/calc-flow/src/operator/asof/state.rs +0 -401
  582. calc_flow_python-2026.9.25/crates/calc-flow/src/operator/asof/tests.rs +0 -489
  583. calc_flow_python-2026.9.25/crates/calc-flow/src/operator/asof/workspace.rs +0 -459
  584. calc_flow_python-2026.9.25/crates/calc-flow/src/operator/rolling.rs +0 -10743
  585. calc_flow_python-2026.9.25/crates/calc-flow/src/operator/sql.rs +0 -321
  586. calc_flow_python-2026.9.25/crates/calc-flow/src/runtime/streaming/runner/asof.rs +0 -82
  587. calc_flow_python-2026.9.25/crates/calc-flow/src/runtime/streaming/runner/supervision_loan_tests.rs +0 -69
  588. calc_flow_python-2026.9.25/crates/calc-flow/src/runtime/streaming/runner.rs +0 -16153
  589. calc_flow_python-2026.9.25/crates/calc-flow-connectors/tests/postgresql_cdc.rs +0 -160
  590. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/LICENSE +0 -0
  591. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/LICENSE +0 -0
  592. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/benches/allocation_regression.rs +0 -0
  593. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/benches/core.rs +0 -0
  594. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/benches/sql_datafusion_performance.rs +0 -0
  595. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/benches/stream_join_materialization.rs +0 -0
  596. {calc_flow_python-2026.9.25/crates/calc-flow/src/runtime/streaming/soak → calc_flow_python-2026.10.12/crates/calc-flow/benches/support}/diagnostics.rs +0 -0
  597. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/examples/README.md +0 -0
  598. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/examples/continuous_runtime.rs +0 -0
  599. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/examples/export_schema.rs +0 -0
  600. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/examples/expression_pipeline.rs +0 -0
  601. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/examples/gen_v3_schema.rs +0 -0
  602. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/examples/sql_join.rs +0 -0
  603. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/examples/windowed_streaming.rs +0 -0
  604. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/config/asof.rs +0 -0
  605. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/config/late_output.rs +0 -0
  606. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/connector/format.rs +0 -0
  607. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/connector/mod.rs +0 -0
  608. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/connector/registry.rs +0 -0
  609. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/context.rs +0 -0
  610. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/datafusion_predicate.rs +0 -0
  611. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/datafusion_rolling/sql_aggregate.rs +0 -0
  612. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/datafusion_rolling.rs +0 -0
  613. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/error.rs +0 -0
  614. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/operator/asof/identity.rs +0 -0
  615. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/operator/asof/identity_compare.rs +0 -0
  616. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/operator/asof/spec.rs +0 -0
  617. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/operator/asof/status.rs +0 -0
  618. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/operator/batch.rs +0 -0
  619. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/operator/checkpoint.rs +0 -0
  620. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/operator/late_output/identity.rs +0 -0
  621. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/operator/late_output/plan.rs +0 -0
  622. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/operator/late_output/tests/ownership.rs +0 -0
  623. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/operator/late_output/tests.rs +0 -0
  624. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/operator/late_output.rs +0 -0
  625. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/operator/output_chunk.rs +0 -0
  626. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/operator/rolling/kernel/sorted.rs +0 -0
  627. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/operator/rolling_metrics/lease_tests.rs +0 -0
  628. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/operator/rolling_metrics.rs +0 -0
  629. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/operator/row_cost.rs +0 -0
  630. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/operator/union.rs +0 -0
  631. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/pipeline/compile.rs +0 -0
  632. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/project_store/asof.rs +0 -0
  633. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/project_store.rs +0 -0
  634. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/runtime/mod.rs +0 -0
  635. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/runtime/streaming/checkpoint/mod.rs +0 -0
  636. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/runtime/streaming/checkpoint/storage.rs +0 -0
  637. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/runtime/streaming/checkpoint_status.rs +0 -0
  638. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/runtime/streaming/entity_work/tests.rs +0 -0
  639. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/runtime/streaming/entity_work.rs +0 -0
  640. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/runtime/streaming/failure.rs +0 -0
  641. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/runtime/streaming/job/asof.rs +0 -0
  642. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/runtime/streaming/message.rs +0 -0
  643. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/runtime/streaming/progress/generated.rs +0 -0
  644. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/runtime/streaming/progress/mod.rs +0 -0
  645. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/runtime/streaming/progress/prepare.rs +0 -0
  646. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/runtime/streaming/progress/snapshot.rs +0 -0
  647. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/runtime/streaming/progress/status.rs +0 -0
  648. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/runtime/streaming/progress/trace.rs +0 -0
  649. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/runtime/streaming/progress/types.rs +0 -0
  650. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/runtime/streaming/registry.rs +0 -0
  651. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/runtime/streaming/runner/entity_work_tests/lifecycle_tests/checkpoint_tests.rs +0 -0
  652. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/runtime/streaming/runner/entity_work_tests/lifecycle_tests.rs +0 -0
  653. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/runtime/streaming/runner/entity_work_tests.rs +0 -0
  654. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/runtime/streaming/runner/operator_fusion/allocation_evidence_guards.rs +0 -0
  655. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/runtime/streaming/supervisor/ready_pair/tests.rs +0 -0
  656. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/runtime/streaming/supervisor/ready_pair.rs +0 -0
  657. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/runtime/streaming/supervisor/terminal.rs +0 -0
  658. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/runtime/streaming/test_seams.rs +0 -0
  659. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/state/segment.rs +0 -0
  660. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/time/event_time.rs +0 -0
  661. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/time/mod.rs +0 -0
  662. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow/src/udf.rs +0 -0
  663. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow-connectors/README.md +0 -0
  664. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow-connectors/examples/kafka_custom_decoder.rs +0 -0
  665. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow-connectors/examples/kafka_protobuf_source.rs +0 -0
  666. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow-connectors/examples/late_output_recovery.rs +0 -0
  667. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow-connectors/src/clickhouse.rs +0 -0
  668. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow-connectors/src/csv.rs +0 -0
  669. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow-connectors/src/database_types.rs +0 -0
  670. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow-connectors/src/http.rs +0 -0
  671. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow-connectors/src/json_lines.rs +0 -0
  672. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow-connectors/src/mysql/config.rs +0 -0
  673. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow-connectors/src/mysql/mod.rs +0 -0
  674. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow-connectors/src/mysql/source.rs +0 -0
  675. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow-connectors/src/mysql/types.rs +0 -0
  676. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow-connectors/src/parquet.rs +0 -0
  677. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow-connectors/src/protobuf.rs +0 -0
  678. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow-connectors/src/websocket.rs +0 -0
  679. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow-connectors/tests/clickhouse_connector.rs +0 -0
  680. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow-connectors/tests/http_websocket_connectors.rs +0 -0
  681. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow-connectors/tests/mysql_connector/checkpoint.rs +0 -0
  682. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow-connectors/tests/mysql_connector.rs +0 -0
  683. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow-python/build.rs +0 -0
  684. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow-python/src/batch.rs +0 -0
  685. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow-python/src/config/kafka_tests.rs +0 -0
  686. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow-python/src/connector.rs +0 -0
  687. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow-python/src/decoder.rs +0 -0
  688. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow-python/src/error.rs +0 -0
  689. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow-python/src/execution_options.rs +0 -0
  690. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow-python/src/lib.rs +0 -0
  691. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow-python/src/pipeline.rs +0 -0
  692. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow-python/src/runtime/dispatch.rs +0 -0
  693. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow-python/src/runtime/profile.rs +0 -0
  694. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow-python/src/runtime.rs +0 -0
  695. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow-python/src/store.rs +0 -0
  696. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/crates/calc-flow-python/src/udf.rs +0 -0
  697. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/python/calc_flow/_compat.py +0 -0
  698. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/python/calc_flow/_stream_inputs.py +0 -0
  699. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/python/calc_flow/array.py +0 -0
  700. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/python/calc_flow/asof_join_spec.py +0 -0
  701. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/python/calc_flow/config.py +0 -0
  702. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/python/calc_flow/errors.py +0 -0
  703. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/python/calc_flow/join_spec.py +0 -0
  704. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/python/calc_flow/pipeline.py +0 -0
  705. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/python/calc_flow/py.typed +0 -0
  706. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/python/calc_flow/store.py +0 -0
  707. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/python/calc_flow/symbolic/__init__.py +0 -0
  708. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/python/calc_flow/symbolic/asof.py +0 -0
  709. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/python/calc_flow/symbolic/domains.py +0 -0
  710. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/python/calc_flow/symbolic/errors.py +0 -0
  711. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/python/calc_flow/symbolic/late_output.py +0 -0
  712. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/python/calc_flow/symbolic/lower/__init__.py +0 -0
  713. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/python/calc_flow/symbolic/lower/bindings.py +0 -0
  714. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/python/calc_flow/symbolic/lower/program.py +0 -0
  715. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/python/calc_flow/symbolic/lower/strategies.py +0 -0
  716. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/python/calc_flow/symbolic/types.py +0 -0
  717. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/python/calc_flow/symbolic/windows.py +0 -0
  718. {calc_flow_python-2026.9.25 → calc_flow_python-2026.10.12}/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.12"
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.12"
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.12"
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"
@@ -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
 
@@ -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.12"
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.12
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'
@@ -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'
@@ -169,8 +168,12 @@ Python package is not a second engine.
169
168
  deep-copied strict-JSON settings and a cooperative, timezone-aware deadline
170
169
  normalized to UTC.
171
170
  - `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.
171
+ backpressure. SQL accepts one alias in a stream. Ordinary aggregates and
172
+ `GROUP BY` emit full cumulative snapshots; other SQL runs per batch.
173
+ - `Program(name, engine="sql")` or `Program(name, engine="streaming")` fixes
174
+ the engine when the immutable program is created. `Program.execute` returns
175
+ finite named tables or owned streaming results, respectively. Calls for the
176
+ other engine fail.
174
177
  - The source-driven `StreamingRunner` consumes a `StreamExecutionPlan`, owns
175
178
  async source/sink bindings, and returns a one-owner `StreamingJob`.
176
179
  - Managed epoch checkpoints use `LocalStateBackend` segments and strict v3
@@ -248,12 +251,12 @@ Large Cargo and Maturin outputs should use the repository `target/` tree.
248
251
  The complete CI/full-verification command reference is below. Local changes use
249
252
  the smallest affected checks under [AGENTS.md Verification](AGENTS.md#verification);
250
253
  full regression, Rust 90% coverage, and Studio backend 85% coverage belong to
251
- CI; routine performance gates run on the benchmark schedule:
254
+ CI; routine benchmark measurements run on their own schedule:
252
255
 
253
256
  ```bash
254
257
  uv sync --extra dev
255
258
  cargo fmt --all --check
256
- cargo clippy --workspace --all-targets --all-features -- -D warnings
259
+ cargo clippy --workspace --lib --bins --tests --examples --all-features -- -D warnings
257
260
  uv run python scripts/run_rust_tests.py
258
261
  CALC_FLOW_CONNECTOR_CONTAINERS=1 \
259
262
  CALC_FLOW_KAFKA_BOOTSTRAP=localhost:9092 \
@@ -125,8 +125,12 @@ Python package is not a second engine.
125
125
  deep-copied strict-JSON settings and a cooperative, timezone-aware deadline
126
126
  normalized to UTC.
127
127
  - `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.
128
+ backpressure. SQL accepts one alias in a stream. Ordinary aggregates and
129
+ `GROUP BY` emit full cumulative snapshots; other SQL runs per batch.
130
+ - `Program(name, engine="sql")` or `Program(name, engine="streaming")` fixes
131
+ the engine when the immutable program is created. `Program.execute` returns
132
+ finite named tables or owned streaming results, respectively. Calls for the
133
+ other engine fail.
130
134
  - The source-driven `StreamingRunner` consumes a `StreamExecutionPlan`, owns
131
135
  async source/sink bindings, and returns a one-owner `StreamingJob`.
132
136
  - Managed epoch checkpoints use `LocalStateBackend` segments and strict v3
@@ -204,12 +208,12 @@ Large Cargo and Maturin outputs should use the repository `target/` tree.
204
208
  The complete CI/full-verification command reference is below. Local changes use
205
209
  the smallest affected checks under [AGENTS.md Verification](AGENTS.md#verification);
206
210
  full regression, Rust 90% coverage, and Studio backend 85% coverage belong to
207
- CI; routine performance gates run on the benchmark schedule:
211
+ CI; routine benchmark measurements run on their own schedule:
208
212
 
209
213
  ```bash
210
214
  uv sync --extra dev
211
215
  cargo fmt --all --check
212
- cargo clippy --workspace --all-targets --all-features -- -D warnings
216
+ cargo clippy --workspace --lib --bins --tests --examples --all-features -- -D warnings
213
217
  uv run python scripts/run_rust_tests.py
214
218
  CALC_FLOW_CONNECTOR_CONTAINERS=1 \
215
219
  CALC_FLOW_KAFKA_BOOTSTRAP=localhost:9092 \
@@ -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);