Changeset: aefd9a174705 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=aefd9a174705 Modified Files: monetdb5/mal/mal_instruction.mx Branch: default Log Message:
Copy variable properties upon request diffs (38 lines): diff --git a/monetdb5/mal/mal_instruction.mx b/monetdb5/mal/mal_instruction.mx --- a/monetdb5/mal/mal_instruction.mx +++ b/monetdb5/mal/mal_instruction.mx @@ -251,6 +251,7 @@ mal_export int cloneVariable(MalBlkPtr d mal_export void renameVariable(MalBlkPtr mb, int i, str name); mal_export void resetVarName(MalBlkPtr mb, int i); mal_export void copyVariable(MalBlkPtr dst, VarPtr v); +mal_export void copyProperties(MalBlkPtr mb, int src, int dst); mal_export void removeVariable(MalBlkPtr mb, int varid); mal_export int newTmpVariable(MalBlkPtr mb, malType type); mal_export int newTmpSink(MalBlkPtr mb, malType type); @@ -1265,6 +1266,26 @@ delVariable(MalBlkPtr mb, int varid) } void +copyProperties(MalBlkPtr mb, int src, int dst) +{ + VarPtr w, v; + int i; + + assert(src >=0 && src < mb->vtop); + assert(dst >=0 && dst < mb->vtop); + v = mb->var[src]; + w = mb->var[dst]; + if ( w->maxprop < v->maxprop){ + w = (VarPtr) GDKrealloc(w, sizeof(VarRecord) + v->maxprop * sizeof(int)); + mb->var[dst] = w; + w->maxprop = v->maxprop; + } + w->propc = v->propc; + for ( i= 0; i< v->propc; i++) + w->prps[i] = v->prps[i]; +} + +void copyVariable(MalBlkPtr dst, VarPtr v) { int i; _______________________________________________ Checkin-list mailing list Checkin-list@monetdb.org http://mail.monetdb.org/mailman/listinfo/checkin-list