diff --git a/common/unsafe/src/main/java/org/apache/spark/sql/catalyst/util/CollationFactory.java b/common/unsafe/src/main/java/org/apache/spark/sql/catalyst/util/CollationFactory.java index ad5e5ae845f8..4064f830e92d 100644 --- a/common/unsafe/src/main/java/org/apache/spark/sql/catalyst/util/CollationFactory.java +++ b/common/unsafe/src/main/java/org/apache/spark/sql/catalyst/util/CollationFactory.java @@ -1023,12 +1023,14 @@ protected Collation buildCollation() { @Override protected CollationMeta buildCollationMeta() { + String language = ICULocaleMap.get(locale).getDisplayLanguage(); + String country = ICULocaleMap.get(locale).getDisplayCountry(); return new CollationMeta( CATALOG, SCHEMA, normalizedCollationName(), - ICULocaleMap.get(locale).getDisplayLanguage(), - ICULocaleMap.get(locale).getDisplayCountry(), + language.isEmpty() ? null : language, + country.isEmpty() ? null : country, VersionInfo.ICU_VERSION.toString(), COLLATION_PAD_ATTRIBUTE, accentSensitivity == AccentSensitivity.AS, diff --git a/sql/core/src/test/scala/org/apache/spark/sql/CollationSuite.scala b/sql/core/src/test/scala/org/apache/spark/sql/CollationSuite.scala index 9716d342bb6b..f5cb30809ae5 100644 --- a/sql/core/src/test/scala/org/apache/spark/sql/CollationSuite.scala +++ b/sql/core/src/test/scala/org/apache/spark/sql/CollationSuite.scala @@ -2037,21 +2037,21 @@ class CollationSuite extends DatasourceV2SQLBase with AdaptiveSparkPlanHelper { "ACCENT_SENSITIVE", "CASE_SENSITIVE", "NO_PAD", null), Row("SYSTEM", "BUILTIN", "UTF8_LCASE", null, null, "ACCENT_SENSITIVE", "CASE_INSENSITIVE", "NO_PAD", null), - Row("SYSTEM", "BUILTIN", "UNICODE", "", "", + Row("SYSTEM", "BUILTIN", "UNICODE", null, null, "ACCENT_SENSITIVE", "CASE_SENSITIVE", "NO_PAD", icvVersion), - Row("SYSTEM", "BUILTIN", "UNICODE_AI", "", "", + Row("SYSTEM", "BUILTIN", "UNICODE_AI", null, null, "ACCENT_INSENSITIVE", "CASE_SENSITIVE", "NO_PAD", icvVersion), - Row("SYSTEM", "BUILTIN", "UNICODE_CI", "", "", + Row("SYSTEM", "BUILTIN", "UNICODE_CI", null, null, "ACCENT_SENSITIVE", "CASE_INSENSITIVE", "NO_PAD", icvVersion), - Row("SYSTEM", "BUILTIN", "UNICODE_CI_AI", "", "", + Row("SYSTEM", "BUILTIN", "UNICODE_CI_AI", null, null, "ACCENT_INSENSITIVE", "CASE_INSENSITIVE", "NO_PAD", icvVersion), - Row("SYSTEM", "BUILTIN", "af", "Afrikaans", "", + Row("SYSTEM", "BUILTIN", "af", "Afrikaans", null, "ACCENT_SENSITIVE", "CASE_SENSITIVE", "NO_PAD", icvVersion), - Row("SYSTEM", "BUILTIN", "af_AI", "Afrikaans", "", + Row("SYSTEM", "BUILTIN", "af_AI", "Afrikaans", null, "ACCENT_INSENSITIVE", "CASE_SENSITIVE", "NO_PAD", icvVersion), - Row("SYSTEM", "BUILTIN", "af_CI", "Afrikaans", "", + Row("SYSTEM", "BUILTIN", "af_CI", "Afrikaans", null, "ACCENT_SENSITIVE", "CASE_INSENSITIVE", "NO_PAD", icvVersion), - Row("SYSTEM", "BUILTIN", "af_CI_AI", "Afrikaans", "", + Row("SYSTEM", "BUILTIN", "af_CI_AI", "Afrikaans", null, "ACCENT_INSENSITIVE", "CASE_INSENSITIVE", "NO_PAD", icvVersion))) checkAnswer(sql("SELECT * FROM collations() WHERE NAME LIKE '%UTF8_BINARY%'"),