Changeset: c4be5a7db233 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/c4be5a7db233
Modified Files:
        monetdb5/modules/atoms/str.c
Branch: Aug2024
Log Message:

make sure all ignore case values are equal.


diffs (33 lines):

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
@@ -2875,19 +2875,22 @@ ignorecase(const bat *ic_id, bool *icase
        if ((c = BATdescriptor(*ic_id)) == NULL)
                throw(MAL, fname, SQLSTATE(HY002) RUNTIME_OBJECT_MISSING);
 
-       if (BATcount(c) != 1) {
-               BUN cnt = BATcount(c);
+       BUN cnt = BATcount(c);
+       if (cnt < 1) {
                BBPreclaim(c);
-               if (cnt == 0)
-                       throw(MAL, fname, SQLSTATE(42000) "Missing ignore case 
value\n");
-               else
-                       throw(MAL, fname, SQLSTATE(42000) "Multiple ignore case 
values passed, only one expected\n");
+               throw(MAL, fname, SQLSTATE(42000) "Missing ignore case 
value\n");
        }
 
        BATiter bi = bat_iterator(c);
        *icase = *(bit *) BUNtloc(bi, 0);
+       for(BUN i = 1; i<cnt; i++) {
+               if (*icase != *(bit*)BUNtloc(bi, i)) {
+                       bat_iterator_end(&bi);
+                       BBPreclaim(c);
+                       throw(MAL, fname, SQLSTATE(42000) "Multiple ignore case 
values passed, only one expected\n");
+               }
+       }
        bat_iterator_end(&bi);
-
        BBPreclaim(c);
        return MAL_SUCCEED;
 }
_______________________________________________
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org

Reply via email to