Changeset: 401b9bad19a4 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=401b9bad19a4
Modified Files:
gdk/gdk_bbp.c
monetdb5/modules/atoms/mtime.mal
Branch: mtime
Log Message:
Some fixes to daytime widening.
diffs (63 lines):
diff --git a/gdk/gdk_bbp.c b/gdk/gdk_bbp.c
--- a/gdk/gdk_bbp.c
+++ b/gdk/gdk_bbp.c
@@ -770,13 +770,14 @@ fixdateheap(BAT *b, const char *anme)
const int *restrict o = (const int *) h1.base;
lng *restrict n = (lng *) h2.base;
+ h2.free <<= 1;
+ nofix = false;
for (i = 0; i < b->batCount; i++) {
if (is_int_nil(o[i])) {
b->tnil = true;
n[i] = lng_nil;
} else {
n[i] = o[i] * LL_CONSTANT(1000);
- nofix = false;
}
}
}
@@ -800,6 +801,10 @@ fixdateheap(BAT *b, const char *anme)
GDKerror("fixdateheap: saving heap failed\n");
return GDK_FAIL;
}
+ if (strcmp(anme, "daytime") == 0) {
+ b->twidth = 8;
+ b->tshift = 3;
+ }
HEAPfree(&h2, false);
b->theap = h2;
}
@@ -847,10 +852,6 @@ fixdatebats(void)
}
fclose(fp);
}
- if (b->batCount == 0 || b->tnonil) {
- /* no NILs to convert */
- continue;
- }
/* The date type is not known in GDK when reading the BBP */
if (b->ttype < 0) {
const char *anme;
@@ -859,7 +860,8 @@ fixdatebats(void)
anme = ATOMunknown_name(b->ttype);
/* known string types */
if ((strcmp(anme, "date") == 0 ||
- strcmp(anme, "timestamp") == 0) &&
+ strcmp(anme, "timestamp") == 0 ||
+ strcmp(anme, "daytime") == 0) &&
fixdateheap(b, anme) != GDK_SUCCEED)
return GDK_FAIL;
}
diff --git a/monetdb5/modules/atoms/mtime.mal b/monetdb5/modules/atoms/mtime.mal
--- a/monetdb5/modules/atoms/mtime.mal
+++ b/monetdb5/modules/atoms/mtime.mal
@@ -117,7 +117,7 @@ comment "Equality of two dates";
# MSEC = integer between 0 and 999 (default = 0)
# SEP = '.' or ':'
# @end verbatim
-atom daytime :int;
+atom daytime :lng;
command fromstr()
address daytime_tz_fromstr;
command tostr()
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list