Skip to content

Commit 3be8830

Browse files
committed
Move information_schema.rs to expr
1 parent e8e8986 commit 3be8830

10 files changed

Lines changed: 43 additions & 68 deletions

File tree

‎datafusion/catalog/src/information_schema.rs‎

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -31,27 +31,27 @@ use arrow::record_batch::RecordBatch;
3131
use async_trait::async_trait;
3232
use datafusion_common::config::ConfigOptions;
3333
use datafusion_common::error::Result;
34-
use datafusion_common::information_schema::{
34+
use datafusion_common::{
35+
DataFusionError, ResolvedTableReference, plan_datafusion_err, plan_err,
36+
};
37+
use datafusion_expr::information_schema::{
3538
ColumnsDetail, InformationSchemaColumnsBuilder, InformationSchemaDfSettingsBuilder,
3639
InformationSchemaParametersBuilder, InformationSchemaRoutinesBuilder,
3740
InformationSchemaTablesBuilder, InformationSchemaViewBuilder, columns_schema,
3841
df_settings_schema, parameters_schema, routines_schema, show_functions_schema,
3942
tables_schema, views_schema,
4043
};
41-
use datafusion_common::{
42-
DataFusionError, ResolvedTableReference, plan_datafusion_err, plan_err,
43-
};
4444
// Re-exported (rather than just `use`d) because these were already part of
4545
// this module's public API before it started sharing its schema/builder
4646
// definitions with `datafusion_common::information_schema`.
47-
pub use datafusion_common::information_schema::{
48-
InformationSchemataBuilder, schemata_schema,
49-
};
5047
use datafusion_common::types::{LogicalType, NativeType};
5148
use datafusion_datasource::memory::MemorySourceConfig;
5249
use datafusion_execution::TaskContext;
5350
use datafusion_execution::runtime_env::RuntimeEnv;
5451
use datafusion_expr::function::WindowUDFFieldArgs;
52+
pub use datafusion_expr::information_schema::{
53+
InformationSchemataBuilder, schemata_schema,
54+
};
5555
use datafusion_expr::type_coercion::functions::fields_with_udf;
5656
use datafusion_expr::{
5757
AggregateUDF, Documentation, ReturnFieldArgs, ScalarUDF, Signature, TypeSignature,

‎datafusion/common/src/lib.rs‎

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@ mod param_value;
3333
mod partitioning;
3434
mod schema_reference;
3535
mod table_reference;
36-
mod table_type;
3736
mod unnest;
3837

3938
pub mod alias;
@@ -51,7 +50,6 @@ pub mod float_semantics;
5150
pub mod format;
5251
pub mod hash_utils;
5352
pub mod heap_size;
54-
pub mod information_schema;
5553
pub mod instant;
5654
pub mod metadata;
5755
pub mod nested_struct;
@@ -102,7 +100,6 @@ pub use schema_reference::SchemaReference;
102100
pub use spans::{Location, Span, Spans};
103101
pub use stats::{ColumnStatistics, Statistics};
104102
pub use table_reference::{ResolvedTableReference, TableReference};
105-
pub use table_type::TableType;
106103
pub use unnest::{NullHandling, RecursionUnnestOption, UnnestOptions};
107104
pub use utils::project_schema;
108105

‎datafusion/common/src/table_type.rs‎

Lines changed: 0 additions & 37 deletions
This file was deleted.

datafusion/common/src/information_schema.rs renamed to datafusion/expr/src/information_schema.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,13 @@
1818
//! Schema and [`RecordBatch`] builders for the `information_schema` virtual
1919
//! tables and `SHOW` statements.
2020
21-
use crate::Result;
2221
use crate::TableType;
23-
use crate::config::ConfigEntry;
2422
use arrow::array::ArrayRef;
2523
use arrow::array::builder::{BooleanBuilder, StringBuilder, UInt8Builder, UInt64Builder};
2624
use arrow::datatypes::{DataType, Field, Schema, SchemaRef};
2725
use arrow::record_batch::RecordBatch;
26+
use datafusion_common::Result;
27+
use datafusion_common::config::ConfigEntry;
2828
use std::sync::Arc;
2929

3030
/// Returns the Arrow schema of `information_schema.tables` rows.

‎datafusion/expr/src/lib.rs‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ pub mod select_expr;
6060
pub mod groups_accumulator {
6161
pub use datafusion_expr_common::groups_accumulator::*;
6262
}
63+
pub mod information_schema;
6364
pub mod interval_arithmetic {
6465
pub use datafusion_expr_common::interval_arithmetic::*;
6566
}

‎datafusion/expr/src/logical_plan/builder.rs‎

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -50,11 +50,11 @@ use crate::{
5050
};
5151

5252
use super::dml::InsertOp;
53+
use crate::information_schema::ColumnsDetail;
5354
use arrow::compute::can_cast_types;
5455
use arrow::datatypes::{DataType, Field, FieldRef, Fields, Schema, SchemaRef};
5556
use datafusion_common::display::ToStringifiedPlan;
5657
use datafusion_common::file_options::file_type::FileType;
57-
use datafusion_common::information_schema::ColumnsDetail;
5858
use datafusion_common::metadata::FieldMetadata;
5959
use datafusion_common::{
6060
Column, Constraints, DFSchema, DFSchemaRef, FunctionalDependencies, NullEquality,
@@ -269,18 +269,13 @@ impl LogicalPlanBuilder {
269269
pub fn describe(schema: Arc<Schema>) -> Result<Self> {
270270
Self::show(
271271
ShowKind::Describe { schema },
272-
datafusion_common::information_schema::columns_schema(
273-
ColumnsDetail::Describe,
274-
),
272+
crate::information_schema::columns_schema(ColumnsDetail::Describe),
275273
)
276274
}
277275

278276
/// Create a `SHOW TABLES` plan.
279277
pub fn show_tables() -> Result<Self> {
280-
Self::show(
281-
ShowKind::Tables,
282-
datafusion_common::information_schema::tables_schema(),
283-
)
278+
Self::show(ShowKind::Tables, crate::information_schema::tables_schema())
284279
}
285280

286281
/// Create a `DESCRIBE <table>` or `SHOW [FULL|EXTENDED] COLUMNS FROM <table>` plan.
@@ -290,15 +285,15 @@ impl LogicalPlanBuilder {
290285
) -> Result<Self> {
291286
Self::show(
292287
ShowKind::Columns { table_ref, detail },
293-
datafusion_common::information_schema::columns_schema(detail),
288+
crate::information_schema::columns_schema(detail),
294289
)
295290
}
296291

297292
/// Create a `SHOW CREATE TABLE <table>` plan.
298293
pub fn show_create_table(table_ref: TableReference) -> Result<Self> {
299294
Self::show(
300295
ShowKind::CreateTable { table_ref },
301-
datafusion_common::information_schema::views_schema(),
296+
crate::information_schema::views_schema(),
302297
)
303298
}
304299

@@ -307,15 +302,15 @@ impl LogicalPlanBuilder {
307302
pub fn show_variables(name: Option<String>, verbose: bool) -> Result<Self> {
308303
Self::show(
309304
ShowKind::Variables { name, verbose },
310-
datafusion_common::information_schema::df_settings_schema(verbose),
305+
crate::information_schema::df_settings_schema(verbose),
311306
)
312307
}
313308

314309
/// Create a `SHOW FUNCTIONS [LIKE <pattern>]` plan.
315310
pub fn show_functions(filter: Option<String>) -> Result<Self> {
316311
Self::show(
317312
ShowKind::Functions { filter },
318-
datafusion_common::information_schema::show_functions_schema(),
313+
crate::information_schema::show_functions_schema(),
319314
)
320315
}
321316

‎datafusion/expr/src/logical_plan/display.rs‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,9 @@ use crate::{
2929
};
3030

3131
use crate::dml::CopyTo;
32+
use crate::information_schema::ColumnsDetail;
3233
use arrow::datatypes::Schema;
3334
use datafusion_common::display::GraphvizBuilder;
34-
use datafusion_common::information_schema::ColumnsDetail;
3535
use datafusion_common::tree_node::{TreeNodeRecursion, TreeNodeVisitor};
3636
use datafusion_common::{Column, DataFusionError, internal_datafusion_err};
3737
use serde::Serialize;

‎datafusion/expr/src/logical_plan/plan.rs‎

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -53,15 +53,15 @@ use crate::{
5353
BinaryExpr, CreateMemoryTable, CreateView, Execute, Expr, ExprSchemable, GroupingSet,
5454
LogicalPlanBuilder, Operator, Prepare, TableProviderFilterPushDown, TableSource,
5555
WindowFunctionDefinition, build_asof_join_schema, build_join_schema, expr_vec_fmt,
56-
requalify_sides_if_needed,
56+
information_schema, requalify_sides_if_needed,
5757
};
5858

59+
use crate::information_schema::ColumnsDetail;
5960
use crate::statistics::StatisticsRequest;
6061
use arrow::compute::SortOptions;
6162
use arrow::datatypes::{DataType, Field, FieldRef, Metadata, Schema, SchemaRef};
6263
use datafusion_common::cse::{NormalizeEq, Normalizeable};
6364
use datafusion_common::format::{ExplainAnalyzeCategories, ExplainFormat, MetricType};
64-
use datafusion_common::information_schema::ColumnsDetail;
6565
use datafusion_common::metadata::check_metadata_with_storage_equal;
6666
use datafusion_common::tree_node::{
6767
Transformed, TreeNode, TreeNodeContainer, TreeNodeRecursion,
@@ -71,8 +71,7 @@ use datafusion_common::{
7171
FunctionalDependence, FunctionalDependencies, NullEquality, ParamValues, Result,
7272
ScalarValue, Spans, SplitPoint, TableReference, UnnestOptions,
7373
aggregate_functional_dependencies, assert_eq_or_internal_err, assert_or_internal_err,
74-
information_schema, internal_err, plan_datafusion_err, plan_err,
75-
validate_range_split_points,
74+
internal_err, plan_datafusion_err, plan_err, validate_range_split_points,
7675
};
7776
use itertools::Itertools as _;
7877

‎datafusion/expr/src/table_source.rs‎

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
use crate::{Expr, LogicalPlan};
2121

2222
use arrow::datatypes::SchemaRef;
23-
pub use datafusion_common::TableType;
2423
use datafusion_common::{Constraints, Result};
2524

2625
use std::{any::Any, borrow::Cow};
@@ -51,6 +50,27 @@ pub enum TableProviderFilterPushDown {
5150
Exact,
5251
}
5352

53+
/// Indicates the type of this table for metadata/catalog purposes.
54+
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
55+
pub enum TableType {
56+
/// An ordinary physical table.
57+
Base,
58+
/// A non-materialized table that itself uses a query internally to provide data.
59+
View,
60+
/// A transient table.
61+
Temporary,
62+
}
63+
64+
impl std::fmt::Display for TableType {
65+
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
66+
match self {
67+
TableType::Base => write!(f, "Base"),
68+
TableType::View => write!(f, "View"),
69+
TableType::Temporary => write!(f, "Temporary"),
70+
}
71+
}
72+
}
73+
5474
/// Planning time information about a table.
5575
///
5676
/// This trait is used during logical query planning and optimizations, and

‎datafusion/sql/src/statement.rs‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ use crate::utils::normalize_ident;
3030
use arrow::datatypes::{Field, FieldRef, Fields, Metadata};
3131
use datafusion_common::error::_plan_err;
3232
use datafusion_common::format::ExplainStatementOptions;
33-
use datafusion_common::information_schema::ColumnsDetail;
3433
use datafusion_common::parsers::CompressionTypeVariant;
3534
use datafusion_common::{
3635
Column, Constraint, Constraints, DFSchema, DFSchemaRef, DataFusionError, Result,
@@ -42,6 +41,7 @@ use datafusion_expr::dml::{
4241
CopyTo, InsertOp, MergeIntoAction, MergeIntoClause, MergeIntoClauseKind, MergeIntoOp,
4342
};
4443
use datafusion_expr::expr_rewriter::normalize_col_with_schemas_and_ambiguity_check;
44+
use datafusion_expr::information_schema::ColumnsDetail;
4545
use datafusion_expr::logical_plan::DdlStatement;
4646
use datafusion_expr::logical_plan::builder::project;
4747
use datafusion_expr::utils::expr_to_columns;

0 commit comments

Comments
 (0)