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
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list