Changeset: 14e8bd981063 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/14e8bd981063
Modified Files:
monetdb5/modules/atoms/Tests/endswith.test
monetdb5/modules/atoms/str.c
Branch: ascii-flag
Log Message:
Add test for case insensitive endswith with unequal length upper/lower case.
diffs (53 lines):
diff --git a/monetdb5/modules/atoms/Tests/endswith.test
b/monetdb5/modules/atoms/Tests/endswith.test
--- a/monetdb5/modules/atoms/Tests/endswith.test
+++ b/monetdb5/modules/atoms/Tests/endswith.test
@@ -42,3 +42,25 @@ query I nosort
SELECT endswith('Thomas Müller', 'müller', false)
----
0
+
+# Ⱥ and ⱥ are not the same length in UTF-8 encoding
+query I nosort
+SELECT endswith('XXXȺ', 'ⱥ', false)
+----
+0
+
+query I nosort
+SELECT endswith('XXXȺ', 'ⱥ', true)
+----
+1
+
+query I nosort
+SELECT endswith('xxxⱥ', 'Ⱥ', false)
+----
+0
+
+query I nosort
+SELECT endswith('xxxⱥ', 'Ⱥ', true)
+----
+1
+
diff --git a/monetdb5/modules/atoms/str.c b/monetdb5/modules/atoms/str.c
--- a/monetdb5/modules/atoms/str.c
+++ b/monetdb5/modules/atoms/str.c
@@ -3234,15 +3234,15 @@ STRjoin(bat *rl_id, bat *rr_id, const ba
do {
\
RL_ID = getArgReference(STK, PCI, 0);
\
RR_ID = PCI->retc == 1 ? 0 : getArgReference(STK, PCI, 1);
\
- int i = PCI->retc == 1 ? 1 : 2;
\
+ int i = PCI->retc == 1 ? 1 : 2;
\
L_ID = getArgReference(STK, PCI, i++);
\
R_ID = getArgReference(STK, PCI, i++);
\
IC_ID = PCI->argc - PCI->retc == 7 ?
\
NULL : getArgReference(stk, pci, i++);
\
- CL_ID = getArgReference(STK, PCI, i++);
\
- CR_ID = getArgReference(STK, PCI, i++);
\
- ANTI = PCI->argc - PCI->retc == 7 ?
\
- getArgReference(STK, PCI, 8) : getArgReference(STK,
PCI, 9);\
+ CL_ID = getArgReference(STK, PCI, i++);
\
+ CR_ID = getArgReference(STK, PCI, i++);
\
+ ANTI = PCI->argc - PCI->retc == 7 ?
\
+ getArgReference(STK, PCI, 8) : getArgReference(STK,
PCI, 9); \
} while (0)
static inline str
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]