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

Reply via email to