[SQL] Registering custom Rule[LogicalPlan] using extendedResolutionRules by overriding SparkSession, SessionState, and Analyzer only?
We had a Spark-a-thon in Warsaw, Poland  where we set on learning
QueryPlan API. My initial idea was to start with Analyzer and register
a custom Rule[LogicalPlan] using extendedResolutionRules .
We were glad to have seen the scaladoc:
"Override to provide additional rules for the "Resolution" batch."
after we had got stuck how to register the custom rule. It turned out
to be very different from what you could do using ExperimentalMethods
 that offers you two extension points for the query planner (i.e.
SparkPlanner and SparkOptimizer).
We ended up overriding SparkSession, SessionState, and Analyzer which
was an excellent coding exercise for the sparkathon, but could be too
much given the simplicity of ExperimentalMethods for the query
Can we do better? Could we have done it using other extension points
to Analyzer? Are there any plans on opening Analyzer (akin to
SparkPlanner)? Why? When? That could be another excellent coding
exercise for sparkathon, couldn't it?