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

Reply via email to