Changeset: 9298bfa9d5d7 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=9298bfa9d5d7 Modified Files: gdk/gdk.h gdk/gdk_aggr.c gdk/gdk_align.c gdk/gdk_atoms.c gdk/gdk_atoms.h gdk/gdk_bat.c gdk/gdk_batop.c gdk/gdk_bbp.c gdk/gdk_calc.c gdk/gdk_calc_compare.h gdk/gdk_group.c gdk/gdk_hash.c gdk/gdk_imprints.c gdk/gdk_join.c gdk/gdk_logger.c gdk/gdk_project.c gdk/gdk_qsort.c gdk/gdk_search.c gdk/gdk_select.c gdk/gdk_ssort.c gdk/gdk_unique.c gdk/gdk_value.c geom/monetdb5/geom.c monetdb5/extras/rapi/converters.c.h monetdb5/mal/mal_atom.c monetdb5/mal/mal_authorize.c monetdb5/mal/mal_debugger.c monetdb5/mal/mal_interpreter.c monetdb5/mal/mal_parser.c monetdb5/modules/atoms/color.c monetdb5/modules/atoms/color.h monetdb5/modules/atoms/json.c monetdb5/modules/atoms/mtime.c monetdb5/modules/atoms/str.c monetdb5/modules/kernel/algebra.c monetdb5/modules/kernel/batcolor.c monetdb5/modules/kernel/batmmath.c monetdb5/modules/kernel/microbenchmark.c monetdb5/modules/kernel/mmath.c monetdb5/modules/mal/batcalc.c monetdb5/modules/mal/calc.c monetdb5/modules/mal/clients.c monetdb5/modules/mal/iterator.c monetdb5/modules/mal/language.c monetdb5/modules/mal/mal_io.c monetdb5/modules/mal/mkey.c monetdb5/modules/mal/pcre.c monetdb5/modules/mal/remote.c monetdb5/modules/mal/tablet.c monetdb5/optimizer/opt_mergetable.c sql/backends/monet5/LSST/lsst.c sql/backends/monet5/UDF/cudf/udf_impl.h sql/backends/monet5/UDF/pyapi/conversion.c sql/backends/monet5/UDF/pyapi/convert_loops.h sql/backends/monet5/UDF/pyapi/emit.c sql/backends/monet5/generator/generator.c sql/backends/monet5/sql.c sql/backends/monet5/sql_cast_impl_down_from_flt.h sql/backends/monet5/sql_cast_impl_int.h sql/backends/monet5/sql_cast_impl_up_to_flt.h sql/backends/monet5/sql_cat.c sql/backends/monet5/sql_fround.c sql/backends/monet5/sql_fround_impl.h sql/backends/monet5/sql_result.c sql/backends/monet5/sql_round.c sql/backends/monet5/sql_round_impl.h sql/backends/monet5/sql_user.c sql/backends/monet5/vaults/bam/bam_lib.c sql/backends/monet5/vaults/fits/fits.c sql/backends/monet5/vaults/lidar/lidar.c sql/backends/monet5/vaults/netcdf/netcdf.c sql/backends/monet5/vaults/shp/shp.c sql/server/sql_atom.c sql/server/sql_mvc.c sql/server/sql_parser.y sql/server/sql_privileges.c sql/storage/bat/bat_storage.c sql/storage/bat/bat_table.c sql/storage/store.c sql/storage/store_dependency.c Branch: default Log Message:
Introduced macros is_XXX_nil() to check whether a value is NIL. diffs (truncated from 6846 to 300 lines): diff --git a/gdk/gdk.h b/gdk/gdk.h --- a/gdk/gdk.h +++ b/gdk/gdk.h @@ -1293,13 +1293,13 @@ gdk_export BUN ORDERfndlast(BAT *b, cons gdk_export BUN BUNfnd(BAT *b, const void *right); #define BUNfndVOID(b, v) \ - (((*(const oid*)(v) == oid_nil) ^ ((b)->tseqbase == oid_nil)) | \ + ((is_oid_nil(*(const oid*)(v)) ^ is_oid_nil((b)->tseqbase)) | \ (*(const oid*)(v) < (b)->tseqbase) | \ (*(const oid*)(v) >= (b)->tseqbase + (b)->batCount) ? \ BUN_NONE : \ (BUN) (*(const oid*)(v) - (b)->tseqbase)) -#define BATttype(b) ((b)->ttype == TYPE_void && (b)->tseqbase != oid_nil ? \ +#define BATttype(b) ((b)->ttype == TYPE_void && !is_oid_nil((b)->tseqbase) ? \ TYPE_oid : (b)->ttype) #define Tbase(b) ((b)->tvheap->base) @@ -1528,19 +1528,19 @@ gdk_export void GDKqsort(void *h, void * gdk_export void GDKqsort_rev(void *h, void *t, const void *base, size_t n, int hs, int ts, int tpe); #define BATtordered(b) ((b)->ttype == TYPE_void || (b)->tsorted) -#define BATtrevordered(b) (((b)->ttype == TYPE_void && (b)->tseqbase == oid_nil) || (b)->trevsorted) -#define BATtdense(b) (BATtvoid(b) && (b)->tseqbase != oid_nil) +#define BATtrevordered(b) (((b)->ttype == TYPE_void && is_oid_nil((b)->tseqbase)) || (b)->trevsorted) +#define BATtdense(b) (BATtvoid(b) && !is_oid_nil((b)->tseqbase)) #define BATtvoid(b) (((b)->tdense && (b)->tsorted) || (b)->ttype==TYPE_void) #define BATtkey(b) (b->tkey != FALSE || BATtdense(b)) /* set some properties that are trivial to deduce */ #define BATsettrivprop(b) \ do { \ - assert((b)->hseqbase != oid_nil); \ + assert(!is_oid_nil((b)->hseqbase)); \ (b)->batDirtydesc = 1; /* likely already set */ \ /* the other head properties should already be correct */ \ if ((b)->ttype == TYPE_void) { \ - if ((b)->tseqbase == oid_nil) { \ + if (is_oid_nil((b)->tseqbase)) { \ (b)->tnonil = (b)->batCount == 0; \ (b)->tnil = !(b)->tnonil; \ (b)->trevsorted = 1; \ @@ -1570,7 +1570,7 @@ gdk_export void GDKqsort_rev(void *h, vo } else if ((b)->ttype == TYPE_oid) { \ /* b->batCount == 1 */ \ oid sqbs; \ - if ((sqbs = ((oid *) (b)->theap.base)[0]) == oid_nil) { \ + if (is_oid_nil((sqbs = ((oid *) (b)->theap.base)[0]))) { \ (b)->tdense = 0; \ (b)->tnonil = 0; \ (b)->tnil = 1; \ @@ -2427,7 +2427,7 @@ gdk_export void *THRdata[THREADDATA]; static inline bat BBPcheck(bat x, const char *y) { - if (x && x != bat_nil) { + if (!is_bat_nil(x)) { assert(x > 0); if (x < 0 || x >= getBBPsize() || BBP_logical(x) == NULL) { @@ -2457,7 +2457,7 @@ static inline char * Tpos(BATiter *bi, BUN p) { bi->tvid = bi->b->tseqbase; - if (bi->tvid != oid_nil) + if (!is_oid_nil(bi->tvid)) bi->tvid += p; return (char*)&bi->tvid; } diff --git a/gdk/gdk_aggr.c b/gdk/gdk_aggr.c --- a/gdk/gdk_aggr.c +++ b/gdk/gdk_aggr.c @@ -104,12 +104,12 @@ BATgroupaggrinit(BAT *b, BAT *g, BAT *e, gids = (const oid *) Tloc(g, 0); /* find first non-nil */ for (i = 0, ngrp = BATcount(g); i < ngrp; i++, gids++) { - if (*gids != oid_nil) { + if (!is_oid_nil(*gids)) { min = *gids; break; } } - if (min != oid_nil) { + if (!is_oid_nil(min)) { /* found a non-nil, max must be last * value (and there is one!) */ max = * (const oid *) Tloc(g, BUNlast(g) - 1); @@ -118,7 +118,7 @@ BATgroupaggrinit(BAT *b, BAT *g, BAT *e, /* we'll do a complete scan */ gids = (const oid *) Tloc(g, 0); for (i = 0, ngrp = BATcount(g); i < ngrp; i++, gids++) { - if (*gids != oid_nil) { + if (!is_oid_nil(*gids)) { if (*gids < min) min = *gids; if (*gids > max) @@ -260,9 +260,9 @@ dofsum(const void *restrict values, oid continue; if (pergroup[grp].partials == NULL) continue; - if (tp1 == TYPE_flt && ((const flt *) values)[listi] != flt_nil) + if (tp1 == TYPE_flt && !is_flt_nil(((const flt *) values)[listi])) x = ((const flt *) values)[listi]; - else if (tp1 == TYPE_dbl && ((const dbl *) values)[listi] != dbl_nil) + else if (tp1 == TYPE_dbl && !is_dbl_nil(((const dbl *) values)[listi])) x = ((const dbl *) values)[listi]; else { /* it's a nil */ @@ -370,7 +370,7 @@ dofsum(const void *restrict values, oid nils++; } else ((flt *) results)[grp] = (flt) x; - } else if (x == GDK_dbl_min) { + } else if (is_dbl_nil(x)) { if (abort_on_error) goto overflow; ((dbl *) results)[grp] = dbl_nil; @@ -439,7 +439,7 @@ dofsum(const void *restrict values, oid nils++; } else ((flt *) results)[grp] = (flt) hi; - } else if (hi == GDK_dbl_min) { + } else if (is_dbl_nil(hi)) { if (abort_on_error) goto overflow; ((dbl *) results)[grp] = dbl_nil; @@ -486,7 +486,7 @@ dofsum(const void *restrict values, oid int seenval = 0; \ for (i = start; i < end && nils == 0; i++) { \ x = vals[i]; \ - if (x == TYPE1##_nil) { \ + if (is_##TYPE1##_nil(x)) { \ if (!skip_nils) { \ sum = TYPE2##_nil; \ nils = 1; \ @@ -519,7 +519,7 @@ dofsum(const void *restrict values, oid if (i >= end) \ break; \ x = vals[i]; \ - if (x == TYPE1##_nil) { \ + if (is_##TYPE1##_nil(x)) { \ if (!skip_nils) { \ sum = TYPE2##_nil; \ nils = 1; \ @@ -547,10 +547,10 @@ dofsum(const void *restrict values, oid (gids[i] >= min && gids[i] <= max)) { \ gid = gids ? gids[i] - min : (oid) i; \ x = vals[i]; \ - if (x == TYPE1##_nil) { \ + if (is_##TYPE1##_nil(x)) { \ if (!skip_nils) { \ sums[gid] = TYPE2##_nil; \ - nils++; \ + nils++; \ } \ } else { \ if (nil_if_empty && \ @@ -558,7 +558,7 @@ dofsum(const void *restrict values, oid seen[gid >> 5] |= 1U << (gid & 0x1F); \ sums[gid] = 0; \ } \ - if (sums[gid] != TYPE2##_nil) { \ + if (!is_##TYPE2##_nil(sums[gid])) { \ ADD_WITH_CHECK( \ TYPE1, \ x, \ @@ -584,10 +584,10 @@ dofsum(const void *restrict values, oid if (i >= end) \ break; \ if (gids == NULL || \ - (gids[i] >= min && gids[i] <= max)) { \ + (gids[i] >= min && gids[i] <= max)) { \ gid = gids ? gids[i] - min : (oid) i; \ x = vals[i]; \ - if (x == TYPE1##_nil) { \ + if (is_##TYPE1##_nil(x)) { \ if (!skip_nils) { \ sums[gid] = TYPE2##_nil; \ nils++; \ @@ -598,7 +598,7 @@ dofsum(const void *restrict values, oid seen[gid >> 5] |= 1U << (gid & 0x1F); \ sums[gid] = 0; \ } \ - if (sums[gid] != TYPE2##_nil) { \ + if (!is_##TYPE2##_nil(sums[gid])) { \ ADD_WITH_CHECK( \ TYPE1, \ x, \ @@ -899,7 +899,7 @@ BATsum(void *res, int tp, BAT *b, BAT *s avg = dbl_nil; } if (tp == TYPE_flt) { - if (avg == dbl_nil) + if (is_dbl_nil(avg)) *(flt *) res = flt_nil; else if (cnt > 0 && GDK_flt_max / cnt < fabs(avg)) { @@ -912,7 +912,7 @@ BATsum(void *res, int tp, BAT *b, BAT *s *(flt *) res = (flt) avg * cnt; } } else { - if (avg == dbl_nil) { + if (is_dbl_nil(avg)) { *(dbl *) res = dbl_nil; } else if (cnt > 0 && GDK_dbl_max / cnt < fabs(avg)) { @@ -976,7 +976,7 @@ BATsum(void *res, int tp, BAT *b, BAT *s else \ gid = (oid) i; \ } \ - if (vals[i] == TYPE1##_nil) { \ + if (is_##TYPE1##_nil(vals[i])) { \ if (!skip_nils) { \ prods[gid] = TYPE2##_nil; \ nils++; \ @@ -987,7 +987,7 @@ BATsum(void *res, int tp, BAT *b, BAT *s seen[gid >> 5] |= 1U << (gid & 0x1F); \ prods[gid] = 1; \ } \ - if (prods[gid] != TYPE2##_nil) { \ + if (!is_##TYPE2##_nil(prods[gid])) { \ MUL4_WITH_CHECK( \ TYPE1, vals[i], \ TYPE2, prods[gid], \ @@ -1032,12 +1032,12 @@ BATsum(void *res, int tp, BAT *b, BAT *s seen[gid >> 5] |= 1U << (gid & 0x1F); \ prods[gid] = 1; \ } \ - if (vals[i] == TYPE##_nil) { \ + if (is_##TYPE##_nil(vals[i])) { \ if (!skip_nils) { \ prods[gid] = hge_nil; \ nils++; \ } \ - } else if (prods[gid] != hge_nil) { \ + } else if (!is_hge_nil(prods[gid])) { \ HGEMUL_CHECK(TYPE, vals[i], \ hge, prods[gid], \ prods[gid], \ @@ -1073,7 +1073,7 @@ BATsum(void *res, int tp, BAT *b, BAT *s else \ gid = (oid) i; \ } \ - if (vals[i] == TYPE##_nil) { \ + if (is_##TYPE##_nil(vals[i])) { \ if (!skip_nils) { \ prods[gid] = lng_nil; \ nils++; \ @@ -1084,7 +1084,7 @@ BATsum(void *res, int tp, BAT *b, BAT *s seen[gid >> 5] |= 1U << (gid & 0x1F); \ prods[gid] = 1; \ } \ - if (prods[gid] != lng_nil) { \ + if (!is_lng_nil(prods[gid])) { \ LNGMUL_CHECK( \ TYPE, vals[i], \ lng, prods[gid], \ @@ -1123,18 +1123,18 @@ BATsum(void *res, int tp, BAT *b, BAT *s else \ gid = (oid) i; \ } \ - if (vals[i] == TYPE1##_nil) { \ + if (is_##TYPE1##_nil(vals[i])) { \ if (!skip_nils) { \ prods[gid] = TYPE2##_nil; \ nils++; \ } \ } else { \ - if (nil_if_empty && \ + if (nil_if_empty && \ !(seen[gid >> 5] & (1U << (gid & 0x1F)))) { \ seen[gid >> 5] |= 1U << (gid & 0x1F); \ prods[gid] = 1; \ } \ - if (prods[gid] != TYPE2##_nil) { \ + if (!is_##TYPE2##_nil(prods[gid])) { \ if (ABSOLUTE(vals[i]) > 1 && \ GDK_##TYPE2##_max / ABSOLUTE(vals[i]) < ABSOLUTE(prods[gid])) { \ if (abort_on_error) \ @@ -1576,10 +1576,10 @@ BATprod(void *res, int tp, BAT *b, BAT * gid = gids[i] - min; \ else \ gid = (oid) i; \ - if (vals[i] == TYPE##_nil) { \ + if (is_##TYPE##_nil(vals[i])) { \ if (!skip_nils) \ cnts[gid] = lng_nil; \ - } else if (cnts[gid] != lng_nil) { \ + } else if (!is_lng_nil(cnts[gid])) { \ AVERAGE_ITER(TYPE, vals[i], \ avgs[gid], \ rems[gid], \ @@ -1588,7 +1588,7 @@ BATprod(void *res, int tp, BAT *b, BAT * } \ } \ for (i = 0; i < ngrp; i++) { \ - if (cnts[i] == 0 || cnts[i] == lng_nil) { \ + if (cnts[i] == 0 || is_lng_nil(cnts[i])) { \ dbls[i] = dbl_nil; \ _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list