Changeset: 5a346a4fbb59 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=5a346a4fbb59
Modified Files:
        NT/monetdb_config.h.in
        clients/Tests/exports.stable.out
        gdk/gdk.h
        gdk/gdk_aggr.c
        gdk/gdk_align.c
        gdk/gdk_bat.c
        gdk/gdk_batop.c
        gdk/gdk_bbp.c
        gdk/gdk_bbp.h
        gdk/gdk_calc.c
        gdk/gdk_calc_compare.h
        gdk/gdk_cross.c
        gdk/gdk_delta.c
        gdk/gdk_group.c
        gdk/gdk_heap.c
        gdk/gdk_join.c
        gdk/gdk_join_legacy.c
        gdk/gdk_logger.c
        gdk/gdk_private.h
        gdk/gdk_sample.c
        gdk/gdk_search.c
        gdk/gdk_select.c
        gdk/gdk_setop.c
        gdk/gdk_storage.c
        gdk/gdk_tm.c
        gdk/gdk_unique.c
        gdk/gdk_utils.c
        geom/monetdb5/geom.c
        monetdb5/extras/jaql/jaql.c
        monetdb5/extras/jaql/json_jaql.c
        monetdb5/extras/rdf/rdf_shredder.c
        monetdb5/extras/rdf/rdfalgebra.c
        monetdb5/extras/sphinx/sphinx.c
        monetdb5/mal/Tests/tst1012.mal
        monetdb5/mal/Tests/tst1012.stable.out
        monetdb5/mal/mal_authorize.c
        monetdb5/mal/mal_profiler.c
        monetdb5/mal/mal_type.h
        monetdb5/modules/atoms/batxml.c
        monetdb5/modules/atoms/json.c
        monetdb5/modules/atoms/mtime.c
        monetdb5/modules/atoms/str.c
        monetdb5/modules/kernel/algebra.c
        monetdb5/modules/kernel/array.c
        monetdb5/modules/kernel/bat5.c
        monetdb5/modules/kernel/bat5.h
        monetdb5/modules/kernel/batcolor.c
        monetdb5/modules/kernel/batmmath.c
        monetdb5/modules/kernel/batstr.c
        monetdb5/modules/kernel/counters.c
        monetdb5/modules/kernel/microbenchmark.c
        monetdb5/modules/kernel/status.c
        monetdb5/modules/mal/Tests/inspect05.stable.out
        monetdb5/modules/mal/batExtensions.c
        monetdb5/modules/mal/batExtensions.h
        monetdb5/modules/mal/batExtensions.mal
        monetdb5/modules/mal/bbp.c
        monetdb5/modules/mal/clients.c
        monetdb5/modules/mal/cluster.c
        monetdb5/modules/mal/inspect.c
        monetdb5/modules/mal/mal_mapi.c
        monetdb5/modules/mal/manifold.c
        monetdb5/modules/mal/mat.c
        monetdb5/modules/mal/mdb.c
        monetdb5/modules/mal/mkey.c
        monetdb5/modules/mal/pcre.c
        monetdb5/modules/mal/pqueue.c
        monetdb5/modules/mal/querylog.c
        monetdb5/modules/mal/sysmon.c
        monetdb5/modules/mal/tablet.c
        monetdb5/modules/mal/tokenizer.c
        monetdb5/modules/mal/txtsim.c
        monetdb5/modules/mal/zorder.c
        monetdb5/optimizer/opt_pipes.c
        monetdb5/optimizer/opt_statistics.c
        monetdb5/tests/gdkTests/Tests/TMsubcommit.mal
        monetdb5/tests/gdkTests/Tests/TMsubcommit.stable.out
        monetdb5/tests/gdkTests/Tests/bat_insert.mal
        monetdb5/tests/gdkTests/Tests/bat_insert.stable.out
        monetdb5/tests/gdkTests/Tests/reload.mal
        monetdb5/tests/gdkTests/Tests/str_heap.mal
        monetdb5/tests/gdkTests/Tests/str_heap.stable.out
        monetdb5/tools/Tests/mserver5--help.stable.err
        sql/backends/monet5/LSST/lsst.c
        sql/backends/monet5/UDF/udf.c
        sql/backends/monet5/datacell/basket.c
        sql/backends/monet5/datacell/dcoperator.c
        sql/backends/monet5/datacell/emitter.c
        sql/backends/monet5/datacell/petrinet.c
        sql/backends/monet5/datacell/receptor.c
        sql/backends/monet5/gsl/gsl.c
        sql/backends/monet5/sql.c
        sql/backends/monet5/sql_bat2time.c
        sql/backends/monet5/sql_cast.c
        sql/backends/monet5/sql_cast_impl_down_from_flt.h
        sql/backends/monet5/sql_cast_impl_down_from_int.h
        sql/backends/monet5/sql_cast_impl_up_to_flt.h
        sql/backends/monet5/sql_cast_impl_up_to_int.h
        sql/backends/monet5/sql_fround.c
        sql/backends/monet5/sql_optimizer.c
        sql/backends/monet5/sql_round.c
        sql/backends/monet5/vaults/fits.c
        sql/backends/monet5/vaults/mseed.c
        sql/storage/bat/bat_logger.c
        sql/storage/bat/bat_storage.c
        sql/storage/bat/bat_utils.c
        sql/storage/bat/bat_utils.h
        sql/storage/restrict/restrict_storage.c
        testing/Mtest.py.in
        tools/mserver/mserver5.1
        tools/mserver/mserver5.c
