Changeset: c2e4cf271f0c for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=c2e4cf271f0c
Modified Files:
        clients/Tests/exports.stable.out
        gdk/gdk_analytic_bounds.c
        monetdb5/modules/atoms/str.c
        monetdb5/modules/atoms/str.h
        monetdb5/modules/kernel/batstr.c
        sql/backends/monet5/sql_cast.c
        sql/backends/monet5/sql_optimizer.c
        sql/backends/monet5/sql_time.c
        sql/backends/monet5/sql_upgrades.c
        sql/common/sql_types.c
        sql/server/rel_optimizer.c
        sql/server/rel_rewriter.c
        sql/server/rel_rewriter.h
        sql/server/rel_unnest.c
        sql/storage/bat/bat_storage.c
        sql/storage/bat/bat_storage.h
        sql/storage/store.c
        sql/test/BugTracker-2013/Tests/timestamp.Bug-3401.stable.err
        sql/test/BugTracker-2016/Tests/convert-function-test.Bug-3460.stable.err
        
sql/test/BugTracker-2016/Tests/convert-function-test.Bug-3460.stable.err.int128
        
sql/test/BugTracker/Tests/inserting_invalid_timestamp.SF-1363557.stable.err
        sql/test/miscellaneous/Tests/select_groupby.stable.err
        sql/test/pg_regress/Tests/date.stable.err
        sql/test/pg_regress/Tests/time.stable.err
        sql/test/pg_regress/Tests/timestamp.stable.err
        sql/test/pg_regress/Tests/timestamptz.stable.err
        sql/test/pg_regress/Tests/timetz.stable.err
        sql/test/sys-schema/Tests/systemfunctions.stable.out
        sql/test/sys-schema/Tests/systemfunctions.stable.out.int128
        sql/test/wlcr/Tests/wlr110.stable.err
Branch: default
Log Message:

Merged with oscar


diffs (truncated from 2427 to 300 lines):

