Changeset: 7887a7f56e9f for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=7887a7f56e9f
Modified Files:
sql/backends/monet5/sql_basket.c
sql/backends/monet5/sql_cquery.c
Branch: trails
Log Message:
Look out for errors
diffs (66 lines):
diff --git a/sql/backends/monet5/sql_basket.c b/sql/backends/monet5/sql_basket.c
--- a/sql/backends/monet5/sql_basket.c
+++ b/sql/backends/monet5/sql_basket.c
@@ -120,6 +120,7 @@ BSKTregisterInternal(Client cntxt, MalBl
BAT *b;
node *o;
str msg = getSQLContext(cntxt, mb, &m, NULL);
+ timestamp tseen;
if ( msg != MAL_SUCCEED)
return msg;
@@ -130,6 +131,9 @@ BSKTregisterInternal(Client cntxt, MalBl
return MAL_SUCCEED;
}
+ if((msg = MTIMEcurrent_timestamp(&tseen)) != MAL_SUCCEED)
+ return msg;
+
if ((msg = checkSQLContext(cntxt)) != MAL_SUCCEED)
return msg;
@@ -149,7 +153,7 @@ BSKTregisterInternal(Client cntxt, MalBl
baskets[idx].window = t->stream->window;
baskets[idx].stride = t->stream->stride;
baskets[idx].error = MAL_SUCCEED;
- (void) MTIMEcurrent_timestamp(&baskets[idx].seen);
+ baskets[idx].seen = tseen;
// Check the column types first
for (o = t->columns.set->h; o ; o = o->next){
@@ -455,7 +459,7 @@ BSKTtumble(Client cntxt, MalBlkPtr mb, M
msg = BSKTregisterInternal(cntxt, mb, sch, tbl, &idx);
if( msg != MAL_SUCCEED)
return msg;
- // don't tumble when the window constraint has not been set to at least
0 o
+ // don't tumble when the window constraint has not been set to at least
0 or we are not querying from a CQ
if( baskets[idx].window < 0 || !cntxt->iscqscheduleruser)
return MAL_SUCCEED;
/* also take care of time-based tumbling */
diff --git a/sql/backends/monet5/sql_cquery.c b/sql/backends/monet5/sql_cquery.c
--- a/sql/backends/monet5/sql_cquery.c
+++ b/sql/backends/monet5/sql_cquery.c
@@ -1336,7 +1336,7 @@ CQscheduler(void *dummy)
int i, j, k = -1, pntasks, delay = cycleDelay, start_trans = 0;
Client c = (Client) dummy;
mvc* m;
- str msg = MAL_SUCCEED;
+ str msg = MAL_SUCCEED, omsg;
lng t, now;
timestamp aux;
int claimed[MAXSTREAMS];
@@ -1463,7 +1463,13 @@ CQscheduler(void *dummy)
if(pnet[i].status != CQDELETE) {
pnet[i].run = now;
/* last executed */
pnet[i].time = GDKusec() - t; /* keep
around in microseconds */
- (void)
MTIMEcurrent_timestamp(&pnet[i].seen);
+ if((omsg =
MTIMEcurrent_timestamp(&pnet[i].seen)) != MAL_SUCCEED && !pnet[i].error) {
+ pnet[i].error = omsg;
+ pnet[i].status = CQERROR;
+ } else if(omsg) {
+ fprintf(stderr, "CQscheduler
internal error: %s\n", omsg);
+ GDKfree(omsg);
+ }
pnet[i].enabled = 0;
CQentry(i);
}
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list