Changeset: 332541f70240 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=332541f70240
Modified Files:
gdk/gdk.h
gdk/gdk_bat.c
Branch: arrays
Log Message:
dimensionBATelementsNum function
diffs (58 lines):
diff --git a/gdk/gdk.h b/gdk/gdk.h
--- a/gdk/gdk.h
+++ b/gdk/gdk.h
@@ -1087,7 +1087,7 @@ fprintf(stderr, "materialise: element re
gdk_export BAT* materialiseDimensionBAT(BAT* dimensionBAT);
gdk_export BUN dimensionBATsize(BAT* dimensionBAT);
-
+gdk_export BUN dimensionBATelementsNum(BAT* dimensionBAT);
/*
* @- Heap Management
* Heaps are the low-level entities of mass storage in
diff --git a/gdk/gdk_bat.c b/gdk/gdk_bat.c
--- a/gdk/gdk_bat.c
+++ b/gdk/gdk_bat.c
@@ -3389,3 +3389,42 @@ BUN dimensionBATsize(BAT *dimensionBAT)
}
return 0;
}
+
+BUN dimensionBATelementsNum(BAT* dimensionBAT) {
+#define num(TPE) \
+ ({ \
+ TPE min, max, step; \
+ long elementRepeats, groupRepeats; \
+ dimensionCharacteristics(TPE, dimensionBAT, &min, &max, &step,
&elementRepeats, &groupRepeats); \
+ dimensionElementsNum(min, max, step); \
+ })
+ switch(ATOMtype(BATttype(dimensionBAT))) {
+ case TYPE_bte:
+ return num(bte);
+ case TYPE_sht:
+ return num(sht);
+ case TYPE_int:
+ return num(int);
+ case TYPE_flt:
+ return num(flt);
+ case TYPE_dbl:
+ return num(dbl);
+ case TYPE_lng:
+ return num(lng);
+#ifdef HAVE_HGE
+ case TYPE_hge:
+ return num(hge);
+#endif
+ case TYPE_oid:
+#if SIZEOF_OID == SIZEOF_INT
+ return num(int);
+#else
+ return num(lng);
+#endif
+ break;
+ default:
+ fprintf(stderr, "dimensionBATelementsNum: dimension type not
handled\n");
+ }
+
+ return 0;
+}
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list