mirror of
https://github.com/minio/minio.git
synced 2025-02-04 10:26:01 -05:00
Select: Support Square Bracket Lists (#8457)
Allows for S3 compatible `SELECT * from s3object s WHERE id IN [3,2]` Fixes #8422
This commit is contained in:
parent
1f481c0967
commit
51456e6adc
@ -171,6 +171,22 @@ func TestJSONQueries(t *testing.T) {
|
|||||||
wantResult: `{"id":0,"title":"Test Record","desc":"Some text","synonyms":["foo","bar","whatever"]}
|
wantResult: `{"id":0,"title":"Test Record","desc":"Some text","synonyms":["foo","bar","whatever"]}
|
||||||
{"id":1,"title":"Second Record","desc":"another text","synonyms":["some","synonym","value"]}
|
{"id":1,"title":"Second Record","desc":"another text","synonyms":["some","synonym","value"]}
|
||||||
{"id":2,"title":"Second Record","desc":"another text","numbers":[2,3,4]}`,
|
{"id":2,"title":"Second Record","desc":"another text","numbers":[2,3,4]}`,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "indexed-list-square-bracket",
|
||||||
|
query: `SELECT * from s3object s WHERE [7,8.5,9] = s.nested[1]`,
|
||||||
|
wantResult: `{"id":3,"title":"Second Record","desc":"another text","nested":[[2,3,4],[7,8.5,9]]}`,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "indexed-list-square-bracket",
|
||||||
|
query: `SELECT * from s3object s WHERE [7,8.5,9] IN s.nested`,
|
||||||
|
wantResult: `{"id":3,"title":"Second Record","desc":"another text","nested":[[2,3,4],[7,8.5,9]]}`,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "indexed-list-square-bracket",
|
||||||
|
query: `SELECT * from s3object s WHERE id IN [3,2]`,
|
||||||
|
wantResult: `{"id":2,"title":"Second Record","desc":"another text","numbers":[2,3,4]}
|
||||||
|
{"id":3,"title":"Second Record","desc":"another text","nested":[[2,3,4],[7,8.5,9]]}`,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "index-wildcard-in",
|
name: "index-wildcard-in",
|
||||||
|
@ -149,7 +149,7 @@ type Expression struct {
|
|||||||
|
|
||||||
// ListExpr represents a literal list with elements as expressions.
|
// ListExpr represents a literal list with elements as expressions.
|
||||||
type ListExpr struct {
|
type ListExpr struct {
|
||||||
Elements []*Expression `parser:"\"(\" @@ ( \",\" @@ )* \")\""`
|
Elements []*Expression `parser:"\"(\" @@ ( \",\" @@ )* \")\" | \"[\" @@ ( \",\" @@ )* \"]\""`
|
||||||
}
|
}
|
||||||
|
|
||||||
// AndCondition represents logical conjunction of clauses
|
// AndCondition represents logical conjunction of clauses
|
||||||
|
Loading…
x
Reference in New Issue
Block a user