feat: struct vector (#6595)

* feat: struct vector

Signed-off-by: discord9 <discord9@163.com>

* fix: array2vector&arrow type2concrete type

Signed-off-by: discord9 <discord9@163.com>

* chore: clippy

Signed-off-by: discord9 <discord9@163.com>

* chore: resolve some todos

Signed-off-by: discord9 <discord9@163.com>

* refactor: per review

Signed-off-by: discord9 <discord9@163.com>

---------

Signed-off-by: discord9 <discord9@163.com>
This commit is contained in:
discord9
2025-07-29 16:22:27 +08:00
committed by GitHub
parent 5377db5392
commit f07b1daed4
14 changed files with 389 additions and 10 deletions

View File

@@ -78,6 +78,7 @@ impl SortField {
ConcreteDataType::Decimal128(_) => 19,
ConcreteDataType::Null(_)
| ConcreteDataType::List(_)
| ConcreteDataType::Struct(_)
| ConcreteDataType::Dictionary(_) => 0,
}
}
@@ -134,6 +135,7 @@ impl SortField {
.context(SerializeFieldSnafu)?;
}
ConcreteDataType::List(_) |
ConcreteDataType::Struct(_) |
ConcreteDataType::Dictionary(_) |
ConcreteDataType::Null(_) => {
return error::NotSupportedFieldSnafu {
@@ -218,6 +220,10 @@ impl SortField {
data_type: ConcreteDataType::List(l.clone()),
}
.fail(),
ConcreteDataType::Struct(f) => NotSupportedFieldSnafu {
data_type: ConcreteDataType::Struct(f.clone()),
}
.fail(),
ConcreteDataType::Dictionary(d) => NotSupportedFieldSnafu {
data_type: ConcreteDataType::Dictionary(d.clone()),
}
@@ -301,6 +307,7 @@ impl SortField {
ConcreteDataType::Decimal128(_) => 19,
ConcreteDataType::Null(_)
| ConcreteDataType::List(_)
| ConcreteDataType::Struct(_)
| ConcreteDataType::Dictionary(_) => 0,
};
deserializer.advance(to_skip);