Skip to content

Commit bc3459e

Browse files
committed
partitioner: calculate_token_for_partition_key accepts PartitionerName
As `PartitionerName` is now public and retrievable from `PreparedStatement` using `get_partitioner_name()`, it makes sense to accept it in `calculate_token_for_partition_key` instead of an `impl Partitioner` generic parameter.
1 parent a81f781 commit bc3459e

File tree

3 files changed

+12
-8
lines changed

3 files changed

+12
-8
lines changed

scylla/benches/benchmark.rs

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use criterion::{criterion_group, criterion_main, Criterion};
22

33
use bytes::BytesMut;
4-
use scylla::routing::partitioner::{calculate_token_for_partition_key, Murmur3Partitioner};
4+
use scylla::routing::partitioner::{calculate_token_for_partition_key, PartitionerName};
55
use scylla_cql::frame::response::result::{ColumnType, NativeType};
66
use scylla_cql::frame::types;
77
use scylla_cql::serialize::row::SerializedValues;
@@ -84,7 +84,9 @@ fn calculate_token_bench(c: &mut Criterion) {
8484
.unwrap();
8585

8686
c.bench_function("calculate_token_from_partition_key simple pk", |b| {
87-
b.iter(|| calculate_token_for_partition_key(&serialized_simple_pk, &Murmur3Partitioner))
87+
b.iter(|| {
88+
calculate_token_for_partition_key(&serialized_simple_pk, &PartitionerName::Murmur3)
89+
})
8890
});
8991

9092
c.bench_function(
@@ -93,14 +95,16 @@ fn calculate_token_bench(c: &mut Criterion) {
9395
b.iter(|| {
9496
calculate_token_for_partition_key(
9597
&serialized_simple_pk_long_column,
96-
&Murmur3Partitioner,
98+
&PartitionerName::Murmur3,
9799
)
98100
})
99101
},
100102
);
101103

102104
c.bench_function("calculate_token_from_partition_key complex pk", |b| {
103-
b.iter(|| calculate_token_for_partition_key(&serialized_complex_pk, &Murmur3Partitioner))
105+
b.iter(|| {
106+
calculate_token_for_partition_key(&serialized_complex_pk, &PartitionerName::Murmur3)
107+
})
104108
});
105109

106110
c.bench_function(
@@ -109,7 +113,7 @@ fn calculate_token_bench(c: &mut Criterion) {
109113
b.iter(|| {
110114
calculate_token_for_partition_key(
111115
&serialized_values_long_column,
112-
&Murmur3Partitioner,
116+
&PartitionerName::Murmur3,
113117
)
114118
})
115119
},

scylla/src/client/session_test.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3044,7 +3044,7 @@ async fn test_manual_primary_key_computation() {
30443044

30453045
let token_by_hand = calculate_token_for_partition_key(
30463046
serialized_pk_values_in_pk_order,
3047-
&Murmur3Partitioner,
3047+
&PartitionerName::Murmur3,
30483048
)
30493049
.unwrap();
30503050
println!(

scylla/src/routing/partitioner.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -348,9 +348,9 @@ impl PartitionerHasher for CDCPartitionerHasher {
348348
///
349349
/// NOTE: the provided values must completely constitute partition key
350350
/// and be in the order defined in CREATE TABLE statement.
351-
pub fn calculate_token_for_partition_key<P: Partitioner>(
351+
pub fn calculate_token_for_partition_key(
352352
serialized_partition_key_values: &SerializedValues,
353-
partitioner: &P,
353+
partitioner: &PartitionerName,
354354
) -> Result<Token, TokenCalculationError> {
355355
let mut partitioner_hasher = partitioner.build_hasher();
356356

0 commit comments

Comments
 (0)