Changeset: 475960715bb1 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=475960715bb1 Modified Files: monetdb5/mal/mal_import.c monetdb5/mal/mal_parser.c monetdb5/mal/mal_parser.h monetdb5/mal/mal_session.c Branch: wlcr Log Message:
Prepare for reading single MAL statements from source diffs (66 lines): diff --git a/monetdb5/mal/mal_import.c b/monetdb5/mal/mal_import.c --- a/monetdb5/mal/mal_import.c +++ b/monetdb5/mal/mal_import.c @@ -202,7 +202,7 @@ malInclude(Client c, str name, int listi c->bak = NULL; c->fdin = bstream_create(mal_init_stream, mal_init_len); bstream_next(c->fdin); - parseMAL(c, c->curprg, 1); + parseMAL(c, c->curprg, 1, INT_MAX); free(mal_init_buf); free(mal_init_stream); free(c->fdin); @@ -219,7 +219,7 @@ malInclude(Client c, str name, int listi c->yycur = 0; c->bak = NULL; if ((s = malLoadScript(c, filename, &c->fdin)) == MAL_SUCCEED) { - parseMAL(c, c->curprg, 1); + parseMAL(c, c->curprg, 1, INT_MAX); bstream_destroy(c->fdin); } else { GDKfree(s); // not interested in error here diff --git a/monetdb5/mal/mal_parser.c b/monetdb5/mal/mal_parser.c --- a/monetdb5/mal/mal_parser.c +++ b/monetdb5/mal/mal_parser.c @@ -1744,7 +1744,7 @@ part3: #define BRKONERR if (curPrg->def->errors >= MAXERRORS) \ return curPrg->def->errors; int -parseMAL(Client cntxt, Symbol curPrg, int skipcomments) +parseMAL(Client cntxt, Symbol curPrg, int skipcomments, int lines) { int cntrl = 0; /*Symbol curPrg= cntxt->curprg;*/ @@ -1753,7 +1753,7 @@ parseMAL(Client cntxt, Symbol curPrg, in echoInput(cntxt); /* here the work takes place */ - while ((c = currChar(cntxt))) { + while ((c = currChar(cntxt)) && lines-- > 0) { switch (c) { case '\n': case '\r': case '\f': nextChar(cntxt); diff --git a/monetdb5/mal/mal_parser.h b/monetdb5/mal/mal_parser.h --- a/monetdb5/mal/mal_parser.h +++ b/monetdb5/mal/mal_parser.h @@ -20,7 +20,7 @@ #define prevChar(X) if(X->yycur) X->yycur-- mal_export void initParser(void); /* needed in src/mal/mal.c */ -mal_export int parseMAL(Client cntxt, Symbol curPrg, int skipcomments); +mal_export int parseMAL(Client cntxt, Symbol curPrg, int skipcomments, int lines); #endif /* _MAL_PARSER_H */ 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 @@ -574,7 +574,7 @@ MALparser(Client c) oldstate = *c->curprg->def; prepareMalBlk(c->curprg->def, CURRENT(c)); - if (parseMAL(c, c->curprg, 0) || c->curprg->def->errors) { + if (parseMAL(c, c->curprg, 0, INT_MAX) || c->curprg->def->errors) { /* just complete it for visibility */ pushEndInstruction(c->curprg->def); /* caught errors */ _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list