fix parsing of collection bind params
This commit is contained in:
@@ -5,7 +5,7 @@ import (
|
||||
)
|
||||
|
||||
// https://docs.arangodb.com/3.11/aql/fundamentals/bind-parameters/#syntax
|
||||
var paramRegexp = regexp.MustCompile("@{1,2}([A-z0-9_]+)")
|
||||
var paramRegexp = regexp.MustCompile("@(@?[A-z0-9_]+)")
|
||||
|
||||
// ReadParams reads out named parameters from an AQL string.
|
||||
func ReadParams(input string) []string {
|
||||
|
||||
+1
-1
@@ -18,7 +18,7 @@ func TestReadParams(t *testing.T) {
|
||||
},
|
||||
{
|
||||
Input: "FOR doc IN @@collection FILTER doc.title == @title RETURN doc",
|
||||
Output: []string{"collection", "title"},
|
||||
Output: []string{"@collection", "title"},
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
+6
-6
@@ -28,7 +28,7 @@ func TestQueryAppend(t *testing.T) {
|
||||
FILTER doc.title == @title
|
||||
RETURN doc`,
|
||||
ExpectedParams: map[string]any{
|
||||
"collection": "recipes",
|
||||
"@collection": "recipes",
|
||||
"title": "Spaghetti",
|
||||
},
|
||||
},
|
||||
@@ -42,7 +42,7 @@ RETURN doc`,
|
||||
FILTER doc.title == @title
|
||||
RETURN doc`,
|
||||
ExpectedParams: map[string]any{
|
||||
"collection": "recipes",
|
||||
"@collection": "recipes",
|
||||
"title": "Spaghetti",
|
||||
},
|
||||
},
|
||||
@@ -52,13 +52,13 @@ RETURN doc`,
|
||||
Append("FOR doc IN @@collection").
|
||||
Append("FILTER doc.title == @title").
|
||||
Append("RETURN doc").
|
||||
Bind("collection", "recipes").
|
||||
Bind("@collection", "recipes").
|
||||
Bind("title", "Spaghetti"),
|
||||
ExpectedStr: `FOR doc IN @@collection
|
||||
FILTER doc.title == @title
|
||||
RETURN doc`,
|
||||
ExpectedParams: map[string]any{
|
||||
"collection": "recipes",
|
||||
"@collection": "recipes",
|
||||
"title": "Spaghetti",
|
||||
},
|
||||
},
|
||||
@@ -68,12 +68,12 @@ RETURN doc`,
|
||||
Append("FOR doc IN @@collection").
|
||||
Append("FILTER doc.title == @title").
|
||||
Append("RETURN doc").
|
||||
BindMap(map[string]any{"collection": "recipes", "title": "Spaghetti"}),
|
||||
BindMap(map[string]any{"@collection": "recipes", "title": "Spaghetti"}),
|
||||
ExpectedStr: `FOR doc IN @@collection
|
||||
FILTER doc.title == @title
|
||||
RETURN doc`,
|
||||
ExpectedParams: map[string]any{
|
||||
"collection": "recipes",
|
||||
"@collection": "recipes",
|
||||
"title": "Spaghetti",
|
||||
},
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user