Changeset: d9ad0a081967 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=d9ad0a081967
Modified Files:
        sql/backends/monet5/iot/basket.c
        sql/backends/monet5/iot/basket.h
        sql/backends/monet5/iot/basket.mal
        sql/backends/monet5/iot/iot.c
        sql/backends/monet5/sql_scenario.c
Branch: iot
Log Message:

Include the stream tid list
needed for table updates


diffs (119 lines):

diff --git a/sql/backends/monet5/iot/basket.c b/sql/backends/monet5/iot/basket.c
--- a/sql/backends/monet5/iot/basket.c
+++ b/sql/backends/monet5/iot/basket.c
@@ -279,6 +279,34 @@ BSKTbindColumn(str sch, str tbl, str col
 }
 
 str
+BSKTtid(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
+{
+       bat *ret = getArgReference_bat(stk,pci,0);
+       str sch = *getArgReference_str(stk,pci,2);
+       str tbl = *getArgReference_str(stk,pci,3);
+       BAT *tids, *b;
+       int bskt;
+       
+       (void) cntxt;
+       (void) mb;
+
+       bskt = BSKTlocate(sch,tbl);
+       if( bskt == 0)  
+               throw(SQL,"basket.bind","Stream table column '%s.%s' not 
found",sch,tbl);
+       b = baskets[bskt].bats[0];
+
+    tids = BATnew(TYPE_void, TYPE_void, 0, TRANSIENT);
+    if (tids == NULL)
+        throw(SQL, "basket.tid", MAL_MALLOC_FAIL);
+    BATsetcount(tids, BATcount(b));
+    BATseqbase(tids, 0);
+    BATseqbase(BATmirror(tids), 0);
+
+       BBPkeepref( *ret = tids->batCacheid);
+       return MAL_SUCCEED;
+}
+
+str
 BSKTbind(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
 {
        bat *ret = getArgReference_bat(stk,pci,0);
@@ -336,7 +364,6 @@ str
 BSKTimportInternal(Client cntxt, int bskt)
 {
        char buf[PATHLENGTH];
-       mvc *m;
        BAT *b;
        int first=1,i,j;
        BUN cnt =0, bcnt=0;
@@ -347,9 +374,7 @@ BSKTimportInternal(Client cntxt, int bsk
        str dir = baskets[bskt].source;
        str cname= NULL;
 
-       msg= getSQLContext(cntxt,NULL, &m, NULL);
-       if( msg != MAL_SUCCEED)
-               return msg;
+       (void)cntxt;
        // check access permission to directory first
        if( access (dir , F_OK | R_OK)){
                throw(SQL, "iot.basket", "Could not access the basket directory 
%s. error %d",dir,errno);
@@ -692,7 +717,6 @@ BSKTupdate(Client cntxt, MalBlkPtr mb, M
     BAT *bn=0, *rid=0, *bval = 0;
        int bskt;
 
-       return 0;
        (void) cntxt;
        (void) mb;
     *res = 0;
diff --git a/sql/backends/monet5/iot/basket.h b/sql/backends/monet5/iot/basket.h
--- a/sql/backends/monet5/iot/basket.h
+++ b/sql/backends/monet5/iot/basket.h
@@ -64,6 +64,7 @@ typedef struct{
 
 iot_export BasketRec *baskets;
 
+iot_export str BSKTtid(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr 
pci);
 iot_export str BSKTbind(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr 
pci);
 iot_export str BSKTregisterInternal(Client cntxt, MalBlkPtr mb, str sch, str 
tbl);
 iot_export str BSKTregister(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr pci);
diff --git a/sql/backends/monet5/iot/basket.mal 
b/sql/backends/monet5/iot/basket.mal
--- a/sql/backends/monet5/iot/basket.mal
+++ b/sql/backends/monet5/iot/basket.mal
@@ -22,6 +22,10 @@ address BSKTregister
 comment "Initialize a new basket based on a specific table definition.
 roles:input =0, output=2";
 
+pattern tid(mvc:int,sch:str,tbl:str):bat[:oid]
+address BSKTtid
+comment "Collect the candidates for a basket";
+
 pattern bind(mvc:int,sch:str,tbl:str,col:str):bat[:any]
 address BSKTbind
 comment "access the stream basket column";
diff --git a/sql/backends/monet5/iot/iot.c b/sql/backends/monet5/iot/iot.c
--- a/sql/backends/monet5/iot/iot.c
+++ b/sql/backends/monet5/iot/iot.c
@@ -181,9 +181,10 @@ IOTreceptorThread(void *dummy)
                baskets[idx].source);
        /* continously scan the container for baskets */
                BSKTimportInternal(cntxt, idx);
-    _DEBUG_IOT_ mnstr_printf(GDKout, "#iot.receptor %s.%s imported the  
file\n",
+    _DEBUG_IOT_ mnstr_printf(GDKout, "#iot.receptor %s.%s imported the file, 
"BUNFMT" records\n",
                baskets[idx].schema_name, 
-               baskets[idx].table_name);
+               baskets[idx].table_name,
+               baskets[idx].count);
 }
 
 str
diff --git a/sql/backends/monet5/sql_scenario.c 
b/sql/backends/monet5/sql_scenario.c
--- a/sql/backends/monet5/sql_scenario.c
+++ b/sql/backends/monet5/sql_scenario.c
@@ -1190,8 +1190,7 @@ SQLCacheRemove(Client c, str nme)
        if (getInstrPtr(s->def, 0)->token == FACTORYsymbol)
                shutdownFactoryByName(c, c->nspace, nme);
        else{
-               if( s->def->inuse ==0)
-                       deleteSymbol(c->nspace, s);
+               deleteSymbol(c->nspace, s);
        }
        return MAL_SUCCEED;
 }
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to