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 -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org

Reply via email to