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

Reply via email to