Changeset: f91f7e4125df for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=f91f7e4125df
Modified Files:
        monetdb5/mal/mal_interpreter.c
        monetdb5/mal/mal_scenario.c
        monetdb5/mal/mal_session.c
        monetdb5/optimizer/opt_dataflow.c
        sql/server/rel_dump.c
Branch: Jul2017
Log Message:

handle COUNT property in rel_read


diffs (89 lines):

diff --git a/monetdb5/mal/mal_interpreter.c b/monetdb5/mal/mal_interpreter.c
--- a/monetdb5/mal/mal_interpreter.c
+++ b/monetdb5/mal/mal_interpreter.c
@@ -592,7 +592,7 @@ str runMALsequence(Client cntxt, MalBlkP
                 * garbage collected are identified. In the post-execution
                 * phase they are removed.
                 */
-               for (i = 0; i < pci->retc; i++)
+               for (i = 0; i < pci->retc; i++) 
                        backup[i] = stk->stk[getArg(pci, i)];
 
                if (garbageControl(pci)) {
diff --git a/monetdb5/mal/mal_scenario.c b/monetdb5/mal/mal_scenario.c
--- a/monetdb5/mal/mal_scenario.c
+++ b/monetdb5/mal/mal_scenario.c
@@ -468,6 +468,7 @@ resetScenario(Client c)
        c->oldscenario = 0;
 }
 
+/*
 void
 exitScenario(Client c)
 {
@@ -480,6 +481,19 @@ exitScenario(Client c)
                (*scen->exitSystemCmd) (c);
        c->scenario = NULL;
 }
+*/
+
+void
+exitScenario(Client c)
+{
+       int i;
+       Scenario scen = scenarioRec;
+
+       for (i = 0; i < MAXSCEN && scen->name; i++, scen++) {
+               if (scen->exitSystemCmd)
+                       (*scen->exitSystemCmd)(c);
+       }
+}
 
 /*
  * The building blocks of scenarios are routines obeying a strict
diff --git a/monetdb5/mal/mal_session.c b/monetdb5/mal/mal_session.c
--- a/monetdb5/mal/mal_session.c
+++ b/monetdb5/mal/mal_session.c
@@ -488,13 +488,8 @@ MSserveClient(void *dummy)
                assert(0);
        }
 
-       if (c->mode > FINISHCLIENT) {
-               if (isAdministrator(c) /* && moreClients(0)==0 */) {
-                       if (c->scenario) {
-                               exitScenario(c);
-                       }
-               }
-       }
+       if (c->mode == FINISHCLIENT && isAdministrator(c))
+               exitScenario(c);
        if (!isAdministrator(c))
                MCcloseClient(c);
        if (c->nspace && strcmp(c->nspace->name, "user") == 0) {
diff --git a/monetdb5/optimizer/opt_dataflow.c 
b/monetdb5/optimizer/opt_dataflow.c
--- a/monetdb5/optimizer/opt_dataflow.c
+++ b/monetdb5/optimizer/opt_dataflow.c
@@ -288,7 +288,7 @@ OPTdataflowImplementation(Client cntxt, 
                } 
                // remember you assigned/read variables
                for ( k = 0; k < p->retc; k++)
-                       setState(states,p,k, VARWRITE);
+                       setState(states, p, k, VARWRITE);
                if( isUpdateInstruction(p) && (getState(states,p,1) == 0 || 
getState(states,p,1) & VARWRITE))
                        setState(states, p,1, VARBLOCK);
                for ( k = p->retc; k< p->argc; k++)
diff --git a/sql/server/rel_dump.c b/sql/server/rel_dump.c
--- a/sql/server/rel_dump.c
+++ b/sql/server/rel_dump.c
@@ -946,6 +946,11 @@ exp_read(mvc *sql, sql_rel *lrel, sql_re
                skipWS(r, pos);
                set_anti(exp);
        }
+       /* [ COUNT ] */
+       if (strncmp(r+*pos, "COUNT",  strlen("COUNT")) == 0) {
+               (*pos)+= (int) strlen("COUNT");
+               skipWS( r, pos);
+       }
        /* [ ASC ] */
        if (strncmp(r+*pos, "ASC",  strlen("ASC")) == 0) {
                (*pos)+= (int) strlen("NOT");
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to