LogicalPlanPreprocessor is responsible for building base schema information. So far, it has been enough to do this.
However, to support self-describing data formats well (
TAJO-1832), the current architecture is difficult to fulfil the requirements.
To make good use of self-described data format information, schema can be guessed at query runtime. I think that this should be done between logical plan preprocessing phase and logical planning phase. However, guessing schema is also a duty of LogicalPlanPreprocessor, that is building base schema information.
For the sake of generality and extensibility, I think we need to refine LogicalPlanPreprocessor to add new rules easily.