Changeset: d314807446e7 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=d314807446e7
Modified Files:
monetdb5/mal/mal_builder.c
monetdb5/mal/mal_instruction.c
monetdb5/mal/mal_interpreter.c
monetdb5/mal/mal_stack.c
monetdb5/optimizer/opt_mergetable.c
monetdb5/optimizer/opt_reorder.c
sql/backends/monet5/sql_optimizer.c
Branch: Dec2016
Log Message:
merge
diffs (141 lines):
diff --git a/monetdb5/mal/mal_builder.c b/monetdb5/mal/mal_builder.c
--- a/monetdb5/mal/mal_builder.c
+++ b/monetdb5/mal/mal_builder.c
@@ -108,6 +108,10 @@ newComment(MalBlkPtr mb, const char *val
}
cst.len= (int) strlen(cst.val.sval);
getArg(q,0) = defConstant(mb,TYPE_str,&cst);
+ if (getArg(q,0) < 0) {
+ freeInstruction(q);
+ return NULL;
+ }
clrVarConstant(mb,getArg(q,0));
setVarDisabled(mb,getArg(q,0));
if (mb->errors) {
diff --git a/monetdb5/mal/mal_instruction.c b/monetdb5/mal/mal_instruction.c
--- a/monetdb5/mal/mal_instruction.c
+++ b/monetdb5/mal/mal_instruction.c
@@ -730,7 +730,6 @@ makeVarSpace(MalBlkPtr mb)
if (new == NULL) {
mb->errors++;
showScriptException(GDKout, mb, 0, MAL, "newMalBlk:no
storage left\n");
- assert(0);
return -1;
}
memset(new + mb->vsize, 0, (s - mb->vsize) * sizeof(VarPtr));
@@ -1258,6 +1257,9 @@ defConstant(MalBlkPtr mb, int type, ValP
return k;
}
k = newTmpVariable(mb, type);
+ if (k == -1) {
+ return k;
+ }
setVarConstant(mb, k);
setVarFixed(mb, k);
if (type >= 0 && type < GDKatomcnt && ATOMextern(type))
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
@@ -285,6 +285,9 @@ prepareMALstack(MalBlkPtr mb, int size)
assert(size >= mb->vsize);
stk = newGlobalStack(size);
+ if (!stk) {
+ return NULL;
+ }
//memset((char *)stk, 0, stackSize(size)); already set
//stk->stksize = size;
stk->stktop = mb->vtop;
diff --git a/monetdb5/mal/mal_stack.c b/monetdb5/mal/mal_stack.c
--- a/monetdb5/mal/mal_stack.c
+++ b/monetdb5/mal/mal_stack.c
@@ -59,8 +59,9 @@ newGlobalStack(int size)
MalStkPtr s;
s = (MalStkPtr) GDKzalloc(stackSize(size) + offsetof(MalStack, stk));
- if (s == NULL)
- GDKfatal("newGlobalStack:can not obtain memory\n");
+ if (!s) {
+ return NULL;
+ }
s->stksize = size;
return s;
}
@@ -75,6 +76,9 @@ reallocGlobalStack(MalStkPtr old, int cn
return old;
k = ((cnt / STACKINCR) + 1) * STACKINCR;
s = newGlobalStack(k);
+ if (!s) {
+ return NULL;
+ }
memcpy(s, old, stackSize(old->stksize));
s->stksize = k;
GDKfree(old);
diff --git a/monetdb5/optimizer/opt_mergetable.c
b/monetdb5/optimizer/opt_mergetable.c
--- a/monetdb5/optimizer/opt_mergetable.c
+++ b/monetdb5/optimizer/opt_mergetable.c
@@ -1647,8 +1647,9 @@ OPTmergetableImplementation(Client cntxt
ml.vsize = mb->vsize;
ml.horigin = (int*) GDKmalloc(sizeof(int)* ml.vsize);
ml.torigin = (int*) GDKmalloc(sizeof(int)* ml.vsize);
- if ( ml.v == NULL || ml.horigin == NULL || ml.torigin == NULL)
+ if ( ml.v == NULL || ml.horigin == NULL || ml.torigin == NULL) {
goto cleanup;
+ }
for (i=0; i<ml.vsize; i++)
ml.horigin[i] = ml.torigin[i] = -1;
@@ -1961,9 +1962,9 @@ OPTmergetableImplementation(Client cntxt
freeInstruction(ml.v[i].mi);
}
cleanup:
- GDKfree(ml.v);
- GDKfree(ml.horigin);
- GDKfree(ml.torigin);
+ if (ml.v) GDKfree(ml.v);
+ if (ml.horigin) GDKfree(ml.horigin);
+ if (ml.torigin) GDKfree(ml.torigin);
/* Defense line against incorrect plans */
if( actions > 0){
chkTypes(cntxt->fdout, cntxt->nspace, mb, FALSE);
diff --git a/monetdb5/optimizer/opt_reorder.c b/monetdb5/optimizer/opt_reorder.c
--- a/monetdb5/optimizer/opt_reorder.c
+++ b/monetdb5/optimizer/opt_reorder.c
@@ -134,6 +134,11 @@ OPTdependencies(Client cntxt, MalBlkPtr
sz += list[i]->used;
}
uselist = GDKzalloc(sizeof(int)*sz);
+ if (!uselist) {
+ GDKfree(list);
+ GDKfree(var);
+ return NULL;
+ }
for(i=0;i<mb->stop; i++) {
if (list[i]->cnt) {
diff --git a/sql/backends/monet5/sql_optimizer.c
b/sql/backends/monet5/sql_optimizer.c
--- a/sql/backends/monet5/sql_optimizer.c
+++ b/sql/backends/monet5/sql_optimizer.c
@@ -60,11 +60,11 @@ SQLgetColumnSize(sql_trans *tr, sql_colu
return size;
}
-static lng
+static lng
SQLgetSpace(mvc *m, MalBlkPtr mb, int prepare)
{
sql_trans *tr = m->session->tr;
- lng size,space = 0, i;
+ lng size,space = 0, i;
for (i = 0; i < mb->stop; i++) {
InstrPtr p = mb->stmt[i];
@@ -80,7 +80,7 @@ SQLgetSpace(mvc *m, MalBlkPtr mb, int pr
sql_table *t = 0;
sql_column *c = 0;
- if (!s || strcmp(s->base.name, dt_schema) == 0)
+ if (!s || strcmp(s->base.name, dt_schema) == 0)
continue;
t = mvc_bind_table(m, s, tname);
if (!t)
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list