From 6f85786542755491609fe39bae163c35ccb5be10 Mon Sep 17 00:00:00 2001 From: Aneurin Barker Snook Date: Fri, 13 Oct 2023 07:59:04 +0100 Subject: [PATCH] fix parsing of collection bind params --- params.go | 2 +- params_test.go | 2 +- query_test.go | 20 ++++++++++---------- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/params.go b/params.go index 6087213..dc1b05d 100644 --- a/params.go +++ b/params.go @@ -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 { diff --git a/params_test.go b/params_test.go index eea4144..5502e97 100644 --- a/params_test.go +++ b/params_test.go @@ -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"}, }, } diff --git a/query_test.go b/query_test.go index 46dc2ff..08f5d35 100644 --- a/query_test.go +++ b/query_test.go @@ -28,8 +28,8 @@ func TestQueryAppend(t *testing.T) { FILTER doc.title == @title RETURN doc`, ExpectedParams: map[string]any{ - "collection": "recipes", - "title": "Spaghetti", + "@collection": "recipes", + "title": "Spaghetti", }, }, // Append with too many parameters @@ -42,8 +42,8 @@ RETURN doc`, FILTER doc.title == @title RETURN doc`, ExpectedParams: map[string]any{ - "collection": "recipes", - "title": "Spaghetti", + "@collection": "recipes", + "title": "Spaghetti", }, }, // Append without parameters and bind after @@ -52,14 +52,14 @@ 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", - "title": "Spaghetti", + "@collection": "recipes", + "title": "Spaghetti", }, }, // Append and bind map @@ -68,13 +68,13 @@ 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", - "title": "Spaghetti", + "@collection": "recipes", + "title": "Spaghetti", }, }, // Append and Appendf