stefankandic commented on code in PR #46280: URL: https://github.com/apache/spark/pull/46280#discussion_r1604650376
########## common/unsafe/src/main/java/org/apache/spark/sql/catalyst/util/CollationFactory.java: ########## @@ -36,11 +36,57 @@ * Provides functionality to the UTF8String object which respects defined collation settings. */ public final class CollationFactory { + + /** + * Identifier for single a collation. + */ + public static class CollationIdentifier { + public final String provider; + public final String name; + public final String version; + + public CollationIdentifier(String provider, String collationName, String version) { + this.provider = provider; + this.name = collationName; + this.version = version; + } + + public static CollationIdentifier fromString(String identifier) { + long numDots = identifier.chars().filter(ch -> ch == '.').count(); + assert(numDots > 0); + + if (numDots == 1) { + String[] parts = identifier.split("\\.", 2); + return new CollationIdentifier(parts[0], parts[1], null); + } + + String[] parts = identifier.split("\\.", 3); + return new CollationIdentifier(parts[0], parts[1], parts[2]); + } + + @Override + public String toString() { + if (version != null) { + return String.format("%s.%s.%s", provider, name, version); + } + + return toStringWithoutVersion(); + } + + /** + * Returns the identifier's string value without the version. + */ + public String toStringWithoutVersion() { Review Comment: added -- 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: reviews-unsubscr...@spark.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org For additional commands, e-mail: reviews-h...@spark.apache.org