aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@gmail.com>2021-08-16 18:24:19 +0200
committerJon Bratseth <bratseth@gmail.com>2021-08-16 18:24:19 +0200
commit149955312028a03bf8a8a54a03c3ee011e2b1821 (patch)
tree7f2ce0a4a9b36ad7abe2b9454ec96f421ec6585e
parentc09e3a9ee450c4a7ea51e8e8ae2113014bc424bf (diff)
Accept more argument forms
-rw-r--r--client/go/src/github.com/vespa-engine/vespa/cmd/query.go10
-rw-r--r--client/go/src/github.com/vespa-engine/vespa/cmd/query_test.go34
2 files changed, 41 insertions, 3 deletions
diff --git a/client/go/src/github.com/vespa-engine/vespa/cmd/query.go b/client/go/src/github.com/vespa-engine/vespa/cmd/query.go
index 010941d88dd..57a93f09409 100644
--- a/client/go/src/github.com/vespa-engine/vespa/cmd/query.go
+++ b/client/go/src/github.com/vespa-engine/vespa/cmd/query.go
@@ -8,6 +8,7 @@ import (
"errors"
"github.com/spf13/cobra"
"github.com/vespa-engine/vespa/utils"
+ "strings"
)
func init() {
@@ -30,8 +31,13 @@ var queryCmd = &cobra.Command{
}
func query(argument string) {
- // TODO: Add ? if missing as prefix
- // TODO: Add query= prefix if no "query=" in the argument string
+ if ! strings.Contains(argument, "query=") {
+ argument = "?query=" + argument
+ }
+ if ! strings.HasPrefix(argument, "?") {
+ argument = "?" + argument
+ }
+
path := "/search/" + argument
response := utils.HttpGet(GetTarget(queryContext).query, path, "Container")
if (response == nil) {
diff --git a/client/go/src/github.com/vespa-engine/vespa/cmd/query_test.go b/client/go/src/github.com/vespa-engine/vespa/cmd/query_test.go
index 91015594cd1..07958103f4e 100644
--- a/client/go/src/github.com/vespa-engine/vespa/cmd/query_test.go
+++ b/client/go/src/github.com/vespa-engine/vespa/cmd/query_test.go
@@ -12,7 +12,7 @@ import (
func TestSimpleQuery(t *testing.T) {
reset()
- query := "select * from foo where ..."
+ query := "select from * where title contains foo"
assert.Equal(t,
"",
executeCommand(t, []string{"query", "?query=" + query},[]string{}),
@@ -20,3 +20,35 @@ func TestSimpleQuery(t *testing.T) {
assert.Equal(t, GetTarget(queryContext).query + "/search/?query=" + query, lastRequest.URL.String())
}
+func TestQueryWithParameters(t *testing.T) {
+ reset()
+
+ query := "select from * where title contains foo"
+ assert.Equal(t,
+ "",
+ executeCommand(t, []string{"query", "?hits=4&query=" + query},[]string{}),
+ "simple query")
+ assert.Equal(t, GetTarget(queryContext).query + "/search/?hits=4&query=" + query, lastRequest.URL.String())
+}
+
+func TestSimpleQueryMissingQuestionMark(t *testing.T) {
+ reset()
+
+ query := "select from * where title contains foo"
+ assert.Equal(t,
+ "",
+ executeCommand(t, []string{"query", "query=" + query},[]string{}),
+ "simple query")
+ assert.Equal(t, GetTarget(queryContext).query + "/search/?query=" + query, lastRequest.URL.String())
+}
+
+func TestSimpleQueryMissingQuestionMarkAndQueryEquals(t *testing.T) {
+ reset()
+
+ query := "select from * where title contains foo"
+ assert.Equal(t,
+ "",
+ executeCommand(t, []string{"query", query},[]string{}),
+ "simple query")
+ assert.Equal(t, GetTarget(queryContext).query + "/search/?query=" + query, lastRequest.URL.String())
+}