You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
As a part of the work on SpiceAI and datafusion-federation, we have some rewrites on the tpch_q13 and we expect the final rewritten SQL to be the following:
SELECTc_orders.c_count,
Count(1) AS custdist
FROM (SELECT c_custkey AS c_custkey,
"count(tpch.orders.o_orderkey)"AS c_count
FROM (SELECTTPCH.customer.c_custkey,
Count(TPCH.orders.o_orderkey) AS"COUNT(tpch.orders.o_orderkey)"FROMTPCH.customerLEFT JOINTPCH.ordersON ( ( TPCH.customer.c_custkey =TPCH.orders.o_custkey )
ANDTPCH.orders.o_comment NOT LIKE'%special%requests%' )
GROUP BY TPCH.customer.c_custkey)) AS c_orders
GROUP BY c_orders.c_count
ORDER BY custdist DESC NULLS FIRST,
c_orders.c_countDESC NULLS FIRST
however the plan_to_sql generates a one-line sql which is much harder to read
SELECTc_orders.c_count, COUNT(1) AS custdist FROM (SELECT c_custkey AS c_custkey, "COUNT(tpch.orders.o_orderkey)"AS c_count FROM (SELECTtpch.customer.c_custkey, COUNT(tpch.orders.o_orderkey) AS"COUNT(tpch.orders.o_orderkey)"FROMtpch.customerLEFT JOINtpch.ordersON ((tpch.customer.c_custkey =tpch.orders.o_custkey) ANDtpch.orders.o_comment NOT LIKE'%special%requests%') GROUP BYtpch.customer.c_custkey)) AS c_orders GROUP BYc_orders.c_countORDER BY custdist DESC NULLS FIRST, c_orders.c_countDESC NULLS FIRST"
Describe the solution you'd like
I would like to be able to provide an extra parameter to the Unparser, such as pretty_print or indent, which needs to be respected in the plan_to_sql
Is your feature request related to a problem or challenge?
DataFusion provides the capability of "unparsing" a logical plan into SQL via the
unparser
module in thesql
crate (see https://github.com/apache/datafusion/blob/main/datafusion/sql/src/unparser/plan.rs). Examples also showcase theDialect
features to provide customizable escaping.As a part of the work on SpiceAI and datafusion-federation, we have some rewrites on the tpch_q13 and we expect the final rewritten SQL to be the following:
however the
plan_to_sql
generates a one-line sql which is much harder to readDescribe the solution you'd like
I would like to be able to provide an extra parameter to the Unparser, such as
pretty_print
orindent
, which needs to be respected in theplan_to_sql
Describe alternatives you've considered
Use https://github.com/dprint/dprint on the SQL, but unfortunately SQL is not supported
Additional context
I used this https://www.dpriver.com/pp/sqlformat.htm to generate the formatted SQL from the SQL generated from dataufusion
The text was updated successfully, but these errors were encountered: