Skip to content

Commit

Permalink
stateless command parsing - first step for executor cache
Browse files Browse the repository at this point in the history
  • Loading branch information
luigidellaquila committed Aug 11, 2015
1 parent ef94a50 commit 303f8c2
Show file tree
Hide file tree
Showing 100 changed files with 850 additions and 1,636 deletions.
Expand Up @@ -230,7 +230,9 @@ protected String preParse(final String queryText, final OCommandRequest iRequest


if (iRequest instanceof OCommandRequestAbstract) { if (iRequest instanceof OCommandRequestAbstract) {
final Map<Object, Object> params = ((OCommandRequestAbstract) iRequest).getParameters(); final Map<Object, Object> params = ((OCommandRequestAbstract) iRequest).getParameters();
result.replaceParameters(params); StringBuilder builder = new StringBuilder();
result.toString(params, builder);
return builder.toString();
} }


return result.toString(); return result.toString();
Expand Down
Expand Up @@ -2,6 +2,8 @@
/* JavaCCOptions:MULTI=true,NODE_USES_PARSER=false,VISITOR=true,TRACK_TOKENS=true,NODE_PREFIX=O,NODE_EXTENDS=,NODE_FACTORY=,SUPPORT_CLASS_VISIBILITY_PUBLIC=true */ /* JavaCCOptions:MULTI=true,NODE_USES_PARSER=false,VISITOR=true,TRACK_TOKENS=true,NODE_PREFIX=O,NODE_EXTENDS=,NODE_FACTORY=,SUPPORT_CLASS_VISIBILITY_PUBLIC=true */
package com.orientechnologies.orient.core.sql.parser; package com.orientechnologies.orient.core.sql.parser;


import java.util.Map;

public public
class OAlias extends SimpleNode { class OAlias extends SimpleNode {
public OAlias(int id) { public OAlias(int id) {
Expand All @@ -18,5 +20,8 @@ public Object jjtAccept(OrientSqlVisitor visitor, Object data) {
return visitor.visit(this, data); return visitor.visit(this, data);
} }


public void toString(Map<Object, Object> params, StringBuilder builder) {

}
} }
/* JavaCC - OriginalChecksum=c0c2ff315abe152a8ea5f2ecafd0f853 (do not edit this line) */ /* JavaCC - OriginalChecksum=c0c2ff315abe152a8ea5f2ecafd0f853 (do not edit this line) */
Expand Up @@ -36,12 +36,6 @@ public boolean evaluate(OIdentifiable currentRecord, OCommandContext ctx) {


} }


@Override public void replaceParameters(Map<Object, Object> params) {
for(OBooleanExpression sub:subBlocks){
sub.replaceParameters(params);
}
}

public List<OBooleanExpression> getSubBlocks() { public List<OBooleanExpression> getSubBlocks() {
return subBlocks; return subBlocks;
} }
Expand All @@ -50,24 +44,22 @@ public void setSubBlocks(List<OBooleanExpression> subBlocks) {
this.subBlocks = subBlocks; this.subBlocks = subBlocks;
} }


@Override public void toString(Map<Object, Object> params, StringBuilder builder) {
public String toString() {
if (subBlocks == null || subBlocks.size() == 0) { if (subBlocks == null || subBlocks.size() == 0) {
return ""; return;
}
if (subBlocks.size() == 1) {
return subBlocks.get(0).toString();
} }
StringBuilder result = new StringBuilder(); // if (subBlocks.size() == 1) {
// subBlocks.get(0).toString(params, builder);
// }

boolean first = true; boolean first = true;
for (OBooleanExpression expr : subBlocks) { for (OBooleanExpression expr : subBlocks) {
if (!first) { if (!first) {
result.append(" AND "); builder.append(" AND ");
} }
result.append(expr.toString()); expr.toString(params, builder);
first = false; first = false;
} }
return result.toString();
} }


