*Hi Yuan Tian,*

I have finished the latest updates for PR #17960.

This update covers two areas:

   1. LCA alias canonical matching

SELECT alias reuse now derives the alias key from
Identifier.getCanonicalValue() and folds it to uppercase. This makes
ordinary and delimited aliases match consistently for lateral alias reuse,
so x, X, "x", and "X" all refer to the same SELECT alias name.

I also added regression coverage for exact delimited matches,
case-differing delimited matches, delimited/unquoted mixed references, and
duplicate canonical alias ambiguity.

   2. LCA plan-expression / EXPLAIN JSON blowup

The LCA rewrite no longer deep-copies or inlines the already-expanded
expression from a previous alias. Instead, the planner reuses previous LCA
projections through symbol mappings and appends SELECT projections in
batches, so deep chained aliases should no longer cause the O(N²)
plan-expression / EXPLAIN JSON blowup.

I also added regression coverage for:

   - reusing a previous CAST(...) AS x projection without duplicating the
   Cast expression
   - a 200-column chained LCA case that keeps plan expressions shallow and
   the plan JSON bounded

Verified locally with:

./mvnw -nsu test -pl iotdb-core/datanode
-Dtest=SelectAliasReuseTest,CreateTableStatementTest,TableConfigTaskVisitorTest

All 42 targeted tests passed.

Please take another look when you have time. Thanks again for the detailed
review and measurements.

*Best,*

*Bryan Ynag*

Reply via email to