Skip to content
Merged
Show file tree
Hide file tree
Changes from 23 commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
0350ba1
Introduce CompactedKeyEncoder, initial commit
leekeiabstraction Jan 3, 2026
a02719a
Introduce CompactedKeyEncoder: working test cases
leekeiabstraction Jan 3, 2026
bf9215d
Use Datum, remove Value
leekeiabstraction Jan 4, 2026
111b08f
All data type unit test
leekeiabstraction Jan 4, 2026
082257d
Use Result in KeyEncoder
leekeiabstraction Jan 4, 2026
f506ab0
Update todo comment
leekeiabstraction Jan 4, 2026
b6e308e
Mark test methods as cfg(test)
leekeiabstraction Jan 4, 2026
a71db15
ValueWriter documentation
leekeiabstraction Jan 4, 2026
006d593
Minor refactoring
leekeiabstraction Jan 4, 2026
7dcea05
Add null check
leekeiabstraction Jan 4, 2026
a6c26a6
Improve todo message
leekeiabstraction Jan 4, 2026
fe7da7b
Move licence to top
leekeiabstraction Jan 4, 2026
93ca8ab
More readable test case
leekeiabstraction Jan 5, 2026
c668dc5
Improve error message, use write_bytes for BytesWriter
leekeiabstraction Jan 5, 2026
ad3bd4a
Fix documentation
leekeiabstraction Jan 5, 2026
ac1d4b3
Use Result<> to return CompactedKeyEncoder and ValueWriter for better…
leekeiabstraction Jan 5, 2026
f29e2cc
More idiomatic implementation of encode_key
leekeiabstraction Jan 5, 2026
cbd0e0f
Improve documentation
leekeiabstraction Jan 5, 2026
352f157
Improve error message
leekeiabstraction Jan 5, 2026
16f4514
Improve error message
leekeiabstraction Jan 5, 2026
07d6105
Minor refactor
leekeiabstraction Jan 5, 2026
145830a
Formatting and clippy
leekeiabstraction Jan 5, 2026
e1d85a6
Formatting and clippy
leekeiabstraction Jan 5, 2026
1ec7693
Addressed PR comments
leekeiabstraction Jan 7, 2026
700bb47
Addressed PR comments
leekeiabstraction Jan 7, 2026
ca4036c
Improve error message
leekeiabstraction Jan 7, 2026
4df3a81
Clippy
leekeiabstraction Jan 7, 2026
bcb7e08
Improve error message
leekeiabstraction Jan 7, 2026
b496612
Improve error message
leekeiabstraction Jan 7, 2026
043e1d4
Improve and remove duplicate todos
leekeiabstraction Jan 7, 2026
0ac34be
Fix test
leekeiabstraction Jan 7, 2026
88ec810
More succinct code
leekeiabstraction Jan 7, 2026
d5a916b
More succinct code
leekeiabstraction Jan 7, 2026
eb70020
Use static dispatch for more performant code
leekeiabstraction Jan 7, 2026
eff7a88
Use static dispatch for better performance
leekeiabstraction Jan 8, 2026
b02233a
Move for_test_row_type function into test module
leekeiabstraction Jan 9, 2026
3f5b938
More idiomatic row type building
leekeiabstraction Jan 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions crates/fluss/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ uuid = { version = "1.10", features = ["v4"] }
tempfile = "3.23.0"
snafu = "0.8.3"
scopeguard = "1.2.0"
delegate = "0.13.5"

[target.'cfg(target_arch = "wasm32")'.dependencies]
jiff = { workspace = true, features = ["js"] }
Expand Down
31 changes: 31 additions & 0 deletions crates/fluss/src/metadata/datatype.rs
Original file line number Diff line number Diff line change
Expand Up @@ -852,6 +852,37 @@ impl RowType {
pub fn fields(&self) -> &Vec<DataField> {
&self.fields
}

pub fn get_field_index(&self, field_name: &str) -> Option<usize> {
self.fields.iter().position(|f| f.name == field_name)
}

#[cfg(test)]
pub fn with_data_types(data_types: Vec<DataType>) -> Self {
let mut fields: Vec<DataField> = Vec::new();
data_types.iter().enumerate().for_each(|(idx, data_type)| {
fields.push(DataField::new(format!("f{}", idx), data_type.clone(), None));
});

Self::with_nullable(true, fields)
}

#[cfg(test)]
pub fn with_data_types_and_field_names(
data_types: Vec<DataType>,
field_names: Vec<&str>,
) -> Self {
let mut fields: Vec<DataField> = Vec::new();
data_types.iter().enumerate().for_each(|(idx, data_type)| {
fields.push(DataField::new(
field_names.get(idx).unwrap().to_string(),
data_type.clone(),
None,
));
});

Self::with_nullable(true, fields)
}
}

impl Display for RowType {
Expand Down
Loading