dbatomic commented on code in PR #45422: URL: https://github.com/apache/spark/pull/45422#discussion_r1526026385
########## sql/api/src/main/scala/org/apache/spark/sql/types/StringType.scala: ########## @@ -65,9 +64,41 @@ class StringType private(val collationId: Int) extends AtomicType with Serializa } /** + * Use StringType for expressions supporting only binary collation. + * * @since 1.3.0 */ @Stable case object StringType extends StringType(0) { def apply(collationId: Int): StringType = new StringType(collationId) } + +/** + * Use StringTypeBinary for expressions supporting only binary collation. + */ +case object StringTypeBinary extends AbstractDataType { + override private[sql] def defaultConcreteType: DataType = StringType + override private[sql] def simpleString: String = "string_binary" + override private[sql] def acceptsType(other: DataType): Boolean = + other.isInstanceOf[StringType] && other.asInstanceOf[StringType].isBinaryCollation +} + +/** + * Use StringTypeBinaryLcase for expressions supporting only binary and lowercase collation. + */ +case object StringTypeBinaryLcase extends AbstractDataType { + override private[sql] def defaultConcreteType: DataType = StringType + override private[sql] def simpleString: String = "string_binary_lcase" Review Comment: Why do we need to provide `simpleString`? What is the situation where this is supposed to be exposed to user? -- 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