Changeset: c28a9dad6482 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=c28a9dad6482 Modified Files: monetdb5/modules/atoms/str.c monetdb5/modules/atoms/str.h monetdb5/modules/kernel/batstr.c Branch: default Log Message:
Fix lpad/rpad interfaces: use int. size_t is not available from the MAL level, and the MAL level type must correspond with the C level type. diffs (266 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 @@ -2198,7 +2198,7 @@ STRRtrim2(str *res, str *arg1, str *arg2 * Result: ' hi' */ str -STRLpad(str *res, str *arg1, size_t *len) +STRLpad(str *res, str *arg1, int *len) { const char *s = *arg1; int pad_cnt = *len - UTF8_strlen(s); /* #whitespaces to be prepended */ @@ -2224,7 +2224,7 @@ STRLpad(str *res, str *arg1, size_t *len *res = r; } - if (res == NULL) + if (*res == NULL) throw(MAL, "str.lpad", "Allocation failed"); return MAL_SUCCEED; } @@ -2237,7 +2237,7 @@ STRLpad(str *res, str *arg1, size_t *len * Result: 'hi ' */ str -STRRpad(str *res, str *arg1, size_t *len) +STRRpad(str *res, str *arg1, int *len) { const char *s = *arg1; int pad_cnt = *len - UTF8_strlen(s); /* #whitespaces to be appended */ @@ -2263,7 +2263,7 @@ STRRpad(str *res, str *arg1, size_t *len *res = r; } - if (res == NULL) + if (*res == NULL) throw(MAL, "str.lpad", "Allocation failed"); return MAL_SUCCEED; } @@ -2276,7 +2276,7 @@ STRRpad(str *res, str *arg1, size_t *len * Result: xyxhi */ str -STRLpad2(str *res, str *arg1, size_t *len, str *arg2) +STRLpad2(str *res, str *arg1, int *len, str *arg2) { const char *s = *arg1; int pad_cnt = *len - UTF8_strlen(s); /* #chars to be prepended */ @@ -2322,7 +2322,7 @@ STRLpad2(str *res, str *arg1, size_t *le *res = r; } - if (res == NULL) + if (*res == NULL) throw(MAL, "str.lpad", "Allocation failed"); return MAL_SUCCEED; } @@ -2335,7 +2335,7 @@ STRLpad2(str *res, str *arg1, size_t *le * Result: hixyx */ str -STRRpad2(str *res, str *arg1, size_t *len, str *arg2) +STRRpad2(str *res, str *arg1, int *len, str *arg2) { const char *s = *arg1; int pad_cnt = *len - UTF8_strlen(s); /* #chars to be appended */ @@ -2382,7 +2382,7 @@ STRRpad2(str *res, str *arg1, size_t *le *res = r; } - if (res == NULL) + if (*res == NULL) throw(MAL, "str.lpad", "Allocation failed"); 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 @@ -60,10 +60,10 @@ str_export str STRRtrim(str *res, str *a str_export str STRStrip2(str *res, str *arg1, str *arg2); str_export str STRLtrim2(str *res, str *arg1, str *arg2); str_export str STRRtrim2(str *res, str *arg1, str *arg2); -str_export str STRLpad(str *res, str *arg1, size_t *len); -str_export str STRRpad(str *res, str *arg1, size_t *len); -str_export str STRLpad2(str *res, str *arg1, size_t *len, str *arg2); -str_export str STRRpad2(str *res, str *arg1, size_t *len, str *arg2); +str_export str STRLpad(str *res, str *arg1, int *len); +str_export str STRRpad(str *res, str *arg1, int *len); +str_export str STRLpad2(str *res, str *arg1, int *len, str *arg2); +str_export str STRRpad2(str *res, str *arg1, int *len, str *arg2); str_export str STRmin_no_nil(str *res, str *left, str *right); str_export str STRmax_no_nil(str *res, str *left, str *right); str_export str STRmin(str *res, str *left, str *right); 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 @@ -84,16 +84,16 @@ batstr_export str STRbatStrip2_bat(bat * batstr_export str STRbatLtrim2_bat(bat *ret, bat *l, bat *l2); batstr_export str STRbatRtrim2_bat(bat *ret, bat *l, bat *l2); -batstr_export str STRbatLpad_const(bat *ret, bat *l, size_t *n); -batstr_export str STRbatRpad_const(bat *ret, bat *l, size_t *n); +batstr_export str STRbatLpad_const(bat *ret, bat *l, int *n); +batstr_export str STRbatRpad_const(bat *ret, bat *l, int *n); batstr_export str STRbatLpad_bat(bat *ret, bat *l, bat *n); batstr_export str STRbatRpad_bat(bat *ret, bat *l, bat *n); -batstr_export str STRbatLpad2_const_const(bat *ret, bat *l, size_t *n, str *s2); -batstr_export str STRbatRpad2_const_const(bat *ret, bat *l, size_t *n, str *s2); +batstr_export str STRbatLpad2_const_const(bat *ret, bat *l, int *n, str *s2); +batstr_export str STRbatRpad2_const_const(bat *ret, bat *l, int *n, str *s2); batstr_export str STRbatLpad2_bat_const(bat *ret, bat *l, bat *n, str *s2); batstr_export str STRbatRpad2_bat_const(bat *ret, bat *l, bat *n, str *s2); -batstr_export str STRbatLpad2_const_bat(bat *ret, bat *l, size_t *n, bat *l2); -batstr_export str STRbatRpad2_const_bat(bat *ret, bat *l, size_t *n, bat *l2); +batstr_export str STRbatLpad2_const_bat(bat *ret, bat *l, int *n, bat *l2); +batstr_export str STRbatRpad2_const_bat(bat *ret, bat *l, int *n, bat *l2); batstr_export str STRbatLpad2_bat_bat(bat *ret, bat *l, bat *n, bat *l2); batstr_export str STRbatRpad2_bat_bat(bat *ret, bat *l, bat *n, bat *l2); @@ -353,7 +353,7 @@ bunins_failed: * Output type: str (a BAT of strings) */ static str -do_batstr_constint_str(bat *ret, bat *l, size_t *n, const char *name, str (*func)(str *, str *, size_t *)) +do_batstr_constint_str(bat *ret, bat *l, int *n, const char *name, str (*func)(str *, str *, int *)) { BATiter bi; BAT *bn, *b; @@ -397,12 +397,12 @@ bunins_failed: * Output type: str (a BAT of strings) */ static str -do_batstr_batint_str(bat *ret, bat *l, bat *n, const char *name, str (*func)(str *, str *, size_t *)) +do_batstr_batint_str(bat *ret, bat *l, bat *n, const char *name, str (*func)(str *, str *, int *)) { BATiter bi, bi2; BAT *bn, *b, *b2; BUN p, q; - size_t nn; + int nn; str x; str msg = MAL_SUCCEED; @@ -419,7 +419,7 @@ do_batstr_batint_str(bat *ret, bat *l, b str y = NULL; x = (str) BUNtail(bi, p); - nn = *(size_t *)BUNtail(bi2, p); + nn = *(int *)BUNtail(bi2, p); if (x != 0 && strcmp(x, str_nil) != 0 && (msg = (*func)(&y, &x, &nn)) != MAL_SUCCEED) goto bunins_failed; @@ -447,7 +447,7 @@ bunins_failed: * Output type: str (a BAT of strings) */ static str -do_batstr_constint_conststr_str(bat *ret, bat *l, size_t *n, str *s2, const char *name, str (*func)(str *, str *, size_t *, str *)) +do_batstr_constint_conststr_str(bat *ret, bat *l, int *n, str *s2, const char *name, str (*func)(str *, str *, int *, str *)) { BATiter bi; BAT *bn, *b; @@ -491,12 +491,12 @@ bunins_failed: * Output type: str (a BAT of strings) */ static str -do_batstr_batint_conststr_str(bat *ret, bat *l, bat *n, str *s2, const char *name, str (*func)(str *, str *, size_t *, str *)) +do_batstr_batint_conststr_str(bat *ret, bat *l, bat *n, str *s2, const char *name, str (*func)(str *, str *, int *, str *)) { BATiter bi, bi2; BAT *bn, *b, *b2; BUN p, q; - size_t nn; + int nn; str x; str msg = MAL_SUCCEED; @@ -513,7 +513,7 @@ do_batstr_batint_conststr_str(bat *ret, str y = NULL; x = (str) BUNtail(bi, p); - nn = *(size_t *)BUNtail(bi2, p); + nn = *(int *)BUNtail(bi2, p); if (x != 0 && strcmp(x, str_nil) != 0 && (msg = (*func)(&y, &x, &nn, s2)) != MAL_SUCCEED) goto bunins_failed; @@ -541,7 +541,7 @@ bunins_failed: * Output type: str (a BAT of strings) */ static str -do_batstr_constint_batstr_str(bat *ret, bat *l, size_t *n, bat *l2, const char *name, str (*func)(str *, str *, size_t *, str *)) +do_batstr_constint_batstr_str(bat *ret, bat *l, int *n, bat *l2, const char *name, str (*func)(str *, str *, int *, str *)) { BATiter bi, bi2; BAT *bn, *b, *b2; @@ -591,12 +591,12 @@ bunins_failed: * Output type: str (a BAT of strings) */ static str -do_batstr_batint_batstr_str(bat *ret, bat *l, bat *n, bat *l2, const char *name, str (*func)(str *, str *, size_t *, str *)) +do_batstr_batint_batstr_str(bat *ret, bat *l, bat *n, bat *l2, const char *name, str (*func)(str *, str *, int *, str *)) { BATiter bi, bi2, bi3; BAT *bn, *b, *b2, *b3; BUN p, q; - size_t nn; + int nn; str x, x2; str msg = MAL_SUCCEED; @@ -617,7 +617,7 @@ do_batstr_batint_batstr_str(bat *ret, ba str y = NULL; x = (str) BUNtail(bi, p); - nn = *(size_t *)BUNtail(bi2, p); + nn = *(int *)BUNtail(bi2, p); x2 = (str) BUNtail(bi3, p); if (x != 0 && strcmp(x, str_nil) != 0 && x2 != 0 && strcmp(x2, str_nil) != 0 && @@ -711,13 +711,13 @@ STRbatRtrim2_bat(bat *ret, bat *l, bat * } str -STRbatLpad_const(bat *ret, bat *l, size_t *n) +STRbatLpad_const(bat *ret, bat *l, int *n) { return do_batstr_constint_str(ret, l, n, "batstr.Lpad", STRLpad); } str -STRbatRpad_const(bat *ret, bat *l, size_t *n) +STRbatRpad_const(bat *ret, bat *l, int *n) { return do_batstr_constint_str(ret, l, n, "batstr.Rpad", STRRpad); } @@ -735,13 +735,13 @@ STRbatRpad_bat(bat *ret, bat *l, bat *n) } str -STRbatLpad2_const_const(bat *ret, bat *l, size_t *n, str *s2) +STRbatLpad2_const_const(bat *ret, bat *l, int *n, str *s2) { return do_batstr_constint_conststr_str(ret, l, n, s2, "batstr.Lpad", STRLpad2); } str -STRbatRpad2_const_const(bat *ret, bat *l, size_t *n, str *s2) +STRbatRpad2_const_const(bat *ret, bat *l, int *n, str *s2) { return do_batstr_constint_conststr_str(ret, l, n, s2, "batstr.Rpad", STRRpad2); } @@ -759,13 +759,13 @@ STRbatRpad2_bat_const(bat *ret, bat *l, } str -STRbatLpad2_const_bat(bat *ret, bat *l, size_t *n, bat *l2) +STRbatLpad2_const_bat(bat *ret, bat *l, int *n, bat *l2) { return do_batstr_constint_batstr_str(ret, l, n, l2, "batstr.Lpad", STRLpad2); } str -STRbatRpad2_const_bat(bat *ret, bat *l, size_t *n, bat *l2) +STRbatRpad2_const_bat(bat *ret, bat *l, int *n, bat *l2) { return do_batstr_constint_batstr_str(ret, l, n, l2, "batstr.Rpad", STRRpad2); } _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list