From 83a64c6c294e2b0cdbb21e71cca8b6ca9b75e113 Mon Sep 17 00:00:00 2001 From: Tobie Morgan Hitchcock Date: Tue, 14 Feb 2017 19:23:53 +0000 Subject: [PATCH] Enforce default RETURN value in sql parser --- db/create.go | 2 +- db/delete.go | 2 +- db/update.go | 2 +- sql/create.go | 2 +- sql/delete.go | 2 +- sql/echo.go | 4 +++- sql/relate.go | 2 +- sql/update.go | 2 +- util/item/yield.go | 6 +----- 9 files changed, 11 insertions(+), 13 deletions(-) diff --git a/db/create.go b/db/create.go index 1f4b22f5..28b7417d 100644 --- a/db/create.go +++ b/db/create.go @@ -87,7 +87,7 @@ func create(doc *item.Doc, ast *sql.CreateStatement) (out interface{}, err error return } - out = doc.Yield(ast.Echo, sql.AFTER) + out = doc.Yield(ast.Echo) return diff --git a/db/delete.go b/db/delete.go index 9a683f0a..59d2bfab 100644 --- a/db/delete.go +++ b/db/delete.go @@ -96,7 +96,7 @@ func delete(doc *item.Doc, ast *sql.DeleteStatement) (out interface{}, err error } - out = doc.Yield(ast.Echo, sql.NONE) + out = doc.Yield(ast.Echo) return diff --git a/db/update.go b/db/update.go index 8f6100d9..99dde54a 100644 --- a/db/update.go +++ b/db/update.go @@ -92,7 +92,7 @@ func update(doc *item.Doc, ast *sql.UpdateStatement) (out interface{}, err error return } - out = doc.Yield(ast.Echo, sql.AFTER) + out = doc.Yield(ast.Echo) return diff --git a/sql/create.go b/sql/create.go index 4341f3a6..2adc0c9a 100644 --- a/sql/create.go +++ b/sql/create.go @@ -30,7 +30,7 @@ func (p *parser) parseCreateStatement() (stmt *CreateStatement, err error) { return nil, err } - if stmt.Echo, err = p.parseEcho(); err != nil { + if stmt.Echo, err = p.parseEcho(AFTER); err != nil { return nil, err } diff --git a/sql/delete.go b/sql/delete.go index fef8a411..5923bb30 100644 --- a/sql/delete.go +++ b/sql/delete.go @@ -39,7 +39,7 @@ func (p *parser) parseDeleteStatement() (stmt *DeleteStatement, err error) { return nil, err } - if stmt.Echo, err = p.parseEcho(); err != nil { + if stmt.Echo, err = p.parseEcho(NONE); err != nil { return nil, err } diff --git a/sql/echo.go b/sql/echo.go index fa01d3e9..9e38a65b 100644 --- a/sql/echo.go +++ b/sql/echo.go @@ -14,7 +14,9 @@ package sql -func (p *parser) parseEcho() (exp Token, err error) { +func (p *parser) parseEcho(empty Token) (exp Token, err error) { + + exp = empty // The next token that we expect to see is a // RETURN token, and if we don't find one then diff --git a/sql/relate.go b/sql/relate.go index 0182f07c..b5f0b17f 100644 --- a/sql/relate.go +++ b/sql/relate.go @@ -48,7 +48,7 @@ func (p *parser) parseRelateStatement() (stmt *RelateStatement, err error) { return nil, err } - if stmt.Echo, err = p.parseEcho(); err != nil { + if stmt.Echo, err = p.parseEcho(AFTER); err != nil { return nil, err } diff --git a/sql/update.go b/sql/update.go index c245cde0..5e421432 100644 --- a/sql/update.go +++ b/sql/update.go @@ -41,7 +41,7 @@ func (p *parser) parseUpdateStatement() (stmt *UpdateStatement, err error) { return nil, err } - if stmt.Echo, err = p.parseEcho(); err != nil { + if stmt.Echo, err = p.parseEcho(AFTER); err != nil { return nil, err } diff --git a/util/item/yield.go b/util/item/yield.go index bd161d8b..cf5c4484 100644 --- a/util/item/yield.go +++ b/util/item/yield.go @@ -18,11 +18,7 @@ import ( "github.com/abcum/surreal/sql" ) -func (this *Doc) Yield(output sql.Token, fallback sql.Token) (res interface{}) { - - if output == 0 { - output = fallback - } +func (this *Doc) Yield(output sql.Token) (res interface{}) { switch output { case sql.ID: