Skip to content

Commit

Permalink
C# SDK - Fix Genererated FilterByX for Option Columns (#367)
Browse files Browse the repository at this point in the history
* Fixes - still working on this

* filter on option is now working properly

---------

Co-authored-by: John Detter <[email protected]>
  • Loading branch information
jdetter and John Detter authored Oct 5, 2023
1 parent 6dba36c commit 1518baa
Showing 1 changed file with 6 additions and 5 deletions.
11 changes: 6 additions & 5 deletions crates/cli/src/subcommands/generate/csharp.rs
Original file line number Diff line number Diff line change
Expand Up @@ -966,9 +966,9 @@ fn autogen_csharp_access_funcs_for_struct(
let (field_type, csharp_field_type, is_option) = match field_type {
AlgebraicType::Product(product) => {
if product.is_identity() {
("Identity".into(), "SpacetimeDB.Identity", false)
("Identity".into(), "SpacetimeDB.Identity".into(), false)
} else if product.is_address() {
("Address".into(), "SpacetimeDB.Address", false)
("Address".into(), "SpacetimeDB.Address".into(), false)
} else {
// TODO: We don't allow filtering on tuples right now,
// it's possible we may consider it for the future.
Expand All @@ -978,7 +978,7 @@ fn autogen_csharp_access_funcs_for_struct(
AlgebraicType::Sum(sum) => {
if let Some(Builtin(b)) = sum.as_option() {
match maybe_primitive(b) {
MaybePrimitive::Primitive(ty) => (format!("{:?}", b), ty, true),
MaybePrimitive::Primitive(ty) => (format!("{:?}", b), format!("{}?", ty), true),
_ => {
continue;
}
Expand All @@ -993,11 +993,11 @@ fn autogen_csharp_access_funcs_for_struct(
continue;
}
AlgebraicType::Builtin(b) => match maybe_primitive(b) {
MaybePrimitive::Primitive(ty) => (format!("{:?}", b), ty, false),
MaybePrimitive::Primitive(ty) => (format!("{:?}", b), ty.into(), false),
MaybePrimitive::Array(ArrayType { elem_ty }) => {
if let Some(BuiltinType::U8) = elem_ty.as_builtin() {
// Do allow filtering for byte arrays
("Bytes".into(), "byte[]", false)
("Bytes".into(), "byte[]".into(), false)
} else {
// TODO: We don't allow filtering based on an array type, but we might want other functionality here in the future.
continue;
Expand Down Expand Up @@ -1629,6 +1629,7 @@ pub fn autogen_csharp_globals(items: &[GenItem], namespace: &str) -> Vec<Vec<(St
output.indent(1);
}

writeln!(output, "[ReducerClass]").unwrap();
writeln!(output, "public partial class Reducer").unwrap();
writeln!(output, "{{").unwrap();
{
Expand Down

1 comment on commit 1518baa

@github-actions
Copy link

Choose a reason for hiding this comment

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

Benchmark for 1518baa

Click to view benchmark
group                                                                    base                                     changes
-----                                                                    ----                                     -------
serialize/location/bsatn/count=100                                       1.44      3.4±1.71µs 28.2 MElem/sec      1.00      2.3±0.03µs 40.6 MElem/sec
serialize/location/json/count=100                                        1.08      3.6±0.58µs 26.2 MElem/sec      1.00      3.4±0.04µs 28.3 MElem/sec
serialize/location/product_value/count=100                               1.13      2.8±0.47µs 33.5 MElem/sec      1.00      2.5±0.05µs 37.9 MElem/sec
serialize/person/bsatn/count=100                                         1.00      2.9±0.03µs 32.4 MElem/sec      1.00      3.0±0.04µs 32.3 MElem/sec
serialize/person/json/count=100                                          1.00      5.2±0.05µs 18.4 MElem/sec      1.00      5.2±0.06µs 18.4 MElem/sec
serialize/person/product_value/count=100                                 1.01  1807.4±58.14ns 52.8 MElem/sec      1.00  1784.3±18.02ns 53.4 MElem/sec
sqlite/disk/empty                                                        1.00    418.9±4.21ns        ? ?/sec      1.04    436.0±4.23ns        ? ?/sec
sqlite/disk/filter/string/indexed/load=1000/count=10                     1.02      5.5±0.07µs 178.4 KElem/sec     1.00      5.4±0.06µs 181.8 KElem/sec
sqlite/disk/filter/string/non_indexed/load=1000/count=10                 1.00     51.4±1.06µs 19.0 KElem/sec      1.00     51.2±0.52µs 19.1 KElem/sec
sqlite/disk/filter/u64/indexed/load=1000/count=10                        1.00      5.3±0.06µs 182.9 KElem/sec     1.00      5.4±0.07µs 182.2 KElem/sec
sqlite/disk/filter/u64/non_indexed/load=1000/count=10                    1.00     39.7±0.33µs 24.6 KElem/sec      1.01     40.1±0.72µs 24.4 KElem/sec
sqlite/disk/find_unique/u32/load=1000                                    1.02      2.2±0.03µs 449.6 KElem/sec     1.00      2.1±0.03µs 458.1 KElem/sec
sqlite/disk/insert_1/location/multi_index/load=0                         1.01     14.5±0.31µs 67.5 KElem/sec      1.00     14.4±0.34µs 68.0 KElem/sec
sqlite/disk/insert_1/location/multi_index/load=1000                      1.04     16.3±0.72µs 59.8 KElem/sec      1.00     15.7±0.63µs 62.0 KElem/sec
sqlite/disk/insert_1/location/non_unique/load=0                          1.00      6.9±0.10µs 141.4 KElem/sec     1.00      6.9±0.12µs 141.1 KElem/sec
sqlite/disk/insert_1/location/non_unique/load=1000                       1.02      6.9±0.18µs 142.4 KElem/sec     1.00      6.8±0.18µs 144.6 KElem/sec
sqlite/disk/insert_1/location/unique/load=0                              1.01      6.9±0.13µs 141.2 KElem/sec     1.00      6.9±0.09µs 142.3 KElem/sec
sqlite/disk/insert_1/location/unique/load=1000                           1.00      6.8±0.21µs 143.4 KElem/sec     1.01      6.9±0.23µs 141.6 KElem/sec
sqlite/disk/insert_1/person/multi_index/load=0                           1.02     14.2±0.51µs 68.8 KElem/sec      1.00     13.9±0.22µs 70.3 KElem/sec
sqlite/disk/insert_1/person/multi_index/load=1000                        1.01     16.6±0.49µs 58.8 KElem/sec      1.00     16.4±0.89µs 59.5 KElem/sec
sqlite/disk/insert_1/person/non_unique/load=0                            1.00      7.0±0.16µs 139.7 KElem/sec     1.00      7.0±0.12µs 139.8 KElem/sec
sqlite/disk/insert_1/person/non_unique/load=1000                         1.00      6.9±0.23µs 140.6 KElem/sec     1.00      6.9±0.21µs 140.9 KElem/sec
sqlite/disk/insert_1/person/unique/load=0                                1.00      7.0±0.10µs 140.0 KElem/sec     1.00      7.0±0.08µs 139.7 KElem/sec
sqlite/disk/insert_1/person/unique/load=1000                             1.00      7.0±0.25µs 139.0 KElem/sec     1.03      7.2±0.38µs 134.9 KElem/sec
sqlite/disk/insert_bulk/location/multi_index/load=0/count=100            1.00    121.6±1.38µs  8.0 KElem/sec      1.02    124.6±7.82µs  7.8 KElem/sec
sqlite/disk/insert_bulk/location/multi_index/load=1000/count=100         1.00    198.8±3.47µs  4.9 KElem/sec      1.00    199.1±4.11µs  4.9 KElem/sec
sqlite/disk/insert_bulk/location/non_unique/load=0/count=100             1.00     40.8±0.69µs 23.9 KElem/sec      1.01     41.3±0.66µs 23.6 KElem/sec
sqlite/disk/insert_bulk/location/non_unique/load=1000/count=100          1.03     47.0±0.77µs 20.8 KElem/sec      1.00     45.7±0.56µs 21.4 KElem/sec
sqlite/disk/insert_bulk/location/unique/load=0/count=100                 1.00     43.5±1.26µs 22.5 KElem/sec      1.07     46.5±0.35µs 21.0 KElem/sec
sqlite/disk/insert_bulk/location/unique/load=1000/count=100              1.00     50.0±0.85µs 19.5 KElem/sec      1.04     52.0±0.89µs 18.8 KElem/sec
sqlite/disk/insert_bulk/person/multi_index/load=0/count=100              1.00    111.9±1.02µs  8.7 KElem/sec      1.00    112.2±1.36µs  8.7 KElem/sec
sqlite/disk/insert_bulk/person/multi_index/load=1000/count=100           1.00    229.8±3.15µs  4.2 KElem/sec      1.00    229.1±3.24µs  4.3 KElem/sec
sqlite/disk/insert_bulk/person/non_unique/load=0/count=100               1.00     40.9±1.12µs 23.9 KElem/sec      1.03     42.0±0.76µs 23.3 KElem/sec
sqlite/disk/insert_bulk/person/non_unique/load=1000/count=100            1.00     54.0±0.78µs 18.1 KElem/sec      1.00     54.2±0.76µs 18.0 KElem/sec
sqlite/disk/insert_bulk/person/unique/load=0/count=100                   1.00     42.9±0.45µs 22.8 KElem/sec      1.00     43.0±1.05µs 22.7 KElem/sec
sqlite/disk/insert_bulk/person/unique/load=1000/count=100                1.00     49.2±0.88µs 19.9 KElem/sec      1.00     49.0±0.73µs 19.9 KElem/sec
sqlite/disk/iterate/location/unique/count=100                            1.00      8.1±0.09µs 120.8 KElem/sec     1.00      8.1±0.10µs 120.9 KElem/sec
sqlite/disk/iterate/person/unique/count=100                              1.02      8.5±0.09µs 114.7 KElem/sec     1.00      8.4±0.14µs 116.8 KElem/sec
sqlite/mem/empty                                                         1.00    417.8±3.77ns        ? ?/sec      1.02    427.4±6.48ns        ? ?/sec
sqlite/mem/filter/string/indexed/load=1000/count=10                      1.00      4.1±0.04µs 239.2 KElem/sec     1.01      4.1±0.17µs 237.3 KElem/sec
sqlite/mem/filter/string/non_indexed/load=1000/count=10                  1.04     52.0±1.22µs 18.8 KElem/sec      1.00     50.0±0.51µs 19.5 KElem/sec
sqlite/mem/filter/u64/indexed/load=1000/count=10                         1.00      4.0±0.06µs 246.6 KElem/sec     1.00      4.0±0.04µs 246.4 KElem/sec
sqlite/mem/filter/u64/non_indexed/load=1000/count=10                     1.00     38.7±0.43µs 25.2 KElem/sec      1.00     38.5±0.43µs 25.3 KElem/sec
sqlite/mem/find_unique/u32/load=1000                                     1.00  1011.4±13.61ns 965.6 KElem/sec     1.01  1024.7±12.08ns 953.0 KElem/sec
sqlite/mem/insert_1/location/multi_index/load=0                          1.00      4.2±0.07µs 232.2 KElem/sec     1.02      4.3±0.07µs 227.3 KElem/sec
sqlite/mem/insert_1/location/multi_index/load=1000                       1.00      5.4±0.28µs 180.5 KElem/sec     1.02      5.5±0.10µs 177.5 KElem/sec
sqlite/mem/insert_1/location/non_unique/load=0                           1.00  1737.5±41.74ns 562.0 KElem/sec     1.01  1763.1±121.61ns 553.9 KElem/sec
sqlite/mem/insert_1/location/non_unique/load=1000                        1.00  1804.8±98.56ns 541.1 KElem/sec     1.03  1854.8±92.24ns 526.5 KElem/sec
sqlite/mem/insert_1/location/unique/load=0                               1.00  1726.3±49.56ns 565.7 KElem/sec     1.00  1720.4±20.23ns 567.6 KElem/sec
sqlite/mem/insert_1/location/unique/load=1000                            1.00  1873.2±126.07ns 521.3 KElem/sec    1.03  1927.0±69.76ns 506.8 KElem/sec
sqlite/mem/insert_1/person/multi_index/load=0                            1.02      4.1±0.04µs 240.4 KElem/sec     1.00      4.0±0.06µs 244.9 KElem/sec
sqlite/mem/insert_1/person/multi_index/load=1000                         1.01      6.4±0.20µs 151.8 KElem/sec     1.00      6.4±0.28µs 152.8 KElem/sec
sqlite/mem/insert_1/person/non_unique/load=0                             1.00  1710.0±18.53ns 571.1 KElem/sec     1.02  1738.4±40.05ns 561.8 KElem/sec
sqlite/mem/insert_1/person/non_unique/load=1000                          1.00  1899.0±60.26ns 514.3 KElem/sec     1.03  1964.7±131.19ns 497.1 KElem/sec
sqlite/mem/insert_1/person/unique/load=0                                 1.00  1725.0±25.75ns 566.1 KElem/sec     1.01  1738.7±33.29ns 561.7 KElem/sec
sqlite/mem/insert_1/person/unique/load=1000                              1.00  1911.1±165.59ns 511.0 KElem/sec    1.04  1982.8±112.97ns 492.5 KElem/sec
sqlite/mem/insert_bulk/location/multi_index/load=0/count=100             1.00    109.9±0.98µs  8.9 KElem/sec      1.01    111.2±2.29µs  8.8 KElem/sec
sqlite/mem/insert_bulk/location/multi_index/load=1000/count=100          1.00    165.8±2.52µs  5.9 KElem/sec      1.00    165.5±1.83µs  5.9 KElem/sec
sqlite/mem/insert_bulk/location/non_unique/load=0/count=100              1.00     35.4±0.30µs 27.6 KElem/sec      1.00     35.5±0.38µs 27.5 KElem/sec
sqlite/mem/insert_bulk/location/non_unique/load=1000/count=100           1.00     38.4±0.70µs 25.4 KElem/sec      1.00     38.3±0.53µs 25.5 KElem/sec
sqlite/mem/insert_bulk/location/unique/load=0/count=100                  1.00     37.4±0.32µs 26.1 KElem/sec      1.01     37.8±0.49µs 25.8 KElem/sec
sqlite/mem/insert_bulk/location/unique/load=1000/count=100               1.01     42.8±0.61µs 22.8 KElem/sec      1.00     42.5±0.56µs 23.0 KElem/sec
sqlite/mem/insert_bulk/person/multi_index/load=0/count=100               1.00    101.5±1.43µs  9.6 KElem/sec      1.01    102.4±1.08µs  9.5 KElem/sec
sqlite/mem/insert_bulk/person/multi_index/load=1000/count=100            1.00    191.1±2.25µs  5.1 KElem/sec      1.00    191.8±2.60µs  5.1 KElem/sec
sqlite/mem/insert_bulk/person/non_unique/load=0/count=100                1.01     35.1±0.41µs 27.8 KElem/sec      1.00     34.9±0.47µs 28.0 KElem/sec
sqlite/mem/insert_bulk/person/non_unique/load=1000/count=100             1.01     41.4±0.76µs 23.6 KElem/sec      1.00     41.1±0.83µs 23.7 KElem/sec
sqlite/mem/insert_bulk/person/unique/load=0/count=100                    1.00     37.1±0.34µs 26.3 KElem/sec      1.00     37.1±0.49µs 26.3 KElem/sec
sqlite/mem/insert_bulk/person/unique/load=1000/count=100                 1.00     42.3±0.59µs 23.1 KElem/sec      1.00     42.1±0.56µs 23.2 KElem/sec
sqlite/mem/iterate/location/unique/count=100                             1.01      7.1±0.09µs 138.2 KElem/sec     1.00      7.0±0.16µs 139.1 KElem/sec
sqlite/mem/iterate/person/unique/count=100                               1.01      7.3±0.12µs 133.6 KElem/sec     1.00      7.2±0.07µs 135.0 KElem/sec
stdb_module/disk/empty                                                   1.02     26.5±0.80µs        ? ?/sec      1.00     26.0±1.00µs        ? ?/sec
stdb_module/disk/filter/string/indexed/load=1000/count=10                1.06     58.8±7.00µs 16.6 KElem/sec      1.00     55.5±6.27µs 17.6 KElem/sec
stdb_module/disk/filter/string/non_indexed/load=1000/count=10            1.00    173.5±9.88µs  5.6 KElem/sec      1.01    175.8±5.60µs  5.6 KElem/sec
stdb_module/disk/filter/u64/indexed/load=1000/count=10                   1.05     45.5±4.54µs 21.5 KElem/sec      1.00     43.2±3.66µs 22.6 KElem/sec
stdb_module/disk/filter/u64/non_indexed/load=1000/count=10               1.06   147.1±18.98µs  6.6 KElem/sec      1.00    138.5±3.34µs  7.1 KElem/sec
stdb_module/disk/find_unique/u32/load=1000                               1.02     33.2±1.79µs 29.4 KElem/sec      1.00     32.4±1.98µs 30.1 KElem/sec
stdb_module/disk/insert_1/location/multi_index/load=0                    1.00     48.7±3.88µs 20.1 KElem/sec      1.05     51.3±4.17µs 19.0 KElem/sec
stdb_module/disk/insert_1/location/multi_index/load=1000                 1.09   380.9±24.68µs  2.6 KElem/sec      1.00   348.5±25.99µs  2.8 KElem/sec
stdb_module/disk/insert_1/location/non_unique/load=0                     1.06     46.3±3.55µs 21.1 KElem/sec      1.00     43.8±3.57µs 22.3 KElem/sec
stdb_module/disk/insert_1/location/non_unique/load=1000                  1.00   304.2±35.44µs  3.2 KElem/sec      1.03   312.0±30.05µs  3.1 KElem/sec
stdb_module/disk/insert_1/location/unique/load=0                         1.00     46.1±2.88µs 21.2 KElem/sec      1.03     47.6±4.65µs 20.5 KElem/sec
stdb_module/disk/insert_1/location/unique/load=1000                      1.03   334.8±22.60µs  2.9 KElem/sec      1.00   324.1±27.75µs  3.0 KElem/sec
stdb_module/disk/insert_1/person/multi_index/load=0                      1.00     55.5±2.45µs 17.6 KElem/sec      1.07     59.3±5.07µs 16.5 KElem/sec
stdb_module/disk/insert_1/person/multi_index/load=1000                   1.19  556.1±112.76µs  1798 Elem/sec      1.00   466.3±49.48µs  2.1 KElem/sec
stdb_module/disk/insert_1/person/non_unique/load=0                       1.00     48.7±5.05µs 20.1 KElem/sec      1.01     49.0±2.88µs 19.9 KElem/sec
stdb_module/disk/insert_1/person/non_unique/load=1000                    1.05   321.4±43.83µs  3.0 KElem/sec      1.00   306.5±19.40µs  3.2 KElem/sec
stdb_module/disk/insert_1/person/unique/load=0                           1.00     49.2±2.50µs 19.9 KElem/sec      1.03     50.8±2.96µs 19.2 KElem/sec
stdb_module/disk/insert_1/person/unique/load=1000                        1.02   376.3±27.02µs  2.6 KElem/sec      1.00   368.0±29.19µs  2.7 KElem/sec
stdb_module/disk/insert_bulk/location/multi_index/load=0/count=100       1.01   872.1±16.65µs  1146 Elem/sec      1.00   861.0±11.51µs  1161 Elem/sec
stdb_module/disk/insert_bulk/location/multi_index/load=1000/count=100    1.00  1126.3±29.07µs   887 Elem/sec      1.01  1135.5±70.12µs   880 Elem/sec
stdb_module/disk/insert_bulk/location/non_unique/load=0/count=100        1.00    598.3±6.78µs  1671 Elem/sec      1.00   601.1±17.38µs  1663 Elem/sec
stdb_module/disk/insert_bulk/location/non_unique/load=1000/count=100     1.00   799.7±21.59µs  1250 Elem/sec      1.04  833.2±321.35µs  1200 Elem/sec
stdb_module/disk/insert_bulk/location/unique/load=0/count=100            1.00   731.2±12.65µs  1367 Elem/sec      1.00   733.7±13.79µs  1362 Elem/sec
stdb_module/disk/insert_bulk/location/unique/load=1000/count=100         1.02   974.2±47.35µs  1026 Elem/sec      1.00   955.9±25.45µs  1046 Elem/sec
stdb_module/disk/insert_bulk/person/multi_index/load=0/count=100         1.08  1552.1±41.93µs   644 Elem/sec      1.00  1433.3±49.11µs   697 Elem/sec
stdb_module/disk/insert_bulk/person/multi_index/load=1000/count=100      1.03  1772.6±94.84µs   564 Elem/sec      1.00  1726.0±88.55µs   579 Elem/sec
stdb_module/disk/insert_bulk/person/non_unique/load=0/count=100          1.04   825.8±20.86µs  1211 Elem/sec      1.00   794.4±11.03µs  1258 Elem/sec
stdb_module/disk/insert_bulk/person/non_unique/load=1000/count=100       1.00   994.8±38.09µs  1005 Elem/sec      1.02  1019.4±39.89µs   981 Elem/sec
stdb_module/disk/insert_bulk/person/unique/load=0/count=100              1.00  1022.7±10.72µs   977 Elem/sec      1.01  1027.8±19.39µs   972 Elem/sec
stdb_module/disk/insert_bulk/person/unique/load=1000/count=100           1.00  1330.5±61.42µs   751 Elem/sec      1.05  1393.5±63.22µs   717 Elem/sec
stdb_module/disk/iterate/location/unique/count=100                       1.00    135.5±1.49µs  7.2 KElem/sec      1.01    136.2±5.95µs  7.2 KElem/sec
stdb_module/disk/iterate/person/unique/count=100                         1.00    199.0±3.55µs  4.9 KElem/sec      1.13   225.1±15.04µs  4.3 KElem/sec
stdb_module/large_arguments/64KiB                                        1.03    107.6±7.73µs        ? ?/sec      1.00    104.7±2.47µs        ? ?/sec
stdb_module/mem/empty                                                    1.00     25.4±0.94µs        ? ?/sec      1.02     26.0±1.02µs        ? ?/sec
stdb_module/mem/filter/string/indexed/load=1000/count=10                 1.00     54.5±4.92µs 17.9 KElem/sec      1.00     54.7±4.20µs 17.9 KElem/sec
stdb_module/mem/filter/string/non_indexed/load=1000/count=10             1.03    170.0±3.29µs  5.7 KElem/sec      1.00    165.3±3.55µs  5.9 KElem/sec
stdb_module/mem/filter/u64/indexed/load=1000/count=10                    1.00     49.1±2.53µs 19.9 KElem/sec      1.02     49.9±4.81µs 19.6 KElem/sec
stdb_module/mem/filter/u64/non_indexed/load=1000/count=10                1.02    140.7±4.35µs  6.9 KElem/sec      1.00    138.4±5.92µs  7.1 KElem/sec
stdb_module/mem/find_unique/u32/load=1000                                1.00     32.7±2.21µs 29.9 KElem/sec      1.05     34.2±1.73µs 28.6 KElem/sec
stdb_module/mem/insert_1/location/multi_index/load=0                     1.00     43.4±3.60µs 22.5 KElem/sec      1.01     43.7±2.91µs 22.4 KElem/sec
stdb_module/mem/insert_1/location/multi_index/load=1000                  1.04   330.1±18.78µs  3.0 KElem/sec      1.00   317.0±24.92µs  3.1 KElem/sec
stdb_module/mem/insert_1/location/non_unique/load=0                      1.11     41.4±5.39µs 23.6 KElem/sec      1.00     37.2±1.89µs 26.3 KElem/sec
stdb_module/mem/insert_1/location/non_unique/load=1000                   1.00   203.5±10.44µs  4.8 KElem/sec      1.14   231.6±15.60µs  4.2 KElem/sec
stdb_module/mem/insert_1/location/unique/load=0                          1.09     42.2±4.29µs 23.1 KElem/sec      1.00     38.7±1.23µs 25.3 KElem/sec
stdb_module/mem/insert_1/location/unique/load=1000                       1.00   259.4±23.61µs  3.8 KElem/sec      1.05   273.1±19.85µs  3.6 KElem/sec
stdb_module/mem/insert_1/person/multi_index/load=0                       1.00     46.7±3.92µs 20.9 KElem/sec      1.06     49.5±3.42µs 19.7 KElem/sec
stdb_module/mem/insert_1/person/multi_index/load=1000                    1.04   451.7±39.20µs  2.2 KElem/sec      1.00  433.2±171.02µs  2.3 KElem/sec
stdb_module/mem/insert_1/person/non_unique/load=0                        1.03     43.8±5.26µs 22.3 KElem/sec      1.00     42.4±3.86µs 23.0 KElem/sec
stdb_module/mem/insert_1/person/non_unique/load=1000                     1.00   242.3±31.30µs  4.0 KElem/sec      1.09   264.0±23.77µs  3.7 KElem/sec
stdb_module/mem/insert_1/person/unique/load=0                            1.00     44.7±2.69µs 21.8 KElem/sec      1.00     44.6±3.27µs 21.9 KElem/sec
stdb_module/mem/insert_1/person/unique/load=1000                         1.00   331.8±38.18µs  2.9 KElem/sec      1.00   332.6±27.82µs  2.9 KElem/sec
stdb_module/mem/insert_bulk/location/multi_index/load=0/count=100        1.00    753.6±4.47µs  1327 Elem/sec      1.01   759.4±12.62µs  1316 Elem/sec
stdb_module/mem/insert_bulk/location/multi_index/load=1000/count=100     1.01  1029.5±31.16µs   971 Elem/sec      1.00  1019.7±25.19µs   980 Elem/sec
stdb_module/mem/insert_bulk/location/non_unique/load=0/count=100         1.02   514.3±20.53µs  1944 Elem/sec      1.00    505.0±3.70µs  1980 Elem/sec
stdb_module/mem/insert_bulk/location/non_unique/load=1000/count=100      1.00   635.0±23.09µs  1574 Elem/sec      1.07   679.0±12.73µs  1472 Elem/sec
stdb_module/mem/insert_bulk/location/unique/load=0/count=100             1.02   641.4±20.32µs  1559 Elem/sec      1.00   627.5±10.97µs  1593 Elem/sec
stdb_module/mem/insert_bulk/location/unique/load=1000/count=100          1.00   863.3±24.78µs  1158 Elem/sec      1.00   861.2±31.51µs  1161 Elem/sec
stdb_module/mem/insert_bulk/person/multi_index/load=0/count=100          1.01  1353.6±39.02µs   738 Elem/sec      1.00  1345.6±49.85µs   743 Elem/sec
stdb_module/mem/insert_bulk/person/multi_index/load=1000/count=100       1.03  1690.0±48.67µs   591 Elem/sec      1.00  1640.8±64.98µs   609 Elem/sec
stdb_module/mem/insert_bulk/person/non_unique/load=0/count=100           1.00    714.7±7.11µs  1399 Elem/sec      1.03   737.8±49.53µs  1355 Elem/sec
stdb_module/mem/insert_bulk/person/non_unique/load=1000/count=100        1.02   921.1±21.31µs  1085 Elem/sec      1.00   900.3±38.46µs  1110 Elem/sec
stdb_module/mem/insert_bulk/person/unique/load=0/count=100               1.00   967.2±19.84µs  1033 Elem/sec      1.26  1219.1±559.80µs   820 Elem/sec
stdb_module/mem/insert_bulk/person/unique/load=1000/count=100            1.00  1238.6±51.48µs   807 Elem/sec      1.01  1249.2±233.33µs   800 Elem/sec
stdb_module/mem/iterate/location/unique/count=100                        1.03    138.9±1.92µs  7.0 KElem/sec      1.00    134.7±2.00µs  7.2 KElem/sec
stdb_module/mem/iterate/person/unique/count=100                          1.00    230.1±7.79µs  4.2 KElem/sec      1.13   259.1±18.46µs  3.8 KElem/sec
stdb_module/print_bulk/lines=1                                           1.06     35.6±1.91µs        ? ?/sec      1.00     33.6±1.65µs        ? ?/sec
stdb_module/print_bulk/lines=100                                         1.05   330.5±19.35µs        ? ?/sec      1.00   314.7±34.43µs        ? ?/sec
stdb_module/print_bulk/lines=1000                                        1.04      3.0±0.04ms        ? ?/sec      1.00      2.9±0.02ms        ? ?/sec
stdb_raw/disk/empty                                                      1.00    102.1±2.33ns        ? ?/sec      1.00    101.8±1.16ns        ? ?/sec
stdb_raw/disk/filter/string/indexed/load=1000/count=10                   1.00      2.6±0.04µs 371.8 KElem/sec     1.00      2.6±0.04µs 371.4 KElem/sec
stdb_raw/disk/filter/string/non_indexed/load=1000/count=10               1.00    120.6±1.38µs  8.1 KElem/sec      1.01    121.4±2.88µs  8.0 KElem/sec
stdb_raw/disk/filter/u64/indexed/load=1000/count=10                      1.00      2.4±0.03µs 407.8 KElem/sec     1.01      2.4±0.05µs 403.9 KElem/sec
stdb_raw/disk/filter/u64/non_indexed/load=1000/count=10                  1.00    102.5±1.26µs  9.5 KElem/sec      1.00    102.2±1.39µs  9.6 KElem/sec
stdb_raw/disk/find_unique/u32/load=1000                                  1.00    563.8±5.65ns 1732.0 KElem/sec    1.00   565.3±10.60ns 1727.4 KElem/sec
stdb_raw/disk/insert_1/location/multi_index/load=0                       1.00      6.0±0.06µs 161.9 KElem/sec     1.01      6.1±0.14µs 159.8 KElem/sec
stdb_raw/disk/insert_1/location/multi_index/load=1000                    1.00     31.9±1.40µs 30.6 KElem/sec      1.01     32.3±1.29µs 30.2 KElem/sec
stdb_raw/disk/insert_1/location/non_unique/load=0                        1.00      3.8±0.04µs 259.4 KElem/sec     1.02      3.9±0.06µs 253.3 KElem/sec
stdb_raw/disk/insert_1/location/non_unique/load=1000                     1.00     19.9±0.61µs 49.2 KElem/sec      1.03     20.4±0.58µs 48.0 KElem/sec
stdb_raw/disk/insert_1/location/unique/load=0                            1.00      4.8±0.06µs 203.3 KElem/sec     1.02      4.9±0.11µs 199.6 KElem/sec
stdb_raw/disk/insert_1/location/unique/load=1000                         1.00    27.6±16.21µs 35.4 KElem/sec      1.00    27.6±10.59µs 35.4 KElem/sec
stdb_raw/disk/insert_1/person/multi_index/load=0                         1.00     10.1±0.11µs 96.9 KElem/sec      1.01     10.1±0.12µs 96.4 KElem/sec
stdb_raw/disk/insert_1/person/multi_index/load=1000                      1.00     32.8±8.46µs 29.7 KElem/sec      1.03     33.7±7.80µs 29.0 KElem/sec
stdb_raw/disk/insert_1/person/non_unique/load=0                          1.00      4.5±0.07µs 214.7 KElem/sec     1.00      4.6±0.05µs 214.4 KElem/sec
stdb_raw/disk/insert_1/person/non_unique/load=1000                       1.00     16.6±1.17µs 58.9 KElem/sec      1.01     16.7±0.79µs 58.5 KElem/sec
stdb_raw/disk/insert_1/person/unique/load=0                              1.00      6.7±0.07µs 145.2 KElem/sec     1.03      6.9±0.14µs 141.4 KElem/sec
stdb_raw/disk/insert_1/person/unique/load=1000                           1.03     26.5±1.15µs 36.8 KElem/sec      1.00     25.7±1.22µs 38.0 KElem/sec
stdb_raw/disk/insert_bulk/location/multi_index/load=0/count=100          1.00    362.6±4.03µs  2.7 KElem/sec      1.00    361.7±6.02µs  2.7 KElem/sec
stdb_raw/disk/insert_bulk/location/multi_index/load=1000/count=100       1.00   427.5±10.73µs  2.3 KElem/sec      1.00    426.9±5.64µs  2.3 KElem/sec
stdb_raw/disk/insert_bulk/location/non_unique/load=0/count=100           1.00    159.9±2.25µs  6.1 KElem/sec      1.03    164.1±2.84µs  6.0 KElem/sec
stdb_raw/disk/insert_bulk/location/non_unique/load=1000/count=100        1.00    186.1±3.37µs  5.2 KElem/sec      1.02    188.9±4.86µs  5.2 KElem/sec
stdb_raw/disk/insert_bulk/location/unique/load=0/count=100               1.00    257.8±2.68µs  3.8 KElem/sec      1.00    256.7±2.69µs  3.8 KElem/sec
stdb_raw/disk/insert_bulk/location/unique/load=1000/count=100            1.00    318.3±7.20µs  3.1 KElem/sec      1.00    317.6±6.77µs  3.1 KElem/sec
stdb_raw/disk/insert_bulk/person/multi_index/load=0/count=100            1.00    738.2±8.77µs  1354 Elem/sec      1.00    739.0±7.77µs  1353 Elem/sec
stdb_raw/disk/insert_bulk/person/multi_index/load=1000/count=100         1.00   807.3±10.02µs  1238 Elem/sec      1.01   811.6±11.54µs  1232 Elem/sec
stdb_raw/disk/insert_bulk/person/non_unique/load=0/count=100             1.00    227.2±2.33µs  4.3 KElem/sec      1.01    230.5±2.27µs  4.2 KElem/sec
stdb_raw/disk/insert_bulk/person/non_unique/load=1000/count=100          1.00    252.1±4.12µs  3.9 KElem/sec      1.02    255.9±5.48µs  3.8 KElem/sec
stdb_raw/disk/insert_bulk/person/unique/load=0/count=100                 1.00    424.7±5.15µs  2.3 KElem/sec      1.00    423.6±4.83µs  2.3 KElem/sec
stdb_raw/disk/insert_bulk/person/unique/load=1000/count=100              1.00    478.0±7.71µs  2.0 KElem/sec      1.00    477.5±8.31µs  2.0 KElem/sec
stdb_raw/disk/iterate/location/unique/count=100                          1.01      9.7±0.14µs 100.3 KElem/sec     1.00      9.7±0.08µs 100.8 KElem/sec
stdb_raw/disk/iterate/person/unique/count=100                            1.00     11.1±0.19µs 88.3 KElem/sec      1.00     11.1±0.19µs 88.1 KElem/sec
stdb_raw/mem/empty                                                       1.00    101.8±2.12ns        ? ?/sec      1.01    102.8±1.31ns        ? ?/sec
stdb_raw/mem/filter/string/indexed/load=1000/count=10                    1.00      2.6±0.06µs 374.2 KElem/sec     1.01      2.6±0.03µs 371.8 KElem/sec
stdb_raw/mem/filter/string/non_indexed/load=1000/count=10                1.01    121.3±1.77µs  8.0 KElem/sec      1.00    119.8±2.51µs  8.1 KElem/sec
stdb_raw/mem/filter/u64/indexed/load=1000/count=10                       1.00      2.4±0.05µs 408.0 KElem/sec     1.01      2.4±0.05µs 405.1 KElem/sec
stdb_raw/mem/filter/u64/non_indexed/load=1000/count=10                   1.00    101.7±1.66µs  9.6 KElem/sec      1.00    101.9±0.94µs  9.6 KElem/sec
stdb_raw/mem/find_unique/u32/load=1000                                   1.00    560.2±5.68ns 1743.2 KElem/sec    1.00    558.3±9.15ns 1749.3 KElem/sec
stdb_raw/mem/insert_1/location/multi_index/load=0                        1.00      4.8±0.07µs 202.7 KElem/sec     1.01      4.9±0.06µs 200.6 KElem/sec
stdb_raw/mem/insert_1/location/multi_index/load=1000                     1.00     26.3±1.25µs 37.1 KElem/sec      1.00     26.3±1.02µs 37.1 KElem/sec
stdb_raw/mem/insert_1/location/non_unique/load=0                         1.03      2.6±0.05µs 375.9 KElem/sec     1.00      2.5±0.03µs 388.7 KElem/sec
stdb_raw/mem/insert_1/location/non_unique/load=1000                      1.00     16.3±0.40µs 60.0 KElem/sec      1.00     16.3±0.50µs 59.9 KElem/sec
stdb_raw/mem/insert_1/location/unique/load=0                             1.01      3.5±0.11µs 281.5 KElem/sec     1.00      3.4±0.06µs 284.0 KElem/sec
stdb_raw/mem/insert_1/location/unique/load=1000                          1.00     22.4±0.79µs 43.6 KElem/sec      1.00     22.4±1.07µs 43.7 KElem/sec
stdb_raw/mem/insert_1/person/multi_index/load=0                          1.00      8.5±0.14µs 115.5 KElem/sec     1.01      8.5±0.08µs 114.4 KElem/sec
stdb_raw/mem/insert_1/person/multi_index/load=1000                       1.00     25.2±2.56µs 38.8 KElem/sec      1.02     25.6±1.95µs 38.1 KElem/sec
stdb_raw/mem/insert_1/person/non_unique/load=0                           1.00      3.1±0.04µs 310.0 KElem/sec     1.01      3.2±0.05µs 308.3 KElem/sec
stdb_raw/mem/insert_1/person/non_unique/load=1000                        1.01     11.5±0.40µs 84.6 KElem/sec      1.00     11.4±0.45µs 85.7 KElem/sec
stdb_raw/mem/insert_1/person/unique/load=0                               1.00      5.1±0.07µs 190.1 KElem/sec     1.02      5.2±0.10µs 186.3 KElem/sec
stdb_raw/mem/insert_1/person/unique/load=1000                            1.00     18.6±1.07µs 52.5 KElem/sec      1.00     18.7±1.06µs 52.4 KElem/sec
stdb_raw/mem/insert_bulk/location/multi_index/load=0/count=100           1.01    366.2±4.78µs  2.7 KElem/sec      1.00    363.9±4.10µs  2.7 KElem/sec
stdb_raw/mem/insert_bulk/location/multi_index/load=1000/count=100        1.01    419.9±7.43µs  2.3 KElem/sec      1.00    415.9±6.27µs  2.3 KElem/sec
stdb_raw/mem/insert_bulk/location/non_unique/load=0/count=100            1.00    157.7±1.49µs  6.2 KElem/sec      1.00    158.4±2.53µs  6.2 KElem/sec
stdb_raw/mem/insert_bulk/location/non_unique/load=1000/count=100         1.00    181.3±2.73µs  5.4 KElem/sec      1.00    181.4±2.31µs  5.4 KElem/sec
stdb_raw/mem/insert_bulk/location/unique/load=0/count=100                1.01    260.0±5.69µs  3.8 KElem/sec      1.00   257.9±14.96µs  3.8 KElem/sec
stdb_raw/mem/insert_bulk/location/unique/load=1000/count=100             1.00    308.0±4.28µs  3.2 KElem/sec      1.00    307.4±4.84µs  3.2 KElem/sec
stdb_raw/mem/insert_bulk/person/multi_index/load=0/count=100             1.00    732.6±8.58µs  1365 Elem/sec      1.00   733.0±11.08µs  1364 Elem/sec
stdb_raw/mem/insert_bulk/person/multi_index/load=1000/count=100          1.00   799.3±11.60µs  1251 Elem/sec      1.00   797.6±17.19µs  1253 Elem/sec
stdb_raw/mem/insert_bulk/person/non_unique/load=0/count=100              1.00    226.3±2.78µs  4.3 KElem/sec      1.02    230.0±3.49µs  4.2 KElem/sec
stdb_raw/mem/insert_bulk/person/non_unique/load=1000/count=100           1.00    243.8±3.58µs  4.0 KElem/sec      1.02    248.1±2.36µs  3.9 KElem/sec
stdb_raw/mem/insert_bulk/person/unique/load=0/count=100                  1.00    425.1±3.18µs  2.3 KElem/sec      1.01    428.2±6.80µs  2.3 KElem/sec
stdb_raw/mem/insert_bulk/person/unique/load=1000/count=100               1.01    469.3±9.99µs  2.1 KElem/sec      1.00    464.0±6.86µs  2.1 KElem/sec
stdb_raw/mem/iterate/location/unique/count=100                           1.00      9.7±0.11µs 100.3 KElem/sec     1.00      9.7±0.17µs 100.4 KElem/sec
stdb_raw/mem/iterate/person/unique/count=100                             1.00     10.9±0.12µs 89.6 KElem/sec      1.00     11.0±0.09µs 89.2 KElem/sec

Please sign in to comment.