pub trait Query {
// Required methods
fn build(&self) -> Result<ValidQuery, Error>;
fn build_with_opts(&self, use_v2: bool) -> Result<ValidQuery, Error>;
fn get_type(&self) -> QueryType;
}
Required Methods§
sourcefn build(&self) -> Result<ValidQuery, Error>
fn build(&self) -> Result<ValidQuery, Error>
Builds valid InfluxSQL which can be run against the Database. In case no fields have been specified, it will return an error, as that is invalid InfluxSQL syntax.
Examples
use influxdb::{Query, Timestamp};
use influxdb::InfluxDbWriteable;
let invalid_query = Timestamp::Nanoseconds(0).into_query("measurement").build();
assert!(invalid_query.is_err());
let valid_query = Timestamp::Nanoseconds(0).into_query("measurement").add_field("myfield1", 11).build();
assert!(valid_query.is_ok());
sourcefn build_with_opts(&self, use_v2: bool) -> Result<ValidQuery, Error>
fn build_with_opts(&self, use_v2: bool) -> Result<ValidQuery, Error>
Like [build] but with additional support for unsigned integers in the line protocol. Please note, this crate can only interact with InfluxDB 2.0 in compatibility mode and does not natively support InfluxDB 2.0.
Examples
use influxdb::{Query, Timestamp};
use influxdb::InfluxDbWriteable;
let use_v2 = true;
let invalid_query = Timestamp::Nanoseconds(0).into_query("measurement").build_with_opts(use_v2);
assert!(invalid_query.is_err());
let valid_query = Timestamp::Nanoseconds(0).into_query("measurement").add_field("myfield1", 11).build_with_opts(use_v2);
assert!(valid_query.is_ok());