Changeset: 85bbd04c51b0 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=85bbd04c51b0
Added Files:
sql/test/BugTracker-2014/Tests/case-sqrt.Bug-3627.sql
sql/test/BugTracker-2014/Tests/case-sqrt.Bug-3627.stable.err
sql/test/BugTracker-2014/Tests/case-sqrt.Bug-3627.stable.out
sql/test/BugTracker-2014/Tests/column-with-comma.Bug-3616.sql
sql/test/BugTracker-2014/Tests/column-with-comma.Bug-3616.stable.err
sql/test/BugTracker-2014/Tests/column-with-comma.Bug-3616.stable.out
Modified Files:
.hgtags
MonetDB.spec
NT/installer32/MonetDB-ODBC-Installer.vdproj
NT/installer32/MonetDB5-Geom-Module.vdproj
NT/installer32/MonetDB5-SQL-Installer.vdproj
NT/installer64/MonetDB-ODBC-Installer.vdproj
NT/installer64/MonetDB5-Geom-Module.vdproj
NT/installer64/MonetDB5-SQL-Installer.vdproj
NT/monetdb_config.h.in
NT/rules.msc
clients/Tests/exports.stable.out
clients/mapilib/mapi.rc
clients/odbc/driver/driver.rc
clients/odbc/winsetup/setup.rc
clients/python2/setup.py
clients/python3/setup.py
configure.ag
debian/changelog
gdk/gdk.h
gdk/gdk_atoms.h
gdk/gdk_bat.c
gdk/gdk_batop.c
gdk/gdk_bbp.c
gdk/gdk_private.h
gdk/libbat.rc
libversions
monetdb5/modules/atoms/mtime.c
monetdb5/modules/atoms/mtime.h
monetdb5/modules/mal/sysmon.c
monetdb5/tools/libmonetdb5.rc
sql/backends/monet5/bam/bam_lib.c
sql/backends/monet5/sql_result.c
sql/jdbc/tests/Tests/Test_PSsqldata.stable.out
sql/test/BugTracker-2014/Tests/All
sql/test/pg_regress/Tests/alter_table.stable.err
sql/test/pg_regress/Tests/arrays.stable.err
sql/test/pg_regress/Tests/boolean.stable.err
sql/test/pg_regress/Tests/case.stable.err
sql/test/pg_regress/Tests/char.stable.err
sql/test/pg_regress/Tests/comments.stable.err
sql/test/pg_regress/Tests/create_aggregate.stable.err
sql/test/pg_regress/Tests/create_misc.stable.err
sql/test/pg_regress/Tests/create_operator.stable.err
sql/test/pg_regress/Tests/date.stable.err
sql/test/pg_regress/Tests/date.stable.out
sql/test/pg_regress/Tests/drop.stable.err
sql/test/pg_regress/Tests/float4.stable.err
sql/test/pg_regress/Tests/float8.stable.err
sql/test/pg_regress/Tests/inet.stable.err
sql/test/pg_regress/Tests/inet.stable.out
sql/test/pg_regress/Tests/insert.stable.err
sql/test/pg_regress/Tests/int2.stable.err
sql/test/pg_regress/Tests/int4.stable.err
sql/test/pg_regress/Tests/int8.stable.err
sql/test/pg_regress/Tests/interval.stable.err
sql/test/pg_regress/Tests/limit.stable.err
sql/test/pg_regress/Tests/numeric.stable.err
sql/test/pg_regress/Tests/numeric_big.stable.err
sql/test/pg_regress/Tests/numerology.stable.err
sql/test/pg_regress/Tests/oid.stable.err
sql/test/pg_regress/Tests/select_into.stable.err
sql/test/pg_regress/Tests/strings.stable.err
sql/test/pg_regress/Tests/strings_cast.stable.err
sql/test/pg_regress/Tests/strings_concat.stable.err
sql/test/pg_regress/Tests/timestamp.stable.err
sql/test/pg_regress/Tests/timestamptz.stable.err
sql/test/pg_regress/Tests/varchar.stable.err
sql/test/pg_regress/Tests/without_oid.stable.err
vertoo.data
Branch: bamloader
Log Message:
Merge with default
diffs (truncated from 7109 to 300 lines):
diff --git a/.hgtags b/.hgtags
--- a/.hgtags
+++ b/.hgtags
@@ -583,3 +583,6 @@ 4f894ebf1a93ae895ec23d54ce2112bf21a6427e
88a29a5a2bef5c6cef6b3bfa5ab7c4d3b855a2c8 Oct2014_release
eb2967c408350131b63f5393704fd697c701fc49 Oct2014_5
2da8cbcb65ed56690bad29f089d996eac347b48d Oct2014_SP1_release
+ee3d8e3af6aae6be6cfaa876a379a0751f164e97 Oct2014_7
+2da8cbcb65ed56690bad29f089d996eac347b48d Oct2014_SP1_release
+6607367487d91eb02c5eb7dfb9d96606f8f7c6f0 Oct2014_SP1_release
diff --git a/MonetDB.spec b/MonetDB.spec
--- a/MonetDB.spec
+++ b/MonetDB.spec
@@ -960,6 +960,9 @@ mv $RPM_BUILD_ROOT%{_datadir}/doc/MonetD
rm -fr $RPM_BUILD_ROOT
%changelog
+* Fri Nov 21 2014 Sjoerd Mullender <[email protected]> - 11.19.7-20141121
+- Rebuilt.
+
* Thu Nov 20 2014 Sjoerd Mullender <[email protected]> - 11.19.5-20141120
- Rebuilt.
- BZ#3580: cosmetic change (append newline)
diff --git a/clients/Tests/exports.stable.out b/clients/Tests/exports.stable.out
--- a/clients/Tests/exports.stable.out
+++ b/clients/Tests/exports.stable.out
@@ -1658,7 +1658,7 @@ str MTIMEtime_add_msec_interval_wrap(day
str MTIMEtime_sub_msec_interval_wrap(daytime *ret, const daytime *t, const lng
*msec);
str MTIMEtimestamp(timestamp *ret, const int *sec);
str MTIMEtimestamp2timestamp(timestamp *ret, const timestamp *src);
-str MTIMEtimestamp_add(timestamp *ret, const timestamp *v, const lng *msecs);
+str MTIMEtimestamp_add(timestamp *ret, const timestamp *v, const lng *msec);
str MTIMEtimestamp_add_month_interval_lng_wrap(timestamp *ret, const timestamp
*t, const lng *months);
str MTIMEtimestamp_add_month_interval_wrap(timestamp *ret, const timestamp *t,
const int *months);
str MTIMEtimestamp_bulk(bat *ret, bat *bid);
@@ -1678,7 +1678,7 @@ str MTIMEtimestamp_extract_daytime_defau
str MTIMEtimestamp_fromstr(timestamp *ret, const char *const *d);
str MTIMEtimestamp_hours(int *ret, const timestamp *t);
str MTIMEtimestamp_inside_dst(bit *ret, const timestamp *p, const tzone *z);
-str MTIMEtimestamp_lng(timestamp *ret, const lng *msecs);
+str MTIMEtimestamp_lng(timestamp *ret, const lng *msec);
str MTIMEtimestamp_lng_bulk(bat *ret, bat *bid);
str MTIMEtimestamp_milliseconds(int *ret, const timestamp *t);
str MTIMEtimestamp_minutes(int *ret, const timestamp *t);
diff --git a/debian/changelog b/debian/changelog
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+monetdb (11.19.7-20141121) unstable; urgency=low
+
+ * Rebuilt.
+
+ -- Sjoerd Mullender <[email protected]> Fri, 21 Nov 2014 10:14:18 +0100
+
monetdb (11.19.5-20141120) unstable; urgency=low
* Rebuilt.
diff --git a/gdk/gdk.h b/gdk/gdk.h
--- a/gdk/gdk.h
+++ b/gdk/gdk.h
@@ -1253,7 +1253,7 @@ gdk_export bte ATOMelmshift(int sz);
break; \
} \
} else { \
- ATOMputFIX((b)->HT->type, (b)->HT->vheap, (p), v); \
+ ATOMputFIX((b)->HT->type, (p), v); \
} \
} while (0)
#define Hputvalue(b, p, v, copyall) HTputvalue(b, p, v, copyall, H)
@@ -1301,7 +1301,7 @@ gdk_export bte ATOMelmshift(int sz);
break; \
} \
} else { \
- ATOMreplaceFIX((b)->HT->type, (b)->HT->vheap, (p), v); \
+ ATOMreplaceFIX((b)->HT->type, (p), v); \
} \
} while (0)
#define Hreplacevalue(b, p, v) HTreplacevalue(b, p, v, H)
diff --git a/gdk/gdk_atoms.h b/gdk/gdk_atoms.h
--- a/gdk/gdk_atoms.h
+++ b/gdk/gdk_atoms.h
@@ -244,7 +244,7 @@ gdk_export const ptr ptr_nil;
if ((*BATatoms[type].atomPut)(heap, dst, src) == 0) \
goto bunins_failed; \
} while (0)
-#define ATOMputFIX(type, heap, dst, src) \
+#define ATOMputFIX(type, dst, src) \
do { \
int t_ = (type); \
void *d_ = (dst); \
@@ -290,7 +290,7 @@ gdk_export const ptr ptr_nil;
*d_ = loc_; \
ATOMfix(t_, s_); \
} while (0)
-#define ATOMreplaceFIX(type, heap, dst, src) \
+#define ATOMreplaceFIX(type, dst, src) \
do { \
int t_ = (type); \
void *d_ = (dst); \
diff --git a/gdk/gdk_bat.c b/gdk/gdk_bat.c
--- a/gdk/gdk_bat.c
+++ b/gdk/gdk_bat.c
@@ -1214,6 +1214,11 @@ BUNins(BAT *b, const void *h, const void
return NULL;
}
+ if (unshare_string_heap(b) == GDK_FAIL) {
+ GDKerror("BUNins: failed to unshare string heap\n");
+ return NULL;
+ }
+
ALIGNins(b, "BUNins", force);
b->batDirty = 1;
if (b->H->hash && b->H->vheap)
@@ -1320,6 +1325,11 @@ BUNappend(BAT *b, const void *t, bit for
}
void_materialize(b, t);
+ if (unshare_string_heap(b) == GDK_FAIL) {
+ GDKerror("BUNappend: failed to unshare string heap\n");
+ return NULL;
+ }
+
setcolprops(b, b->H, h);
setcolprops(b, b->T, t);
diff --git a/gdk/gdk_batop.c b/gdk/gdk_batop.c
--- a/gdk/gdk_batop.c
+++ b/gdk/gdk_batop.c
@@ -41,13 +41,42 @@
} \
} while (0)
+gdk_return
+unshare_string_heap(BAT *b)
+{
+ if (b->ttype == TYPE_str &&
+ b->T->vheap->parentid != abs(b->batCacheid)) {
+ Heap *h = GDKzalloc(sizeof(Heap));
+ if (h == NULL)
+ return GDK_FAIL;
+ h->parentid = abs(b->batCacheid);
+ h->farmid = BBPselectfarm(b->batRole, TYPE_str, varheap);
+ if (b->T->vheap->filename) {
+ char *nme = BBP_physical(b->batCacheid);
+ h->filename = GDKfilepath(NOFARM, NULL, nme, "theap");
+ if (h->filename == NULL) {
+ GDKfree(h);
+ return GDK_FAIL;
+ }
+ }
+ if (HEAPcopy(h, b->T->vheap) < 0) {
+ HEAPfree(h, 1);
+ GDKfree(h);
+ return GDK_FAIL;
+ }
+ BBPunshare(b->T->vheap->parentid);
+ b->T->vheap = h;
+ }
+ return GDK_SUCCEED;
+}
+
/* We try to be clever when appending one string bat to another.
* First of all, we try to actually share the string heap so that we
* don't need an extra copy, and if that can't be done, we see whether
* it makes sense to just quickly copy the whole string heap instead
* of inserting individual strings. See the comments in the code for
* more information. */
-static BAT *
+static gdk_return
insert_string_bat(BAT *b, BAT *n, int append, int force)
{
BATiter ni; /* iterator */
@@ -66,7 +95,7 @@ insert_string_bat(BAT *b, BAT *n, int ap
assert(b->htype == TYPE_void || b->htype == TYPE_oid);
if (n->batCount == 0)
- return b;
+ return GDK_SUCCEED;
ni = bat_iterator(n);
hp = NULL;
tp = NULL;
@@ -108,27 +137,9 @@ insert_string_bat(BAT *b, BAT *n, int ap
toff = 0;
} else if (b->T->vheap->parentid ==
n->T->vheap->parentid) {
toff = 0;
- } else if (b->T->vheap->parentid != bid) {
- Heap *h = GDKzalloc(sizeof(Heap));
- if (h == NULL)
- return NULL;
- h->parentid = bid;
- h->farmid = BBPselectfarm(b->batRole, TYPE_str,
varheap);
- if (b->T->vheap->filename) {
- char *nme = BBP_physical(b->batCacheid);
- h->filename = GDKfilepath(NOFARM, NULL,
nme, "theap");
- if (h->filename == NULL) {
- GDKfree(h);
- return NULL;
- }
- }
- if (HEAPcopy(h, b->T->vheap) < 0) {
- HEAPfree(h, 1);
- GDKfree(h);
- return NULL;
- }
- BBPunshare(b->T->vheap->parentid);
- b->T->vheap = h;
+ } else if (b->T->vheap->parentid != bid &&
+ unshare_string_heap(b) == GDK_FAIL) {
+ return GDK_FAIL;
}
}
if (toff == ~(size_t) 0 && n->batCount > 1024) {
@@ -368,13 +379,13 @@ insert_string_bat(BAT *b, BAT *n, int ap
b->tvarsized = 1;
b->ttype = TYPE_str;
}
- return b;
+ return GDK_SUCCEED;
bunins_failed:
if (toff != ~(size_t) 0) {
b->tvarsized = 1;
b->ttype = TYPE_str;
}
- return NULL;
+ return GDK_FAIL;
}
/*
@@ -547,7 +558,8 @@ BATins(BAT *b, BAT *n, bit force)
!GDK_ELIMDOUBLES(n->T->vheap) &&
b->T->vheap->hashash == n->T->vheap->hashash &&
VIEWtparent(n) == 0) {
- b = insert_string_bat(b, n, 0, force);
+ if (insert_string_bat(b, n, 0, force) == GDK_FAIL)
+ return NULL;
} else if (b->htype == TYPE_void) {
if (!ATOMvarsized(b->ttype) &&
BATatoms[b->ttype].atomFix == NULL &&
@@ -755,8 +767,7 @@ BATappend(BAT *b, BAT *n, bit force)
(b->batCount == 0 || !GDK_ELIMDOUBLES(b->T->vheap)) &&
!GDK_ELIMDOUBLES(n->T->vheap) &&
b->T->vheap->hashash == n->T->vheap->hashash) {
- b = insert_string_bat(b, n, 1, force);
- if (b == NULL)
+ if (insert_string_bat(b, n, 1, force) == GDK_FAIL)
return NULL;
} else if (b->htype == TYPE_void) {
if (!ATOMvarsized(b->ttype) &&
diff --git a/gdk/gdk_bbp.c b/gdk/gdk_bbp.c
--- a/gdk/gdk_bbp.c
+++ b/gdk/gdk_bbp.c
@@ -2118,17 +2118,18 @@ incref(bat i, int logical, int lock)
MT_lock_unset(&GDKswapLock(i), "BBPincref");
return 0;
}
- /* parent BATs are not relevant for logical refs */
- hp = logical ? 0 : bs->B.H->heap.parentid;
- tp = logical ? 0 : bs->B.T->heap.parentid;
- hvp = logical || bs->B.H->vheap == 0 || bs->B.H->vheap->parentid == i ?
0 : bs->B.H->vheap->parentid;
- tvp = logical || bs->B.T->vheap == 0 || bs->B.T->vheap->parentid == i ?
0 : bs->B.T->vheap->parentid;
assert(BBP_refs(i) + BBP_lrefs(i) ||
BBP_status(i) & (BBPDELETED | BBPSWAPPED));
- if (logical)
+ if (logical) {
+ /* parent BATs are not relevant for logical refs */
+ hp = tp = hvp = tvp = 0;
refs = ++BBP_lrefs(i);
- else {
+ } else {
+ hp = bs->B.H->heap.parentid;
+ tp = bs->B.T->heap.parentid;
+ hvp = bs->B.H->vheap == 0 || bs->B.H->vheap->parentid == i ? 0
: bs->B.H->vheap->parentid;
+ tvp = bs->B.T->vheap == 0 || bs->B.T->vheap->parentid == i ? 0
: bs->B.T->vheap->parentid;
refs = ++BBP_refs(i);
if (refs == 1 && (hp || tp || hvp || tvp)) {
/* If this is a view, we must load the parent
diff --git a/gdk/gdk_private.h b/gdk/gdk_private.h
--- a/gdk/gdk_private.h
+++ b/gdk/gdk_private.h
@@ -170,6 +170,8 @@ int IMPSgetbin(int tpe, bte bits, const
void IMPSprint(BAT *b)
__attribute__((__visibility__("hidden")));
#endif
+gdk_return unshare_string_heap(BAT *b)
+ __attribute__((__visibility__("hidden")));
oid MAXoid(BAT *i)
__attribute__((__visibility__("hidden")));
void MT_global_exit(int status)
diff --git a/libversions b/libversions
--- a/libversions
+++ b/libversions
@@ -36,7 +36,7 @@
# version of the GDK library (subdirectory gdk; also includes
# common/options and common/utils)
-GDK_VERSION=11:2:0
+GDK_VERSION=11:3:0
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list