Changeset: ccdef959963c for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=ccdef959963c Modified Files: sql/backends/monet5/sql_time.c Branch: default Log Message:
Small cleanup now that ce is gone diffs (73 lines): diff --git a/sql/backends/monet5/sql_time.c b/sql/backends/monet5/sql_time.c --- a/sql/backends/monet5/sql_time.c +++ b/sql/backends/monet5/sql_time.c @@ -1202,20 +1202,15 @@ nil_2_date(Client cntxt, MalBlkPtr mb, M } static inline str -str_2_date_internal_imp(date *ret, str next, bit ce, bit *hasnil) +str_2_date_internal_imp(date *ret, str next) { - if (!ce || strNil(next)) { - *hasnil = 1; - *ret = date_nil; - } else { - ssize_t pos = 0; - date dt = 0, *conv = &dt; + ssize_t pos = 0; + date dt = 0, *conv = &dt; - pos = date_fromstr(next, &(size_t){sizeof(date)}, &conv, false); - if (pos < (ssize_t) strlen(next) || /* includes pos < 0 */ is_date_nil(*conv)) - return createException(SQL, "batcalc.str_2_date", SQLSTATE(22007) "Date '%s' has incorrect format", next); - *ret = *conv; - } + pos = date_fromstr(next, &(size_t){sizeof(date)}, &conv, false); + if (pos < (ssize_t) strlen(next) || /* includes pos < 0 */ is_date_nil(*conv)) + return createException(SQL, "batcalc.str_2_date", SQLSTATE(22007) "Date '%s' has incorrect format", next); + *ret = *conv; return MAL_SUCCEED; } @@ -1226,7 +1221,6 @@ str_2_date_internal(ptr out, ptr in, int BAT *b = NULL, *res = NULL; BUN q = 0; date *restrict ret = NULL; - bit hasnil = 0; bool is_a_bat = false; bat *r = NULL; @@ -1250,10 +1244,19 @@ str_2_date_internal(ptr out, ptr in, int if (is_a_bat) { BATiter it = bat_iterator(b); - for (BUN i = 0 ; i < q && !msg; i++) - msg = str_2_date_internal_imp(&(ret[i]), BUNtail(it, i), true, &hasnil); + for (BUN i = 0 ; i < q && !msg; i++) { + str next = BUNtail(it, i); + if (strNil(next)) + ret[i] = date_nil; + else + msg = str_2_date_internal_imp(&(ret[i]), next); + } } else { - msg = str_2_date_internal_imp(ret, *(str*)in, true, &hasnil); + str next = *(str*)in; + if (strNil(next)) + *ret = date_nil; + else + msg = str_2_date_internal_imp(ret, next); } bailout: @@ -1261,8 +1264,8 @@ bailout: BBPunfix(b->batCacheid); if (res && !msg) { BATsetcount(res, q); - res->tnil = hasnil; - res->tnonil = !hasnil; + res->tnil = b->tnil; + res->tnonil = b->tnonil; res->tkey = BATcount(res) <= 1; res->tsorted = BATcount(res) <= 1; res->trevsorted = BATcount(res) <= 1; _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list