Changeset: e46b810ccbd0 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=e46b810ccbd0
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/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_bat.c
gdk/gdk_batop.c
gdk/gdk_private.h
gdk/libbat.rc
libversions
monetdb5/optimizer/opt_generator.c
monetdb5/tools/libmonetdb5.rc
sql/backends/monet5/bam/bam_lib.c
sql/backends/monet5/bam/bam_lib.h
sql/backends/monet5/generator/generator.c
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: transaction-replication
Log Message:
Merge with default branch
diffs (truncated from 7097 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/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_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,6 +41,35 @@
} \
} 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
@@ -62,15 +91,12 @@ insert_string_bat(BAT *b, BAT *n, int ap
unsigned int tiv; /* tail value-as-int */
#endif
var_t v; /* value */
- int ntw, btw; /* shortcuts for {b,n}->T->width */
size_t off; /* offset within n's string heap */
assert(b->htype == TYPE_void || b->htype == TYPE_oid);
if (n->batCount == 0)
return b;
ni = bat_iterator(n);
- btw = b->T->width;
- ntw = n->T->width;
hp = NULL;
tp = NULL;
if (append && b->htype != TYPE_void) {
@@ -111,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 NULL;
}
}
if (toff == ~(size_t) 0 && n->batCount > 1024) {
@@ -192,16 +200,15 @@ insert_string_bat(BAT *b, BAT *n, int ap
* first that the width of b's offset heap can
* accommodate all values. */
if (b->T->width < SIZEOF_VAR_T &&
- ((size_t) 1 << 8 * b->T->width) < (b->T->width <= 2
? (b->T->vheap->size >> GDK_VARSHIFT) - GDK_VAROFFSET : (b->T->vheap->size >>
GDK_VARSHIFT))) {
+ ((size_t) 1 << 8 * b->T->width) <= (b->T->width <=
2 ? (b->T->vheap->size >> GDK_VARSHIFT) - GDK_VAROFFSET : (b->T->vheap->size >>
GDK_VARSHIFT))) {
/* offsets aren't going to fit, so
* widen offset heap */
if (GDKupgradevarheap(b->T, (var_t)
(b->T->vheap->size >> GDK_VARSHIFT), 0, force) == GDK_FAIL) {
toff = ~(size_t) 0;
goto bunins_failed;
}
- btw = b->T->width;
}
- switch (btw) {
+ switch (b->T->width) {
case 1:
tt = TYPE_bte;
tp = &tbv;
@@ -235,12 +242,12 @@ insert_string_bat(BAT *b, BAT *n, int ap
append = 1;
}
}
- if (toff == 0 && ntw == btw && (b->htype == TYPE_void || !append)) {
+ if (toff == 0 && n->T->width == b->T->width && (b->htype == TYPE_void
|| !append)) {
/* we don't need to do any translation of offset
* values, nor do we need to do any calculations for
* the head column, so we can use fast memcpy */
memcpy(Tloc(b, BUNlast(b)), Tloc(n, BUNfirst(n)),
- BATcount(n) * ntw);
+ BATcount(n) * n->T->width);
if (b->htype != TYPE_void) {
assert(n->htype == b->htype);
assert(!append);
@@ -265,7 +272,7 @@ insert_string_bat(BAT *b, BAT *n, int ap
if (!append && b->htype)
hp = BUNhloc(ni, p);
- switch (ntw) {
+ switch (n->T->width) {
case 1:
v = (var_t) *tbp++ + GDK_VAROFFSET;
break;
@@ -284,7 +291,7 @@ insert_string_bat(BAT *b, BAT *n, int ap
v = (var_t) ((((size_t) v << GDK_VARSHIFT) + toff) >>
GDK_VARSHIFT);
assert(v >= GDK_VAROFFSET);
assert(((size_t) v << GDK_VARSHIFT) <
b->T->vheap->free);
- switch (btw) {
+ switch (b->T->width) {
case 1:
assert(v - GDK_VAROFFSET < ((var_t) 1 << 8));
tbv = (unsigned char) (v - GDK_VAROFFSET);
@@ -331,15 +338,14 @@ insert_string_bat(BAT *b, BAT *n, int ap
*(oid *) Hloc(b, BUNlast(b)) = *(oid *)
hp;
v = (var_t) (off >> GDK_VARSHIFT);
if (b->T->width < SIZEOF_VAR_T &&
- ((size_t) 1 << 8 * b->T->width) <
(b->T->width <= 2 ? v - GDK_VAROFFSET : v)) {
+ ((size_t) 1 << 8 * b->T->width) <=
(b->T->width <= 2 ? v - GDK_VAROFFSET : v)) {
/* offset isn't going to fit,
* so widen offset heap */
if (GDKupgradevarheap(b->T, v, 0,
force) == GDK_FAIL) {
goto bunins_failed;
}
- btw = b->T->width;
}
- switch (btw) {
+ switch (b->T->width) {
case 1:
assert(v - GDK_VAROFFSET < ((var_t) 1
<< 8));
*(unsigned char *)Tloc(b, BUNlast(b)) =
(unsigned char) (v - GDK_VAROFFSET);
diff --git a/gdk/gdk_private.h b/gdk/gdk_private.h
--- a/gdk/gdk_private.h
+++ b/gdk/gdk_private.h
@@ -172,6 +172,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
# version of the MAPI library (subdirectory clients/mapilib)
MAPI_VERSION=7:1:0
diff --git a/monetdb5/optimizer/opt_generator.c
b/monetdb5/optimizer/opt_generator.c
--- a/monetdb5/optimizer/opt_generator.c
+++ b/monetdb5/optimizer/opt_generator.c
@@ -25,118 +25,142 @@
* Series generating module for integer, decimal, real, double and timestamps.
*/
+#define errorCheck(P,MOD,I) \
+setModuleId(P, generatorRef);\
+typeChecker(cntxt->fdout, cntxt->nspace, mb, P, TRUE);\
+if(P->typechk == TYPE_UNKNOWN){\
+ setModuleId(P,MOD);\
+ typeChecker(cntxt->fdout, cntxt->nspace, mb, P, TRUE);\
+ setModuleId(series[I], generatorRef);\
+ setFunctionId(series[I], seriesRef);\
+ typeChecker(cntxt->fdout, cntxt->nspace, mb, series[I], TRUE);\
+}\
+pushInstruction(mb,P);
-static int
-assignedOnce(MalBlkPtr mb, int varid)
-{
- InstrPtr p;
- int i,j, c=0;
-
- for(i = 1; i< mb->stop; i++){
- p = getInstrPtr(mb,i);
- for( j = 0; j < p->retc; j++)
- if( getArg(p,j) == varid){
- c++;
- break;
- }
- }
- return c == 1;
-}
-static int
-useCount(MalBlkPtr mb, int varid)
-{
- InstrPtr p;
- int i,j, d,c=0;
-
- for(i = 1; i< mb->stop; i++){
- p = getInstrPtr(mb,i);
- d= 0;
- for( j = p->retc; j < p->argc; j++)
- if( getArg(p,j) == varid)
- d++;
- c += d > 0;
- }
- return c;
-}
+#define casting(TPE)\
+ k= getArg(p,1);\
+ p->argc = p->retc;\
+ q= newStmt(mb,calcRef,TPE##Ref);\
+ setArgType(mb,q,0,TYPE_##TPE);\
+ pushArgument(mb,q,getArg(series[k],1));\
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list