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

Reply via email to