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