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