Changeset: 8b540e0591b5 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=8b540e0591b5
Modified Files:
        monetdb5/optimizer/opt_append.c
        monetdb5/optimizer/opt_bincopyfrom.c
Branch: copybinary
Log Message:

fixup memory fixes


diffs (74 lines):

diff --git a/monetdb5/optimizer/opt_append.c b/monetdb5/optimizer/opt_append.c
--- a/monetdb5/optimizer/opt_append.c
+++ b/monetdb5/optimizer/opt_append.c
@@ -103,8 +103,8 @@ transform(parstate *state, MalBlkPtr mb,
        int ret_cookie = newTmpVariable(mb, TYPE_ptr);
        InstrPtr e = newFcnCall(mb, sqlRef, append_execRef);
        setReturnArgument(e, ret_cookie);
-       pushArgument(mb, e, cookie_var);
-       pushArgument(mb, e, data_var);
+       e = pushArgument(mb, e, cookie_var);
+       e = pushArgument(mb, e, data_var);
 
        state->finish_stmt = pushArgument(mb, state->finish_stmt, ret_cookie);
        // fprintf(stderr, "TRIGGER\n");
@@ -174,20 +174,20 @@ setup_append_prep(parstate *state, MalBl
                InstrPtr p = newFcnCall(mb, sqlRef, append_prepRef);
                setReturnArgument(p, chain);
                pushReturn(mb, p, cookie_var);
-               pushArgument(mb, p, chain_in_var);
-               pushArgument(mb, p, sname_var);
-               pushArgument(mb, p, tname_var);
-               pushArgument(mb, p, cname_var);
+               p = pushArgument(mb, p, chain_in_var);
+               p = pushArgument(mb, p, sname_var);
+               p = pushArgument(mb, p, tname_var);
+               p = pushArgument(mb, p, cname_var);
                state->prep_stmt = p;
 
                InstrPtr f = newInstructionArgs(mb, sqlRef, append_finishRef, 
2);
+               setReturnArgument(f, chain_out_var);
+               f = pushArgument(mb, f, chain);
                state->finish_stmt = f;
-               setReturnArgument(f, chain_out_var);
-               pushArgument(mb, f, chain);
        } else {
                // Append to existing first, to ensure there is room
-               pushArgument(mb, prep_stmt, cname_var);
-               pushArgument(mb, prep_stmt, cookie_var);
+               prep_stmt = pushArgument(mb, prep_stmt, cname_var);
+               prep_stmt = pushArgument(mb, prep_stmt, cookie_var);
                // Now move the cookie_var to its proper location
                for (int i = prep_stmt->argc - 1; i > prep_stmt->retc; i--)
                        setArg(prep_stmt, i, getArg(prep_stmt, i - 1));
@@ -196,6 +196,8 @@ setup_append_prep(parstate *state, MalBl
 
                // Always use the chain_out of the latest sql_append:
                setArg(state->finish_stmt, 0, chain_out_var);
+
+               state->prep_stmt = prep_stmt;
        }
 
        return cookie_var;
diff --git a/monetdb5/optimizer/opt_bincopyfrom.c 
b/monetdb5/optimizer/opt_bincopyfrom.c
--- a/monetdb5/optimizer/opt_bincopyfrom.c
+++ b/monetdb5/optimizer/opt_bincopyfrom.c
@@ -150,15 +150,15 @@ extract_column(MalBlkPtr mb, InstrPtr ol
                if (count_var < 0)
                        pushLng(mb, p, 0);
                else
-                       pushArgument(mb, p, count_var);
+                       p = pushArgument(mb, p, count_var);
                return new_count_var;
        } else {
                InstrPtr p = newFcnCall(mb, algebraRef, projectRef);
                setReturnArgument(p, old->argv[idx]);
-               pushArgument(mb, p, proto_bat_var);
+               p = pushArgument(mb, p, proto_bat_var);
                int proto_bat_type = getVarType(mb, var);
                int proto_elem_type = getBatType(proto_bat_type);
-               pushNil(mb, p, proto_elem_type);
+               p = pushNil(mb, p, proto_elem_type);
                return count_var;
        }
 }
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to