use crate::unparser::ast::{QueryBuilder, RelationBuilder, SelectBuilder};
use crate::unparser::Unparser;
use datafusion_expr::UserDefinedLogicalNode;
use sqlparser::ast::Statement;
pub trait UserDefinedLogicalNodeUnparser {
fn unparse(
&self,
_node: &dyn UserDefinedLogicalNode,
_unparser: &Unparser,
_query: &mut Option<&mut QueryBuilder>,
_select: &mut Option<&mut SelectBuilder>,
_relation: &mut Option<&mut RelationBuilder>,
) -> datafusion_common::Result<UnparseWithinStatementResult> {
Ok(UnparseWithinStatementResult::Unmodified)
}
fn unparse_to_statement(
&self,
_node: &dyn UserDefinedLogicalNode,
_unparser: &Unparser,
) -> datafusion_common::Result<UnparseToStatementResult> {
Ok(UnparseToStatementResult::Unmodified)
}
}
pub enum UnparseWithinStatementResult {
Modified,
Unmodified,
}
#[allow(clippy::large_enum_variant)]
pub enum UnparseToStatementResult {
Modified(Statement),
Unmodified,
}