timsaucer opened a new issue, #1575:
URL: https://github.com/apache/datafusion-python/issues/1575

   ## Background
   
   `SessionContext::add_analyzer_rule` registers an `Arc<dyn AnalyzerRule>` 
that runs during plan analysis (the pre-optimization pass that resolves names, 
applies type coercion, etc.). The Python bindings do not expose this method.
   
   ## Upstream signature
   
   ```rust
   pub fn add_analyzer_rule(&self, analyzer_rule: Arc<dyn AnalyzerRule + Send + 
Sync>)
   ```
   
   ## User value
   
   Lets users intercept and transform a logical plan immediately after 
analysis, before the main optimizer runs. Useful for custom semantic 
validation, injecting domain-specific defaults, or rewriting unresolved 
references against an external catalog.
   
   ## Why deferred
   
   Blocked upstream, same root cause as #1574 
([add_optimizer_rule](https://github.com/apache/datafusion-python/issues/1574)):
 no FFI bridge exists for the logical `AnalyzerRule` trait, and a Python-only 
adapter can observe but not meaningfully transform `LogicalPlan` nodes because 
there are no Python constructors for the variants. Tracked here; revisit when 
upstream lands an `FFI_AnalyzerRule`.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to