Changeset: 27be8fa92b48 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=27be8fa92b48
Modified Files:
        monetdb5/mal/mal_instruction.c
        monetdb5/mal/mal_instruction.h
Branch: default
Log Message:

Add renaming operation.


diffs (44 lines):

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
@@ -600,6 +600,7 @@ insertInstruction(MalBlkPtr mb, InstrPtr
  * fly. Then the expensive search is started anyway. It also means
  * that input which does not comply with the intended location of a
  * temporary variable should be flagged as an error. */
+/* Unsafe routine when called in parallel to materialise temporary variables */
 inline str
 getVarName(MalBlkPtr mb, int i)
 {
@@ -616,6 +617,21 @@ getVarName(MalBlkPtr mb, int i)
 }
 
 inline void
+setVarName(MalBlkPtr mb, int i, str nme)
+{
+       char buf[PATHLENGTH];
+
+       if ( mb->var[i]->name)
+               GDKfree(mb->var[i]->name);
+
+       if (nme == 0) {
+               snprintf(buf, PATHLENGTH, "%c%d", TMPMARKER, 
mb->var[i]->tmpindex);
+               nme = buf;
+       }
+       mb->var[i]->name = GDKstrdup(nme);
+}
+
+inline void
 resetVarName(MalBlkPtr mb, int i)
 {
        str nme;
diff --git a/monetdb5/mal/mal_instruction.h b/monetdb5/mal/mal_instruction.h
--- a/monetdb5/mal/mal_instruction.h
+++ b/monetdb5/mal/mal_instruction.h
@@ -255,6 +255,7 @@ mal_export int findVariableLength(MalBlk
 mal_export malType getType(MalBlkPtr mb, str nme);
 mal_export str getArgDefault(MalBlkPtr mb, InstrPtr p, int idx);
 mal_export str getVarName(MalBlkPtr mb, int i);
+mal_export void setVarName(MalBlkPtr mb, int i, str nme);
 mal_export str getRefName(MalBlkPtr mb, int i);
 mal_export int newVariable(MalBlkPtr mb, str name, malType type);
 mal_export int cloneVariable(MalBlkPtr dst, MalBlkPtr src, int varid);
_______________________________________________
Checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list

Reply via email to