浏览代码

Merge branch 'json' of github.com:emqx/kuiper into json

RockyJin 4 年之前
父节点
当前提交
423d60fac4
共有 4 个文件被更改,包括 9 次插入7 次删除
  1. 2 2
      xsql/ast.go
  2. 2 0
      xsql/lexical.go
  3. 4 4
      xsql/parser.go
  4. 1 1
      xsql/parser_test.go

+ 2 - 2
xsql/ast.go

@@ -54,7 +54,7 @@ const (
 	CROSS_JOIN
 )
 
-const COLUMN_SEPARATOR = "\007"
+var COLUMN_SEPARATOR = tokens[COLSEP]
 
 type Join struct {
 	Name     string
@@ -514,7 +514,7 @@ func (wv *WildcardValuer) Value(key string) (interface{}, bool) {
 	if key == "" {
 		return wv.Data.All(key)
 	} else {
-		a := strings.Index(key, ".*")
+		a := strings.Index(key, COLUMN_SEPARATOR+"*")
 		if a <= 0 {
 			return nil, false
 		} else {

+ 2 - 0
xsql/lexical.go

@@ -63,6 +63,7 @@ const (
 	DOT       // .
 	COLON     //:
 	SEMICOLON //;
+	COLSEP    //\007
 
 	// Keywords
 	SELECT
@@ -158,6 +159,7 @@ var tokens = []string{
 	DOT:       ".",
 	SEMICOLON: ";",
 	COLON:     ":",
+	COLSEP:    "\007",
 
 	SELECT: "SELECT",
 	FROM:   "FROM",

+ 4 - 4
xsql/parser.go

@@ -342,7 +342,7 @@ func (p *Parser) parseSorts() (SortFields, error) {
 
 					p.unscan()
 					if name, err := p.parseFieldNameSections(); err == nil {
-						s.Name = strings.Join(name, tokens[DOT])
+						s.Name = strings.Join(name, tokens[COLSEP])
 					} else {
 						return nil, err
 					}
@@ -683,7 +683,7 @@ func validateWindows(name string, args []Expr) (WindowType, error) {
 				if para2, ok2 := args[1].(*IntegerLiteral); ok2 {
 					if para1.Val < para2.Val {
 						return COUNT_WINDOW, fmt.Errorf("The second parameter value %d should be less than the first parameter %d.", para2.Val, para1.Val)
-					} else{
+					} else {
 						return COUNT_WINDOW, nil
 					}
 				}
@@ -697,7 +697,7 @@ func validateWindows(name string, args []Expr) (WindowType, error) {
 	return NOT_WINDOW, nil
 }
 
-func  validateWindow(funcName string, expectLen int, args []Expr) error {
+func validateWindow(funcName string, expectLen int, args []Expr) error {
 	if len(args) != expectLen {
 		return fmt.Errorf("The arguments for %s should be %d.\n", funcName, expectLen)
 	}
@@ -718,7 +718,7 @@ func (p *Parser) ConvertToWindows(wtype WindowType, name string, args []Expr) (*
 	win := &Window{WindowType: wtype}
 	if wtype == COUNT_WINDOW {
 		win.Length = &IntegerLiteral{Val: args[0].(*IntegerLiteral).Val}
-		if len(args) == 2{
+		if len(args) == 2 {
 			win.Interval = &IntegerLiteral{Val: args[1].(*IntegerLiteral).Val}
 		}
 		return win, nil

+ 1 - 1
xsql/parser_test.go

@@ -983,7 +983,7 @@ func TestParser_ParseStatement(t *testing.T) {
 						},
 					},
 				},
-				SortFields: []SortField{{Name: "s1.name", Ascending: true}},
+				SortFields: []SortField{{Name: "s1\007name", Ascending: true}},
 			},
 		},