Changeset: e57df3a6603e for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=e57df3a6603e
Modified Files:
        monetdb5/modules/atoms/str.c
        monetdb5/modules/mal/Tests/All
        testing/Mtest.py.in
Branch: default
Log Message:

Merge with Jul2015 branch.


diffs (106 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
@@ -1439,6 +1439,7 @@ convertCase(BAT *from, BAT *to, str *res
        const unsigned char *src = (const unsigned char *) s;
        const unsigned char *end = (const unsigned char *) (src + len);
        BUN UTF8_CONV_r;
+       int lower_to_upper = from == UTF8_lowerBat;
 
        if (strNil(s)) {
                *res = GDKstrdup(str_nil);
@@ -1450,9 +1451,21 @@ convertCase(BAT *from, BAT *to, str *res
                                int c;
 
                                UTF8_GETCHAR(c, src);
-                               HASHfnd_int(UTF8_CONV_r, fromi, &c);
-                               if (UTF8_CONV_r != BUN_NONE)
-                                       c = *(int*) BUNtloc(toi, UTF8_CONV_r);
+                               if (c < 0x80) {
+                                       /* for ASCII characters we don't need 
to do a hash
+                                        * lookup */
+                                       if (lower_to_upper) {
+                                               if ('a' <= c && c <= 'z')
+                                                       c += 'A' - 'a';
+                                       } else {
+                                               if ('A' <= c && c <= 'Z')
+                                                       c += 'a' - 'A';
+                                       }
+                               } else {
+                                       HASHfnd_int(UTF8_CONV_r, fromi, &c);
+                                       if (UTF8_CONV_r != BUN_NONE)
+                                               c = *(int*) BUNtloc(toi, 
UTF8_CONV_r);
+                               }
                                if (dst + 6 > (unsigned char *) *res + len) {
                                        /* not guaranteed to fit, so allocate 
more space;
                                         * also allocate enough for the rest of 
the
diff --git a/monetdb5/modules/mal/Tests/All b/monetdb5/modules/mal/Tests/All
--- a/monetdb5/modules/mal/Tests/All
+++ b/monetdb5/modules/mal/Tests/All
@@ -31,26 +31,26 @@ mat
 
 remoteInit
 
-remote01
-remote02
-HAVE_GEOM?remote03
-remote04
-remote06
-remote07
-remote08
-remote09
-remote11
-remote12
+!BAD_HOSTNAME?remote01
+!BAD_HOSTNAME?remote02
+!BAD_HOSTNAME&HAVE_GEOM?remote03
+!BAD_HOSTNAME?remote04
+!BAD_HOSTNAME?remote06
+!BAD_HOSTNAME?remote07
+!BAD_HOSTNAME?remote08
+!BAD_HOSTNAME?remote09
+!BAD_HOSTNAME?remote11
+!BAD_HOSTNAME?remote12
 # needs Merovingian and aims at SQL
-#remote88
-#remote89
-remote99
+#!BAD_HOSTNAME?remote88
+#!BAD_HOSTNAME?remote89
+!BAD_HOSTNAME?remote99
 
-remote10
+!BAD_HOSTNAME?remote10
 
 # this will always return something else
-#sabaoth00
-sabaoth01
+#!BAD_HOSTNAME?sabaoth00
+!BAD_HOSTNAME?sabaoth01
 
 partition
 batpartition
diff --git a/testing/Mtest.py.in b/testing/Mtest.py.in
--- a/testing/Mtest.py.in
+++ b/testing/Mtest.py.in
@@ -331,6 +331,7 @@ CONDITIONALS = {
     'HAVE_RUBY'            : "",
     'MERCURIAL'            : "",
     'RELEASERUN'           : "",
+    'BAD_HOSTNAME'         : "",
 }
 
 # a bunch of classes to help with generating (X)HTML files
@@ -3785,6 +3786,12 @@ def main(argv) :
         pass
     os.chdir(BACK)
 
+    # check whether our hostname makes sense
+    try:
+        socket.getaddrinfo(socket.gethostname(), 50000)
+    except:
+        CONDITIONALS['BAD_HOSTNAME'] = '#' # True
+
     # read '.Mapprove.rc'
     if THISFILE == 'Mapprove.py':
         f = os.path.join(TSTTRGBASE, TSTPREF, '.Mapprove.rc')
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to