nastra commented on code in PR #9620:
URL: https://github.com/apache/iceberg/pull/9620#discussion_r1489047441
##########
core/src/main/java/org/apache/iceberg/view/ViewMetadata.java:
##########
@@ -510,5 +529,29 @@ static List<ViewHistoryEntry>
updateHistory(List<ViewHistoryEntry> history, Set<
private <U extends MetadataUpdate> Stream<U> changes(Class<U> updateClass)
{
return
changes.stream().filter(updateClass::isInstance).map(updateClass::cast);
}
+
+ private void checkIfDialectIsDropped(ViewVersion previous, ViewVersion
current) {
+ Set<String> baseDialects = sqlDialectsFor(previous);
+ Set<String> updatedDialects = sqlDialectsFor(current);
+
+ Preconditions.checkState(
+ updatedDialects.containsAll(baseDialects),
+ "Cannot replace view due to loss of view dialects
(%s=false):\nPrevious dialects: %s\nNew dialects: %s",
+ ViewProperties.REPLACE_DROP_DIALECT_ALLOWED,
+ baseDialects,
+ updatedDialects);
+ }
+
+ private Set<String> sqlDialectsFor(ViewVersion viewVersion) {
+ Set<String> dialects = Sets.newHashSet();
+ for (ViewRepresentation repr : viewVersion.representations()) {
+ if (repr instanceof SQLViewRepresentation) {
+ SQLViewRepresentation sql = (SQLViewRepresentation) repr;
+ dialects.add(sql.dialect());
Review Comment:
When detecting whether we have multiple dialects in
https://github.com/apache/iceberg/blob/d2be90d9cf087b7f644350dd251071e15ff71a11/core/src/main/java/org/apache/iceberg/view/ViewMetadata.java#L295
we use the dialect as-is, hence I'm doing the same here.
I think we should be ok not doing a `toLowerCase()` in both of these cases
as typically an engine would add & read a dialect using the same casing
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]