Implement PARALLEL keyword on queries
This commit is contained in:
parent
8a41cc8a08
commit
c0f9ec1f26
9 changed files with 47 additions and 0 deletions
|
@ -38,6 +38,10 @@ func (p *parser) parseCreateStatement() (stmt *CreateStatement, err error) {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if stmt.Parallel, err = p.parseParallel(); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -47,6 +47,10 @@ func (p *parser) parseDeleteStatement() (stmt *DeleteStatement, err error) {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if stmt.Parallel, err = p.parseParallel(); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
17
sql/exprs.go
17
sql/exprs.go
|
@ -218,6 +218,23 @@ func (p *parser) parsePriority() (float64, error) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (p *parser) parseParallel() (int, error) {
|
||||||
|
|
||||||
|
if _, _, exi := p.mightBe(PARALLEL); !exi {
|
||||||
|
return 0, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
tok, lit, err := p.shouldBe(NUMBER)
|
||||||
|
if err != nil {
|
||||||
|
return 0, &ParseError{Found: lit, Expected: []string{"number"}}
|
||||||
|
}
|
||||||
|
|
||||||
|
val, err := p.declare(tok, lit)
|
||||||
|
|
||||||
|
return int(val.(float64)), err
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
func (p *parser) parseType() (t, k string, err error) {
|
func (p *parser) parseType() (t, k string, err error) {
|
||||||
|
|
||||||
_, t, err = p.shouldBe(IDENT, STRING, PASSWORD)
|
_, t, err = p.shouldBe(IDENT, STRING, PASSWORD)
|
||||||
|
|
|
@ -44,6 +44,10 @@ func (p *parser) parseInsertStatement() (stmt *InsertStatement, err error) {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if stmt.Parallel, err = p.parseParallel(); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -56,6 +56,10 @@ func (p *parser) parseRelateStatement() (stmt *RelateStatement, err error) {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if stmt.Parallel, err = p.parseParallel(); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -67,6 +67,10 @@ func (p *parser) parseSelectStatement() (stmt *SelectStatement, err error) {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if stmt.Parallel, err = p.parseParallel(); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
if err = checkExpression(aggrs, stmt.Expr, stmt.Group); err != nil {
|
if err = checkExpression(aggrs, stmt.Expr, stmt.Group); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
|
@ -163,6 +163,7 @@ const (
|
||||||
ON
|
ON
|
||||||
OR
|
OR
|
||||||
ORDER
|
ORDER
|
||||||
|
PARALLEL
|
||||||
PASSWORD
|
PASSWORD
|
||||||
PERMISSIONS
|
PERMISSIONS
|
||||||
PRIORITY
|
PRIORITY
|
||||||
|
@ -335,6 +336,7 @@ var tokens = [...]string{
|
||||||
ON: "ON",
|
ON: "ON",
|
||||||
OR: "OR",
|
OR: "OR",
|
||||||
ORDER: "ORDER",
|
ORDER: "ORDER",
|
||||||
|
PARALLEL: "PARALLEL",
|
||||||
PASSWORD: "PASSWORD",
|
PASSWORD: "PASSWORD",
|
||||||
PERMISSIONS: "PERMISSIONS",
|
PERMISSIONS: "PERMISSIONS",
|
||||||
PRIORITY: "PRIORITY",
|
PRIORITY: "PRIORITY",
|
||||||
|
|
|
@ -42,6 +42,10 @@ func (p *parser) parseUpdateStatement() (stmt *UpdateStatement, err error) {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if stmt.Parallel, err = p.parseParallel(); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -44,6 +44,10 @@ func (p *parser) parseUpsertStatement() (stmt *UpsertStatement, err error) {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if stmt.Parallel, err = p.parseParallel(); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue