Name |
Last commit
|
Last Update |
---|---|---|
.. | ||
influxdb.go | ||
model_parser.go | ||
model_parser_test.go | ||
models.go | ||
query.go | ||
query_part.go | ||
query_part_test.go | ||
query_test.go | ||
response_parser.go | ||
response_parser_test.go |
The generated queries when selecting multiple tags are incorrect. In InfluxQL, `AND` has a higher precedence than `OR` so the condition: WHERE "hostname" = 'server1' OR "hostname" = 'server2' AND time > now() - 5m This is parsed as if it were: WHERE "hostname" = 'server1' OR ("hostname" = 'server2' AND time > now() - 5m) But the intention is to write a query like this: WHERE ("hostname" = 'server1' OR "hostname" = 'server2') AND time > now() - 5m This change modifies the generated query so it surrounds a query with multiple conditions in parenthesis so it doesn't conflict with the time expression in an unexpected way. This is currently not an issue because InfluxDB doesn't actually evaluate the condition for the time expression correctly. It just looks through the AST for anything that looks like a time expression and then assumes the proper format of `AND` was used rather than validating that it was used correctly.
Name |
Last commit
|
Last Update |
---|---|---|
.. | ||
influxdb.go | Loading commit data... | |
model_parser.go | Loading commit data... | |
model_parser_test.go | Loading commit data... | |
models.go | Loading commit data... | |
query.go | Loading commit data... | |
query_part.go | Loading commit data... | |
query_part_test.go | Loading commit data... | |
query_test.go | Loading commit data... | |
response_parser.go | Loading commit data... | |
response_parser_test.go | Loading commit data... |