Skip to content
Closed
Prev Previous commit
Next Next commit
Add tests
  • Loading branch information
uros-db committed May 24, 2024
commit d5a811af09a31fc73f59bf82c914b964944067d3
Original file line number Diff line number Diff line change
Expand Up @@ -646,6 +646,7 @@ public void testFindInSet() throws SparkException {
assertFindInSet("i", "ab,i̇,12", "UTF8_BINARY_LCASE", 0);
assertFindInSet("i̇o", "ab,İo,12", "UTF8_BINARY_LCASE", 2);
assertFindInSet("İo", "ab,i̇o,12", "UTF8_BINARY_LCASE", 2);
assertFindInSet("c", "A�,B,C,V", "UTF8_BINARY_LCASE", 3);
}

private void assertReplace(String source, String search, String replace, String collationName,
Expand Down Expand Up @@ -690,12 +691,13 @@ public void testReplace() throws SparkException {
assertReplace("İi̇İi̇İi̇", "i", "x", "UNICODE_CI", "İi̇İi̇İi̇");
assertReplace("abİo12i̇o", "i̇o", "xx", "UNICODE_CI", "abxx12xx");
assertReplace("abi̇o12i̇o", "İo", "yy", "UNICODE_CI", "abyy12yy");
assertReplace("abi̇12", "i", "X", "UTF8_BINARY_LCASE", "abẊ12"); // != UNICODE_CI
assertReplace("abi̇12", "i", "X", "UTF8_BINARY_LCASE", "abX\u030712"); // != UNICODE_CI
assertReplace("abi̇12", "\u0307", "X", "UTF8_BINARY_LCASE", "abiX12"); // != UNICODE_CI
assertReplace("abi̇12", "İ", "X", "UTF8_BINARY_LCASE", "abX12");
assertReplace("abİ12", "i", "X", "UTF8_BINARY_LCASE", "abİ12");
assertReplace("İi̇İi̇İi̇", "i̇", "x", "UTF8_BINARY_LCASE", "xxxxxx");
assertReplace("İi̇İi̇İi̇", "i", "x", "UTF8_BINARY_LCASE", "İẋİẋİẋ"); // != UNICODE_CI
assertReplace("İi̇İi̇İi̇", "i", "x", "UTF8_BINARY_LCASE",
"İx\u0307İx\u0307İx\u0307"); // != UNICODE_CI
assertReplace("abİo12i̇o", "i̇o", "xx", "UTF8_BINARY_LCASE", "abxx12xx");
assertReplace("abi̇o12i̇o", "İo", "yy", "UTF8_BINARY_LCASE", "abyy12yy");
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -325,6 +325,12 @@ class CollationStringExpressionsSuite
assert(collationMismatch.getErrorClass === "COLLATION_MISMATCH.EXPLICIT")
}

test("Menelaos") {
val q = "select find_in_set('c' collate utf8_binary_lcase, " +
"cast(unhex('41C22C422C432C56') as string) collate utf8_binary_lcase)"
checkAnswer(sql(q), Row())
}

test("Support Replace string expression with collation") {
case class ReplaceTestCase[R](source: String, search: String, replace: String,
c: String, result: R)
Expand Down