From 2cea944cdbea15f6815da5ed565a382552a8953e Mon Sep 17 00:00:00 2001 From: Klaus Post Date: Thu, 24 Feb 2022 09:10:48 -0800 Subject: [PATCH] select: Allow lower case 'is' (#14405) Ref: #14358 --- internal/s3select/select_test.go | 7 +++++++ internal/s3select/sql/evaluate.go | 3 ++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/internal/s3select/select_test.go b/internal/s3select/select_test.go index 5d4a5133c..66bac90c6 100644 --- a/internal/s3select/select_test.go +++ b/internal/s3select/select_test.go @@ -474,6 +474,13 @@ func TestJSONQueries(t *testing.T) { wantResult: `{"Id":1,"Name":"Anshu","Address":"Templestowe","Car":"Jeep"}`, withJSON: `{ "person": [ { "Id": 1, "Name": "Anshu", "Address": "Templestowe", "Car": "Jeep" }, { "Id": 2, "Name": "Ben Mostafa", "Address": "Las Vegas", "Car": "Mustang" }, { "Id": 3, "Name": "Rohan Wood", "Address": "Wooddon", "Car": "VW" } ] }`, }, + { + name: "lower-case-is", + query: `select * from s3object[*] as s where s.request.header['User-Agent'] is not null`, + wantResult: `{"request":{"uri":"/1","header":{"User-Agent":"test"}}}`, + withJSON: `{"request":{"uri":"/1","header":{"User-Agent":"test"}}} +{"request":{"uri":"/2","header":{}}}`, + }, } defRequest := ` diff --git a/internal/s3select/sql/evaluate.go b/internal/s3select/sql/evaluate.go index a8a729f94..21927d9f7 100644 --- a/internal/s3select/sql/evaluate.go +++ b/internal/s3select/sql/evaluate.go @@ -22,6 +22,7 @@ import ( "errors" "fmt" "math" + "strings" "github.com/bcicen/jstream" "github.com/minio/simdjson-go" @@ -134,7 +135,7 @@ func (e *ConditionOperand) evalNode(r Record, tableAlias string) (*Value, error) return nil, cmpRErr } - b, err := opVal.compareOp(e.ConditionRHS.Compare.Operator, cmpRight) + b, err := opVal.compareOp(strings.ToUpper(e.ConditionRHS.Compare.Operator), cmpRight) return FromBool(b), err case e.ConditionRHS.Between != nil: