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