Hi guangyuan, The core logic lies in SqlValidatorImpl[1], you can start from there. Along with SqlValidator, there are two core concept: SqlValidatorScope and SqlValidatorNamespace.
Besides, there are many validation tests in SqlValidatorTest[2], you can use these tests to debug step by step. I used it a lot, and it really helps. [1] https://github.com/apache/calcite/blob/main/core/src/main/java/org/apache/calcite/sql/validate/SqlValidatorImpl.java [2] https://github.com/apache/calcite/blob/main/core/src/test/java/org/apache/calcite/test/SqlValidatorTest.java guangyuan wang <[email protected]> 于2022年5月12日周四 10:28写道: > Dear all > I'm reading the source code in the "org.apache.calcite.sql.validate" > package. There are so many classes in the package, that it is too > complicated to understand. > Are there any design documents about SQL validation in calcite? Or any > suggestions about understanding SQL validation in calcite? > Thanks a lot. > -- Best, Benchao Li
