Skip to content

Commit 56df7b5

Browse files
committed
fix: fix ConstColumn(String) cast to StringColumn bug
1 parent b44bca6 commit 56df7b5

File tree

14 files changed

+23
-127
lines changed

14 files changed

+23
-127
lines changed

src/query/datavalues/src/columns/array/mod.rs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -114,10 +114,6 @@ impl Column for ArrayColumn {
114114
self
115115
}
116116

117-
fn as_inner_any(&self) -> Option<&dyn std::any::Any> {
118-
None
119-
}
120-
121117
fn data_type(&self) -> DataTypeImpl {
122118
self.data_type.clone()
123119
}

src/query/datavalues/src/columns/boolean/mod.rs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -75,10 +75,6 @@ impl Column for BooleanColumn {
7575
self
7676
}
7777

78-
fn as_inner_any(&self) -> Option<&dyn std::any::Any> {
79-
None
80-
}
81-
8278
fn data_type(&self) -> DataTypeImpl {
8379
BooleanType::new_impl()
8480
}

src/query/datavalues/src/columns/column.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ use crate::TypeID;
3131
pub type ColumnRef = Arc<dyn Column>;
3232
pub trait Column: Send + Sync {
3333
fn as_any(&self) -> &dyn Any;
34-
fn as_inner_any(&self) -> Option<&dyn Any>;
3534

3635
/// Type of data that column contains. It's an underlying physical type:
3736
/// Int32 for Date, Int64 for Timestamp, so on.

src/query/datavalues/src/columns/const_/mod.rs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,10 +46,6 @@ impl Column for ConstColumn {
4646
self
4747
}
4848

49-
fn as_inner_any(&self) -> Option<&dyn std::any::Any> {
50-
Some(self.inner().as_any())
51-
}
52-
5349
fn data_type(&self) -> DataTypeImpl {
5450
self.column.data_type()
5551
}

src/query/datavalues/src/columns/null/mod.rs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -51,10 +51,6 @@ impl Column for NullColumn {
5151
self
5252
}
5353

54-
fn as_inner_any(&self) -> Option<&dyn std::any::Any> {
55-
None
56-
}
57-
5854
fn data_type(&self) -> DataTypeImpl {
5955
DataTypeImpl::Null(NullType {})
6056
}

src/query/datavalues/src/columns/nullable/mod.rs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -94,10 +94,6 @@ impl Column for NullableColumn {
9494
self
9595
}
9696

97-
fn as_inner_any(&self) -> Option<&dyn std::any::Any> {
98-
Some(self.inner().as_any())
99-
}
100-
10197
fn data_type(&self) -> DataTypeImpl {
10298
let nest = self.column.data_type();
10399
NullableType::new_impl(nest)

src/query/datavalues/src/columns/object/mod.rs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -97,10 +97,6 @@ impl<T: ObjectType> Column for ObjectColumn<T> {
9797
self
9898
}
9999

100-
fn as_inner_any(&self) -> Option<&dyn std::any::Any> {
101-
None
102-
}
103-
104100
fn data_type(&self) -> DataTypeImpl {
105101
T::data_type()
106102
}

src/query/datavalues/src/columns/primitive/primitive.rs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -162,10 +162,6 @@ impl<T: PrimitiveType> Column for PrimitiveColumn<T> {
162162
self
163163
}
164164

165-
fn as_inner_any(&self) -> Option<&dyn std::any::Any> {
166-
None
167-
}
168-
169165
fn data_type(&self) -> DataTypeImpl {
170166
create_primitive_datatype::<T>()
171167
}

src/query/datavalues/src/columns/series.rs

Lines changed: 8 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -57,27 +57,14 @@ impl Series {
5757
}
5858

5959
pub fn check_get<T: 'static + Column>(column: &ColumnRef) -> Result<&T> {
60-
match column.as_any().downcast_ref::<T>() {
61-
Some(arr) => Ok(arr),
62-
None => {
63-
if let Some(any_inner) = column.as_inner_any() {
64-
let arr = any_inner.downcast_ref::<T>().ok_or_else(|| {
65-
ErrorCode::UnknownColumn(format!(
66-
"downcast column error, column type: {:?}, expected column: {:?}",
67-
column.column_type_name(),
68-
std::any::type_name::<T>(),
69-
))
70-
});
71-
arr
72-
} else {
73-
Err(ErrorCode::UnknownColumn(format!(
74-
"downcast column error, column type: {:?}, expected column: {:?}",
75-
column.column_type_name(),
76-
std::any::type_name::<T>(),
77-
)))
78-
}
79-
}
80-
}
60+
let arr = column.as_any().downcast_ref::<T>().ok_or_else(|| {
61+
ErrorCode::UnknownColumn(format!(
62+
"downcast column error, column type: {:?}, expected column: {:?}",
63+
column.column_type_name(),
64+
std::any::type_name::<T>(),
65+
))
66+
});
67+
arr
8168
}
8269

8370
pub fn check_get_mutable_column<T: 'static + MutableColumn>(

src/query/datavalues/src/columns/string/mod.rs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -139,10 +139,6 @@ impl Column for StringColumn {
139139
self
140140
}
141141

142-
fn as_inner_any(&self) -> Option<&dyn std::any::Any> {
143-
None
144-
}
145-
146142
fn data_type(&self) -> DataTypeImpl {
147143
StringType::new_impl()
148144
}

0 commit comments

Comments
 (0)