@Override protected boolean supportsBasicCalculation() { @Override protected boolean supportsBasicCalculation() {
Expand Down
Expand Up @@ -27,34 +27,23 @@ public Object jjtAccept(OrientSqlVisitor visitor, Object data) {
return visitor.visit(this, data); return visitor.visit(this, data);
} }


@Override public void toString(Map<Object, Object> params, StringBuilder builder) {
public String toString() {
if (inputValue != null) { if (inputValue != null) {
if (inputFinalValue == UNSET) { // if (inputFinalValue == UNSET) {
return inputValue.toString(); // inputValue.toString(params, builder);
} else if (inputFinalValue == null) { // } else if (inputFinalValue == null) {
return "NULL"; // builder.append("NULL");
} else { // } else {
return inputFinalValue.toString(); // builder.appinputFinalValue.toString(params, builder);
} // }
inputValue.toString(params, builder);
} else if (expressionValue != null) { } else if (expressionValue != null) {
return expressionValue.toString(); expressionValue.toString(params, builder);
} else if (integer != null) { } else if (integer != null) {
return integer.toString(); builder.append(integer);
} }
return super.toString();
} }


public void replaceParameters(Map<Object, Object> params) {
if (inputValue != null) {
Object result = inputValue.bindFromInputParams(params);
if (result != inputValue) {
inputFinalValue = result;
}
}
if (expressionValue != null) {
expressionValue.replaceParameters(params);
}
}
} }
/* JavaCC - OriginalChecksum=5b2e495391ede3ccdc6c25aa63c8e591 (do not edit this line) */ /* JavaCC - OriginalChecksum=5b2e495391ede3ccdc6c25aa63c8e591 (do not edit this line) */
Expand Up @@ -25,35 +25,24 @@ public Object jjtAccept(OrientSqlVisitor visitor, Object data) {
return visitor.visit(this, data); return visitor.visit(this, data);
} }


@Override public void toString(Map<Object, Object> params, StringBuilder builder) {
public String toString() {
StringBuilder result = new StringBuilder();
if (from != null) { if (from != null) {
result.append(from); builder.append(from);
} else { } else {
result.append(fromSelector.toString()); fromSelector.toString(params, builder);
} }
if (newRange) { if (newRange) {
result.append("-"); builder.append("-");
// TODO in 3.0 result.append(".."); // TODO in 3.0 result.append("..");
} else { } else {
result.append("-"); builder.append("-");
} }
if (to != null) { if (to != null) {
result.append(to); builder.append(to);
} else { } else {
result.append(toSelector.toString()); toSelector.toString(params, builder);
} }
return result.toString();
} }


public void replaceParameters(Map<Object, Object> params) {
if (fromSelector != null) {
fromSelector.replaceParameters(params);
}
if (toSelector != null) {
toSelector.replaceParameters(params);
}
}
} }
/* JavaCC - OriginalChecksum=594a372e31fcbcd3ed962c2260e76468 (do not edit this line) */ /* JavaCC - OriginalChecksum=594a372e31fcbcd3ed962c2260e76468 (do not edit this line) */
Expand Up @@ -6,9 +6,6 @@


public class OArraySelector extends SimpleNode { public class OArraySelector extends SimpleNode {


private static final Object UNSET = new Object();
private Object inputFinalValue = UNSET;

protected ORid rid; protected ORid rid;
protected OInputParameter inputParam; protected OInputParameter inputParam;
protected OExpression expression; protected OExpression expression;
Expand All @@ -27,36 +24,17 @@ public Object jjtAccept(OrientSqlVisitor visitor, Object data) {
return visitor.visit(this, data); return visitor.visit(this, data);
} }


@Override public void toString(Map<Object, Object> params, StringBuilder builder) {
public String toString() {
if (rid != null) { if (rid != null) {
return rid.toString(); rid.toString(params, builder);
} else if (inputParam != null) { } else if (inputParam != null) {
if (inputFinalValue == UNSET) { inputParam.toString(params, builder);
return inputParam.toString();
} else if (inputFinalValue == null) {
return "NULL";
} else {
return inputFinalValue.toString();
}
} else if (expression != null) { } else if (expression != null) {
return expression.toString(); expression.toString(params, builder);
} else if (integer != null) { } else if (integer != null) {
return integer.toString(); integer.toString(params, builder);
} }
return null;
} }


public void replaceParameters(Map<Object, Object> params) {
if (inputParam != null) {
Object result = inputParam.bindFromInputParams(params);
if (result != inputParam) {
inputFinalValue = result;
}
}
if (expression != null) {
expression.replaceParameters(params);
}
}
} }
/* JavaCC - OriginalChecksum=f87a5543b1dad0fb5f6828a0663a7c9e (do not edit this line) */ /* JavaCC - OriginalChecksum=f87a5543b1dad0fb5f6828a0663a7c9e (do not edit this line) */
Expand Up @@ -23,26 +23,17 @@ public Object jjtAccept(OrientSqlVisitor visitor, Object data) {
return visitor.visit(this, data); return visitor.visit(this, data);
} }


@Override public void toString(Map<Object, Object> params, StringBuilder builder) {
public String toString() {
boolean first = true; boolean first = true;
StringBuilder result = new StringBuilder();
for (OArraySelector item : items) { for (OArraySelector item : items) {
if (!first) { if (!first) {
result.append(","); builder.append(",");
} }
result.append(item.toString()); item.toString(params, builder);
first = false; first = false;
} }
return result.toString();
} }


