Skip to content

Rename LogicalPlan::DescribeTable to LogicalPlan::Show move statement implementations out of sql module - #26057

Open
pepijnve wants to merge 5 commits into
apache:mainfrom
pepijnve:information-schema-refactoring
Open

pepijnve wants to merge 5 commits into
apache:mainfrom
pepijnve:information-schema-refactoring

Conversation

@pepijnve

@pepijnve pepijnve commented Oct 5, 2026 •

Copy link
Copy Markdown
Contributor

Which issue does this PR close?

  • None logged yet

This PR builds on #25887 so that should be merged first.

Rationale for this change

LogicalPlan has a representation for the DESCRIBE TABLE statement, but not for the various SHOW ... statements. This makes it necessary to lower SHOW statements to equivalent SELECT statements against the information_schema tables during SQL statement to logical plan conversion. The code in question is located in the sql module's SqlToRel::sql_statement_to_plan function.

As an example, show_tables_to_plan is implemented as

fn show_tables_to_plan(&self) -> Result<LogicalPlan> {
    if self.has_table("information_schema", "tables") {
        let query = "SELECT * FROM information_schema.tables;";
        let mut rewrite = DFParser::parse_sql(query)?;
        assert_eq!(rewrite.len(), 1);
        self.statement_to_plan(rewrite.pop_front().unwrap()) // length of rewrite is 1
    } else {
        plan_err!("SHOW TABLES is not supported unless information_schema is enabled")
    }
}

The implementation is simple enough, but has the downside that it hardcodes references to tables and their columns using magic strings in a module that should be independent of specific schemas, tables, and views. The exact set of columns (and hence the output format) of the show statements is being determined in the sql module which doesn't seem to be where it belongs. This is a logical-to-physical translation aspect, not a sql-to-logical one.

To move the translation to a more appropriate location, this MR extends the logical plan data model to support show statements as well. Rather than introducing a new plan type, the existing describe table plan type is extended to support all statements belonging to the family of introspection statements.

The logical-to-physical translation of show statements is move over to the physical_planner module next to the existing implementation for describe table.

What changes are included in this PR?

LogicalPlan::DescribeTable has been made been renamed to LogicalPlan::Show and extended to support all show statements.

Handling of show statements has been moved from sql::statement to core::physical_planner.

The implementations themselves have been decoupled from the information_schema tables. This allows SHOW statements to work even if the information schema provider is not enabled.

A new common::information_schema module has been added to avoid string based duplication of the information_schema schema. In other words, duplicate magic strings have been removed.

Are these changes tested?

Covered by SLTs

Are there any user-facing changes?

Yes

  • LogicalPlan::DescribeTable has been replaced with LogicalPlan::Show
  • Availability of SHOW statements is no longer tied to the information_schema schema being accessible in the catalog
  • information_schema.views no longer contains base tables

@github-actions github-actions Bot added documentation Improvements or additions to documentation sql SQL Planner logical-expr Logical plan and expressions optimizer Optimizer rules core Core DataFusion crate sqllogictest SQL Logic Tests (.slt) substrait Changes to the substrait crate catalog Related to the catalog crate common Related to common crate execution Related to the execution crate proto Related to proto crate labels Oct 5, 2026
@pepijnve
pepijnve force-pushed the information-schema-refactoring branch from 3ec152b to 71f0578 Compare October 5, 2026 16:15
@pepijnve pepijnve changed the title Information schema refactoring Remove information schema references from SQL parser Oct 19, 2026
@pepijnve pepijnve changed the title Remove information schema references from SQL parser Remove information schema references from sql module Oct 19, 2026
@pepijnve pepijnve changed the title Remove information schema references from sql module Remove information schema references from sql module Oct 19, 2026
@pepijnve
pepijnve force-pushed the information-schema-refactoring branch from 71f0578 to 2449656 Compare October 23, 2026 11:01
@github-actions

github-actions Bot commented Oct 23, 2026 •

Copy link
Copy Markdown

Thank you for opening this pull request!

Reviewer note: cargo-semver-checks reported the current version number is not SemVer-compatible with the changes in this pull request (compared against the base branch).

Details
     Cloning 985bbbf60e14644d8945dce9342f6dd20a428f1a
    Building datafusion v55.1.0 (current)
       Built [  52.691s] (current)
     Parsing datafusion v55.1.0 (current)
      Parsed [   0.031s] (current)
    Building datafusion v55.1.0 (baseline)
       Built [  16.067s] (baseline)
     Parsing datafusion v55.1.0 (baseline)
      Parsed [   0.032s] (baseline)
    Checking datafusion v55.1.0 -> v55.1.0 (no change; assume patch)
     Checked [   0.710s] 229 checks: 229 pass, 31 skip
     Summary no semver update required
    Finished [  71.496s] datafusion
    Building datafusion-catalog v55.1.0 (current)
       Built [  16.940s] (current)
     Parsing datafusion-catalog v55.1.0 (current)
      Parsed [   0.018s] (current)
    Building datafusion-catalog v55.1.0 (baseline)
       Built [  13.347s] (baseline)
     Parsing datafusion-catalog v55.1.0 (baseline)
      Parsed [   0.021s] (baseline)
    Checking datafusion-catalog v55.1.0 -> v55.1.0 (no change; assume patch)
     Checked [   0.134s] 229 checks: 226 pass, 3 fail, 0 warn, 31 skip

--- failure function_missing: pub fn removed or renamed ---

Description:
A publicly-visible function cannot be imported by its prior path. A `pub use` may have been removed, or the function itself may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.51.0/src/lints/function_missing.ron

Failed in:
  function datafusion_catalog::information_schema::schemata_schema, previously in file /home/runner/work/datafusion/datafusion/target/semver-checks-shared/semver-checks/git-985bbbf60e14644d8945dce9342f6dd20a428f1a/9dfa4e6aaecd8732e7585b085bf0c80199c8ad3e/datafusion/catalog/src/information_schema.rs:1136

--- failure inherent_method_missing: pub method removed or renamed ---

Description:
A publicly-visible method or associated fn is no longer available under its prior name. It may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.51.0/src/lints/inherent_method_missing.ron

Failed in:
  InformationSchemaProvider::new_from_catalog, previously in file /home/runner/work/datafusion/datafusion/target/semver-checks-shared/semver-checks/git-985bbbf60e14644d8945dce9342f6dd20a428f1a/9dfa4e6aaecd8732e7585b085bf0c80199c8ad3e/datafusion/catalog/src/information_schema.rs:86
  InformationSchemaProvider::with_system_catalog, previously in file /home/runner/work/datafusion/datafusion/target/semver-checks-shared/semver-checks/git-985bbbf60e14644d8945dce9342f6dd20a428f1a/9dfa4e6aaecd8732e7585b085bf0c80199c8ad3e/datafusion/catalog/src/information_schema.rs:153

--- failure struct_missing: pub struct removed or renamed ---

Description:
A publicly-visible struct cannot be imported by its prior path. A `pub use` may have been removed, or the struct itself may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.51.0/src/lints/struct_missing.ron

