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

Reply via email to