diff --git a/clients/Tests/exports.stable.out b/clients/Tests/exports.stable.out
--- a/clients/Tests/exports.stable.out
+++ b/clients/Tests/exports.stable.out
@@ -1144,46 +1144,6 @@ str STRTail(str *res, const str *arg1, c
 str STRUpper(str *res, const str *arg1);
 str STRWChrAt(int *res, const str *arg1, const int *at);
 str STRascii(int *ret, const str *s);
-str STRbatBytes(bat *ret, const bat *l);
-str STRbatLength(bat *ret, const bat *l);
-str STRbatLower(bat *ret, const bat *l);
-str STRbatLpad2_bat_bat(bat *ret, const bat *l, const bat *n, const bat *l2);
-str STRbatLpad2_bat_const(bat *ret, const bat *l, const bat *n, const str *s2);
-str STRbatLpad2_const_bat(bat *ret, const bat *l, const int *n, const bat *l2);
-str STRbatLpad2_const_const(bat *ret, const bat *l, const int *n, const str 
*s2);
-str STRbatLpad_bat(bat *ret, const bat *l, const bat *n);
-str STRbatLpad_const(bat *ret, const bat *l, const int *n);
-str STRbatLtrim(bat *ret, const bat *l);
-str STRbatLtrim2_bat(bat *ret, const bat *l, const bat *l2);
-str STRbatLtrim2_const(bat *ret, const bat *l, const str *s2);
-str STRbatPrefix(bat *ret, const bat *l, const bat *r);
-str STRbatPrefixcst(bat *ret, const bat *l, const str *cst);
-str STRbatRpad2_bat_bat(bat *ret, const bat *l, const bat *n, const bat *l2);
-str STRbatRpad2_bat_const(bat *ret, const bat *l, const bat *n, const str *s2);
-str STRbatRpad2_const_bat(bat *ret, const bat *l, const int *n, const bat *l2);
-str STRbatRpad2_const_const(bat *ret, const bat *l, const int *n, const str 
*s2);
-str STRbatRpad_bat(bat *ret, const bat *l, const bat *n);
-str STRbatRpad_const(bat *ret, const bat *l, const int *n);
-str STRbatRstrSearch(bat *ret, const bat *l, const bat *r);
-str STRbatRstrSearchcst(bat *ret, const bat *l, const str *cst);
-str STRbatRtrim(bat *ret, const bat *l);
-str STRbatRtrim2_bat(bat *ret, const bat *l, const bat *l2);
-str STRbatRtrim2_const(bat *ret, const bat *l, const str *s2);
-str STRbatStrip(bat *ret, const bat *l);
-str STRbatStrip2_bat(bat *ret, const bat *l, const bat *l2);
-str STRbatStrip2_const(bat *ret, const bat *l, const str *s2);
-str STRbatSubstitutecst(bat *ret, const bat *l, const str *arg2, const str 
*arg3, const bit *rep);
-str STRbatSuffix(bat *ret, const bat *l, const bat *r);
-str STRbatSuffixcst(bat *ret, const bat *l, const str *cst);
-str STRbatTail(bat *ret, const bat *l, const bat *r);
-str STRbatTailcst(bat *ret, const bat *l, const int *cst);
-str STRbatUpper(bat *ret, const bat *l);
-str STRbatWChrAt(bat *ret, const bat *l, const bat *r);
-str STRbatWChrAtcst(bat *ret, const bat *l, const int *cst);
-str STRbatstrSearch(bat *ret, const bat *l, const bat *r);
-str STRbatstrSearchcst(bat *ret, const bat *l, const str *cst);
-str STRbatsubstring(bat *ret, const bat *l, const bat *r, const bat *t);
-str STRbatsubstringcst(bat *ret, const bat *bid, const int *start, const int 
*length);
 str STRinsert(str *ret, const str *s, const int *start, const int *l, const 
str *s2);
 str STRlikewrap(bit *ret, const str *s, const str *pat, const str *esc);
 str STRlikewrap2(bit *ret, const str *s, const str *pat);
@@ -1872,8 +1832,6 @@ str stopTrace(Client cntxt);
 str stoptraceRef;
 void strAfterCall(ValPtr v, ValPtr bak);
 void strBeforeCall(ValPtr v, ValPtr bak);
-str strEpilogue(void *ret);
-str strPrelude(void *ret);
 str strRef;
 str streamsRef;
 str stringdiff_impl(int *res, str *s1, str *s2);
diff --git a/gdk/gdk_analytic_bounds.c b/gdk/gdk_analytic_bounds.c
--- a/gdk/gdk_analytic_bounds.c
+++ b/gdk/gdk_analytic_bounds.c
@@ -548,10 +548,7 @@
 
 #define ANALYTICAL_WINDOW_BOUNDS_BRANCHES_GROUPS(IMP, LIMIT, TPE)      \
        do {                                                            \
-               switch (tp1) {                                          \
-               case TYPE_bit:                                          \
-                       ANALYTICAL_WINDOW_BOUNDS_CALC_FIXED(bit, 
ANALYTICAL_WINDOW_BOUNDS_FIXED_GROUPS##IMP, LIMIT, TPE); \
-                       break;                                          \
+               switch (ATOMbasetype(tp1)) {    \
                case TYPE_bte:                                          \
                        ANALYTICAL_WINDOW_BOUNDS_CALC_FIXED(bte, 
ANALYTICAL_WINDOW_BOUNDS_FIXED_GROUPS##IMP, LIMIT, TPE); \
                        break;                                          \
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
@@ -2935,7 +2935,7 @@ UTF8_assert(const char *s)
 #define UTF8_assert(s)         ((void) 0)
 #endif
 
-str
+static str
 strPrelude(void *ret)
 {
        (void) ret;
@@ -2984,7 +2984,7 @@ strPrelude(void *ret)
        throw(MAL, "str.prelude", GDK_EXCEPTION);
 }
 
-str
+static str
 strEpilogue(void *ret)
 {
        (void) ret;
@@ -3287,7 +3287,7 @@ convertCase(BAT *from, BAT *to, str *res
 /*
  * The SQL like function return a boolean
  */
-static int
+static bool
 STRlike(const char *s, const char *pat, const char *esc)
 {
        const char *t, *p;
@@ -3297,7 +3297,7 @@ STRlike(const char *s, const char *pat, 
                if (esc && *p == *esc) {
                        p++;
                        if (*p != *t)
-                               return FALSE;
+                               return false;
                        t++;
                } else if (*p == '_')
                        t++;
@@ -3306,34 +3306,40 @@ STRlike(const char *s, const char *pat, 
                        while (*p == '%')
                                p++;
                        if (*p == 0)
-                               return TRUE;    /* tail is acceptable */
+                               return true;    /* tail is acceptable */
                        for (; *p && *t; t++)
                                if (STRlike(t, p, esc))
-                                       return TRUE;
+                                       return true;
                        if (*p == 0 && *t == 0)
-                               return TRUE;
-                       return FALSE;
+                               return true;
+                       return false;
                } else if (*p == *t)
                        t++;
                else
-                       return FALSE;
+                       return false;
        }
        if (*p == '%' && *(p + 1) == 0)
-               return TRUE;
+               return true;
        return *t == 0 && *p == 0;
 }
 
 str
 STRlikewrap(bit *ret, const str *s, const str *pat, const str *esc)
 {
-       *ret = STRlike(*s, *pat, *esc);
+       if (strNil(*s) || strNil(*pat) || strNil(*esc))
+               *ret = bit_nil;
+       else
+               *ret = (bit) STRlike(*s, *pat, *esc);
        return MAL_SUCCEED;
 }
 
 str
 STRlikewrap2(bit *ret, const str *s, const str *pat)
 {
-       *ret = STRlike(*s, *pat, NULL);
+       if (strNil(*s) || strNil(*pat))
+               *ret = bit_nil;
+       else
+               *ret = (bit) STRlike(*s, *pat, NULL);
        return MAL_SUCCEED;
 }
 
diff --git a/monetdb5/modules/atoms/str.h b/monetdb5/modules/atoms/str.h
--- a/monetdb5/modules/atoms/str.h
+++ b/monetdb5/modules/atoms/str.h
@@ -13,8 +13,6 @@
 #include "mal_exception.h"
 #include <ctype.h>
 
-mal_export str strPrelude(void *ret);
-mal_export str strEpilogue(void *ret);
 mal_export str STRtostr(str *res, const str *src);
 mal_export str STRConcat(str *res, const str *val1, const str *val2);
 mal_export str STRLength(int *res, const str *arg1);
diff --git a/monetdb5/modules/kernel/batstr.c b/monetdb5/modules/kernel/batstr.c
--- a/monetdb5/modules/kernel/batstr.c
+++ b/monetdb5/modules/kernel/batstr.c
@@ -23,52 +23,6 @@
 #include "mal_exception.h"
 #include "str.h"
 
-mal_export str STRbatPrefix(bat *ret, const bat *l, const bat *r);
-mal_export str STRbatPrefixcst(bat *ret, const bat *l, const str *cst);
-mal_export str STRbatSuffix(bat *ret, const bat *l, const bat *r);
-mal_export str STRbatSuffixcst(bat *ret, const bat *l, const str *cst);
-mal_export str STRbatstrSearch(bat *ret, const bat *l, const bat *r);
-mal_export str STRbatstrSearchcst(bat *ret, const bat *l, const str *cst);
-mal_export str STRbatRstrSearch(bat *ret, const bat *l, const bat *r);
-mal_export str STRbatRstrSearchcst(bat *ret, const bat *l, const str *cst);
-mal_export str STRbatTail(bat *ret, const bat *l, const bat *r);
-mal_export str STRbatTailcst(bat *ret, const bat *l, const int *cst);
-mal_export str STRbatWChrAt(bat *ret, const bat *l, const bat *r);
-mal_export str STRbatWChrAtcst(bat *ret, const bat *l, const int *cst);
-mal_export str STRbatSubstitutecst(bat *ret, const bat *l, const str *arg2, 
const str *arg3, const bit *rep);
-
-mal_export str STRbatLower(bat *ret, const bat *l);
-mal_export str STRbatUpper(bat *ret, const bat *l);
-mal_export str STRbatStrip(bat *ret, const bat *l);
-mal_export str STRbatLtrim(bat *ret, const bat *l);
-mal_export str STRbatRtrim(bat *ret, const bat *l);
-mal_export str STRbatStrip2_const(bat *ret, const bat *l, const str *s2);
-mal_export str STRbatLtrim2_const(bat *ret, const bat *l, const str *s2);
-mal_export str STRbatRtrim2_const(bat *ret, const bat *l, const str *s2);
-mal_export str STRbatStrip2_bat(bat *ret, const bat *l, const bat *l2);
-mal_export str STRbatLtrim2_bat(bat *ret, const bat *l, const bat *l2);
-mal_export str STRbatRtrim2_bat(bat *ret, const bat *l, const bat *l2);
-
-mal_export str STRbatLpad_const(bat *ret, const bat *l, const int *n);
-mal_export str STRbatRpad_const(bat *ret, const bat *l, const int *n);
-mal_export str STRbatLpad_bat(bat *ret, const bat *l, const bat *n);
-mal_export str STRbatRpad_bat(bat *ret, const bat *l, const bat *n);
-mal_export str STRbatLpad2_const_const(bat *ret, const bat *l, const int *n, 
const str *s2);
-mal_export str STRbatRpad2_const_const(bat *ret, const bat *l, const int *n, 
const str *s2);
-mal_export str STRbatLpad2_bat_const(bat *ret, const bat *l, const bat *n, 
const str *s2);
-mal_export str STRbatRpad2_bat_const(bat *ret, const bat *l, const bat *n, 
const str *s2);
-mal_export str STRbatLpad2_const_bat(bat *ret, const bat *l, const int *n, 
const bat *l2);
-mal_export str STRbatRpad2_const_bat(bat *ret, const bat *l, const int *n, 
const bat *l2);
-mal_export str STRbatLpad2_bat_bat(bat *ret, const bat *l, const bat *n, const 
bat *l2);
-mal_export str STRbatRpad2_bat_bat(bat *ret, const bat *l, const bat *n, const 
bat *l2);
-
-mal_export str STRbatLength(bat *ret, const bat *l);
-mal_export str STRbatBytes(bat *ret, const bat *l);
-
-mal_export str STRbatsubstringcst(bat *ret, const bat *bid, const int *start, 
const int *length);
-mal_export str STRbatsubstring(bat *ret, const bat *l, const bat *r, const bat 
*t);
-
-
 #define prepareOperand(X,Y,Z)                                                  
                \
        if( (X= BATdescriptor(*Y)) == NULL )                                    
        \
                throw(MAL, Z, SQLSTATE(HY002) RUNTIME_OBJECT_MISSING);
@@ -151,13 +105,13 @@ bunins_failed:
        throw(MAL, name, OPERATION_FAILED " During bulk operation");
 }
 
-str
+static str
 STRbatLength(bat *ret, const bat *l)
 {
        return do_batstr_int(ret, l, "batstr.Length", STRLength);
 }
 
-str
+static str
 STRbatBytes(bat *ret, const bat *l)
 {
        return do_batstr_int(ret, l, "batstr.Bytes", STRBytes);
@@ -642,139 +596,139 @@ do_batstr_batint_batstr_str(bat *ret, co
        throw(MAL, name, OPERATION_FAILED " During bulk operation");
 }
 
-str
+static str
 STRbatLower(bat *ret, const bat *l)
 {
        return do_batstr_str(ret, l, "batstr.Lower", STRLower);
 }
 
-str
+static str
 STRbatUpper(bat *ret, const bat *l)
 {
        return do_batstr_str(ret, l, "batstr.Upper", STRUpper);
 }
 
-str
+static str
 STRbatStrip(bat *ret, const bat *l)
 {
        return do_batstr_str(ret, l, "batstr.Strip", STRStrip);
 }
 
-str
+static str
 STRbatLtrim(bat *ret, const bat *l)
 {
        return do_batstr_str(ret, l, "batstr.Ltrim", STRLtrim);
 }
 
-str
+static str
 STRbatRtrim(bat *ret, const bat *l)
 {
        return do_batstr_str(ret, l, "batstr.Rtrim", STRRtrim);
 }
 
-str
+static str
 STRbatStrip2_const(bat *ret, const bat *l, const str *s2)
 {
        return do_batstr_conststr_str(ret, l, s2, "batstr.Strip", STRStrip2);
 }
 
-str
+static str
 STRbatLtrim2_const(bat *ret, const bat *l, const str *s2)
 {
        return do_batstr_conststr_str(ret, l, s2, "batstr.Ltrim", STRLtrim2);
 }
 
-str
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to