Failed in:
  struct datafusion_catalog::information_schema::InformationSchemataBuilder, previously in file /home/runner/work/datafusion/datafusion/target/semver-checks-shared/semver-checks/git-985bbbf60e14644d8945dce9342f6dd20a428f1a/9dfa4e6aaecd8732e7585b085bf0c80199c8ad3e/datafusion/catalog/src/information_schema.rs:1179

     Summary semver requires new major version: 3 major and 0 minor checks failed
    Finished [  31.412s] datafusion-catalog
    Building datafusion-cli v55.1.0 (current)
       Built [  54.436s] (current)
     Parsing datafusion-cli v55.1.0 (current)
      Parsed [   0.028s] (current)
    Building datafusion-cli v55.1.0 (baseline)
       Built [  18.518s] (baseline)
     Parsing datafusion-cli v55.1.0 (baseline)
      Parsed [   0.030s] (baseline)
    Checking datafusion-cli v55.1.0 -> v55.1.0 (no change; assume patch)
     Checked [   0.149s] 229 checks: 229 pass, 31 skip
     Summary no semver update required
    Finished [  75.306s] datafusion-cli
    Building datafusion-common v55.1.0 (current)
       Built [  15.196s] (current)
     Parsing datafusion-common v55.1.0 (current)
      Parsed [   0.067s] (current)
    Building datafusion-common v55.1.0 (baseline)
       Built [   1.132s] (baseline)
     Parsing datafusion-common v55.1.0 (baseline)
      Parsed [   0.068s] (baseline)
    Checking datafusion-common v55.1.0 -> v55.1.0 (no change; assume patch)
     Checked [   0.956s] 229 checks: 227 pass, 2 fail, 0 warn, 31 skip

--- failure constructible_struct_adds_field: struct exhaustively constructible through public API adds field ---

Description:
A pub struct that could be exhaustively constructed with a literal using only public API has a new pub field, breaking existing exhaustive literals.
        ref: https://doc.rust-lang.org/reference/expressions/struct-expr.html
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.51.0/src/lints/constructible_struct_adds_field.ron

Failed in:
  field CatalogOptions.partition_information_schema in /home/runner/work/datafusion/datafusion/datafusion/common/src/config.rs:225

--- failure struct_pub_field_missing: pub struct's pub field removed or renamed ---

Description:
A publicly-visible struct has at least one public field that is no longer available under its prior name. It may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.51.0/src/lints/struct_pub_field_missing.ron

Failed in:
  field system_catalog of struct CatalogOptions, previously in file /home/runner/work/datafusion/datafusion/target/semver-checks-shared/semver-checks/git-985bbbf60e14644d8945dce9342f6dd20a428f1a/9dfa4e6aaecd8732e7585b085bf0c80199c8ad3e/datafusion/common/src/config.rs:225

     Summary semver requires new major version: 2 major and 0 minor checks failed
    Finished [  18.350s] datafusion-common
    Building datafusion-execution v55.1.0 (current)
       Built [   8.970s] (current)
     Parsing datafusion-execution v55.1.0 (current)
      Parsed [   0.026s] (current)
    Building datafusion-execution v55.1.0 (baseline)
       Built [   5.185s] (baseline)
     Parsing datafusion-execution v55.1.0 (baseline)
      Parsed [   0.027s] (baseline)
    Checking datafusion-execution v55.1.0 -> v55.1.0 (no change; assume patch)
     Checked [   0.317s] 229 checks: 228 pass, 1 fail, 0 warn, 31 skip

--- failure inherent_method_missing: pub method removed or renamed ---

Description:
A publicly-visible method or associated fn is no longer available under its prior name. It may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.51.0/src/lints/inherent_method_missing.ron

Failed in:
  SessionConfig::system_catalog, previously in file /home/runner/work/datafusion/datafusion/target/semver-checks-shared/semver-checks/git-985bbbf60e14644d8945dce9342f6dd20a428f1a/9dfa4e6aaecd8732e7585b085bf0c80199c8ad3e/datafusion/execution/src/config.rs:233
  SessionConfig::with_system_catalog, previously in file /home/runner/work/datafusion/datafusion/target/semver-checks-shared/semver-checks/git-985bbbf60e14644d8945dce9342f6dd20a428f1a/9dfa4e6aaecd8732e7585b085bf0c80199c8ad3e/datafusion/execution/src/config.rs:325

     Summary semver requires new major version: 1 major and 0 minor checks failed
    Finished [  15.545s] datafusion-execution
    Building datafusion-expr v55.1.0 (current)
       Built [  13.562s] (current)
     Parsing datafusion-expr v55.1.0 (current)
      Parsed [   0.096s] (current)
    Building datafusion-expr v55.1.0 (baseline)
       Built [   6.784s] (baseline)
     Parsing datafusion-expr v55.1.0 (baseline)
      Parsed [   0.096s] (baseline)
    Checking datafusion-expr v55.1.0 -> v55.1.0 (no change; assume patch)
     Checked [   1.735s] 229 checks: 226 pass, 3 fail, 0 warn, 31 skip

--- failure enum_variant_added: enum variant added on exhaustive enum ---

Description:
A publicly-visible enum without #[non_exhaustive] has a new variant.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#enum-variant-new
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.51.0/src/lints/enum_variant_added.ron

Failed in:
  variant LogicalPlan:Show in /home/runner/work/datafusion/datafusion/datafusion/expr/src/logical_plan/plan.rs:361
  variant LogicalPlan:Show in /home/runner/work/datafusion/datafusion/datafusion/expr/src/logical_plan/plan.rs:361

--- failure enum_variant_missing: pub enum variant removed or renamed ---

Description:
A publicly-visible enum has at least one variant that is no longer available under its prior name. It may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.51.0/src/lints/enum_variant_missing.ron

Failed in:
  variant LogicalPlan::DescribeTable, previously in file /home/runner/work/datafusion/datafusion/target/semver-checks-shared/semver-checks/git-985bbbf60e14644d8945dce9342f6dd20a428f1a/9dfa4e6aaecd8732e7585b085bf0c80199c8ad3e/datafusion/expr/src/logical_plan/plan.rs:359
  variant LogicalPlan::DescribeTable, previously in file /home/runner/work/datafusion/datafusion/target/semver-checks-shared/semver-checks/git-985bbbf60e14644d8945dce9342f6dd20a428f1a/9dfa4e6aaecd8732e7585b085bf0c80199c8ad3e/datafusion/expr/src/logical_plan/plan.rs:359

--- failure struct_missing: pub struct removed or renamed ---

Description:
A publicly-visible struct cannot be imported by its prior path. A `pub use` may have been removed, or the struct itself may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.51.0/src/lints/struct_missing.ron

Failed in:
  struct datafusion_expr::logical_plan::DescribeTable, previously in file /home/runner/work/datafusion/datafusion/target/semver-checks-shared/semver-checks/git-985bbbf60e14644d8945dce9342f6dd20a428f1a/9dfa4e6aaecd8732e7585b085bf0c80199c8ad3e/datafusion/expr/src/logical_plan/plan.rs:3809
  struct datafusion_expr::DescribeTable, previously in file /home/runner/work/datafusion/datafusion/target/semver-checks-shared/semver-checks/git-985bbbf60e14644d8945dce9342f6dd20a428f1a/9dfa4e6aaecd8732e7585b085bf0c80199c8ad3e/datafusion/expr/src/logical_plan/plan.rs:3809

     Summary semver requires new major version: 3 major and 0 minor checks failed
    Finished [  23.560s] datafusion-expr
    Building datafusion-optimizer v55.1.0 (current)
       Built [  15.528s] (current)
     Parsing datafusion-optimizer v55.1.0 (current)
      Parsed [   0.031s] (current)
    Building datafusion-optimizer v55.1.0 (baseline)
       Built [   6.973s] (baseline)
     Parsing datafusion-optimizer v55.1.0 (baseline)
      Parsed [   0.032s] (baseline)
    Checking datafusion-optimizer v55.1.0 -> v55.1.0 (no change; assume patch)
     Checked [   0.191s] 229 checks: 229 pass, 31 skip
     Summary no semver update required
    Finished [  23.458s] datafusion-optimizer
    Building datafusion-proto v55.1.0 (current)
       Built [  24.029s] (current)
     Parsing datafusion-proto v55.1.0 (current)
      Parsed [   0.011s] (current)
    Building datafusion-proto v55.1.0 (baseline)
       Built [  20.167s] (baseline)
     Parsing datafusion-proto v55.1.0 (baseline)
      Parsed [   0.012s] (baseline)
    Checking datafusion-proto v55.1.0 -> v55.1.0 (no change; assume patch)
     Checked [   0.133s] 229 checks: 229 pass, 31 skip
     Summary no semver update required
    Finished [  45.730s] datafusion-proto
    Building datafusion-sql v55.1.0 (current)
       Built [  11.525s] (current)
     Parsing datafusion-sql v55.1.0 (current)
      Parsed [   0.030s] (current)
    Building datafusion-sql v55.1.0 (baseline)
       Built [  11.593s] (baseline)
     Parsing datafusion-sql v55.1.0 (baseline)
      Parsed [   0.031s] (baseline)
    Checking datafusion-sql v55.1.0 -> v55.1.0 (no change; assume patch)
     Checked [   0.297s] 229 checks: 229 pass, 31 skip
     Summary no semver update required
    Finished [  24.393s] datafusion-sql
    Building datafusion-substrait v55.1.0 (current)
       Built [ 254.110s] (current)
     Parsing datafusion-substrait v55.1.0 (current)
      Parsed [   0.010s] (current)
    Building datafusion-substrait v55.1.0 (baseline)
       Built [  16.938s] (baseline)
     Parsing datafusion-substrait v55.1.0 (baseline)
      Parsed [   0.011s] (baseline)
    Checking datafusion-substrait v55.1.0 -> v55.1.0 (no change; assume patch)
     Checked [   0.300s] 229 checks: 229 pass, 31 skip
     Summary no semver update required
    Finished [ 272.871s] datafusion-substrait

@github-actions github-actions Bot added the auto detected api change Auto detected API change label Oct 23, 2026
@pepijnve
pepijnve force-pushed the information-schema-refactoring branch 7 times, most recently from 99ef998 to 21dafce Compare October 25, 2026 09:13
alamb added a commit to raghavyadav01/datafusion that referenced this pull request Oct 25, 2026
…e#25887)

## Which issue does this PR close?

- Closes apache#15960.
- Supersedes / closes apache#24200.
- Prerequisite for PR apache#26057.

## Rationale for this change

Catalog-qualified information schema queries currently return metadata
for object from every registered catalog.

If we follow the letter of the SQL specification,
`my_catalog.information_schema.tables` should describe only
`my_catalog`. This is consistent with PostgreSQL's information schema
representing the current database.

When working with multiple catalogs, for instance multiple Iceberg REST
catalogs, it is more practical to be able to query just the objects
defined in one specific catalog without further filtering.

A special 'system' catalog is optionally provided to be able to query
across catalogs. This can be seen as an approximation of SQL's
definition schema.

## What changes are included in this PR?

- The catalog list provided to `InformationSchemaProvider` is now
constructed dynamically based on the catalog being queried. An optional
'system' catalog provides the existing global catalog behaviour. All
other catalogs are restricted to just their own content.
- Unqualified information_schema queries now use the configured default
catalog instead of returning metadata from all catalogs.

## What is the testing strategy for this PR?

Added multi-catalog SQL logic coverage for qualified and unqualified
information schema queries.

## Are there any user-facing changes?

Yes. Information schema results are now scoped to the resolved catalog.

---------

Co-authored-by: Vaibhave Sekar <vsekar@microsoft.com>
Co-authored-by: Andrew Lamb <andrew@nerdnetworks.org>
@pepijnve
pepijnve force-pushed the information-schema-refactoring branch from 21dafce to bc723c5 Compare October 26, 2026 09:39
@pepijnve
pepijnve marked this pull request as ready for review October 26, 2026 09:39
@pepijnve pepijnve mentioned this pull request Oct 26, 2026
11 of 30 tasks
@pepijnve pepijnve changed the title Remove information schema references from sql module Move show statement implementation out of sql module Oct 26, 2026
@pepijnve pepijnve changed the title Move show statement implementation out of sql module Move show statement implementations out of sql module Oct 26, 2026
@alamb alamb changed the title Move show statement implementations out of sql module Rename LogicalPlan::DescribeTable to LogicalPlan::Show move statement implementations out of sql module Oct 27, 2026
alamb and others added 3 commits October 27, 2026 16:03
The test still used SessionConfig::with_system_catalog, which this
branch replaced with with_partition_information_schema.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

@alamb alamb left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you @pepijnve

I really like this PR and I think it moves the code into a better shape (and it has restored my enjoyment of reviewing PRs for today)

Also, thank you for the very nice explanation / description on this PR. It has been a while since I read a description of that length that wasn't AI vomit and was a pleasure to read rather than making my brain hurt.

I also removed some redundant rust tests to slim down the size of the PR

While reviewing this PR one thing I was wondering is why we need to special case the InformationTable views.

I wonder what you think about following the DynamicFileCatalog approach and adding InformationSchema support as a wrapper.

pub struct DynamicFileCatalog {

So basically it would be automatically added to any catalog registered, like here

pub fn enable_url_table(self) -> Self {
let current_catalog_list = Arc::clone(self.state.read().catalog_list());
let factory = Arc::new(DynamicListTableFactory::new(SessionStore::new()));
let catalog_list = Arc::new(DynamicFileCatalog::new(
current_catalog_list,
Arc::clone(&factory) as Arc<dyn UrlTableFactory>,
));
let session_id = self.session_id.clone();
let ctx: SessionContext = self
.into_state_builder()
.with_session_id(session_id)
.with_catalog_list(catalog_list)
.build()
.into();
// register new state with the factory
factory.session_store().with_state(ctx.state_weak_ref());
ctx

SHOW TABLES would still have to remain a rewrite into

SELECT * FROM information_schema.tables

But after that it would be planned like any other table

And then we could just remove LogicalPlan::DescribeTables (rather than renaming it)

use std::fmt::Debug;
use std::sync::Arc;

/// Name of the `information_schema` schema

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like how much simpler this code is


/// Builds `information_schema.views` rows.
#[derive(Debug)]
pub struct InformationSchemaViewBuilder {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it took me a while to understand why this stuff was moved to common, and then I realized it is because the LogicalPlan now depends on the information schema to report its schema 🤔

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Indeed. I wanted to avoid duplicating the schema in multiple places. By keeping the schema itself and builders for the arrays together it's easier to modify these going forward.

Looking at this again, I think we could move it from common to expr. Everything else that needs this is dependent on that crate already as well.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for challenging the common location. I've done the move to expr; that makes more sense. A similar pattern could be applied for explain as well.

@pepijnve

Copy link
Copy Markdown
Contributor Author

I wonder what you think about following the DynamicFileCatalog approach and adding InformationSchema support as a wrapper.

I'll need to give that some thought. In this PR I was just continuing on what was already there and didn't consider this alternative.

SHOW ... would still have to remain a rewrite into SELECT

I think that would reintroduce the need for the global information schema and move the translation back into sql/statement.rs using strings. SHOW TABLES is simple enough, but SHOW FUNCTIONS for instance is something that we can implement much simpler with a little bit of code.

By implementing the show statements as dedicated execution plans we gain the freedom to adjust those and the informations schema independently. Additionally, you get to still use those statements without needing to make the information schema visible in each catalog (i.e. the dependency on the config setting goes away).

@pepijnve
pepijnve force-pushed the information-schema-refactoring branch from 3be8830 to 570be77 Compare October 27, 2026 21:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

auto detected api change Auto detected API change catalog Related to the catalog crate common Related to common crate core Core DataFusion crate documentation Improvements or additions to documentation execution Related to the execution crate logical-expr Logical plan and expressions optimizer Optimizer rules proto Related to proto crate sql SQL Planner sqllogictest SQL Logic Tests (.slt) substrait Changes to the substrait crate

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants