This is an automated email from the ASF dual-hosted git repository.
alamb pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow-datafusion.git
The following commit(s) were added to refs/heads/main by this push:
new 8438d2b1ea add schema to SQL ast builder (#9624)
8438d2b1ea is described below
commit 8438d2b1ea67fda64955839fb4bd4ed88b861ade
Author: Suriya Kandaswamy <[email protected]>
AuthorDate: Tue Mar 19 10:14:42 2024 -0400
add schema to SQL ast builder (#9624)
* add schema to ast builder
* add schema test
---
datafusion/sql/src/unparser/plan.rs | 9 ++++++---
datafusion/sql/tests/sql_integration.rs | 9 +++++++++
2 files changed, 15 insertions(+), 3 deletions(-)
diff --git a/datafusion/sql/src/unparser/plan.rs
b/datafusion/sql/src/unparser/plan.rs
index e1f5135efd..c9b0a8a04c 100644
--- a/datafusion/sql/src/unparser/plan.rs
+++ b/datafusion/sql/src/unparser/plan.rs
@@ -124,9 +124,12 @@ impl Unparser<'_> {
match plan {
LogicalPlan::TableScan(scan) => {
let mut builder = TableRelationBuilder::default();
- builder.name(ast::ObjectName(vec![
- self.new_ident(scan.table_name.table().to_string())
- ]));
+ let mut table_parts = vec![];
+ if let Some(schema_name) = scan.table_name.schema() {
+ table_parts.push(self.new_ident(schema_name.to_string()));
+ }
+
table_parts.push(self.new_ident(scan.table_name.table().to_string()));
+ builder.name(ast::ObjectName(table_parts));
relation.table(builder);
Ok(())
diff --git a/datafusion/sql/tests/sql_integration.rs
b/datafusion/sql/tests/sql_integration.rs
index 6d335f1f8f..47638e58ff 100644
--- a/datafusion/sql/tests/sql_integration.rs
+++ b/datafusion/sql/tests/sql_integration.rs
@@ -41,6 +41,15 @@ use rstest::rstest;
use sqlparser::dialect::{Dialect, GenericDialect, HiveDialect, MySqlDialect};
use sqlparser::parser::Parser;
+#[test]
+fn test_schema_support() {
+ quick_test(
+ "SELECT * FROM s1.test",
+ "Projection: s1.test.t_date32, s1.test.t_date64\
+ \n TableScan: s1.test",
+ );
+}
+
#[test]
fn parse_decimals() {
let test_data = [