Documentation ¶
Overview ¶
Package influxql implements a parser for the InfluxDB query language.
InfluxQL is a DML and DDL language for the InfluxDB time series database. It provides the ability to query for aggregate statistics as well as create and configure the InfluxDB server.
Selecting data ¶
The SELECT query is used for retrieving data from one or more series. It allows for a list of columns followed by a list of series to select from.
SELECT value FROM cpu_load
You can also add a a conditional expression to limit the results of the query:
SELECT value FROM cpu_load WHERE host = 'influxdb.com'
Two or more series can be combined into a single query and executed together:
SELECT cpu0.value + cpu1.value FROM cpu_load AS cpu0 INNER JOIN cpu_load cpu1 ON cpu0.host = cpu1.host
Limits and ordering can be set on selection queries as well:
SELECT value FROM cpu_load LIMIT 100 ORDER DESC;
Removing data ¶
The DELETE query is available to remove time series data points from the database. This query will delete "cpu_load" values older than an hour:
DELETE FROM cpu_load WHERE time < now() - 1h
Continuous Queries ¶
Queries can be run indefinitely on the server in order to generate new series. This is done by running a "SELECT INTO" query. For example, this query computes the hourly mean for cpu_load and stores it into a "cpu_load" series in the "daily" shard space.
SELECT mean(value) AS value FROM cpu_load GROUP BY 1h INTO daily.cpu_load
If there is existing data on the source series then this query will be run for all historic data. To only execute the query on new incoming data you can append "NO BACKFILL" to the end of the query:
SELECT mean(value) AS value FROM cpu_load GROUP BY 1h INTO daily.cpu_load NO BACKFILL
Continuous queries will return an id that can be used to remove them in the future. To remove a continous query, use the DROP CONTINUOUS QUERY statement:
DROP CONTINUOUS QUERY 12
You can also list all continuous queries by running:
LIST CONTINUOUS QUERIES
Index ¶
- Constants
- Variables
- func Eval(expr Expr, m map[string]interface{}) interface{}
- func FormatDuration(d time.Duration) string
- func IsRegexOp(t Token) bool
- func MapCount(itr Iterator) interface{}
- func MapEcho(itr Iterator) interface{}
- func MapFirst(itr Iterator) interface{}
- func MapLast(itr Iterator) interface{}
- func MapMax(itr Iterator) interface{}
- func MapMean(itr Iterator) interface{}
- func MapMin(itr Iterator) interface{}
- func MapRawQuery(itr Iterator) interface{}
- func MapSpread(itr Iterator) interface{}
- func MapStddev(itr Iterator) interface{}
- func MapSum(itr Iterator) interface{}
- func MatchSource(sources Sources, name string) string
- func ParseDuration(s string) (time.Duration, error)
- func QuoteIdent(segments []string) string
- func QuoteString(s string) string
- func ReduceFirst(values []interface{}) interface{}
- func ReduceLast(values []interface{}) interface{}
- func ReduceMax(values []interface{}) interface{}
- func ReduceMean(values []interface{}) interface{}
- func ReduceMin(values []interface{}) interface{}
- func ReduceRawQuery(values []interface{}) interface{}
- func ReduceSpread(values []interface{}) interface{}
- func ReduceStddev(values []interface{}) interface{}
- func ReduceSum(values []interface{}) interface{}
- func ScanBareIdent(r io.RuneScanner) string
- func ScanDelimited(r io.RuneScanner, start, end rune, escapes map[rune]rune) ([]byte, error)
- func ScanString(r io.RuneScanner) (string, error)
- func SplitIdent(s string) (segments []string, err error)
- func TimeRange(expr Expr) (min, max time.Time)
- func Walk(v Visitor, node Node)
- func WalkFunc(node Node, fn func(Node))
- type AlterRetentionPolicyStatement
- type BinaryExpr
- type BooleanLiteral
- type Call
- type CreateContinuousQueryStatement
- type CreateDatabaseStatement
- type CreateRetentionPolicyStatement
- type CreateUserStatement
- type DB
- type DataType
- type DeleteStatement
- type Dimension
- type Dimensions
- type DropContinuousQueryStatement
- type DropDatabaseStatement
- type DropMeasurementStatement
- type DropRetentionPolicyStatement
- type DropSeriesStatement
- type DropUserStatement
- type DurationLiteral
- type ExecutionPrivilege
- type ExecutionPrivileges
- type Executor
- type Expr
- type Field
- type Fields
- type FillOption
- type GrantStatement
- type Iterator
- type Join
- type MapFunc
- type MapReduceJob
- type MapReduceJobs
- type Mapper
- type Measurement
- type Measurements
- type Merge
- type Node
- type NumberLiteral
- type ParenExpr
- type ParseError
- type Parser
- type Planner
- type Pos
- type Privilege
- type Query
- type ReduceFunc
- type RegexLiteral
- type RevokeStatement
- type Rewriter
- type Row
- type Rows
- type Scanner
- type SelectStatement
- func (s *SelectStatement) Clone() *SelectStatement
- func (s *SelectStatement) FunctionCalls() []*Call
- func (s *SelectStatement) GroupByInterval() (time.Duration, error)
- func (s *SelectStatement) HasWildcard() bool
- func (s *SelectStatement) NamesInSelect() []string
- func (s *SelectStatement) NamesInWhere() []string
- func (s *SelectStatement) OnlyTimeDimensions() bool
- func (s *SelectStatement) RequiredPrivileges() ExecutionPrivileges
- func (s *SelectStatement) RewriteWildcards(fields Fields, dimensions Dimensions) *SelectStatement
- func (s *SelectStatement) SetTimeRange(start, end time.Time) error
- func (s *SelectStatement) String() string
- func (s *SelectStatement) Substatement(ref *VarRef) (*SelectStatement, error)
- type ShowContinuousQueriesStatement
- type ShowDatabasesStatement
- type ShowDiagnosticsStatement
- type ShowFieldKeysStatement
- type ShowMeasurementsStatement
- type ShowRetentionPoliciesStatement
- type ShowSeriesStatement
- type ShowServersStatement
- type ShowStatsStatement
- type ShowTagKeysStatement
- type ShowTagValuesStatement
- type ShowUsersStatement
- type SortField
- type SortFields
- type Source
- type Sources
- type Statement
- type Statements
- type StringLiteral
- type TagSet
- type Target
- type TimeLiteral
- type Token
- type Tx
- type Valuer
- type VarRef
- type Visitor
- type Wildcard
Constants ¶
const ( // Unknown primitive data type. Unknown = DataType("") // Number means the data type is an int or float. Number = DataType("number") // Boolean means the data type is a boolean. Boolean = DataType("boolean") // String means the data type is a string of text. String = DataType("string") // Time means the data type is a time. Time = DataType("time") // Duration means the data type is a duration of time. Duration = DataType("duration") )
const ( // Return an error if the user is trying to select more than this number of points in a group by statement. // Most likely they specified a group by interval without time boundaries. MaxGroupByPoints = 100000 // All queries that return raw non-aggregated data, will have 2 results returned from the ouptut of a reduce run. // The first element will be a time that we ignore, and the second element will be an array of []*rawMapOutput ResultCountInRawResults = 2 // Since time is always selected, the column count when selecting only a single other value will be 2 SelectColumnCountWithOneValue = 2 )
const ( // DateFormat represents the format for date literals. DateFormat = "2006-01-02" // DateTimeFormat represents the format for date time literals. DateTimeFormat = "2006-01-02 15:04:05.999999" )
Variables ¶
var ErrInvalidDuration = errors.New("invalid duration")
ErrInvalidDuration is returned when parsing a malformatted duration.
Functions ¶
func FormatDuration ¶
FormatDuration formats a duration to a string.
func MapCount ¶
func MapCount(itr Iterator) interface{}
MapCount computes the number of values in an iterator.
func MapEcho ¶
func MapEcho(itr Iterator) interface{}
MapEcho emits the data points for each group by interval
func MapFirst ¶
func MapFirst(itr Iterator) interface{}
MapFirst collects the values to pass to the reducer
func MapLast ¶
func MapLast(itr Iterator) interface{}
MapLast collects the values to pass to the reducer
func MapMax ¶
func MapMax(itr Iterator) interface{}
MapMax collects the values to pass to the reducer
func MapMean ¶
func MapMean(itr Iterator) interface{}
MapMean computes the count and sum of values in an iterator to be combined by the reducer.
func MapMin ¶
func MapMin(itr Iterator) interface{}
MapMin collects the values to pass to the reducer
func MapRawQuery ¶
func MapRawQuery(itr Iterator) interface{}
MapRawQuery is for queries without aggregates
func MapSpread ¶
func MapSpread(itr Iterator) interface{}
MapSpread collects the values to pass to the reducer
func MapStddev ¶
func MapStddev(itr Iterator) interface{}
MapStddev collects the values to pass to the reducer
func MapSum ¶
func MapSum(itr Iterator) interface{}
MapSum computes the summation of values in an iterator.
func MatchSource ¶
MatchSource returns the source name that matches a field name. Returns a blank string if no sources match.
func ParseDuration ¶
ParseDuration parses a time duration from a string.
func QuoteIdent ¶
QuoteIdent returns a quoted identifier from multiple bare identifiers.
func ReduceFirst ¶
func ReduceFirst(values []interface{}) interface{}
ReduceFirst computes the first of value.
func ReduceLast ¶
func ReduceLast(values []interface{}) interface{}
ReduceLast computes the last of value.
func ReduceMax ¶
func ReduceMax(values []interface{}) interface{}
ReduceMax computes the max of value.
func ReduceMean ¶
func ReduceMean(values []interface{}) interface{}
ReduceMean computes the mean of values for each key.
func ReduceMin ¶
func ReduceMin(values []interface{}) interface{}
ReduceMin computes the min of value.
func ReduceRawQuery ¶
func ReduceRawQuery(values []interface{}) interface{}
ReduceRawQuery is for queries without aggregates
func ReduceSpread ¶
func ReduceSpread(values []interface{}) interface{}
ReduceSpread computes the spread of values.
func ReduceStddev ¶
func ReduceStddev(values []interface{}) interface{}
ReduceStddev computes the stddev of values.
func ReduceSum ¶
func ReduceSum(values []interface{}) interface{}
ReduceSum computes the sum of values for each key.
func ScanBareIdent ¶
func ScanBareIdent(r io.RuneScanner) string
ScanBareIdent reads bare identifier from a rune reader.
func ScanDelimited ¶
func ScanString ¶
func ScanString(r io.RuneScanner) (string, error)
ScanString reads a quoted string from a rune reader.
func SplitIdent ¶
SplitIdent splits an identifier into quoted & unquoted segments.
Types ¶
type AlterRetentionPolicyStatement ¶
type AlterRetentionPolicyStatement struct { // Name of policy to alter. Name string // Name of the database this policy belongs to. Database string // Duration data written to this policy will be retained. Duration *time.Duration // Replication factor for data written to this policy. Replication *int // Should this policy be set as defalut for the database? Default bool }
AlterRetentionPolicyStatement represents a command to alter an existing retention policy.
func (*AlterRetentionPolicyStatement) RequiredPrivileges ¶
func (s *AlterRetentionPolicyStatement) RequiredPrivileges() ExecutionPrivileges
RequiredPrivileges returns the privilege required to execute an AlterRetentionPolicyStatement.
func (*AlterRetentionPolicyStatement) String ¶
func (s *AlterRetentionPolicyStatement) String() string
String returns a string representation of the alter retention policy statement.
type BinaryExpr ¶
BinaryExpr represents an operation between two expressions.
func (*BinaryExpr) String ¶
func (e *BinaryExpr) String() string
String returns a string representation of the binary expression.
type BooleanLiteral ¶
type BooleanLiteral struct {
Val bool
}
BooleanLiteral represents a boolean literal.
func (*BooleanLiteral) String ¶
func (l *BooleanLiteral) String() string
String returns a string representation of the literal.
type CreateContinuousQueryStatement ¶
type CreateContinuousQueryStatement struct { // Name of the continuous query to be created. Name string // Name of the database to create the continuous query on. Database string // Source of data (SELECT statement). Source *SelectStatement }
CreateContinuousQueryStatement represents a command for creating a continuous query.
func (*CreateContinuousQueryStatement) RequiredPrivileges ¶
func (s *CreateContinuousQueryStatement) RequiredPrivileges() ExecutionPrivileges
RequiredPrivileges returns the privilege required to execute a CreateContinuousQueryStatement.
func (*CreateContinuousQueryStatement) String ¶
func (s *CreateContinuousQueryStatement) String() string
String returns a string representation of the statement.
type CreateDatabaseStatement ¶
type CreateDatabaseStatement struct { // Name of the database to be created. Name string }
CreateDatabaseStatement represents a command for creating a new database.
func (*CreateDatabaseStatement) RequiredPrivileges ¶
func (s *CreateDatabaseStatement) RequiredPrivileges() ExecutionPrivileges
RequiredPrivileges returns the privilege required to execute a CreateDatabaseStatement.
func (*CreateDatabaseStatement) String ¶
func (s *CreateDatabaseStatement) String() string
String returns a string representation of the create database statement.
type CreateRetentionPolicyStatement ¶
type CreateRetentionPolicyStatement struct { // Name of policy to create. Name string // Name of database this policy belongs to. Database string // Duration data written to this policy will be retained. Duration time.Duration // Replication factor for data written to this policy. Replication int // Should this policy be set as default for the database? Default bool }
CreateRetentionPolicyStatement represents a command to create a retention policy.
func (*CreateRetentionPolicyStatement) RequiredPrivileges ¶
func (s *CreateRetentionPolicyStatement) RequiredPrivileges() ExecutionPrivileges
RequiredPrivileges returns the privilege required to execute a CreateRetentionPolicyStatement.
func (*CreateRetentionPolicyStatement) String ¶
func (s *CreateRetentionPolicyStatement) String() string
String returns a string representation of the create retention policy.
type CreateUserStatement ¶
type CreateUserStatement struct { // Name of the user to be created. Name string // User's password Password string // User's privilege level. Privilege *Privilege }
CreateUserStatement represents a command for creating a new user.
func (*CreateUserStatement) RequiredPrivileges ¶
func (s *CreateUserStatement) RequiredPrivileges() ExecutionPrivileges
RequiredPrivileges returns the privilege(s) required to execute a CreateUserStatement.
func (*CreateUserStatement) String ¶
func (s *CreateUserStatement) String() string
String returns a string representation of the create user statement.
type DataType ¶
type DataType string
DataType represents the primitive data types available in InfluxQL.
func InspectDataType ¶
func InspectDataType(v interface{}) DataType
InspectDataType returns the data type of a given value.
type DeleteStatement ¶
type DeleteStatement struct { // Data source that values are removed from. Source Source // An expression evaluated on data point. Condition Expr }
DeleteStatement represents a command for removing data from the database.
func (*DeleteStatement) RequiredPrivileges ¶
func (s *DeleteStatement) RequiredPrivileges() ExecutionPrivileges
RequiredPrivileges returns the privilege required to execute a DeleteStatement.
func (*DeleteStatement) String ¶
func (s *DeleteStatement) String() string
String returns a string representation of the delete statement.
type Dimension ¶
type Dimension struct {
Expr Expr
}
Dimension represents an expression that a select statement is grouped by.
type Dimensions ¶
type Dimensions []*Dimension
Dimensions represents a list of dimensions.
func (Dimensions) Normalize ¶
func (a Dimensions) Normalize() (time.Duration, []string, error)
Normalize returns the interval and tag dimensions separately. Returns 0 if no time interval is specified. Returns an error if multiple time dimensions exist or if non-VarRef dimensions are specified.
func (Dimensions) String ¶
func (a Dimensions) String() string
String returns a string representation of the dimensions.
type DropContinuousQueryStatement ¶
DropContinuousQueryStatement represents a command for removing a continuous query.
func (*DropContinuousQueryStatement) RequiredPrivileges ¶
func (s *DropContinuousQueryStatement) RequiredPrivileges() ExecutionPrivileges
RequiredPrivileges returns the privilege(s) required to execute a DropContinuousQueryStatement
func (*DropContinuousQueryStatement) String ¶
func (s *DropContinuousQueryStatement) String() string
String returns a string representation of the statement.
type DropDatabaseStatement ¶
type DropDatabaseStatement struct { // Name of the database to be dropped. Name string }
DropDatabaseStatement represents a command to drop a database.
func (*DropDatabaseStatement) RequiredPrivileges ¶
func (s *DropDatabaseStatement) RequiredPrivileges() ExecutionPrivileges
RequiredPrivileges returns the privilege required to execute a DropDatabaseStatement.
func (*DropDatabaseStatement) String ¶
func (s *DropDatabaseStatement) String() string
String returns a string representation of the drop database statement.
type DropMeasurementStatement ¶
type DropMeasurementStatement struct { // Name of the measurement to be dropped. Name string }
DropMeasurmentStatement represents a command to drop a measurement.
func (*DropMeasurementStatement) RequiredPrivileges ¶
func (s *DropMeasurementStatement) RequiredPrivileges() ExecutionPrivileges
RequiredPrivileges returns the privilege(s) required to execute a DropMeasurementStatement
func (*DropMeasurementStatement) String ¶
func (s *DropMeasurementStatement) String() string
String returns a string representation of the drop measurement statement.
type DropRetentionPolicyStatement ¶
type DropRetentionPolicyStatement struct { // Name of the policy to drop. Name string // Name of the database to drop the policy from. Database string }
DropRetentionPolicyStatement represents a command to drop a retention policy from a database.
func (*DropRetentionPolicyStatement) RequiredPrivileges ¶
func (s *DropRetentionPolicyStatement) RequiredPrivileges() ExecutionPrivileges
RequiredPrivileges returns the privilege required to execute a DropRetentionPolicyStatement.
func (*DropRetentionPolicyStatement) String ¶
func (s *DropRetentionPolicyStatement) String() string
String returns a string representation of the drop retention policy statement.
type DropSeriesStatement ¶
type DropSeriesStatement struct { // The Id of the series being dropped (optional) SeriesID uint32 // Data source that fields are extracted from (optional) Source Source // An expression evaluated on data point (optional) Condition Expr }
DropSeriesStatement represents a command for removing a series from the database.
func (DropSeriesStatement) RequiredPrivileges ¶
func (s DropSeriesStatement) RequiredPrivileges() ExecutionPrivileges
RequiredPrivileges returns the privilige reqired to execute a DropSeriesStatement.
func (*DropSeriesStatement) String ¶
func (s *DropSeriesStatement) String() string
String returns a string representation of the drop series statement.
type DropUserStatement ¶
type DropUserStatement struct { // Name of the user to drop. Name string }
DropUserStatement represents a command for dropping a user.
func (*DropUserStatement) RequiredPrivileges ¶
func (s *DropUserStatement) RequiredPrivileges() ExecutionPrivileges
RequiredPrivileges returns the privilege(s) required to execute a DropUserStatement.
func (*DropUserStatement) String ¶
func (s *DropUserStatement) String() string
String returns a string representation of the drop user statement.
type DurationLiteral ¶
DurationLiteral represents a duration literal.
func (*DurationLiteral) String ¶
func (l *DurationLiteral) String() string
String returns a string representation of the literal.
type ExecutionPrivilege ¶
type ExecutionPrivilege struct { // Name of the database or resource. // If "", then the resource is the cluster. Name string // Privilege required. Privilege Privilege }
ExecutionPrivilege is a privilege required for a user to execute a statement on a database or resource.
type ExecutionPrivileges ¶
type ExecutionPrivileges []ExecutionPrivilege
ExecutionPrivileges is a list of privileges required to execute a statement.
type Executor ¶
type Executor struct {
// contains filtered or unexported fields
}
Executor represents the implementation of Executor. It executes all reducers and combines their result into a row.
type Expr ¶
type Expr interface { Node // contains filtered or unexported methods }
Expr represents an expression that can be evaluated to a value.
type Field ¶
Field represents an expression retrieved from a select statement.
type Fields ¶
type Fields []*Field
Fields represents a list of fields.
type FillOption ¶
type FillOption int
const ( // NullFill means that empty aggregate windows will just have null values. NullFill FillOption = iota // NoFill means that empty aggregate windows will be purged from the result. NoFill // NumberFill means that empty aggregate windows will be filled with the given number NumberFill // PreviousFill means that empty aggregate windows will be filled with whatever the previous aggregate window had PreviousFill )
type GrantStatement ¶
type GrantStatement struct { // The privilege to be granted. Privilege Privilege // Thing to grant privilege on (e.g., a DB). On string // Who to grant the privilege to. User string }
GrantStatement represents a command for granting a privilege.
func (*GrantStatement) RequiredPrivileges ¶
func (s *GrantStatement) RequiredPrivileges() ExecutionPrivileges
RequiredPrivileges returns the privilege required to execute a GrantStatement.
func (*GrantStatement) String ¶
func (s *GrantStatement) String() string
String returns a string representation of the grant statement.
type Iterator ¶
Iterator represents a forward-only iterator over a set of points. These are used by the MapFunctions in this file
type Join ¶
type Join struct {
Measurements Measurements
}
Join represents two datasources joined together.
type MapFunc ¶
type MapFunc func(Iterator) interface{}
MapFunc represents a function used for mapping over a sequential series of data. The iterator represents a single group by interval
func InitializeMapFunc ¶
InitializeMapFunc takes an aggregate call from the query and returns the MapFunc
type MapReduceJob ¶
type MapReduceJob struct { MeasurementName string TagSet *TagSet Mappers []Mapper // the mappers to hit all shards for this MRJob TMin int64 // minimum time specified in the query TMax int64 // maximum time specified in the query // contains filtered or unexported fields }
func (*MapReduceJob) Close ¶
func (m *MapReduceJob) Close()
func (*MapReduceJob) Execute ¶
func (m *MapReduceJob) Execute(out chan *Row, filterEmptyResults bool)
func (*MapReduceJob) Key ¶
func (m *MapReduceJob) Key() []byte
func (*MapReduceJob) Open ¶
func (m *MapReduceJob) Open() error
type MapReduceJobs ¶
type MapReduceJobs []*MapReduceJob
func (MapReduceJobs) Len ¶
func (a MapReduceJobs) Len() int
func (MapReduceJobs) Less ¶
func (a MapReduceJobs) Less(i, j int) bool
func (MapReduceJobs) Swap ¶
func (a MapReduceJobs) Swap(i, j int)
type Mapper ¶
type Mapper interface { // Open will open the necessary resources to being the map job. Could be connections to remote servers or // hitting the local bolt store Open() error // Close will close the mapper (either the bolt transaction or the request) Close() // Begin will set up the mapper to run the map function for a given aggregate call starting at the passed in time Begin(*Call, int64) error // NextInterval will get the time ordered next interval of the given interval size from the mapper. This is a // forward only operation from the start time passed into Begin. Will return nil when there is no more data to be read. // We pass the interval in here so that it can be varied over the period of the query. This is useful for the raw // data queries where we'd like to gradually adjust the amount of time we scan over. NextInterval(interval int64) (interface{}, error) }
Mapper will run through a map function. A single mapper will be created for each shard for each tagset that must be hit to satisfy a query. Mappers can either point to a local shard or could point to a remote server.
type Measurement ¶
type Measurement struct { Name string Regex *RegexLiteral }
Measurement represents a single measurement used as a datasource.
func (*Measurement) String ¶
func (m *Measurement) String() string
String returns a string representation of the measurement.
type Measurements ¶
type Measurements []*Measurement
Measurements represents a list of measurements.
func (Measurements) String ¶
func (a Measurements) String() string
String returns a string representation of the measurements.
type Merge ¶
type Merge struct {
Measurements Measurements
}
Merge represents a datasource created by merging two datasources.
type Node ¶
type Node interface { String() string // contains filtered or unexported methods }
Node represents a node in the InfluxDB abstract syntax tree.
type NumberLiteral ¶
type NumberLiteral struct {
Val float64
}
NumberLiteral represents a numeric literal.
func (*NumberLiteral) String ¶
func (l *NumberLiteral) String() string
String returns a string representation of the literal.
type ParenExpr ¶
type ParenExpr struct {
Expr Expr
}
ParenExpr represents a parenthesized expression.
type ParseError ¶
ParseError represents an error that occurred during parsing.
func (*ParseError) Error ¶
func (e *ParseError) Error() string
Error returns the string representation of the error.
type Parser ¶
type Parser struct {
// contains filtered or unexported fields
}
Parser represents an InfluxQL parser.
func (*Parser) ParseQuery ¶
ParseQuery parses an InfluxQL string and returns a Query AST object.
func (*Parser) ParseStatement ¶
ParseStatement parses an InfluxQL string and returns a Statement AST object.
type Planner ¶
type Planner struct { DB DB // Returns the current time. Defaults to time.Now(). Now func() time.Time }
Planner represents an object for creating execution plans.
type Pos ¶
Pos specifies the line and character position of a token. The Char and Line are both zero-based indexes.
type Privilege ¶
type Privilege int
Privilege is a type of action a user can be granted the right to use.
const ( // NoPrivileges means no privileges required / granted / revoked. NoPrivileges Privilege = iota // ReadPrivilege means read privilege required / granted / revoked. ReadPrivilege // WritePrivilege means write privilege required / granted / revoked. WritePrivilege // AllPrivileges means all privileges required / granted / revoked. AllPrivileges )
func NewPrivilege ¶
NewPrivilege returns an initialized *Privilege.
type Query ¶
type Query struct {
Statements Statements
}
Query represents a collection of ordered statements.
func ParseQuery ¶
ParseQuery parses a query string and returns its AST representation.
type ReduceFunc ¶
type ReduceFunc func([]interface{}) interface{}
ReduceFunc represents a function used for reducing mapper output.
func InitializeReduceFunc ¶
func InitializeReduceFunc(c *Call) (ReduceFunc, error)
InitializeReduceFunc takes an aggregate call from the query and returns the ReduceFunc
func ReducePercentile ¶
func ReducePercentile(percentile float64) ReduceFunc
ReducePercentile computes the percentile of values for each key.
type RegexLiteral ¶
RegexLiteral represents a regular expression.
func (*RegexLiteral) String ¶
func (r *RegexLiteral) String() string
String returns a string representation of the literal.
type RevokeStatement ¶
type RevokeStatement struct { // Privilege to be revoked. Privilege Privilege // Thing to revoke privilege to (e.g., a DB) On string // Who to revoke privilege from. User string }
RevokeStatement represents a command to revoke a privilege from a user.
func (*RevokeStatement) RequiredPrivileges ¶
func (s *RevokeStatement) RequiredPrivileges() ExecutionPrivileges
RequiredPrivileges returns the privilege required to execute a RevokeStatement.
func (*RevokeStatement) String ¶
func (s *RevokeStatement) String() string
String returns a string representation of the revoke statement.
type Rewriter ¶
Rewriter can be called by Rewrite to replace nodes in the AST hierarchy. The Rewrite() function is called once per node.
type Row ¶
type Row struct { Name string `json:"name,omitempty"` Tags map[string]string `json:"tags,omitempty"` Columns []string `json:"columns"` Values [][]interface{} `json:"values,omitempty"` Err error `json:"err,omitempty"` }
Row represents a single row returned from the execution of a statement.
type Rows ¶
type Rows []*Row
Rows represents a list of rows that can be sorted consistently by name/tag.
type Scanner ¶
type Scanner struct {
// contains filtered or unexported fields
}
Scanner represents a lexical scanner for InfluxQL.
func NewScanner ¶
NewScanner returns a new instance of Scanner.
type SelectStatement ¶
type SelectStatement struct { // Expressions returned from the selection. Fields Fields // Target (destination) for the result of the select. Target *Target // Expressions used for grouping the selection. Dimensions Dimensions // Data sources that fields are extracted from. Sources Sources // An expression evaluated on data point. Condition Expr // Fields to sort results by SortFields SortFields // Maximum number of rows to be returned. Unlimited if zero. Limit int // Returns rows starting at an offset from the first row. Offset int // Maxiumum number of series to be returned. Unlimited if zero. SLimit int // Returns series starting at an offset from the first one. SOffset int // if it's a query for raw data values (i.e. not an aggregate) IsRawQuery bool // What fill option the select statement uses, if any Fill FillOption // The value to fill empty aggregate buckets with, if any FillValue interface{} // contains filtered or unexported fields }
SelectStatement represents a command for extracting data from the database.
func (*SelectStatement) Clone ¶
func (s *SelectStatement) Clone() *SelectStatement
Clone returns a deep copy of the statement.
func (*SelectStatement) FunctionCalls ¶
func (s *SelectStatement) FunctionCalls() []*Call
FunctionCalls returns the Call objects from the query
func (*SelectStatement) GroupByInterval ¶
func (s *SelectStatement) GroupByInterval() (time.Duration, error)
GroupByIterval extracts the time interval, if specified.
func (*SelectStatement) HasWildcard ¶
func (s *SelectStatement) HasWildcard() bool
HasWildcard returns whether or not the select statement has at least 1 wildcard
func (*SelectStatement) NamesInSelect ¶
func (s *SelectStatement) NamesInSelect() []string
NamesInSelect returns the field and tag names (idents) in the select clause
func (*SelectStatement) NamesInWhere ¶
func (s *SelectStatement) NamesInWhere() []string
NamesInWhere returns the field and tag names (idents) referenced in the where clause
func (*SelectStatement) OnlyTimeDimensions ¶
func (s *SelectStatement) OnlyTimeDimensions() bool
OnlyTimeDimensions returns true if the statement has a where clause with only time constraints
func (*SelectStatement) RequiredPrivileges ¶
func (s *SelectStatement) RequiredPrivileges() ExecutionPrivileges
RequiredPrivileges returns the privilege required to execute the SelectStatement.
func (*SelectStatement) RewriteWildcards ¶
func (s *SelectStatement) RewriteWildcards(fields Fields, dimensions Dimensions) *SelectStatement
RewriteWildcards returns the re-written form of the select statement. Any wildcard query fields are replaced with the supplied fields, and any wildcard GROUP BY fields are replaced with the supplied dimensions.
func (*SelectStatement) SetTimeRange ¶
func (s *SelectStatement) SetTimeRange(start, end time.Time) error
SetTimeRange sets the start and end time of the select statement to [start, end). i.e. start inclusive, end exclusive. This is used commonly for continuous queries so the start and end are in buckets.
func (*SelectStatement) String ¶
func (s *SelectStatement) String() string
String returns a string representation of the select statement.
func (*SelectStatement) Substatement ¶
func (s *SelectStatement) Substatement(ref *VarRef) (*SelectStatement, error)
Substatement returns a single-series statement for a given variable reference.
type ShowContinuousQueriesStatement ¶
type ShowContinuousQueriesStatement struct{}
ShowContinuousQueriesStatement represents a command for listing continuous queries.
func (*ShowContinuousQueriesStatement) RequiredPrivileges ¶
func (s *ShowContinuousQueriesStatement) RequiredPrivileges() ExecutionPrivileges
RequiredPrivileges returns the privilege required to execute a ShowContinuousQueriesStatement.
func (*ShowContinuousQueriesStatement) String ¶
func (s *ShowContinuousQueriesStatement) String() string
String returns a string representation of the list continuous queries statement.
type ShowDatabasesStatement ¶
type ShowDatabasesStatement struct{}
ShowDatabasesStatement represents a command for listing all databases in the cluster.
func (*ShowDatabasesStatement) RequiredPrivileges ¶
func (s *ShowDatabasesStatement) RequiredPrivileges() ExecutionPrivileges
RequiredPrivileges returns the privilege required to execute a ShowDatabasesStatement
func (*ShowDatabasesStatement) String ¶
func (s *ShowDatabasesStatement) String() string
String returns a string representation of the list databases command.
type ShowDiagnosticsStatement ¶
type ShowDiagnosticsStatement struct{}
ShowDiagnosticsStatement represents a command for show node diagnostics.
func (*ShowDiagnosticsStatement) RequiredPrivileges ¶
func (s *ShowDiagnosticsStatement) RequiredPrivileges() ExecutionPrivileges
RequiredPrivileges returns the privilege required to execute a ShowDiagnosticsStatement
func (*ShowDiagnosticsStatement) String ¶
func (s *ShowDiagnosticsStatement) String() string
String returns a string representation of the ShowDiagnosticsStatement.
type ShowFieldKeysStatement ¶
type ShowFieldKeysStatement struct { // Data source that fields are extracted from. Source Source // Fields to sort results by SortFields SortFields // Maximum number of rows to be returned. // Unlimited if zero. Limit int // Returns rows starting at an offset from the first row. Offset int }
ShowFieldKeysStatement represents a command for listing field keys.
func (*ShowFieldKeysStatement) RequiredPrivileges ¶
func (s *ShowFieldKeysStatement) RequiredPrivileges() ExecutionPrivileges
RequiredPrivileges returns the privilege(s) required to execute a ShowFieldKeysStatement
func (*ShowFieldKeysStatement) String ¶
func (s *ShowFieldKeysStatement) String() string
String returns a string representation of the statement.
type ShowMeasurementsStatement ¶
type ShowMeasurementsStatement struct { // An expression evaluated on data point. Condition Expr // Fields to sort results by SortFields SortFields // Maximum number of rows to be returned. // Unlimited if zero. Limit int // Returns rows starting at an offset from the first row. Offset int }
ShowMeasurementsStatement represents a command for listing measurements.
func (*ShowMeasurementsStatement) RequiredPrivileges ¶
func (s *ShowMeasurementsStatement) RequiredPrivileges() ExecutionPrivileges
RequiredPrivileges returns the privilege(s) required to execute a ShowMeasurementsStatement
func (*ShowMeasurementsStatement) String ¶
func (s *ShowMeasurementsStatement) String() string
String returns a string representation of the statement.
type ShowRetentionPoliciesStatement ¶
type ShowRetentionPoliciesStatement struct { // Name of the database to list policies for. Database string }
ShowRetentionPoliciesStatement represents a command for listing retention policies.
func (*ShowRetentionPoliciesStatement) RequiredPrivileges ¶
func (s *ShowRetentionPoliciesStatement) RequiredPrivileges() ExecutionPrivileges
RequiredPrivileges returns the privilege(s) required to execute a ShowRetentionPoliciesStatement
func (*ShowRetentionPoliciesStatement) String ¶
func (s *ShowRetentionPoliciesStatement) String() string
String returns a string representation of a ShowRetentionPoliciesStatement.
type ShowSeriesStatement ¶
type ShowSeriesStatement struct { // Measurement(s) the series are listed for. Source Source // An expression evaluated on a series name or tag. Condition Expr // Fields to sort results by SortFields SortFields // Maximum number of rows to be returned. // Unlimited if zero. Limit int // Returns rows starting at an offset from the first row. Offset int }
ShowSeriesStatement represents a command for listing series in the database.
func (*ShowSeriesStatement) RequiredPrivileges ¶
func (s *ShowSeriesStatement) RequiredPrivileges() ExecutionPrivileges
RequiredPrivileges returns the privilege required to execute a ShowSeriesStatement.
func (*ShowSeriesStatement) String ¶
func (s *ShowSeriesStatement) String() string
String returns a string representation of the list series statement.
type ShowServersStatement ¶
type ShowServersStatement struct{}
ShowServersStatement represents a command for listing all servers.
func (*ShowServersStatement) RequiredPrivileges ¶
func (s *ShowServersStatement) RequiredPrivileges() ExecutionPrivileges
RequiredPrivileges returns the privilege required to execute a ShowServersStatement
func (*ShowServersStatement) String ¶
func (s *ShowServersStatement) String() string
String returns a string representation of the show servers command.
type ShowStatsStatement ¶
type ShowStatsStatement struct { // Hostname or IP of the server for stats. Host string }
ShowRetentionPoliciesStatement represents a command for displaying stats for a given server.
func (*ShowStatsStatement) RequiredPrivileges ¶
func (s *ShowStatsStatement) RequiredPrivileges() ExecutionPrivileges
RequiredPrivileges returns the privilege(s) required to execute a ShowStatsStatement
func (*ShowStatsStatement) String ¶
func (s *ShowStatsStatement) String() string
String returns a string representation of a ShowStatsStatement.
type ShowTagKeysStatement ¶
type ShowTagKeysStatement struct { // Data source that fields are extracted from. Source Source // An expression evaluated on data point. Condition Expr // Fields to sort results by SortFields SortFields // Maximum number of rows to be returned. // Unlimited if zero. Limit int // Returns rows starting at an offset from the first row. Offset int }
ShowTagKeysStatement represents a command for listing tag keys.
func (*ShowTagKeysStatement) RequiredPrivileges ¶
func (s *ShowTagKeysStatement) RequiredPrivileges() ExecutionPrivileges
RequiredPrivileges returns the privilege(s) required to execute a ShowTagKeysStatement
func (*ShowTagKeysStatement) String ¶
func (s *ShowTagKeysStatement) String() string
String returns a string representation of the statement.
type ShowTagValuesStatement ¶
type ShowTagValuesStatement struct { // Data source that fields are extracted from. Source Source // Tag key(s) to pull values from. TagKeys []string // An expression evaluated on data point. Condition Expr // Fields to sort results by SortFields SortFields // Maximum number of rows to be returned. // Unlimited if zero. Limit int // Returns rows starting at an offset from the first row. Offset int }
ShowTagValuesStatement represents a command for listing tag values.
func (*ShowTagValuesStatement) RequiredPrivileges ¶
func (s *ShowTagValuesStatement) RequiredPrivileges() ExecutionPrivileges
RequiredPrivileges returns the privilege(s) required to execute a ShowTagValuesStatement
func (*ShowTagValuesStatement) String ¶
func (s *ShowTagValuesStatement) String() string
String returns a string representation of the statement.
type ShowUsersStatement ¶
type ShowUsersStatement struct{}
ShowUsersStatement represents a command for listing users.
func (*ShowUsersStatement) RequiredPrivileges ¶
func (s *ShowUsersStatement) RequiredPrivileges() ExecutionPrivileges
RequiredPrivileges returns the privilege(s) required to execute a ShowUsersStatement
func (*ShowUsersStatement) String ¶
func (s *ShowUsersStatement) String() string
String retuns a string representation of the ShowUsersStatement.
type SortFields ¶
type SortFields []*SortField
SortFields represents an ordered list of ORDER BY fields
func (SortFields) String ¶
func (a SortFields) String() string
String returns a string representation of sort fields
type Source ¶
type Source interface { Node // contains filtered or unexported methods }
Source represents a source of data for a statement.
type Statement ¶
type Statement interface { Node RequiredPrivileges() ExecutionPrivileges // contains filtered or unexported methods }
Statement represents a single command in InfluxQL.
type Statements ¶
type Statements []Statement
Statements represents a list of statements.
func (Statements) String ¶
func (a Statements) String() string
String returns a string representation of the statements.
type StringLiteral ¶
type StringLiteral struct {
Val string
}
StringLiteral represents a string literal.
func (*StringLiteral) String ¶
func (l *StringLiteral) String() string
String returns a string representation of the literal.
type Target ¶
type Target struct { // Measurement to write into. Measurement string // Database to write into. Database string }
TODO pauldix: Target should actually have a Database, RetentionPolicy, and Measurement. These should be set based on the ON part of the query, and the SplitIdent of the INTO name Target represents a target (destination) policy, measurment, and DB.
type TimeLiteral ¶
TimeLiteral represents a point-in-time literal.
func (*TimeLiteral) String ¶
func (l *TimeLiteral) String() string
String returns a string representation of the literal.
type Token ¶
type Token int
Token is a lexical token of the InfluxQL language.
const ( // Special tokens ILLEGAL Token = iota EOF WS // Literals IDENT // main NUMBER // 12345.67 DURATION_VAL // 13h STRING // "abc" BADSTRING // "abc BADESCAPE // \q TRUE // true FALSE // false REGEX // Regular expressions BADREGEX // `.* // Operators ADD // + SUB // - MUL // * DIV // / AND // AND OR // OR EQ // = NEQ // != EQREGEX // =~ NEQREGEX // !~ LT // < LTE // <= GT // > GTE // >= LPAREN // ( RPAREN // ) COMMA // , SEMICOLON // ; DOT // . // Keywords ALL ALTER AS ASC BEGIN BY CREATE CONTINUOUS DATABASE DATABASES DEFAULT DELETE DESC DROP DURATION END EXISTS EXPLAIN FIELD FROM GRANT GROUP IF IN INF INNER INSERT INTO KEY KEYS LIMIT MEASUREMENT MEASUREMENTS OFFSET ON ORDER PASSWORD POLICY POLICIES PRIVILEGES QUERIES QUERY READ REPLICATION RETENTION REVOKE SELECT SERIES SERVERS SHOW SLIMIT STATS DIAGNOSTICS SOFFSET TAG TO USER USERS VALUES WHERE WITH WRITE )
func (Token) Precedence ¶
Precedence returns the operator precedence of the binary operator token.
type Tx ¶
type Tx interface { // Create MapReduceJobs for the given select statement. One MRJob will be created per unique tagset that matches the query CreateMapReduceJobs(stmt *SelectStatement, tagKeys []string) ([]*MapReduceJob, error) }
Tx represents a transaction. The Tx must be opened before being used.
type Valuer ¶
Valuer is the interface that wraps the Value() method.
Value returns the value and existence flag for a given key.