diff --git a/ast/Node.go b/ast/Node.go index 1a09053..62f1867 100644 --- a/ast/Node.go +++ b/ast/Node.go @@ -25,5 +25,7 @@ func DoChildNodes(childNodes []Node, env map[string]interface{}) ([]byte, error) sql.Write(r) } } - return sql.Bytes(), nil + var bytes = sql.Bytes() + sql.Reset() + return bytes, nil } diff --git a/ast/NodeForEach.go b/ast/NodeForEach.go index 9286018..27ae875 100644 --- a/ast/NodeForEach.go +++ b/ast/NodeForEach.go @@ -92,10 +92,12 @@ func (it *NodeForEach) Eval(env map[string]interface{}) ([]byte, error) { } var newTempSql bytes.Buffer var tempSqlString = bytes.Trim(tempSql.Bytes(), it.separator) + tempSql.Reset() newTempSql.WriteString(it.open) newTempSql.Write(tempSqlString) newTempSql.WriteString(it.close) - tempSql.Reset() - return newTempSql.Bytes(), nil + var newTempSqlBytes=newTempSql.Bytes() + newTempSql.Reset() + return newTempSqlBytes, nil } diff --git a/ast/NodeTrim.go b/ast/NodeTrim.go index 2de23ef..eaf0533 100644 --- a/ast/NodeTrim.go +++ b/ast/NodeTrim.go @@ -49,5 +49,8 @@ func (it *NodeTrim) Eval(env map[string]interface{}) ([]byte, error) { newBuffer.Write(sql) newBuffer.WriteString(` `) newBuffer.Write(it.suffix) - return newBuffer.Bytes(), nil + + var newBufferBytes=newBuffer.Bytes() + newBuffer.Reset() + return newBufferBytes, nil }