Till Westmann has uploaded a new change for review.
https://asterix-gerrit.ics.uci.edu/823
Change subject: fewer copies
......................................................................
fewer copies
Change-Id: Ia409bf61140816c8246ab79c11732654613b20bf
---
M
asterixdb/asterix-lang-aql/src/main/java/org/apache/asterix/lang/aql/parser/FunctionParser.java
1 file changed, 9 insertions(+), 12 deletions(-)
git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb
refs/changes/23/823/1
diff --git
a/asterixdb/asterix-lang-aql/src/main/java/org/apache/asterix/lang/aql/parser/FunctionParser.java
b/asterixdb/asterix-lang-aql/src/main/java/org/apache/asterix/lang/aql/parser/FunctionParser.java
index 96086a1..1f58d08 100644
---
a/asterixdb/asterix-lang-aql/src/main/java/org/apache/asterix/lang/aql/parser/FunctionParser.java
+++
b/asterixdb/asterix-lang-aql/src/main/java/org/apache/asterix/lang/aql/parser/FunctionParser.java
@@ -19,7 +19,6 @@
package org.apache.asterix.lang.aql.parser;
-import java.io.StringReader;
import java.util.ArrayList;
import java.util.List;
@@ -30,6 +29,7 @@
import org.apache.asterix.lang.common.statement.FunctionDecl;
import org.apache.asterix.lang.common.struct.VarIdentifier;
import org.apache.asterix.metadata.entities.Function;
+import org.apache.commons.io.input.CharSequenceReader;
public class FunctionParser {
@@ -48,23 +48,20 @@
builder.append(" use dataverse " + function.getDataverseName() + ";");
builder.append(" declare function " +
function.getName().split("@")[0]);
builder.append("(");
+ boolean first = true;
for (String param : params) {
VarIdentifier varId = new VarIdentifier(param);
varIdentifiers.add(varId);
+ if (first) {
+ first = false;
+ } else {
+ builder.append(",");
+ }
builder.append(param);
- builder.append(",");
}
- if (params.size() > 0) {
- builder.delete(builder.length() - 1, builder.length());
- }
- builder.append(")");
- builder.append("{");
- builder.append("\n");
- builder.append(functionBody);
- builder.append("\n");
- builder.append("}");
+ builder.append("){\n").append(functionBody).append("\n}");
- IParser parser = parserFactory.createParser(new StringReader(new
String(builder)));
+ IParser parser = parserFactory.createParser(new
CharSequenceReader(builder));
List<Statement> statements = parser.parse();
FunctionDecl decl = (FunctionDecl) statements.get(1);
return decl;
--
To view, visit https://asterix-gerrit.ics.uci.edu/823
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ia409bf61140816c8246ab79c11732654613b20bf
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: Till Westmann <[email protected]>