diff --git a/.circleci/config.yml b/.circleci/config.yml index 6cdc2c7b42..d9a2cba57a 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -131,7 +131,7 @@ jobs: # https://github.com/EmbarkStudios/cargo-deny/issues/388 name: Pull advisory-db command: | - git clone --depth=1 https://github.com/RustSec/advisory-db.git /usr/local/cargo/advisory-dbs/github.com-dfdf83aac62a7e5e + git clone --depth=1 https://github.com/RustSec/advisory-db.git /usr/local/cargo/advisory-dbs/github.com-2f857891b7f43c59 - run: name: cargo-deny Checks command: cargo deny check -s --disable-fetch diff --git a/Cargo.lock b/Cargo.lock index c665b770d2..24f1811a26 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -845,6 +845,7 @@ dependencies = [ "datafusion 0.1.0", "futures", "iox_catalog", + "iox_query", "iox_tests", "iox_time", "metric", @@ -853,7 +854,6 @@ dependencies = [ "parquet_file", "predicate", "querier", - "query", "schema", "snafu", "test_helpers", @@ -2181,6 +2181,7 @@ dependencies = [ "influxdb_storage_client", "influxrpc_parser", "iox_catalog", + "iox_query", "iox_time", "ioxd_common", "ioxd_compactor", @@ -2200,7 +2201,6 @@ dependencies = [ "parquet_file", "predicate", "predicates", - "query", "rustyline", "schema", "serde_json", @@ -2312,6 +2312,7 @@ dependencies = [ "generated_types", "hyper", "iox_catalog", + "iox_query", "iox_time", "lazy_static", "metric", @@ -2325,7 +2326,6 @@ dependencies = [ "pin-project", "predicate", "prost", - "query", "schema", "snafu", "test_helpers", @@ -2447,6 +2447,35 @@ dependencies = [ "workspace-hack", ] +[[package]] +name = "iox_query" +version = "0.1.0" +dependencies = [ + "arrow", + "arrow_util", + "async-trait", + "chrono", + "croaring", + "data_types", + "datafusion 0.1.0", + "datafusion_util", + "executor", + "futures", + "hashbrown 0.12.1", + "itertools", + "observability_deps", + "parking_lot 0.12.0", + "predicate", + "query_functions", + "schema", + "snafu", + "test_helpers", + "tokio", + "tokio-stream", + "trace", + "workspace-hack", +] + [[package]] name = "iox_tests" version = "0.1.0" @@ -2456,12 +2485,12 @@ dependencies = [ "data_types", "datafusion 0.1.0", "iox_catalog", + "iox_query", "iox_time", "metric", "mutable_batch_lp", "object_store", "parquet_file", - "query", "schema", "uuid 0.8.2", "workspace-hack", @@ -2530,11 +2559,11 @@ dependencies = [ "data_types", "hyper", "iox_catalog", + "iox_query", "iox_time", "ioxd_common", "metric", "object_store", - "query", "thiserror", "trace", "workspace-hack", @@ -2550,10 +2579,10 @@ dependencies = [ "hyper", "ingester", "iox_catalog", + "iox_query", "ioxd_common", "metric", "object_store", - "query", "thiserror", "trace", "workspace-hack", @@ -2570,13 +2599,13 @@ dependencies = [ "generated_types", "hyper", "iox_catalog", + "iox_query", "iox_tests", "iox_time", "ioxd_common", "metric", "object_store", "querier", - "query", "service_grpc_flight", "service_grpc_influxrpc", "tokio", @@ -4132,6 +4161,7 @@ dependencies = [ "generated_types", "influxdb_iox_client", "iox_catalog", + "iox_query", "iox_tests", "iox_time", "metric", @@ -4142,7 +4172,6 @@ dependencies = [ "parquet_file", "pin-project", "predicate", - "query", "rand", "schema", "service_common", @@ -4158,35 +4187,6 @@ dependencies = [ "workspace-hack", ] -[[package]] -name = "query" -version = "0.1.0" -dependencies = [ - "arrow", - "arrow_util", - "async-trait", - "chrono", - "croaring", - "data_types", - "datafusion 0.1.0", - "datafusion_util", - "executor", - "futures", - "hashbrown 0.12.1", - "itertools", - "observability_deps", - "parking_lot 0.12.0", - "predicate", - "query_functions", - "schema", - "snafu", - "test_helpers", - "tokio", - "tokio-stream", - "trace", - "workspace-hack", -] - [[package]] name = "query_functions" version = "0.1.0" @@ -4222,6 +4222,7 @@ dependencies = [ "influxdb_iox_client", "ingester", "iox_catalog", + "iox_query", "iox_tests", "itertools", "mutable_batch", @@ -4230,7 +4231,6 @@ dependencies = [ "predicate", "pretty_assertions", "querier", - "query", "schema", "snafu", "tempfile", @@ -5033,8 +5033,8 @@ version = "0.1.0" dependencies = [ "async-trait", "datafusion 0.1.0", + "iox_query", "predicate", - "query", "workspace-hack", ] @@ -5064,10 +5064,10 @@ dependencies = [ "datafusion 0.1.0", "futures", "generated_types", + "iox_query", "observability_deps", "pin-project", "prost", - "query", "serde", "serde_json", "service_common", @@ -5088,13 +5088,13 @@ dependencies = [ "futures", "generated_types", "influxdb_storage_client", + "iox_query", "metric", "observability_deps", "panic_logging", "parking_lot 0.12.0", "predicate", "prost", - "query", "query_functions", "regex", "schema", @@ -5291,12 +5291,12 @@ checksum = "45456094d1983e2ee2a18fdfebce3189fa451699d0502cb8e3b49dba5ba41451" [[package]] name = "socket2" -version = "0.4.5" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca642ba17f8b2995138b1d7711829c92e98c0a25ea019de790f4f09279c4e296" +checksum = "66d72b759436ae32898a2af0a14218dbf55efde3feeb170eb623637db85ee1e0" dependencies = [ "libc", - "windows-sys 0.36.1", + "winapi", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 8622c75c80..3fbf951a79 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -26,6 +26,7 @@ members = [ "iox_catalog", "iox_data_generator", "iox_gitops_adapter", + "iox_query", "iox_tests", "iox_time", "ioxd_common", @@ -48,7 +49,6 @@ members = [ "parquet_file", "predicate", "querier", - "query", "query_functions", "query_tests", "read_buffer", diff --git a/compactor/Cargo.toml b/compactor/Cargo.toml index 11692dd824..ae6c4f048d 100644 --- a/compactor/Cargo.toml +++ b/compactor/Cargo.toml @@ -18,7 +18,7 @@ object_store = "0.0.1" observability_deps = { path = "../observability_deps" } parquet_file = { path = "../parquet_file" } predicate = { path = "../predicate" } -query = { path = "../query" } +iox_query = { path = "../iox_query" } schema = { path = "../schema" } snafu = "0.7" thiserror = "1.0" diff --git a/compactor/src/compact.rs b/compactor/src/compact.rs index 92d3f41e53..4bc15b79b5 100644 --- a/compactor/src/compact.rs +++ b/compactor/src/compact.rs @@ -17,6 +17,13 @@ use data_types::{ }; use datafusion::error::DataFusionError; use iox_catalog::interface::{Catalog, Transaction, INITIAL_COMPACTION_LEVEL}; +use iox_query::{ + exec::{Executor, ExecutorType}, + frontend::reorg::ReorgPlanner, + provider::overlap::group_potential_duplicates, + util::compute_timenanosecond_min_max, + QueryChunk, +}; use iox_time::{Time, TimeProvider}; use metric::{Attributes, Metric, U64Counter, U64Gauge, U64Histogram, U64HistogramOptions}; use object_store::DynObjectStore; @@ -25,13 +32,6 @@ use parquet_file::{ metadata::{IoxMetadata, IoxParquetMetaData}, ParquetFilePath, }; -use query::{ - exec::{Executor, ExecutorType}, - frontend::reorg::ReorgPlanner, - provider::overlap::group_potential_duplicates, - util::compute_timenanosecond_min_max, - QueryChunk, -}; use schema::sort::SortKey; use snafu::{ensure, OptionExt, ResultExt, Snafu}; use std::{ @@ -87,7 +87,7 @@ pub enum Error { #[snafu(display("Error building compact logical plan {}", source))] CompactLogicalPlan { - source: query::frontend::reorg::Error, + source: iox_query::frontend::reorg::Error, }, #[snafu(display("Error building compact physical plan {}", source))] @@ -103,7 +103,7 @@ pub enum Error { RowCountTypeConversion { source: std::num::TryFromIntError }, #[snafu(display("Error computing min and max for record batches: {}", source))] - MinMax { source: query::util::Error }, + MinMax { source: iox_query::util::Error }, #[snafu(display("Error while starting catalog transaction {}", source))] Transaction { @@ -1108,13 +1108,13 @@ mod tests { use data_types::{ChunkId, KafkaPartition, NamespaceId, ParquetFileParams, SequenceNumber}; use futures::TryStreamExt; use iox_catalog::interface::INITIAL_COMPACTION_LEVEL; + use iox_query::test::{raw_data, TestChunk}; use iox_tests::util::TestCatalog; use iox_time::SystemProvider; use querier::{ cache::CatalogCache, chunk::{collect_read_filter, ParquetChunkAdapter}, }; - use query::test::{raw_data, TestChunk}; use std::sync::atomic::{AtomicI64, Ordering}; // Simulate unique ID generation diff --git a/compactor/src/handler.rs b/compactor/src/handler.rs index 1763363245..8763579600 100644 --- a/compactor/src/handler.rs +++ b/compactor/src/handler.rs @@ -8,10 +8,10 @@ use futures::{ select, FutureExt, TryFutureExt, }; use iox_catalog::interface::Catalog; +use iox_query::exec::Executor; use iox_time::TimeProvider; use object_store::DynObjectStore; use observability_deps::tracing::*; -use query::exec::Executor; use std::sync::Arc; use thiserror::Error; use tokio::task::{JoinError, JoinHandle}; diff --git a/compactor/src/query.rs b/compactor/src/query.rs index 97e5df71da..6ff374c0b2 100644 --- a/compactor/src/query.rs +++ b/compactor/src/query.rs @@ -5,13 +5,13 @@ use data_types::{ TimestampMinMax, Tombstone, }; use datafusion::physical_plan::SendableRecordBatchStream; -use observability_deps::tracing::trace; -use parquet_file::chunk::ParquetChunk; -use predicate::{delete_predicate::tombstones_to_delete_predicates, Predicate, PredicateMatch}; -use query::{ +use iox_query::{ exec::{stringset::StringSet, IOxSessionContext}, QueryChunk, QueryChunkError, QueryChunkMeta, }; +use observability_deps::tracing::trace; +use parquet_file::chunk::ParquetChunk; +use predicate::{delete_predicate::tombstones_to_delete_predicates, Predicate, PredicateMatch}; use schema::{merge::SchemaMerger, selection::Selection, sort::SortKey, Schema}; use snafu::{ResultExt, Snafu}; use std::sync::Arc; diff --git a/deny.toml b/deny.toml index 0eba74426d..5aee291524 100644 --- a/deny.toml +++ b/deny.toml @@ -26,6 +26,8 @@ ignore = [ # why needed: used by `criterion` # upstream issue: https://github.com/bheisler/criterion.rs/issues/534 "RUSTSEC-2021-0127", + + "query", ] [licenses] diff --git a/docs/README.md b/docs/README.md index de57cda579..0a8053d2ad 100644 --- a/docs/README.md +++ b/docs/README.md @@ -43,5 +43,5 @@ We hold monthly Tech Talks that explain the project's technical underpinnings. Y * [Data Deduplication & Sort Key](dedup_and_sort.md) * Transactions and locks (to be written & linked) * [Thoughts on using multiple cores / thread pools](multi_core_tasks.md) -* [Query Engine Docs](../query/README.md) +* [Query Engine Docs](../iox_query/README.md) * [Notes on the use of local filesystems](local_filesystems.md) diff --git a/influxdb_iox/Cargo.toml b/influxdb_iox/Cargo.toml index c616021276..a4e82c4f14 100644 --- a/influxdb_iox/Cargo.toml +++ b/influxdb_iox/Cargo.toml @@ -27,7 +27,7 @@ object_store_metrics = { path = "../object_store_metrics" } observability_deps = { path = "../observability_deps" } panic_logging = { path = "../panic_logging" } parquet_file = { path = "../parquet_file" } -query = { path = "../query" } +iox_query = { path = "../iox_query" } schema = { path = "../schema" } iox_time = { path = "../iox_time" } trace_exporters = { path = "../trace_exporters" } diff --git a/influxdb_iox/src/commands/run/all_in_one.rs b/influxdb_iox/src/commands/run/all_in_one.rs index 69ae82666f..0d1dd656a5 100644 --- a/influxdb_iox/src/commands/run/all_in_one.rs +++ b/influxdb_iox/src/commands/run/all_in_one.rs @@ -8,6 +8,7 @@ use clap_blocks::{ object_store::ObjectStoreConfig, run_config::RunConfig, socket_addr::SocketAddr, write_buffer::WriteBufferConfig, }; +use iox_query::exec::Executor; use iox_time::{SystemProvider, TimeProvider}; use ioxd_common::{ server_type::{CommonServerState, CommonServerStateError}, @@ -19,7 +20,6 @@ use ioxd_querier::{create_querier_server_type, QuerierServerTypeArgs}; use ioxd_router::create_router_server_type; use object_store::DynObjectStore; use observability_deps::tracing::*; -use query::exec::Executor; use std::{path::PathBuf, sync::Arc}; use thiserror::Error; use trace_exporters::TracingConfig; diff --git a/influxdb_iox/src/commands/run/compactor.rs b/influxdb_iox/src/commands/run/compactor.rs index fcd283b866..ce27de80a9 100644 --- a/influxdb_iox/src/commands/run/compactor.rs +++ b/influxdb_iox/src/commands/run/compactor.rs @@ -1,10 +1,10 @@ //! Implementation of command line option for running the compactor +use iox_query::exec::Executor; use iox_time::{SystemProvider, TimeProvider}; use object_store::DynObjectStore; use object_store_metrics::ObjectStoreMetrics; use observability_deps::tracing::*; -use query::exec::Executor; use std::sync::Arc; use thiserror::Error; diff --git a/influxdb_iox/src/commands/run/ingester.rs b/influxdb_iox/src/commands/run/ingester.rs index 17b2f45c3d..70367e1e21 100644 --- a/influxdb_iox/src/commands/run/ingester.rs +++ b/influxdb_iox/src/commands/run/ingester.rs @@ -5,6 +5,7 @@ use clap_blocks::{ catalog_dsn::CatalogDsnConfig, ingester::IngesterConfig, run_config::RunConfig, write_buffer::WriteBufferConfig, }; +use iox_query::exec::Executor; use iox_time::{SystemProvider, TimeProvider}; use ioxd_common::server_type::{CommonServerState, CommonServerStateError}; use ioxd_common::Service; @@ -12,7 +13,6 @@ use ioxd_ingester::create_ingester_server_type; use object_store::DynObjectStore; use object_store_metrics::ObjectStoreMetrics; use observability_deps::tracing::*; -use query::exec::Executor; use std::sync::Arc; use thiserror::Error; diff --git a/influxdb_iox/src/commands/run/querier.rs b/influxdb_iox/src/commands/run/querier.rs index 9365f68a89..37c5ade89e 100644 --- a/influxdb_iox/src/commands/run/querier.rs +++ b/influxdb_iox/src/commands/run/querier.rs @@ -1,11 +1,11 @@ //! Implementation of command line option for running the querier use clap_blocks::querier::QuerierConfig; +use iox_query::exec::Executor; use iox_time::{SystemProvider, TimeProvider}; use object_store::DynObjectStore; use object_store_metrics::ObjectStoreMetrics; use observability_deps::tracing::*; -use query::exec::Executor; use std::sync::Arc; use thiserror::Error; diff --git a/ingester/Cargo.toml b/ingester/Cargo.toml index 1bc30fc95c..7ab1fc9214 100644 --- a/ingester/Cargo.toml +++ b/ingester/Cargo.toml @@ -30,7 +30,7 @@ parquet_file = { path = "../parquet_file" } pin-project = "1.0" predicate = { path = "../predicate" } prost = "0.10" -query = { path = "../query" } +iox_query = { path = "../iox_query" } schema = { path = "../schema" } snafu = "0.7" thiserror = "1.0" diff --git a/ingester/src/compact.rs b/ingester/src/compact.rs index 6323644f78..2f43dce91a 100644 --- a/ingester/src/compact.rs +++ b/ingester/src/compact.rs @@ -5,14 +5,14 @@ use arrow::record_batch::RecordBatch; use data_types::{NamespaceId, PartitionInfo}; use datafusion::{error::DataFusionError, physical_plan::SendableRecordBatchStream}; use iox_catalog::interface::INITIAL_COMPACTION_LEVEL; -use iox_time::{Time, TimeProvider}; -use parquet_file::metadata::IoxMetadata; -use query::{ +use iox_query::{ exec::{Executor, ExecutorType}, frontend::reorg::ReorgPlanner, util::compute_timenanosecond_min_max, QueryChunk, QueryChunkMeta, }; +use iox_time::{Time, TimeProvider}; +use parquet_file::metadata::IoxMetadata; use schema::sort::{adjust_sort_key_columns, compute_sort_key, SortKey}; use snafu::{ResultExt, Snafu}; use std::sync::Arc; @@ -22,7 +22,7 @@ use std::sync::Arc; pub enum Error { #[snafu(display("Error while building logical plan for Ingester's compaction"))] LogicalPlan { - source: query::frontend::reorg::Error, + source: iox_query::frontend::reorg::Error, }, #[snafu(display("Error while building physical plan for Ingester's compaction"))] @@ -46,7 +46,7 @@ pub enum Error { RowCountTypeConversion { source: std::num::TryFromIntError }, #[snafu(display("Error computing min and max for record batches: {}", source))] - MinMax { source: query::util::Error }, + MinMax { source: iox_query::util::Error }, } /// A specialized `Error` for Ingester's Compact errors diff --git a/ingester/src/data.rs b/ingester/src/data.rs index e2c19d1bf6..4183c959d2 100644 --- a/ingester/src/data.rs +++ b/ingester/src/data.rs @@ -17,6 +17,7 @@ use data_types::{ use datafusion::physical_plan::SendableRecordBatchStream; use dml::DmlOperation; use iox_catalog::interface::Catalog; +use iox_query::exec::Executor; use iox_time::SystemProvider; use metric::U64Counter; use mutable_batch::MutableBatch; @@ -24,7 +25,6 @@ use object_store::DynObjectStore; use observability_deps::tracing::{debug, warn}; use parking_lot::RwLock; use predicate::Predicate; -use query::exec::Executor; use schema::{selection::Selection, Schema}; use snafu::{OptionExt, ResultExt, Snafu}; use std::{ diff --git a/ingester/src/handler.rs b/ingester/src/handler.rs index 0ee1199ddf..5bffd21b28 100644 --- a/ingester/src/handler.rs +++ b/ingester/src/handler.rs @@ -21,11 +21,11 @@ use futures::{ }; use generated_types::ingester::IngesterQueryRequest; use iox_catalog::interface::Catalog; +use iox_query::exec::Executor; use iox_time::{SystemProvider, TimeProvider}; use metric::{Metric, U64Histogram, U64HistogramOptions}; use object_store::DynObjectStore; use observability_deps::tracing::*; -use query::exec::Executor; use snafu::{ResultExt, Snafu}; use std::{collections::BTreeMap, sync::Arc, time::Duration}; use tokio::task::{JoinError, JoinHandle}; diff --git a/ingester/src/persist.rs b/ingester/src/persist.rs index 91f6678867..a4d7bef48f 100644 --- a/ingester/src/persist.rs +++ b/ingester/src/persist.rs @@ -84,9 +84,9 @@ mod tests { use data_types::{NamespaceId, PartitionId, SequenceNumber, SequencerId, TableId}; use futures::{StreamExt, TryStreamExt}; use iox_catalog::interface::INITIAL_COMPACTION_LEVEL; + use iox_query::test::{raw_data, TestChunk}; use iox_time::Time; use object_store::memory::InMemory; - use query::test::{raw_data, TestChunk}; use std::sync::Arc; use uuid::Uuid; diff --git a/ingester/src/querier_handler.rs b/ingester/src/querier_handler.rs index 1851561fca..a4f83fa022 100644 --- a/ingester/src/querier_handler.rs +++ b/ingester/src/querier_handler.rs @@ -14,13 +14,13 @@ use datafusion::{ }, }; use generated_types::ingester::IngesterQueryRequest; -use observability_deps::tracing::debug; -use predicate::Predicate; -use query::{ +use iox_query::{ exec::{Executor, ExecutorType}, frontend::reorg::ReorgPlanner, QueryChunkMeta, }; +use observability_deps::tracing::debug; +use predicate::Predicate; use schema::{ merge::{merge_record_batch_schemas, SchemaMerger}, selection::Selection, @@ -37,7 +37,7 @@ pub enum Error { #[snafu(display("Error building logical plan for querying Ingester data to send to Querier"))] LogicalPlan { - source: query::frontend::reorg::Error, + source: iox_query::frontend::reorg::Error, }, #[snafu(display( diff --git a/ingester/src/query.rs b/ingester/src/query.rs index 6558638c0f..a8a9d00463 100644 --- a/ingester/src/query.rs +++ b/ingester/src/query.rs @@ -16,16 +16,16 @@ use datafusion::{ }, }; use datafusion_util::batch_filter; +use iox_query::{ + exec::{stringset::StringSet, IOxSessionContext}, + util::{df_physical_expr_from_schema_and_expr, MissingColumnsToNull}, + QueryChunk, QueryChunkError, QueryChunkMeta, +}; use observability_deps::tracing::{debug, trace}; use predicate::{ delete_predicate::{tombstones_to_delete_predicates, tombstones_to_delete_predicates_iter}, Predicate, PredicateMatch, }; -use query::{ - exec::{stringset::StringSet, IOxSessionContext}, - util::{df_physical_expr_from_schema_and_expr, MissingColumnsToNull}, - QueryChunk, QueryChunkError, QueryChunkMeta, -}; use schema::{merge::merge_record_batch_schemas, selection::Selection, sort::SortKey, Schema}; use snafu::{ResultExt, Snafu}; use std::sync::Arc; diff --git a/ingester/src/test_util.rs b/ingester/src/test_util.rs index 5e73016259..36381c33dc 100644 --- a/ingester/src/test_util.rs +++ b/ingester/src/test_util.rs @@ -20,10 +20,10 @@ use iox_catalog::{ interface::{Catalog, INITIAL_COMPACTION_LEVEL}, mem::MemCatalog, }; +use iox_query::test::{raw_data, TestChunk}; use iox_time::{SystemProvider, Time, TimeProvider}; use object_store::memory::InMemory; use parquet_file::metadata::IoxMetadata; -use query::test::{raw_data, TestChunk}; use schema::sort::SortKey; use std::{collections::BTreeMap, sync::Arc}; use uuid::Uuid; @@ -677,7 +677,7 @@ pub fn make_ingester_data(two_partitions: bool, loc: DataLocation) -> IngesterDa let metrics: Arc = Default::default(); let catalog: Arc = Arc::new(MemCatalog::new(Arc::clone(&metrics))); let object_store = Arc::new(InMemory::new()); - let exec = Arc::new(query::exec::Executor::new(1)); + let exec = Arc::new(iox_query::exec::Executor::new(1)); // Make data for one sequencer/shard and two tables let seq_id = SequencerId::new(1); @@ -730,7 +730,7 @@ pub async fn make_ingester_data_with_tombstones(loc: DataLocation) -> IngesterDa let metrics: Arc = Default::default(); let catalog: Arc = Arc::new(MemCatalog::new(metrics)); let object_store = Arc::new(InMemory::new()); - let exec = Arc::new(query::exec::Executor::new(1)); + let exec = Arc::new(iox_query::exec::Executor::new(1)); // Make data for one sequencer/shard and two tables let seq_id = SequencerId::new(1); @@ -845,7 +845,7 @@ pub(crate) fn make_partitions( /// Make data for one partition with tombstones pub(crate) async fn make_one_partition_with_tombstones( - exec: &query::exec::Executor, + exec: &iox_query::exec::Executor, loc: DataLocation, sequencer_id: SequencerId, table_id: TableId, diff --git a/query/Cargo.toml b/iox_query/Cargo.toml similarity index 98% rename from query/Cargo.toml rename to iox_query/Cargo.toml index 46d1bc4c7e..15af0ae2b8 100644 --- a/query/Cargo.toml +++ b/iox_query/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "query" +name = "iox_query" version = "0.1.0" authors = ["Andrew Lamb "] edition = "2021" diff --git a/query/README.md b/iox_query/README.md similarity index 100% rename from query/README.md rename to iox_query/README.md diff --git a/query/src/exec.rs b/iox_query/src/exec.rs similarity index 100% rename from query/src/exec.rs rename to iox_query/src/exec.rs diff --git a/query/src/exec/context.rs b/iox_query/src/exec/context.rs similarity index 100% rename from query/src/exec/context.rs rename to iox_query/src/exec/context.rs diff --git a/query/src/exec/field.rs b/iox_query/src/exec/field.rs similarity index 100% rename from query/src/exec/field.rs rename to iox_query/src/exec/field.rs diff --git a/query/src/exec/fieldlist.rs b/iox_query/src/exec/fieldlist.rs similarity index 100% rename from query/src/exec/fieldlist.rs rename to iox_query/src/exec/fieldlist.rs diff --git a/query/src/exec/non_null_checker.rs b/iox_query/src/exec/non_null_checker.rs similarity index 100% rename from query/src/exec/non_null_checker.rs rename to iox_query/src/exec/non_null_checker.rs diff --git a/query/src/exec/query_tracing.rs b/iox_query/src/exec/query_tracing.rs similarity index 100% rename from query/src/exec/query_tracing.rs rename to iox_query/src/exec/query_tracing.rs diff --git a/query/src/exec/schema_pivot.rs b/iox_query/src/exec/schema_pivot.rs similarity index 100% rename from query/src/exec/schema_pivot.rs rename to iox_query/src/exec/schema_pivot.rs diff --git a/query/src/exec/seriesset.rs b/iox_query/src/exec/seriesset.rs similarity index 100% rename from query/src/exec/seriesset.rs rename to iox_query/src/exec/seriesset.rs diff --git a/query/src/exec/seriesset/converter.rs b/iox_query/src/exec/seriesset/converter.rs similarity index 100% rename from query/src/exec/seriesset/converter.rs rename to iox_query/src/exec/seriesset/converter.rs diff --git a/query/src/exec/seriesset/series.rs b/iox_query/src/exec/seriesset/series.rs similarity index 100% rename from query/src/exec/seriesset/series.rs rename to iox_query/src/exec/seriesset/series.rs diff --git a/query/src/exec/split.rs b/iox_query/src/exec/split.rs similarity index 100% rename from query/src/exec/split.rs rename to iox_query/src/exec/split.rs diff --git a/query/src/exec/stringset.rs b/iox_query/src/exec/stringset.rs similarity index 100% rename from query/src/exec/stringset.rs rename to iox_query/src/exec/stringset.rs diff --git a/query/src/frontend.rs b/iox_query/src/frontend.rs similarity index 100% rename from query/src/frontend.rs rename to iox_query/src/frontend.rs diff --git a/query/src/frontend/influxrpc.rs b/iox_query/src/frontend/influxrpc.rs similarity index 100% rename from query/src/frontend/influxrpc.rs rename to iox_query/src/frontend/influxrpc.rs diff --git a/query/src/frontend/reorg.rs b/iox_query/src/frontend/reorg.rs similarity index 100% rename from query/src/frontend/reorg.rs rename to iox_query/src/frontend/reorg.rs diff --git a/query/src/frontend/sql.rs b/iox_query/src/frontend/sql.rs similarity index 100% rename from query/src/frontend/sql.rs rename to iox_query/src/frontend/sql.rs diff --git a/query/src/lib.rs b/iox_query/src/lib.rs similarity index 99% rename from query/src/lib.rs rename to iox_query/src/lib.rs index 2003ec3bbb..c5954411e8 100644 --- a/query/src/lib.rs +++ b/iox_query/src/lib.rs @@ -383,7 +383,7 @@ pub fn compute_sort_key<'a>(summaries: impl Iterator) - // error[E0433]: failed to resolve: could not find `test` in `storage` // --> src/server/mutable_buffer_routes.rs:353:19 // | -// 353 | use query::test::TestDatabaseStore; +// 353 | use iox_query::test::TestDatabaseStore; // | ^^^^ could not find `test` in `query` // diff --git a/query/src/plan.rs b/iox_query/src/plan.rs similarity index 100% rename from query/src/plan.rs rename to iox_query/src/plan.rs diff --git a/query/src/plan/fieldlist.rs b/iox_query/src/plan/fieldlist.rs similarity index 100% rename from query/src/plan/fieldlist.rs rename to iox_query/src/plan/fieldlist.rs diff --git a/query/src/plan/seriesset.rs b/iox_query/src/plan/seriesset.rs similarity index 100% rename from query/src/plan/seriesset.rs rename to iox_query/src/plan/seriesset.rs diff --git a/query/src/plan/stringset.rs b/iox_query/src/plan/stringset.rs similarity index 100% rename from query/src/plan/stringset.rs rename to iox_query/src/plan/stringset.rs diff --git a/query/src/provider.rs b/iox_query/src/provider.rs similarity index 100% rename from query/src/provider.rs rename to iox_query/src/provider.rs diff --git a/query/src/provider/adapter.rs b/iox_query/src/provider/adapter.rs similarity index 100% rename from query/src/provider/adapter.rs rename to iox_query/src/provider/adapter.rs diff --git a/query/src/provider/deduplicate.rs b/iox_query/src/provider/deduplicate.rs similarity index 100% rename from query/src/provider/deduplicate.rs rename to iox_query/src/provider/deduplicate.rs diff --git a/query/src/provider/deduplicate/algo.rs b/iox_query/src/provider/deduplicate/algo.rs similarity index 100% rename from query/src/provider/deduplicate/algo.rs rename to iox_query/src/provider/deduplicate/algo.rs diff --git a/query/src/provider/deduplicate/key_ranges.rs b/iox_query/src/provider/deduplicate/key_ranges.rs similarity index 100% rename from query/src/provider/deduplicate/key_ranges.rs rename to iox_query/src/provider/deduplicate/key_ranges.rs diff --git a/query/src/provider/overlap.rs b/iox_query/src/provider/overlap.rs similarity index 100% rename from query/src/provider/overlap.rs rename to iox_query/src/provider/overlap.rs diff --git a/query/src/provider/physical.rs b/iox_query/src/provider/physical.rs similarity index 100% rename from query/src/provider/physical.rs rename to iox_query/src/provider/physical.rs diff --git a/query/src/pruning.rs b/iox_query/src/pruning.rs similarity index 100% rename from query/src/pruning.rs rename to iox_query/src/pruning.rs diff --git a/query/src/statistics.rs b/iox_query/src/statistics.rs similarity index 100% rename from query/src/statistics.rs rename to iox_query/src/statistics.rs diff --git a/query/src/test.rs b/iox_query/src/test.rs similarity index 100% rename from query/src/test.rs rename to iox_query/src/test.rs diff --git a/query/src/util.rs b/iox_query/src/util.rs similarity index 100% rename from query/src/util.rs rename to iox_query/src/util.rs diff --git a/iox_tests/Cargo.toml b/iox_tests/Cargo.toml index e5a08fd0ff..f628b6318e 100644 --- a/iox_tests/Cargo.toml +++ b/iox_tests/Cargo.toml @@ -16,7 +16,7 @@ metric = { path = "../metric" } mutable_batch_lp = { path = "../mutable_batch_lp" } object_store = "0.0.1" parquet_file = { path = "../parquet_file" } -query = { path = "../query" } +iox_query = { path = "../iox_query" } schema = { path = "../schema" } uuid = { version = "0.8", features = ["v4"] } workspace-hack = { path = "../workspace-hack"} diff --git a/iox_tests/src/util.rs b/iox_tests/src/util.rs index 3e98375b67..62937442fb 100644 --- a/iox_tests/src/util.rs +++ b/iox_tests/src/util.rs @@ -15,6 +15,7 @@ use iox_catalog::{ interface::{Catalog, PartitionRepo, INITIAL_COMPACTION_LEVEL}, mem::MemCatalog, }; +use iox_query::{exec::Executor, provider::RecordBatchDeduplicator, util::arrow_sort_key_exprs}; use iox_time::{MockProvider, Time, TimeProvider}; use mutable_batch_lp::test_helpers::lp_to_mutable_batch; use object_store::{memory::InMemory, DynObjectStore}; @@ -22,7 +23,6 @@ use parquet_file::{ metadata::{IoxMetadata, IoxParquetMetaData}, ParquetFilePath, }; -use query::{exec::Executor, provider::RecordBatchDeduplicator, util::arrow_sort_key_exprs}; use schema::{ selection::Selection, sort::{adjust_sort_key_columns, SortKey, SortKeyBuilder}, diff --git a/ioxd_compactor/Cargo.toml b/ioxd_compactor/Cargo.toml index c733a78965..560ab64c63 100644 --- a/ioxd_compactor/Cargo.toml +++ b/ioxd_compactor/Cargo.toml @@ -13,7 +13,7 @@ data_types = { path = "../data_types" } iox_catalog = { path = "../iox_catalog" } ioxd_common = { path = "../ioxd_common" } metric = { path = "../metric" } -query = { path = "../query" } +iox_query = { path = "../iox_query" } object_store = "0.0.1" iox_time = { path = "../iox_time" } trace = { path = "../trace" } diff --git a/ioxd_compactor/src/lib.rs b/ioxd_compactor/src/lib.rs index 7f908b7f1e..425e1cd619 100644 --- a/ioxd_compactor/src/lib.rs +++ b/ioxd_compactor/src/lib.rs @@ -7,6 +7,7 @@ use compactor::{ use data_types::KafkaPartition; use hyper::{Body, Request, Response}; use iox_catalog::interface::Catalog; +use iox_query::exec::Executor; use iox_time::TimeProvider; use ioxd_common::{ add_service, @@ -18,7 +19,6 @@ use ioxd_common::{ }; use metric::Registry; use object_store::DynObjectStore; -use query::exec::Executor; use std::{ fmt::{Debug, Display}, sync::Arc, diff --git a/ioxd_ingester/Cargo.toml b/ioxd_ingester/Cargo.toml index 34151d9f4a..ddb1fe7e05 100644 --- a/ioxd_ingester/Cargo.toml +++ b/ioxd_ingester/Cargo.toml @@ -12,7 +12,7 @@ iox_catalog = { path = "../iox_catalog" } ioxd_common = { path = "../ioxd_common" } metric = { path = "../metric" } object_store = "0.0.1" -query = { path = "../query" } +iox_query = { path = "../iox_query" } trace = { path = "../trace" } write_buffer = { path = "../write_buffer" } diff --git a/ioxd_ingester/src/lib.rs b/ioxd_ingester/src/lib.rs index 72894a60fe..d205dc4e1f 100644 --- a/ioxd_ingester/src/lib.rs +++ b/ioxd_ingester/src/lib.rs @@ -8,6 +8,7 @@ use ingester::{ server::{grpc::GrpcDelegate, http::HttpDelegate, IngesterServer}, }; use iox_catalog::interface::Catalog; +use iox_query::exec::Executor; use ioxd_common::{ add_service, http::error::{HttpApiError, HttpApiErrorCode, HttpApiErrorSource}, @@ -18,7 +19,6 @@ use ioxd_common::{ }; use metric::Registry; use object_store::DynObjectStore; -use query::exec::Executor; use std::{ collections::BTreeMap, fmt::{Debug, Display}, diff --git a/ioxd_querier/Cargo.toml b/ioxd_querier/Cargo.toml index 3adb1cf91f..48f0858582 100644 --- a/ioxd_querier/Cargo.toml +++ b/ioxd_querier/Cargo.toml @@ -14,7 +14,7 @@ ioxd_common = { path = "../ioxd_common" } metric = { path = "../metric" } object_store = "0.0.1" querier = { path = "../querier" } -query = { path = "../query" } +iox_query = { path = "../iox_query" } service_grpc_flight = { path = "../service_grpc_flight" } service_grpc_influxrpc = { path = "../service_grpc_influxrpc" } iox_time = { path = "../iox_time" } diff --git a/ioxd_querier/src/lib.rs b/ioxd_querier/src/lib.rs index 6de51a65ed..8247c1defa 100644 --- a/ioxd_querier/src/lib.rs +++ b/ioxd_querier/src/lib.rs @@ -6,6 +6,7 @@ use std::{ use async_trait::async_trait; use hyper::{Body, Request, Response}; use iox_catalog::interface::Catalog; +use iox_query::exec::Executor; use iox_time::TimeProvider; use metric::Registry; use object_store::DynObjectStore; @@ -13,7 +14,6 @@ use querier::{ create_ingester_connection, QuerierCatalogCache, QuerierDatabase, QuerierHandler, QuerierHandlerImpl, QuerierServer, }; -use query::exec::Executor; use trace::TraceCollector; use ioxd_common::{ diff --git a/querier/Cargo.toml b/querier/Cargo.toml index 019bcd6d69..ddbb340774 100644 --- a/querier/Cargo.toml +++ b/querier/Cargo.toml @@ -23,7 +23,7 @@ parking_lot = "0.12" parquet_file = { path = "../parquet_file" } pin-project = "1.0" predicate = { path = "../predicate" } -query = { path = "../query" } +iox_query = { path = "../iox_query" } rand = "0.8.3" service_common = { path = "../service_common" } service_grpc_schema = { path = "../service_grpc_schema" } diff --git a/querier/src/chunk/mod.rs b/querier/src/chunk/mod.rs index e99ae81493..3009a4563b 100644 --- a/querier/src/chunk/mod.rs +++ b/querier/src/chunk/mod.rs @@ -8,12 +8,12 @@ use data_types::{ }; use futures::StreamExt; use iox_catalog::interface::Catalog; +use iox_query::{exec::IOxSessionContext, QueryChunk}; use iox_time::TimeProvider; use object_store::DynObjectStore; use parquet_file::chunk::{ new_parquet_chunk, ChunkMetrics as ParquetChunkMetrics, DecodedParquetFile, ParquetChunk, }; -use query::{exec::IOxSessionContext, QueryChunk}; use schema::{selection::Selection, sort::SortKey}; use std::sync::Arc; use uuid::Uuid; @@ -292,8 +292,8 @@ pub mod tests { use super::*; use arrow::datatypes::DataType; use arrow_util::assert_batches_eq; + use iox_query::QueryChunkMeta; use iox_tests::util::TestCatalog; - use query::QueryChunkMeta; use schema::{builder::SchemaBuilder, sort::SortKeyBuilder}; #[tokio::test] diff --git a/querier/src/chunk/query_access.rs b/querier/src/chunk/query_access.rs index 4296c5dc34..568e1c1610 100644 --- a/querier/src/chunk/query_access.rs +++ b/querier/src/chunk/query_access.rs @@ -2,9 +2,9 @@ use crate::chunk::{ChunkStorage, QuerierChunk}; use data_types::{ ChunkId, ChunkOrder, DeletePredicate, PartitionId, TableSummary, TimestampMinMax, }; +use iox_query::{QueryChunk, QueryChunkError, QueryChunkMeta}; use observability_deps::tracing::debug; use predicate::PredicateMatch; -use query::{QueryChunk, QueryChunkError, QueryChunkMeta}; use schema::{sort::SortKey, Schema}; use snafu::{ResultExt, Snafu}; use std::sync::Arc; @@ -86,10 +86,10 @@ impl QueryChunk for QuerierChunk { fn column_names( &self, - _ctx: query::exec::IOxSessionContext, + _ctx: iox_query::exec::IOxSessionContext, predicate: &predicate::Predicate, columns: schema::selection::Selection<'_>, - ) -> Result, QueryChunkError> { + ) -> Result, QueryChunkError> { match &self.storage { ChunkStorage::Parquet { chunk, .. } => { if !predicate.is_empty() { @@ -103,10 +103,10 @@ impl QueryChunk for QuerierChunk { fn column_values( &self, - _ctx: query::exec::IOxSessionContext, + _ctx: iox_query::exec::IOxSessionContext, _column_name: &str, _predicate: &predicate::Predicate, - ) -> Result, QueryChunkError> { + ) -> Result, QueryChunkError> { match &self.storage { ChunkStorage::Parquet { .. } => { // Since DataFusion can read Parquet, there is no advantage to @@ -118,7 +118,7 @@ impl QueryChunk for QuerierChunk { fn read_filter( &self, - mut ctx: query::exec::IOxSessionContext, + mut ctx: iox_query::exec::IOxSessionContext, predicate: &predicate::Predicate, selection: schema::selection::Selection<'_>, ) -> Result { diff --git a/querier/src/database.rs b/querier/src/database.rs index 132fc6cf2d..4755852afb 100644 --- a/querier/src/database.rs +++ b/querier/src/database.rs @@ -7,9 +7,9 @@ use crate::{ use async_trait::async_trait; use backoff::{Backoff, BackoffConfig}; use data_types::Namespace; +use iox_query::exec::Executor; use object_store::DynObjectStore; use parking_lot::RwLock; -use query::exec::Executor; use service_common::QueryDatabaseProvider; use std::{collections::HashMap, sync::Arc}; diff --git a/querier/src/handler.rs b/querier/src/handler.rs index 0bbf31fc4b..5f8143fbab 100644 --- a/querier/src/handler.rs +++ b/querier/src/handler.rs @@ -131,9 +131,9 @@ mod tests { use std::time::Duration; use iox_catalog::mem::MemCatalog; + use iox_query::exec::Executor; use iox_time::{MockProvider, Time}; use object_store::memory::InMemory; - use query::exec::Executor; use crate::{cache::CatalogCache, create_ingester_connection_for_testing}; diff --git a/querier/src/ingester/mod.rs b/querier/src/ingester/mod.rs index 28c9af6881..c3bd2d1b16 100644 --- a/querier/src/ingester/mod.rs +++ b/querier/src/ingester/mod.rs @@ -16,13 +16,13 @@ use generated_types::{ influxdata::iox::ingester::v1::GetWriteInfoResponse, ingester::IngesterQueryRequest, write_info::merge_responses, }; -use observability_deps::tracing::{debug, trace}; -use predicate::{Predicate, PredicateMatch}; -use query::{ +use iox_query::{ exec::{stringset::StringSet, IOxSessionContext}, util::compute_timenanosecond_min_max, QueryChunk, QueryChunkError, QueryChunkMeta, }; +use observability_deps::tracing::{debug, trace}; +use predicate::{Predicate, PredicateMatch}; use schema::{selection::Selection, sort::SortKey, InfluxColumnType, InfluxFieldType, Schema}; use snafu::{ensure, OptionExt, ResultExt, Snafu}; use std::{any::Any, collections::HashMap, sync::Arc}; diff --git a/querier/src/namespace/mod.rs b/querier/src/namespace/mod.rs index 6a86e80695..3fc50d43c2 100644 --- a/querier/src/namespace/mod.rs +++ b/querier/src/namespace/mod.rs @@ -6,8 +6,8 @@ use crate::{ }; use backoff::BackoffConfig; use data_types::{NamespaceId, NamespaceSchema}; +use iox_query::exec::Executor; use object_store::DynObjectStore; -use query::exec::Executor; use schema::Schema; use std::{collections::HashMap, sync::Arc}; diff --git a/querier/src/namespace/query_access.rs b/querier/src/namespace/query_access.rs index acb7f9b2a6..3524f63374 100644 --- a/querier/src/namespace/query_access.rs +++ b/querier/src/namespace/query_access.rs @@ -1,4 +1,4 @@ -//! This module contains implementations of [query] interfaces for [QuerierNamespace]. +//! This module contains implementations of [`iox_query`] interfaces for [QuerierNamespace]. use crate::{ namespace::QuerierNamespace, @@ -12,12 +12,12 @@ use datafusion::{ catalog::{catalog::CatalogProvider, schema::SchemaProvider}, datasource::TableProvider, }; -use observability_deps::tracing::{debug, trace}; -use predicate::{rpc_predicate::QueryDatabaseMeta, Predicate}; -use query::{ +use iox_query::{ exec::{ExecutionContextProvider, ExecutorType, IOxSessionContext}, QueryChunk, QueryCompletedToken, QueryDatabase, QueryDatabaseError, QueryText, DEFAULT_SCHEMA, }; +use observability_deps::tracing::{debug, trace}; +use predicate::{rpc_predicate::QueryDatabaseMeta, Predicate}; use schema::Schema; use std::{any::Any, collections::HashMap, sync::Arc}; use trace::ctx::SpanContext; @@ -192,8 +192,8 @@ mod tests { use arrow::record_batch::RecordBatch; use arrow_util::{assert_batches_eq, assert_batches_sorted_eq}; use data_types::ColumnType; + use iox_query::frontend::sql::SqlQueryPlanner; use iox_tests::util::TestCatalog; - use query::frontend::sql::SqlQueryPlanner; #[tokio::test] async fn test_query() { diff --git a/querier/src/query_log.rs b/querier/src/query_log.rs index e46954aa9b..03f67bc049 100644 --- a/querier/src/query_log.rs +++ b/querier/src/query_log.rs @@ -1,9 +1,9 @@ //! Ring buffer of queries that have been run with some brief information use data_types::NamespaceId; +use iox_query::QueryText; use iox_time::{Time, TimeProvider}; use parking_lot::Mutex; -use query::QueryText; use std::{ collections::VecDeque, sync::{atomic, Arc}, diff --git a/querier/src/table/mod.rs b/querier/src/table/mod.rs index 8ec93b3d84..d099bcf6f7 100644 --- a/querier/src/table/mod.rs +++ b/querier/src/table/mod.rs @@ -8,9 +8,9 @@ use crate::{ }; use backoff::{Backoff, BackoffConfig}; use data_types::TableId; +use iox_query::{provider::ChunkPruner, QueryChunk}; use observability_deps::tracing::debug; use predicate::Predicate; -use query::{provider::ChunkPruner, QueryChunk}; use schema::Schema; use snafu::{ResultExt, Snafu}; use std::{collections::HashMap, sync::Arc}; diff --git a/querier/src/table/query_access.rs b/querier/src/table/query_access.rs index 9194a96896..ed68fa8e52 100644 --- a/querier/src/table/query_access.rs +++ b/querier/src/table/query_access.rs @@ -9,12 +9,12 @@ use datafusion::{ logical_plan::Expr, physical_plan::ExecutionPlan, }; -use predicate::{Predicate, PredicateBuilder}; -use query::{ +use iox_query::{ provider::{ChunkPruner, ProviderBuilder}, pruning::{prune_chunks, PruningObserver}, QueryChunk, }; +use predicate::{Predicate, PredicateBuilder}; use schema::Schema; use super::QuerierTable; diff --git a/query_tests/Cargo.toml b/query_tests/Cargo.toml index 28ac182c81..7dfc24478a 100644 --- a/query_tests/Cargo.toml +++ b/query_tests/Cargo.toml @@ -25,7 +25,7 @@ once_cell = { version = "1.10.0", features = ["parking_lot"] } predicate = { path = "../predicate" } schema = { path = "../schema" } querier = { path = "../querier" } -query = { path = "../query" } +iox_query = { path = "../iox_query" } pretty_assertions = "1.2.1" workspace-hack = { path = "../workspace-hack"} diff --git a/query_tests/src/db.rs b/query_tests/src/db.rs index bbc379c480..6c34a0130d 100644 --- a/query_tests/src/db.rs +++ b/query_tests/src/db.rs @@ -1,8 +1,8 @@ use std::{any::Any, sync::Arc}; use datafusion::catalog::catalog::CatalogProvider; +use iox_query::{exec::ExecutionContextProvider, QueryDatabase}; use querier::QuerierNamespace; -use query::{exec::ExecutionContextProvider, QueryDatabase}; /// Abstract database used during testing. pub trait AbstractDb: CatalogProvider + ExecutionContextProvider + QueryDatabase { diff --git a/query_tests/src/influxrpc/field_columns.rs b/query_tests/src/influxrpc/field_columns.rs index d4542a2d33..21c94b69e8 100644 --- a/query_tests/src/influxrpc/field_columns.rs +++ b/query_tests/src/influxrpc/field_columns.rs @@ -2,11 +2,11 @@ use crate::scenarios::*; use arrow::datatypes::DataType; use data_types::{MAX_NANO_TIME, MIN_NANO_TIME}; use datafusion::logical_plan::{col, lit}; -use predicate::{rpc_predicate::InfluxRpcPredicate, PredicateBuilder}; -use query::{ +use iox_query::{ exec::fieldlist::{Field, FieldList}, frontend::influxrpc::InfluxRpcPlanner, }; +use predicate::{rpc_predicate::InfluxRpcPredicate, PredicateBuilder}; /// Creates and loads several database scenarios using the db_setup /// function. diff --git a/query_tests/src/influxrpc/read_filter.rs b/query_tests/src/influxrpc/read_filter.rs index 1fc8f4f91c..6235d821cc 100644 --- a/query_tests/src/influxrpc/read_filter.rs +++ b/query_tests/src/influxrpc/read_filter.rs @@ -16,9 +16,9 @@ use crate::{ }, }; use datafusion::logical_plan::{col, lit, when}; +use iox_query::frontend::influxrpc::InfluxRpcPlanner; use predicate::rpc_predicate::InfluxRpcPredicate; use predicate::PredicateBuilder; -use query::frontend::influxrpc::InfluxRpcPlanner; use test_helpers::assert_contains; /// runs read_filter(predicate) and compares it to the expected diff --git a/query_tests/src/influxrpc/read_group.rs b/query_tests/src/influxrpc/read_group.rs index 036829eeb6..5952766031 100644 --- a/query_tests/src/influxrpc/read_group.rs +++ b/query_tests/src/influxrpc/read_group.rs @@ -14,9 +14,9 @@ use datafusion::{ logical_plan::{binary_expr, Operator}, prelude::*, }; +use iox_query::{frontend::influxrpc::InfluxRpcPlanner, Aggregate}; use predicate::rpc_predicate::InfluxRpcPredicate; use predicate::PredicateBuilder; -use query::{frontend::influxrpc::InfluxRpcPlanner, Aggregate}; /// runs read_group(predicate) and compares it to the expected /// output diff --git a/query_tests/src/influxrpc/read_window_aggregate.rs b/query_tests/src/influxrpc/read_window_aggregate.rs index f61b15a44e..499b9245d2 100644 --- a/query_tests/src/influxrpc/read_window_aggregate.rs +++ b/query_tests/src/influxrpc/read_window_aggregate.rs @@ -1,9 +1,9 @@ //! Tests for the Influx gRPC queries use crate::{influxrpc::util::run_series_set_plan, scenarios::*}; use datafusion::prelude::*; +use iox_query::{frontend::influxrpc::InfluxRpcPlanner, Aggregate, WindowDuration}; use predicate::rpc_predicate::InfluxRpcPredicate; use predicate::PredicateBuilder; -use query::{frontend::influxrpc::InfluxRpcPlanner, Aggregate, WindowDuration}; /// runs read_window_aggregate(predicate) and compares it to the expected /// output diff --git a/query_tests/src/influxrpc/table_names.rs b/query_tests/src/influxrpc/table_names.rs index c904d6e522..e41cd1fac6 100644 --- a/query_tests/src/influxrpc/table_names.rs +++ b/query_tests/src/influxrpc/table_names.rs @@ -2,11 +2,11 @@ use crate::scenarios::*; use data_types::{MAX_NANO_TIME, MIN_NANO_TIME}; use datafusion::logical_plan::{col, lit}; -use predicate::{rpc_predicate::InfluxRpcPredicate, PredicateBuilder}; -use query::{ +use iox_query::{ exec::stringset::{IntoStringSet, StringSetRef}, frontend::influxrpc::InfluxRpcPlanner, }; +use predicate::{rpc_predicate::InfluxRpcPredicate, PredicateBuilder}; /// runs table_names(predicate) and compares it to the expected /// output diff --git a/query_tests/src/influxrpc/tag_keys.rs b/query_tests/src/influxrpc/tag_keys.rs index 584d35c942..a8563dc671 100644 --- a/query_tests/src/influxrpc/tag_keys.rs +++ b/query_tests/src/influxrpc/tag_keys.rs @@ -1,11 +1,11 @@ use crate::scenarios::*; use data_types::{MAX_NANO_TIME, MIN_NANO_TIME}; use datafusion::logical_plan::{col, lit}; -use predicate::{rpc_predicate::InfluxRpcPredicate, PredicateBuilder}; -use query::{ +use iox_query::{ exec::stringset::{IntoStringSet, StringSetRef}, frontend::influxrpc::InfluxRpcPlanner, }; +use predicate::{rpc_predicate::InfluxRpcPredicate, PredicateBuilder}; /// Creates and loads several database scenarios using the db_setup function. /// diff --git a/query_tests/src/influxrpc/tag_values.rs b/query_tests/src/influxrpc/tag_values.rs index 0f91002130..d9f0b36255 100644 --- a/query_tests/src/influxrpc/tag_values.rs +++ b/query_tests/src/influxrpc/tag_values.rs @@ -1,10 +1,10 @@ use datafusion::logical_plan::{col, lit}; -use predicate::rpc_predicate::InfluxRpcPredicate; -use predicate::PredicateBuilder; -use query::{ +use iox_query::{ exec::stringset::{IntoStringSet, StringSetRef}, frontend::influxrpc::InfluxRpcPlanner, }; +use predicate::rpc_predicate::InfluxRpcPredicate; +use predicate::PredicateBuilder; use crate::scenarios::*; diff --git a/query_tests/src/influxrpc/util.rs b/query_tests/src/influxrpc/util.rs index 318d0fe1d9..ce4b77ea9a 100644 --- a/query_tests/src/influxrpc/util.rs +++ b/query_tests/src/influxrpc/util.rs @@ -1,6 +1,6 @@ use datafusion::error::DataFusionError; -use query::exec::IOxSessionContext; -use query::plan::seriesset::SeriesSetPlans; +use iox_query::exec::IOxSessionContext; +use iox_query::plan::seriesset::SeriesSetPlans; /// Run a series set plan to completion and produce a Vec representation /// diff --git a/query_tests/src/runner.rs b/query_tests/src/runner.rs index 0fe1ff6413..3195a23ac1 100644 --- a/query_tests/src/runner.rs +++ b/query_tests/src/runner.rs @@ -5,7 +5,7 @@ mod setup; use arrow::record_batch::RecordBatch; use arrow_util::{display::pretty_format_batches, test_util::sort_record_batch}; -use query::{ +use iox_query::{ exec::{Executor, ExecutorType}, frontend::sql::SqlQueryPlanner, }; @@ -22,7 +22,7 @@ use self::{ setup::TestSetup, }; use crate::scenarios::{DbScenario, DbSetup}; -use query::exec::ExecutorConfig; +use iox_query::exec::ExecutorConfig; #[allow(clippy::enum_variant_names)] #[derive(Debug, Snafu)] diff --git a/query_tests/src/scenarios/library.rs b/query_tests/src/scenarios/library.rs index 2354453a5c..0c5dfd59ac 100644 --- a/query_tests/src/scenarios/library.rs +++ b/query_tests/src/scenarios/library.rs @@ -7,7 +7,7 @@ use super::{ use crate::scenarios::util::{make_n_chunks_scenario, ChunkData}; use async_trait::async_trait; use data_types::{DeleteExpr, DeletePredicate, Op, Scalar, TimestampRange}; -use query::frontend::sql::SqlQueryPlanner; +use iox_query::frontend::sql::SqlQueryPlanner; #[derive(Debug)] pub struct MeasurementWithMaxTime {} diff --git a/query_tests/src/sql.rs b/query_tests/src/sql.rs index 148f511bbc..8389649ece 100644 --- a/query_tests/src/sql.rs +++ b/query_tests/src/sql.rs @@ -9,7 +9,7 @@ use super::scenarios::*; use arrow::record_batch::RecordBatch; use arrow_util::assert_batches_sorted_eq; use datafusion::error::DataFusionError; -use query::frontend::sql::SqlQueryPlanner; +use iox_query::frontend::sql::SqlQueryPlanner; use test_helpers::assert_contains; /// Runs the query in `sql` and compares it to the expected output. diff --git a/query_tests/src/table_schema.rs b/query_tests/src/table_schema.rs index 01f576e316..231c8f136a 100644 --- a/query_tests/src/table_schema.rs +++ b/query_tests/src/table_schema.rs @@ -1,7 +1,7 @@ //! Tests for the table_names implementation use arrow::datatypes::DataType; -use query::QueryChunk; +use iox_query::QueryChunk; use schema::selection::Selection; use schema::{builder::SchemaBuilder, sort::SortKey, Schema, TIME_COLUMN_NAME}; diff --git a/service_common/Cargo.toml b/service_common/Cargo.toml index 8881179b87..837f5ef09c 100644 --- a/service_common/Cargo.toml +++ b/service_common/Cargo.toml @@ -9,7 +9,7 @@ edition = "2021" # Workspace dependencies, in alphabetical order datafusion = { path = "../datafusion" } predicate = { path = "../predicate" } -query = { path = "../query" } +iox_query = { path = "../iox_query" } workspace-hack = { path = "../workspace-hack"} # Crates.io dependencies, in alphabetical order diff --git a/service_common/src/lib.rs b/service_common/src/lib.rs index 9b4851b59c..0d417a4e92 100644 --- a/service_common/src/lib.rs +++ b/service_common/src/lib.rs @@ -5,7 +5,7 @@ pub mod planner; use std::sync::Arc; use async_trait::async_trait; -use query::{exec::ExecutionContextProvider, QueryDatabase}; +use iox_query::{exec::ExecutionContextProvider, QueryDatabase}; /// Trait that allows the query engine (which includes flight and storage/InfluxRPC) to access a virtual set of /// databases. diff --git a/service_common/src/planner.rs b/service_common/src/planner.rs index fd380a322b..97ccb28cb9 100644 --- a/service_common/src/planner.rs +++ b/service_common/src/planner.rs @@ -2,7 +2,7 @@ use std::sync::Arc; use datafusion::physical_plan::ExecutionPlan; -use query::{ +use iox_query::{ exec::IOxSessionContext, frontend::{influxrpc::InfluxRpcPlanner, sql::SqlQueryPlanner}, plan::{fieldlist::FieldListPlan, seriesset::SeriesSetPlans, stringset::StringSetPlan}, diff --git a/service_grpc_flight/Cargo.toml b/service_grpc_flight/Cargo.toml index b8c0a68de4..9d6bccadab 100644 --- a/service_grpc_flight/Cargo.toml +++ b/service_grpc_flight/Cargo.toml @@ -11,7 +11,7 @@ data_types = { path = "../data_types" } datafusion = { path = "../datafusion" } generated_types = { path = "../generated_types" } observability_deps = { path = "../observability_deps" } -query = { path = "../query" } +iox_query = { path = "../iox_query" } service_common = { path = "../service_common" } # Crates.io dependencies, in alphabetical order diff --git a/service_grpc_flight/src/lib.rs b/service_grpc_flight/src/lib.rs index 59c43cea3c..d8831f385e 100644 --- a/service_grpc_flight/src/lib.rs +++ b/service_grpc_flight/src/lib.rs @@ -16,13 +16,13 @@ use data_types::{DatabaseName, DatabaseNameError}; use datafusion::physical_plan::ExecutionPlan; use futures::{SinkExt, Stream, StreamExt}; use generated_types::influxdata::iox::querier::v1 as proto; -use observability_deps::tracing::{info, warn}; -use pin_project::{pin_project, pinned_drop}; -use prost::Message; -use query::{ +use iox_query::{ exec::{ExecutionContextProvider, IOxSessionContext}, QueryCompletedToken, QueryDatabase, }; +use observability_deps::tracing::{info, warn}; +use pin_project::{pin_project, pinned_drop}; +use prost::Message; use serde::Deserialize; use service_common::{planner::Planner, QueryDatabaseProvider}; use snafu::{ResultExt, Snafu}; diff --git a/service_grpc_influxrpc/Cargo.toml b/service_grpc_influxrpc/Cargo.toml index ae4bc686f4..3b9347a6ab 100644 --- a/service_grpc_influxrpc/Cargo.toml +++ b/service_grpc_influxrpc/Cargo.toml @@ -10,7 +10,7 @@ datafusion = { path = "../datafusion" } generated_types = { path = "../generated_types" } observability_deps = { path = "../observability_deps" } predicate = { path = "../predicate" } -query = { path = "../query" } +iox_query = { path = "../iox_query" } query_functions = { path = "../query_functions"} schema = { path = "../schema" } service_common = { path = "../service_common" } diff --git a/service_grpc_influxrpc/src/data.rs b/service_grpc_influxrpc/src/data.rs index 592a0aaa75..99856919fc 100644 --- a/service_grpc_influxrpc/src/data.rs +++ b/service_grpc_influxrpc/src/data.rs @@ -5,12 +5,12 @@ use std::{collections::BTreeSet, fmt, sync::Arc}; use arrow::datatypes::DataType as ArrowDataType; -use observability_deps::tracing::trace; -use predicate::rpc_predicate::{FIELD_COLUMN_NAME, MEASUREMENT_COLUMN_NAME}; -use query::exec::{ +use iox_query::exec::{ fieldlist::FieldList, seriesset::series::{self, Either}, }; +use observability_deps::tracing::trace; +use predicate::rpc_predicate::{FIELD_COLUMN_NAME, MEASUREMENT_COLUMN_NAME}; use generated_types::{ measurement_fields_response::{FieldType, MessageField}, @@ -28,7 +28,7 @@ use snafu::Snafu; pub enum Error { #[snafu(display("Error converting series set to gRPC: {}", source))] ConvertingSeries { - source: query::exec::seriesset::series::Error, + source: iox_query::exec::seriesset::series::Error, }, #[snafu(display("Unsupported field data type in gRPC data translation: {}", data_type))] @@ -324,7 +324,7 @@ mod tests { datatypes::DataType as ArrowDataType, record_batch::RecordBatch, }; - use query::exec::{ + use iox_query::exec::{ field::FieldIndexes, fieldlist::Field, seriesset::{ diff --git a/service_grpc_influxrpc/src/expr.rs b/service_grpc_influxrpc/src/expr.rs index 18767b9a60..a499211a11 100644 --- a/service_grpc_influxrpc/src/expr.rs +++ b/service_grpc_influxrpc/src/expr.rs @@ -23,12 +23,12 @@ use generated_types::{ }; use super::{TAG_KEY_FIELD, TAG_KEY_MEASUREMENT}; +use iox_query::{Aggregate as QueryAggregate, WindowDuration}; use observability_deps::tracing::warn; use predicate::{ rpc_predicate::{InfluxRpcPredicate, FIELD_COLUMN_NAME, MEASUREMENT_COLUMN_NAME}, PredicateBuilder, }; -use query::{Aggregate as QueryAggregate, WindowDuration}; use snafu::{OptionExt, ResultExt, Snafu}; #[derive(Debug, Snafu)] diff --git a/service_grpc_influxrpc/src/service.rs b/service_grpc_influxrpc/src/service.rs index 2f1026c5cd..edc87a94b8 100644 --- a/service_grpc_influxrpc/src/service.rs +++ b/service_grpc_influxrpc/src/service.rs @@ -23,14 +23,14 @@ use generated_types::{ TagValuesGroupedByMeasurementAndTagKeyRequest, TagValuesRequest, TagValuesResponse, TimestampRange, }; -use observability_deps::tracing::{error, info, trace}; -use query::{ +use iox_query::{ exec::{ fieldlist::FieldList, seriesset::converter::Error as SeriesSetError, ExecutionContextProvider, IOxSessionContext, }, QueryDatabase, QueryText, }; +use observability_deps::tracing::{error, info, trace}; use service_common::{planner::Planner, QueryDatabaseProvider}; use snafu::{OptionExt, ResultExt, Snafu}; use std::{ @@ -1398,14 +1398,14 @@ mod tests { generated_types::*, Client as StorageClient, OrgAndBucket, }; + use iox_query::{ + exec::Executor, + test::{TestChunk, TestDatabase}, + }; use metric::{Attributes, Metric, U64Counter}; use panic_logging::SendPanicsToTracing; use parking_lot::Mutex; use predicate::{PredicateBuilder, PredicateMatch}; - use query::{ - exec::Executor, - test::{TestChunk, TestDatabase}, - }; use service_common::QueryDatabaseProvider; use std::{ collections::BTreeMap,