Skip to content

Commit 36aedc6

Browse files
authored
Remove wildcard pattern in exhaustive enums (#1925)
## Which issue does this PR close? - Closes #1924. ## What changes are included in this PR? - For match expression on `PrimitiveType`, removes wildcard and explicitly handles all enum variants. - Removes support of `PrimititveType::TimestampzNs` for HMS and Glue. - Hive/HMS does not support timezone aware timestamps, per [Hive docs](https://cwiki.apache.org/confluence/display/hive/languagemanual+types#LanguageManualTypes-TimestampstimestampTimestamps). - Glue uses the Hive type system so it should also be disabled for Glue. ## Are these changes tested? Tested with existing test suite
1 parent 9396171 commit 36aedc6

File tree

2 files changed

+12
-14
lines changed

2 files changed

+12
-14
lines changed

crates/catalog/glue/src/schema.rs

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -165,20 +165,19 @@ impl SchemaVisitor for GlueSchemaBuilder {
165165
PrimitiveType::Date => "date".to_string(),
166166
PrimitiveType::Timestamp => "timestamp".to_string(),
167167
PrimitiveType::TimestampNs => "timestamp_ns".to_string(),
168-
PrimitiveType::TimestamptzNs => "timestamptz_ns".to_string(),
168+
PrimitiveType::Timestamptz | PrimitiveType::TimestamptzNs => {
169+
return Err(Error::new(
170+
ErrorKind::FeatureUnsupported,
171+
format!("Conversion from {p:?} is not supported"),
172+
));
173+
}
169174
PrimitiveType::Time | PrimitiveType::String | PrimitiveType::Uuid => {
170175
"string".to_string()
171176
}
172177
PrimitiveType::Binary | PrimitiveType::Fixed(_) => "binary".to_string(),
173178
PrimitiveType::Decimal { precision, scale } => {
174179
format!("decimal({precision},{scale})")
175180
}
176-
_ => {
177-
return Err(Error::new(
178-
ErrorKind::FeatureUnsupported,
179-
"Conversion from 'Timestamptz' is not supported",
180-
));
181-
}
182181
};
183182

184183
Ok(glue_type)

crates/catalog/hms/src/schema.rs

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -122,20 +122,19 @@ impl SchemaVisitor for HiveSchemaBuilder {
122122
PrimitiveType::Date => "date".to_string(),
123123
PrimitiveType::Timestamp => "timestamp".to_string(),
124124
PrimitiveType::TimestampNs => "timestamp_ns".to_string(),
125-
PrimitiveType::TimestamptzNs => "timestamptz_ns".to_string(),
125+
PrimitiveType::Timestamptz | PrimitiveType::TimestamptzNs => {
126+
return Err(Error::new(
127+
ErrorKind::FeatureUnsupported,
128+
format!("Conversion from {p:?} is not supported"),
129+
));
130+
}
126131
PrimitiveType::Time | PrimitiveType::String | PrimitiveType::Uuid => {
127132
"string".to_string()
128133
}
129134
PrimitiveType::Binary | PrimitiveType::Fixed(_) => "binary".to_string(),
130135
PrimitiveType::Decimal { precision, scale } => {
131136
format!("decimal({precision},{scale})")
132137
}
133-
_ => {
134-
return Err(Error::new(
135-
ErrorKind::FeatureUnsupported,
136-
"Conversion from 'Timestamptz' is not supported",
137-
));
138-
}
139138
};
140139

141140
Ok(hive_type)

0 commit comments

Comments
 (0)