Skip to content

Commit

Permalink
Allow "skip" and "limit" as named parameters
Browse files Browse the repository at this point in the history
eg. SELECT FORM V SKIP :skip LIMIT :limit

Resolves: #5493
  • Loading branch information
luigidellaquila committed Dec 21, 2015
1 parent 78c9b7d commit be5417f
Show file tree
Hide file tree
Showing 5 changed files with 1,364 additions and 1,271 deletions.
14 changes: 12 additions & 2 deletions core/src/main/grammar/OrientSQL.jjt
Expand Up @@ -1677,10 +1677,20 @@ OPositionalParameter PositionalParameter():
}

ONamedParameter NamedParameter():
{}
{
OIdentifier identifierParam;
Token token;
}
{
(
<COLON> jjtThis.paramName = Identifier()
<COLON>
(
identifierParam = Identifier() { jjtThis.paramName = identifierParam.toString(); }
|
token = <SKIP2> {jjtThis.paramName = token.image;}
|
token = <LIMIT> {jjtThis.paramName = token.image;}
)
)
{
jjtThis.paramNumber = inputParamCount;
Expand Down
Expand Up @@ -7,7 +7,7 @@
public class ONamedParameter extends OInputParameter {

protected int paramNumber;
protected OIdentifier paramName;
protected String paramName;

public ONamedParameter(int id) {
super(id);
Expand All @@ -24,13 +24,13 @@ public Object jjtAccept(OrientSqlVisitor visitor, Object data) {

@Override
public String toString() {
return ":" + paramName.toString();
return ":" + paramName;
}

public void toString(Map<Object, Object> params, StringBuilder builder) {
Object finalValue = bindFromInputParams(params);
if (finalValue == this) {
builder.append(":" + paramName.toString());
builder.append(":" + paramName);
} else if (finalValue instanceof String) {
builder.append("\"");
builder.append(OExpression.encode(finalValue.toString()));
Expand All @@ -44,7 +44,7 @@ public void toString(Map<Object, Object> params, StringBuilder builder) {

public Object bindFromInputParams(Map<Object, Object> params) {
if (params != null) {
String key = paramName.toString();
String key = paramName;
if (params.containsKey(key)) {
return toParsedTree(params.get(key));
}
Expand Down

0 comments on commit be5417f

Please sign in to comment.