From af76865b2cceb72e89a36b36cbcf7d547caf0688 Mon Sep 17 00:00:00 2001 From: Stuart Carnie Date: Mon, 22 May 2023 16:22:54 +1000 Subject: [PATCH] feat: complete InfluxQL subquery compatibility Closes #7794 --- iox_query_influxql/src/plan/ir.rs | 36 +-- iox_query_influxql/src/plan/planner.rs | 245 ++++++------------ iox_query_influxql/src/plan/planner/select.rs | 98 ++++++- iox_query_influxql/src/plan/rewriter.rs | 18 +- 4 files changed, 180 insertions(+), 217 deletions(-) diff --git a/iox_query_influxql/src/plan/ir.rs b/iox_query_influxql/src/plan/ir.rs index 5124d8b40a..3927cc269b 100644 --- a/iox_query_influxql/src/plan/ir.rs +++ b/iox_query_influxql/src/plan/ir.rs @@ -2,8 +2,6 @@ //! statement after it has been processed use crate::plan::rewriter::ProjectionType; -use crate::plan::{error, SchemaProvider}; -use datafusion::common::Result; use influxdb_influxql_parser::common::{ LimitClause, MeasurementName, OffsetClause, OrderByClause, QualifiedMeasurementName, WhereClause, @@ -13,14 +11,14 @@ use influxdb_influxql_parser::select::{ FieldList, FillClause, FromMeasurementClause, GroupByClause, MeasurementSelection, SelectStatement, TimeZoneClause, }; -use schema::{InfluxColumnType, Schema}; +use schema::InfluxColumnType; use std::collections::HashSet; use std::fmt::{Display, Formatter}; /// A set of tag keys. pub(super) type TagSet = HashSet; -/// Represents a validated and normalized top-level [`SelectStatement]`. +/// Represents a validated and normalized top-level [`SelectStatement`]. #[derive(Debug, Default, Clone)] pub(super) struct SelectQuery { pub(super) select: Select, @@ -119,36 +117,6 @@ pub(super) enum DataSource { Subquery(Box