public void replaceParameters(Map<Object, Object> params) {
if(items!=null){
for(OArraySelector item:items){
item.replaceParameters(params);
}
}
}
} }
/* JavaCC - OriginalChecksum=991998c77a4831184b6dca572513fd8d (do not edit this line) */ /* JavaCC - OriginalChecksum=991998c77a4831184b6dca572513fd8d (do not edit this line) */
Expand Up @@ -35,35 +35,25 @@ public Object jjtAccept(OrientSqlVisitor visitor, Object data) {
return visitor.visit(this, data); return visitor.visit(this, data);
} }


@Override @Override public String toString() {
public String toString() { return super.toString();
StringBuilder result = new StringBuilder(); }

public void toString(Map<Object, Object> params, StringBuilder builder) {
if (number != null) { if (number != null) {
result.append(number.toString()); number.toString(params, builder);
} else if (identifier != null) { } else if (identifier != null) {
result.append(identifier.toString()); identifier.toString(params, builder);
} else if (string != null) { } else if (string != null) {
result.append(string); builder.append(string);
} else if (inputParam != null) { } else if (inputParam != null) {
if (inputFinalValue == UNSET) { inputParam.toString(params,builder);
result.append(inputParam.toString());
} else if (inputFinalValue == null) {
result.append("NULL");
} else {
if (inputFinalValue instanceof String) {
result.append("\"");
result.append(OExpression.encode(inputFinalValue.toString()));
result.append("\"");
} else {
result.append(inputFinalValue.toString());
}
}
} }


if (modifier != null) { if (modifier != null) {
result.append(modifier.toString()); modifier.toString(params, builder);
} }
return result.toString();
} }


public Object execute(OIdentifiable iCurrentRecord, OCommandContext ctx) { public Object execute(OIdentifiable iCurrentRecord, OCommandContext ctx) {
Expand All @@ -83,20 +73,7 @@ public Object execute(OIdentifiable iCurrentRecord, OCommandContext ctx) {
return result; return result;
} }


public void replaceParameters(Map<Object, Object> params) {
if (identifier != null) {
identifier.replaceParameters(params);
}
if (inputParam != null) {
Object result = inputParam.bindFromInputParams(params);
if (inputParam != result) {
inputFinalValue = result;
}
}
if (modifier != null) {
modifier.replaceParameters(params);
}
}


@Override @Override
protected boolean supportsBasicCalculation() { protected boolean supportsBasicCalculation() {
Expand Down
Expand Up @@ -26,22 +26,14 @@ public Object jjtAccept(OrientSqlVisitor visitor, Object data) {
return visitor.visit(this, data); return visitor.visit(this, data);
} }


@Override public void toString(Map<Object, Object> params, StringBuilder builder) {
public String toString() {
if (levelZero != null) { if (levelZero != null) {
return levelZero.toString(); levelZero.toString(params, builder);
} else if (suffix != null) { } else if (suffix != null) {
return suffix.toString(); suffix.toString(params, builder);
} }
return super.toString();
} }


public void replaceParameters(Map<Object, Object> params) {
if (levelZero != null) {
levelZero.replaceParameters(params);
}

}


public Object execute(OIdentifiable iCurrentRecord, OCommandContext ctx) { public Object execute(OIdentifiable iCurrentRecord, OCommandContext ctx) {
if (levelZero != null) { if (levelZero != null) {
Expand Down
Expand Up @@ -11,7 +11,6 @@ class OBatch extends SimpleNode {


protected OInputParameter inputParam; protected OInputParameter inputParam;


protected Object inputFinalValue;


public OBatch(int id) { public OBatch(int id) {
super(id); super(id);
Expand All @@ -27,30 +26,18 @@ public Object jjtAccept(OrientSqlVisitor visitor, Object data) {
return visitor.visit(this, data); return visitor.visit(this, data);
} }


public void replaceParameters(Map<Object, Object> params) {
if (inputParam != null) {
Object result = inputParam.bindFromInputParams(params);
if (inputParam != result) {
inputFinalValue = result;
}
}
}


@Override public void toString(Map<Object, Object> params, StringBuilder builder) {
public String toString() {
if (num == null && inputParam == null) { if (num == null && inputParam == null) {
return ""; return;
} }
StringBuilder result = new StringBuilder();
result.append(" BATCH "); builder.append(" BATCH ");
if (num != null) { if (num != null) {
result.append(num); num.toString(params, builder);
} else if (inputFinalValue != null) {
result.append(inputFinalValue);
} else { } else {
result.append(inputParam); inputParam.toString(params, builder);
} }
return result.toString();
} }
} }
/* JavaCC - OriginalChecksum=b1587460e08cbf21086d8c8fcca192e0 (do not edit this line) */ /* JavaCC - OriginalChecksum=b1587460e08cbf21086d8c8fcca192e0 (do not edit this line) */

0 comments on commit 303f8c2

Please sign in to comment.