Skip to content

Commit

Permalink
Add Boxed Variant interface & Boxed Ion implementation (#540)
Browse files Browse the repository at this point in the history
* Add Boxed Variant interface & Boxed Ion implementation
* Add lowering of Variants
  • Loading branch information
jpschorr authored Feb 3, 2025
1 parent 2a3dd4b commit cc421cf
Show file tree
Hide file tree
Showing 31 changed files with 1,420 additions and 144 deletions.
2 changes: 1 addition & 1 deletion extension/partiql-extension-ion-functions/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ itertools = "0.13"
unicase = "2.7"
rust_decimal = { version = "1.36.0", default-features = false, features = ["std"] }
ion-rs_old = { version = "0.18", package = "ion-rs" }
ion-rs = { version = "1.0.0-rc.7", features = ["experimental"] }
ion-rs = { version = "1.0.0-rc.10", features = ["experimental"] }
time = { version = "0.3", features = ["macros"] }
once_cell = "1"
regex = "1.10"
Expand Down
3 changes: 1 addition & 2 deletions extension/partiql-extension-ion-functions/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -171,7 +171,6 @@ mod tests {
use partiql_eval::eval::BasicContext;
use partiql_eval::plan::EvaluationMode;
use partiql_parser::{Parsed, ParserResult};
use partiql_value::datum::Datum;
use partiql_value::{bag, tuple, DateTime, Value};

#[track_caller]
Expand Down Expand Up @@ -230,7 +229,7 @@ mod tests {
.unwrap_or_default();
let out = evaluate(&catalog, lowered, bindings);

assert!(out.is_sequence());
assert!(out.is_bag());
assert_eq!(&out, expected);
}

Expand Down
16 changes: 15 additions & 1 deletion extension/partiql-extension-ion/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -22,20 +22,34 @@ bench = false

[dependencies]
partiql-value = { path = "../../partiql-value", version = "0.11.*" }
partiql-common = { path = "../../partiql-common", version = "0.11.*" }
partiql-types = { path = "../../partiql-types", version = "0.11.*" }

serde = { version = "1", features = ["derive"], optional = true }
typetag = { version = "0.2", optional = true }

ordered-float = "4"
itertools = "0.13"
unicase = "2.7"
rust_decimal = { version = "1.36.0", default-features = false, features = ["std"] }
rust_decimal_macros = "1.36"
ion-rs_old = { version = "0.18", package = "ion-rs" }
ion-rs = { version = "1.0.0-rc.7", features = ["experimental"] }
ion-rs = { version = "1.0.0-rc.10", features = ["experimental"] }

time = { version = "0.3", features = ["macros"] }
once_cell = "1"
regex = "1.10"
thiserror = "1.0"
delegate = "0.13"
peekmore = "1.3"

[dev-dependencies]

[features]
default = []
serde = [
"dep:serde",
"dep:typetag",
"partiql-value/serde",
"partiql-common/serde"
]
Loading

1 comment on commit cc421cf

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PartiQL (rust) Benchmark

Benchmark suite Current: cc421cf Previous: 2a3dd4b Ratio
arith_agg-avg 755842 ns/iter (± 20170) 769814 ns/iter (± 8314) 0.98
arith_agg-avg_distinct 850808 ns/iter (± 3621) 878690 ns/iter (± 2966) 0.97
arith_agg-count 809836 ns/iter (± 15693) 826538 ns/iter (± 10833) 0.98
arith_agg-count_distinct 837521 ns/iter (± 3101) 870623 ns/iter (± 2881) 0.96
arith_agg-min 813946 ns/iter (± 2371) 824801 ns/iter (± 3057) 0.99
arith_agg-min_distinct 841296 ns/iter (± 1768) 878694 ns/iter (± 36343) 0.96
arith_agg-max 821682 ns/iter (± 2557) 830727 ns/iter (± 14819) 0.99
arith_agg-max_distinct 857222 ns/iter (± 5228) 883932 ns/iter (± 1838) 0.97
arith_agg-sum 816950 ns/iter (± 3234) 825535 ns/iter (± 2352) 0.99
arith_agg-sum_distinct 841293 ns/iter (± 4320) 878740 ns/iter (± 4897) 0.96
arith_agg-avg-count-min-max-sum 1008146 ns/iter (± 14679) 992053 ns/iter (± 12382) 1.02
arith_agg-avg-count-min-max-sum-group_by 1411675 ns/iter (± 11426) 1283717 ns/iter (± 14931) 1.10
arith_agg-avg-count-min-max-sum-group_by-group_as 2014388 ns/iter (± 81098) 1894899 ns/iter (± 11739) 1.06
arith_agg-avg_distinct-count_distinct-min_distinct-max_distinct-sum_distinct 1219225 ns/iter (± 5684) 1222616 ns/iter (± 22080) 1.00
arith_agg-avg_distinct-count_distinct-min_distinct-max_distinct-sum_distinct-group_by 1638160 ns/iter (± 17320) 1510808 ns/iter (± 14382) 1.08
arith_agg-avg_distinct-count_distinct-min_distinct-max_distinct-sum_distinct-group_by-group_as 2234925 ns/iter (± 23951) 2124163 ns/iter (± 11454) 1.05
parse-1 5417 ns/iter (± 19) 5271 ns/iter (± 76) 1.03
parse-15 45810 ns/iter (± 228) 46437 ns/iter (± 204) 0.99
parse-30 92434 ns/iter (± 675) 89384 ns/iter (± 2251) 1.03
compile-1 4283 ns/iter (± 21) 4183 ns/iter (± 19) 1.02
compile-15 30573 ns/iter (± 127) 30397 ns/iter (± 472) 1.01
compile-30 63330 ns/iter (± 108) 63226 ns/iter (± 359) 1.00
plan-1 71250 ns/iter (± 729) 67639 ns/iter (± 460) 1.05
plan-15 1060035 ns/iter (± 22883) 1052204 ns/iter (± 20267) 1.01
plan-30 2208935 ns/iter (± 38857) 2104378 ns/iter (± 18622) 1.05
eval-1 12289110 ns/iter (± 78213) 12341094 ns/iter (± 178903) 1.00
eval-15 88216387 ns/iter (± 924783) 78913822 ns/iter (± 323686) 1.12
eval-30 168847957 ns/iter (± 651292) 149710776 ns/iter (± 485303) 1.13
join 10514 ns/iter (± 69) 9608 ns/iter (± 28) 1.09
simple 2501 ns/iter (± 7) 2438 ns/iter (± 5) 1.03
simple-no 463 ns/iter (± 3) 465 ns/iter (± 1) 1.00
numbers 58 ns/iter (± 0) 57 ns/iter (± 0) 1.02
parse-simple 703 ns/iter (± 6) 697 ns/iter (± 12) 1.01
parse-ion 2272 ns/iter (± 24) 2349 ns/iter (± 8) 0.97
parse-group 7159 ns/iter (± 24) 7332 ns/iter (± 57) 0.98
parse-complex 18485 ns/iter (± 1152) 19289 ns/iter (± 209) 0.96
parse-complex-fexpr 26020 ns/iter (± 77) 25980 ns/iter (± 127) 1.00

This comment was automatically generated by workflow using github-action-benchmark.

Please sign in to comment.