Repository navigation
Commit 06bffcd
committed
Move scalar functions out of vortex-array into vortex-functions
vortex-array keeps the scalar function machinery (the `ScalarFnVTable` trait,
binding, reduction, execution, the session registry and kernel registry) and
the few functions its own arrays, validity and expressions are built on:
literal, get_item and pack, is_null, is_not_null, not and the binary
operators, and cast, mask and fill_null, which canonical arrays apply to their
own children. That module is renamed from `scalar_fn::fns` to
`scalar_fn::builtin`, matching `ArrayBuiltins`. Every other scalar function
moves to the new `vortex-functions` crate:
- byte_length, case_when, ext_storage, list_length, list_sum, merge,
replace_time_zone, select, dynamic, stat, between, like, list_contains,
variant_get, is_nan and zip, with their expression constructors in
`vortex_functions::expr` (and `expr::bound`)
- the kernels and parent-reduce rules for vortex-array's encodings, which
`vortex_functions::initialize` now registers with a session's kernel
registry instead of the encodings' static rule sets
- the `ArrayBuiltins`/`ExprBuiltins` methods for the moved functions, which
become the `ArrayFunctions`/`ExprFunctions` extension traits
`apply_reduce_parent_rule` lets a crate register a typed parent-reduce rule for
an encoding it does not own. `ArrayHaystack`, `LazyBitBufferBuilder`,
`DeduplicatedBuffers::{extend_from_iter, finish}`, `ListScalar::element_values`,
`is_not_null_node`, `build_row_comparator` and `merge_typed_scalar_as_variant`
become public for the moved kernels.
The umbrella crate re-exports the moved constructors under `vortex::expr` and
the crate as `vortex::functions`.
The CodSpeed workflow builds `vortex-functions` in the main-library shard, so
the moved benchmarks stay measured, and picks up `vortex-onpair` and
`vortex-arrow`, whose benchmarks no shard built.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ps4mp7KF5c4p66aoSoXx5j
Signed-off-by: Claude <noreply@anthropic.com>1 parent d02df89 commit 06bffcd
384 files changed
Lines changed: 3992 additions & 3610 deletions
File tree
- .github/workflows
- encodings
- alp
- src
- alp_rd
- compute
- alp
- compute
- bytebool/src
- datetime-parts
- src/compute
- decimal-byte-parts
- src/decimal_byte_parts
- compute
- fastlanes
- benches
- src
- bitpacking
- array
- compute
- vtable
- delta
- compute
- vtable
- for_
- compute
- vtable
- rle
- compute
- probe
- vtable
- fsst
- benches
- src
- compute
- dfa
- onpair
- src
- compute
- tests
- parquet-variant
- src
- pco/src
- compute
- runend/src
- compute
- probe
- sequence
- src
- compute
- sparse
- benches
- src
- compute
- zigzag/src
- compute
- zstd/src
- compute
- fuzz
- src
- array
- vortex-array
- benches
- src
- aggregate_fn/fns
- is_constant
- mean
- sum_v2
- arrays
- bool
- compute
- vtable
- chunked
- compute
- constant/compute
- decimal
- compute
- vtable
- dict
- compute
- vtable
- extension
- compute
- vtable
- filter
- fixed_size_list
- compute
- vtable
- listview
- compute
- tests
- vtable
- list
- compute
- map
- compute
- vtable
- masked/compute
- null/compute
- patched
- compute
- vtable
- primitive
- compute
- vtable
- scalar_fn
- vtable
- slice
- struct_
- compute
- vtable
- union/compute
- varbinview
- compute
- vtable
- varbin
- compute
- vtable
- variant
- vtable
- array
- builders
- compute/conformance
- expr
- traversal
- extension/datetime
- optimizer
- scalar_fn
- builtin
- binary
- compare
- numeric
- cast
- fill_null
- mask
- not
- fns
- scalar/typed_view
- primitive
- test_harness/trace
- vortex-arrow/src/executor
- vortex-cuda/src/dynamic_dispatch
- vortex-datafusion/src/convert/exprs
- vortex-duckdb/src/convert
- vortex-expr
- src
- analysis
- forms
- stats
- rewrite
- transform
- vortex-ffi/src
- vortex-file
- src
- vortex-functions
- benches
- src
- between
- like
- list_contains
- prepared
- variant_get
- zip
- vortex-jni/src
- vortex-json
- src
- vortex-layout
- examples/reverse_index
- src
- layouts
- dict
- indexed
- list
- struct_
- zoned
- aggregates/bloom_filter
- plan/physical
- plans
- scan
- vortex-python/src
- arrays
- expr
- vortex-spatial
- src/prune
- vortex-tensor/src
- vortex
- src
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
56 | 56 | | |
57 | 57 | | |
58 | 58 | | |
59 | | - | |
| 59 | + | |
60 | 60 | | |
61 | | - | |
| 61 | + | |
62 | 62 | | |
63 | 63 | | |
64 | 64 | | |
| |||
92 | 92 | | |
93 | 93 | | |
94 | 94 | | |
95 | | - | |
| 95 | + | |
96 | 96 | | |
97 | 97 | | |
98 | 98 | | |
| |||
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
13 | 13 | | |
14 | 14 | | |
15 | 15 | | |
| 16 | + | |
16 | 17 | | |
17 | 18 | | |
18 | 19 | | |
| |||
324 | 325 | | |
325 | 326 | | |
326 | 327 | | |
| 328 | + | |
327 | 329 | | |
328 | 330 | | |
329 | 331 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
24 | 24 | | |
25 | 25 | | |
26 | 26 | | |
| 27 | + | |
27 | 28 | | |
28 | 29 | | |
29 | 30 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
11 | | - | |
12 | 11 | | |
13 | 12 | | |
14 | 13 | | |
15 | 14 | | |
16 | 15 | | |
17 | | - | |
18 | | - | |
19 | | - | |
20 | 16 | | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
21 | 21 | | |
22 | 22 | | |
23 | 23 | | |
| |||
145 | 145 | | |
146 | 146 | | |
147 | 147 | | |
148 | | - | |
149 | | - | |
| 148 | + | |
| 149 | + | |
150 | 150 | | |
151 | 151 | | |
152 | 152 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
9 | | - | |
| 9 | + | |
10 | 10 | | |
11 | 11 | | |
12 | 12 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
14 | | - | |
15 | | - | |
16 | | - | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
17 | 17 | | |
18 | 18 | | |
19 | 19 | | |
| |||
165 | 165 | | |
166 | 166 | | |
167 | 167 | | |
168 | | - | |
169 | | - | |
| 168 | + | |
| 169 | + | |
170 | 170 | | |
171 | 171 | | |
172 | 172 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
9 | | - | |
10 | | - | |
| 9 | + | |
| 10 | + | |
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
| |||
58 | 58 | | |
59 | 59 | | |
60 | 60 | | |
61 | | - | |
| 61 | + | |
62 | 62 | | |
63 | 63 | | |
64 | 64 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
14 | | - | |
15 | | - | |
16 | | - | |
17 | | - | |
18 | | - | |
19 | | - | |
20 | | - | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
21 | 21 | | |
22 | 22 | | |
23 | 23 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
9 | | - | |
| 9 | + | |
10 | 10 | | |
11 | 11 | | |
12 | 12 | | |
| |||
0 commit comments