Branch: multifarm
Log Message:

Implemented a "multifarm" database; use --dbextra command line option.


diffs (truncated from 8079 to 300 lines):

diff --git a/NT/monetdb_config.h.in b/NT/monetdb_config.h.in
--- a/NT/monetdb_config.h.in
+++ b/NT/monetdb_config.h.in
@@ -738,9 +738,12 @@
 #undef fstat
 #endif
 #define fstat _fstat64
-#ifndef S_ISREG                 /* in case this file wasn't included first */
+#ifndef S_ISREG
 #define S_ISREG(mode)  (((mode) & _S_IFMT) == _S_IFREG)
 #endif
+#ifndef S_ISDIR
+#define S_ISDIR(mode)  (((mode) & _S_IFMT) == _S_IFDIR)
+#endif
 
 /* Define to the sub-directory in which libtool stores uninstalled libraries.
    */
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
@@ -24,7 +24,7 @@ BAT *BATantiuselect_(BAT *b, const void 
 BAT *BATappend(BAT *b, BAT *c, bit force);
 void BATassertProps(BAT *b);
 atomDesc BATatoms[];
-BAT *BATattach(int tt, const char *heapfile);
+BAT *BATattach(int tt, const char *heapfile, int role);
 BAT *BATbandjoin(BAT *l, BAT *r, const void *mnus, const void *plus, bit li, 
bit hi);
 BAT *BATcalcabsolute(BAT *b, BAT *s);
 BAT *BATcalcadd(BAT *b1, BAT *b2, BAT *s, int tp, int abort_on_error);
@@ -100,10 +100,10 @@ BAT *BATcalcxor(BAT *b1, BAT *b2, BAT *s
 BAT *BATcalcxorcst(BAT *b, const ValRecord *v, BAT *s);
 BAT *BATclear(BAT *b, int force);
 BAT *BATcommit(BAT *b);
-BAT *BATconst(BAT *l, int tt, const void *val);
-BAT *BATconstant(int tt, const void *val, BUN cnt);
+BAT *BATconst(BAT *l, int tt, const void *val, int role);
+BAT *BATconstant(int tt, const void *val, BUN cnt, int role);
 BAT *BATconvert(BAT *b, BAT *s, int tp, int abort_on_error);
-BAT *BATcopy(BAT *b, int ht, int tt, int writeable);
+BAT *BATcopy(BAT *b, int ht, int tt, int writeable, int role);
 BUN BATcount(BAT *b);
 BUN BATcount_no_nil(BAT *b);
 BAT *BATcross(BAT *l, BAT *r);
@@ -160,7 +160,7 @@ int BATmmap(BAT *b, int hb, int tb, int 
 BAT *BATmode(BAT *b, int onoff);
 gdk_return BATmultiprintf(stream *f, int argc, BAT *argv[], int printoid, int 
order, int printorderby);
 int BATname(BAT *b, const char *nme);
-BAT *BATnew(int hdtype, int tltype, BUN capacity);
+BAT *BATnew(int hdtype, int tltype, BUN capacity, int role);
 BAT *BATorder(BAT *b);
 BAT *BATorder_rev(BAT *b);
 int BATordered(BAT *b);
@@ -212,6 +212,7 @@ BAT *BATundo(BAT *b);
 BAT *BATuselect(BAT *b, const void *tl, const void *th);
 BAT *BATuselect_(BAT *b, const void *tl, const void *th, bit li, bit hi);
 BBPrec *BBP[N_BBPINIT];
+void BBPaddfarm(const char *dirname, int rolemask);
 void BBPclear(bat bid);
 void BBPcold(bat b);
 int BBPcurstamp(void);
@@ -255,7 +256,7 @@ int GDKerror(_In_z_ _Printf_format_strin
 void GDKexit(int status);
 int GDKexiting(void);
 int GDKfatal(_In_z_ _Printf_format_string_ const char *format, ...) 
__attribute__((__format__(__printf__, 1, 2)));
-void GDKfilepath(str path, const char *nme, const char *mode, const char *ext);
+char *GDKfilepath(int farmid, const char *dir, const char *nme, const char 
*ext);
 void GDKfree(void *blk);
 char *GDKgetenv(const char *name);
 int GDKgetenv_int(const char *name, int def);
@@ -966,7 +967,7 @@ str BKCmergecand(bat *ret, bat *aid, bat
 str BKCmirror(int *ret, int *bid);
 str BKCmmap(bit *res, int *bid, int *hbns, int *tbns, int *hhp, int *thp);
 str BKCmmap2(bit *res, int *bid, int *bns);
-str BKCnewBAT(int *res, int *ht, int *tt, BUN *cap);
+str BKCnewBAT(int *res, int *ht, int *tt, BUN *cap, int role);
 str BKCorder(int *ret, int *bid);
 str BKCorder_rev(int *ret, int *bid);
 str BKCpersists(int *r, int *bid, bit *flg);
@@ -1120,7 +1121,7 @@ str CMDBATimprints(int *ret, int *bid);
 str CMDBATimprintsize(lng *ret, int *bid);
 str CMDBATnew(Client cntxt, MalBlkPtr m, MalStkPtr s, InstrPtr p);
 str CMDBATnewDerived(Client cntxt, MalBlkPtr m, MalStkPtr s, InstrPtr p);
-str CMDBATnewint(Client cntxt, MalBlkPtr m, MalStkPtr s, InstrPtr p);
+str CMDBATnew_persistent(Client cntxt, MalBlkPtr m, MalStkPtr s, InstrPtr p);
 str CMDBATpartition(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
 str CMDBATpartition2(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
 str CMDBATprod(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
@@ -1426,10 +1427,6 @@ int JSONtoString(str *s, int *len, json 
 str JSONunfold(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
 str JSONvalueArray(json *ret, json *arg);
 str JSONvalueTable(int *ret, json *j);
-str KVdropdatabase(str name);
-str KVget(str dbkey, str name, ValPtr val, int tpe);
-str KVnewdatabase(str name, str tpe);
-str KVput(str dbkey, str name, ValPtr val, int tpe);
 char *M5OutOfMemory;
 str MACROprocessor(Client cntxt, MalBlkPtr mb, Symbol t);
 int MAL_MAXCLIENTS;
diff --git a/gdk/gdk.h b/gdk/gdk.h
--- a/gdk/gdk.h
+++ b/gdk/gdk.h
@@ -724,6 +724,7 @@ typedef struct {
        storage_t storage;      /* storage mode (mmap/malloc). */
        storage_t newstorage;   /* new desired storage mode at re-allocation. */
        bte dirty;              /* specific heap dirty marker */
+       bte farmid;             /* id of farm where heap is located */
        bat parentid;           /* cache id of VIEW parent bat */
 } Heap;
 
@@ -909,7 +910,8 @@ typedef struct {
         descdirty:1,           /* bat descriptor dirty marker */
         restricted:2,          /* access privileges */
         persistence:1,         /* should the BAT persist on disk? */
-        unused:23;             /* value=0 for now */
+        role:8,                /* role of the bat */
+        unused:15;             /* value=0 for now */
        int sharecnt;           /* incoming view count */
        char map_head;          /* mmap mode for head bun heap */
        char map_tail;          /* mmap mode for tail bun heap */
@@ -1001,6 +1003,7 @@ typedef int (*GDKfcn) ();
 #define batStamp       S->stamp
 #define batSharecnt    S->sharecnt
 #define batRestricted  S->restricted
+#define batRole                S->role
 #define creator_tid    S->tid
 #define htype          H->type
 #define ttype          T->type
@@ -1109,7 +1112,7 @@ gdk_export void HEAP_free(Heap *heap, va
  * @- BAT construction
  * @multitable @columnfractions 0.08 0.7
  * @item @code{BAT* }
- * @tab BATnew (int headtype, int tailtype, BUN cap)
+ * @tab BATnew (int headtype, int tailtype, BUN cap, int role)
  * @item @code{BAT* }
  * @tab BATextend (BAT *b, BUN newcap)
  * @end multitable
@@ -1127,7 +1130,7 @@ gdk_export void HEAP_free(Heap *heap, va
  */
 #define BATDELETE      (-9999)
 
-gdk_export BAT *BATnew(int hdtype, int tltype, BUN capacity);
+gdk_export BAT *BATnew(int hdtype, int tltype, BUN capacity, int role);
 gdk_export BAT *BATextend(BAT *b, BUN newcap);
 
 /* internal */
@@ -1561,7 +1564,7 @@ gdk_export int BATgetaccess(BAT *b);
  * @item BAT *
  * @tab BATclear (BAT *b, int force)
  * @item BAT *
- * @tab BATcopy (BAT *b, int ht, int tt, int writeable)
+ * @tab BATcopy (BAT *b, int ht, int tt, int writeable, int role)
  * @item BAT *
  * @tab BATmark (BAT *b, oid base)
  * @item BAT *
@@ -1585,7 +1588,7 @@ gdk_export int BATgetaccess(BAT *b);
  * exist at the same time.
  */
 gdk_export BAT *BATclear(BAT *b, int force);
-gdk_export BAT *BATcopy(BAT *b, int ht, int tt, int writeable);
+gdk_export BAT *BATcopy(BAT *b, int ht, int tt, int writeable, int role);
 gdk_export BAT *BATmark(BAT *b, oid base);
 gdk_export BAT *BATmark_grp(BAT *b, BAT *g, oid *base);
 
@@ -1647,7 +1650,7 @@ gdk_export int BATmadvise(BAT *b, int hb
 gdk_export int BATdelete(BAT *b);
 gdk_export size_t BATmemsize(BAT *b, int dirty);
 
-gdk_export void GDKfilepath(str path, const char *nme, const char *mode, const 
char *ext);
+gdk_export char *GDKfilepath(int farmid, const char *dir, const char *nme, 
const char *ext);
 gdk_export int GDKcreatedir(const char *nme);
 
 /*
@@ -2547,7 +2550,7 @@ gdk_export int GDKfatal(_In_z_ _Printf_f
 /* functions defined in gdk_bat.c */
 gdk_export BUN void_replace_bat(BAT *b, BAT *u, bit force);
 gdk_export int void_inplace(BAT *b, oid id, const void *val, bit force);
-gdk_export BAT *BATattach(int tt, const char *heapfile);
+gdk_export BAT *BATattach(int tt, const char *heapfile, int role);
 
 #ifdef NATIVE_WIN32
 #ifdef _MSC_VER
@@ -3288,8 +3291,8 @@ gdk_export BAT *BATantiuselect_(BAT *b, 
 gdk_export BAT *BATselect(BAT *b, const void *tl, const void *th);
 gdk_export BAT *BATuselect(BAT *b, const void *tl, const void *th);
 
-gdk_export BAT *BATconstant(int tt, const void *val, BUN cnt);
-gdk_export BAT *BATconst(BAT *l, int tt, const void *val);
+gdk_export BAT *BATconstant(int tt, const void *val, BUN cnt, int role);
+gdk_export BAT *BATconst(BAT *l, int tt, const void *val, int role);
 gdk_export BAT *BATthetajoin(BAT *l, BAT *r, int mode, BUN estimate);
 gdk_export BAT *BATsemijoin(BAT *l, BAT *r);
 gdk_export BAT *BATjoin(BAT *l, BAT *r, BUN estimate);
diff --git a/gdk/gdk_aggr.c b/gdk/gdk_aggr.c
--- a/gdk/gdk_aggr.c
+++ b/gdk/gdk_aggr.c
@@ -471,7 +471,7 @@ BATgroupsum(BAT *b, BAT *g, BAT *e, BAT 
        if (BATcount(b) == 0 || ngrp == 0) {
                /* trivial: no sums, so return bat aligned with g with
                 * nil in the tail */
-               bn = BATconstant(tp, ATOMnilptr(tp), ngrp);
+               bn = BATconstant(tp, ATOMnilptr(tp), ngrp, TRANSIENT);
                BATseqbase(bn, ngrp == 0 ? 0 : min);
                return bn;
        }
@@ -484,7 +484,7 @@ BATgroupsum(BAT *b, BAT *g, BAT *e, BAT 
                return BATconvert(b, s, tp, abort_on_error);
        }
 
-       bn = BATconstant(tp, ATOMnilptr(tp), ngrp);
+       bn = BATconstant(tp, ATOMnilptr(tp), ngrp, TRANSIENT);
        if (bn == NULL) {
                return NULL;
        }
@@ -964,7 +964,7 @@ BATgroupprod(BAT *b, BAT *g, BAT *e, BAT
        if (BATcount(b) == 0 || ngrp == 0) {
                /* trivial: no products, so return bat aligned with g
                 * with nil in the tail */
-               bn = BATconstant(tp, ATOMnilptr(tp), ngrp);
+               bn = BATconstant(tp, ATOMnilptr(tp), ngrp, TRANSIENT);
                BATseqbase(bn, ngrp == 0 ? 0 : min);
                return bn;
        }
@@ -977,7 +977,7 @@ BATgroupprod(BAT *b, BAT *g, BAT *e, BAT
                return BATconvert(b, s, tp, abort_on_error);
        }
 
-       bn = BATconstant(tp, ATOMnilptr(tp), ngrp);
+       bn = BATconstant(tp, ATOMnilptr(tp), ngrp, TRANSIENT);
        if (bn == NULL) {
                return NULL;
        }
@@ -1242,11 +1242,11 @@ BATgroupavg(BAT **bnp, BAT **cntsp, BAT 
        if (BATcount(b) == 0 || ngrp == 0) {
                /* trivial: no averages, so return bat aligned with g
                 * with nil in the tail */
-               bn = BATconstant(TYPE_dbl, &dbl_nil, ngrp);
+               bn = BATconstant(TYPE_dbl, &dbl_nil, ngrp, TRANSIENT);
                BATseqbase(bn, ngrp == 0 ? 0 : min);
                if (cntsp) {
                        wrd zero = 0;
-                       if ((*cntsp = BATconstant(TYPE_wrd, &zero, ngrp)) == 
NULL) {
+                       if ((*cntsp = BATconstant(TYPE_wrd, &zero, ngrp, 
TRANSIENT)) == NULL) {
                                BBPreclaim(bn);
                                return GDK_FAIL;
                        }
@@ -1265,7 +1265,7 @@ BATgroupavg(BAT **bnp, BAT **cntsp, BAT 
                        return GDK_FAIL;
                if (cntsp) {
                        wrd one = 1;
-                       if ((*cntsp = BATconstant(TYPE_wrd, &one, ngrp)) == 
NULL) {
+                       if ((*cntsp = BATconstant(TYPE_wrd, &one, ngrp, 
TRANSIENT)) == NULL) {
                                BBPreclaim(bn);
                                return GDK_FAIL;
                        }
@@ -1289,7 +1289,7 @@ BATgroupavg(BAT **bnp, BAT **cntsp, BAT 
                break;
        }
        if (cntsp) {
-               if ((*cntsp = BATnew(TYPE_void, TYPE_wrd, ngrp)) == NULL)
+               if ((*cntsp = BATnew(TYPE_void, TYPE_wrd, ngrp, TRANSIENT)) == 
NULL)
                        goto alloc_fail;
                cnts = (wrd *) Tloc(*cntsp, BUNfirst(*cntsp));
                memset(cnts, 0, ngrp * sizeof(wrd));
@@ -1299,7 +1299,7 @@ BATgroupavg(BAT **bnp, BAT **cntsp, BAT 
                        goto alloc_fail;
        }
 
-       bn = BATnew(TYPE_void, TYPE_dbl, ngrp);
+       bn = BATnew(TYPE_void, TYPE_dbl, ngrp, TRANSIENT);
        if (bn == NULL)
                goto alloc_fail;
        dbls = (dbl *) Tloc(bn, BUNfirst(bn));
@@ -1583,12 +1583,12 @@ BATgroupcount(BAT *b, BAT *g, BAT *e, BA
                /* trivial: no products, so return bat aligned with g
                 * with zero in the tail */
                wrd zero = 0;
-               bn = BATconstant(TYPE_wrd, &zero, ngrp);
+               bn = BATconstant(TYPE_wrd, &zero, ngrp, TRANSIENT);
                BATseqbase(bn, ngrp == 0 ? 0 : min);
                return bn;
        }
 
-       bn = BATnew(TYPE_void, TYPE_wrd, ngrp);
+       bn = BATnew(TYPE_void, TYPE_wrd, ngrp, TRANSIENT);
        if (bn == NULL)
                return NULL;
        cnts = (wrd *) Tloc(bn, BUNfirst(bn));
@@ -1701,12 +1701,12 @@ BATgroupsize(BAT *b, BAT *g, BAT *e, BAT
                /* trivial: no products, so return bat aligned with g
                 * with zero in the tail */
                wrd zero = 0;
-               bn = BATconstant(TYPE_wrd, &zero, ngrp);
+               bn = BATconstant(TYPE_wrd, &zero, ngrp, TRANSIENT);
                BATseqbase(bn, ngrp == 0 ? 0 : min);
                return bn;
        }
 
-       bn = BATnew(TYPE_void, TYPE_wrd, ngrp);
+       bn = BATnew(TYPE_void, TYPE_wrd, ngrp, TRANSIENT);
        if (bn == NULL)
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to