parser: support built-in function pow

This commit is contained in:
sllt
2015-12-19 23:51:04 +08:00
parent 60ec9fccff
commit c01879ba2e
5 changed files with 77 additions and 2 deletions

View File

@ -210,6 +210,8 @@ import (
outer "OUTER"
password "PASSWORD"
placeholder "PLACEHOLDER"
pow "POW"
power "POWER"
prepare "PREPARE"
primary "PRIMARY"
quarter "QUARTER"
@ -2257,6 +2259,16 @@ FunctionCallNonKeyword:
{
$$ = &ast.FuncCallExpr{FnName: model.NewCIStr($1.(string)), Args: $3.([]ast.ExprNode)}
}
| "POW" '(' Expression ',' Expression ')'
{
args := []ast.ExprNode{$3.(ast.ExprNode), $5.(ast.ExprNode)}
$$ = &ast.FuncCallExpr{FnName: model.NewCIStr($1.(string)), Args: args}
}
| "POWER" '(' Expression ',' Expression ')'
{
args := []ast.ExprNode{$3.(ast.ExprNode), $5.(ast.ExprNode)}
$$ = &ast.FuncCallExpr{FnName: model.NewCIStr($1.(string)), Args: args}
}
| "RAND" '(' ExpressionOpt ')'
{

View File

@ -414,6 +414,8 @@ or {o}{r}
order {o}{r}{d}{e}{r}
outer {o}{u}{t}{e}{r}
password {p}{a}{s}{s}{w}{o}{r}{d}
pow {p}{o}{w}
power {p}{o}{w}{e}{r}
prepare {p}{r}{e}{p}{a}{r}{e}
primary {p}{r}{i}{m}{a}{r}{y}
quarter {q}{u}{a}{r}{t}{e}{r}
@ -850,6 +852,10 @@ year_month {y}{e}{a}{r}_{m}{o}{n}{t}{h}
{outer} return outer
{password} lval.item = string(l.val)
return password
{pow} lval.item = string(l.val)
return pow
{power} lval.item = string(l.val)
return power
{prepare} lval.item = string(l.val)
return prepare
{primary} return primary