terrymanu commented on PR #39517:
URL: https://github.com/apache/shardingsphere/pull/39517#issuecomment-5342844071

   ### Result
   **Review Result: Mergeable**
   
   PR #39517 (head `c99fb61`) correctly implements end-to-end parsing support 
for the two remaining Doris statement groups from issue #31483. The grammar 
matches the official Doris documentation, all changes are purely additive, and 
no blocking issues were found. This conclusion is code-scope only (Code 
Correctness Review); CI was not reviewed.
   
   ### Evidence
   
   - **Grammar matches official documentation**: 
`parser/sql/engine/dialect/doris/src/main/antlr4/imports/doris/DALStatement.g4:484`
 defines `adminCheckTablet: ADMIN CHECK TABLET LP_ NUMBER_ (COMMA_ NUMBER_)* 
RP_ propertiesClause`, which corresponds item by item to `ADMIN CHECK TABLET ( 
<tablet_id> [,...] ) PROPERTIES("type" = "<type_value>")` from 
apache/doris-website master 
`docs/sql-manual/sql-statements/table-and-view/data-and-status-management/ADMIN-CHECK-TABLET.md`
 (at least one tablet id, PROPERTIES required). `DALStatement.g4:488` defines 
`adminSetPartitionVersion: ADMIN SET TABLE tableName PARTITION VERSION 
propertiesClause`, matching the syntax in `SET-TABLE-PARTITION-VERSION.md` from 
the same directory; per official semantics the partition id and version live in 
PROPERTIES and the SQL carries only the table name, which the model reflects 
correctly.
   - **Reuse and pattern consistency**: the two visitor methods reuse the 
existing `extractPropertiesSegment` helper and the `(SimpleTableSegment) 
visit(ctx.tableName())` pattern; the statement classes, asserts, and JAXB 
structures align fully with the same-family precedent PR #38349 (ADMIN SET 
REPLICA / ADMIN COPY TABLET).
   - **No dialect-family blast radius**: Doris is a branch dialect of the MySQL 
trunk; every change in this PR sits in Doris-only files and touches no MySQL 
trunk grammar. `SQLVisitorRule` is a shared enum, but the new 
`ADMIN_CHECK_TABLET` and `ADMIN_SET_PARTITION_VERSION` entries reference rule 
names that exist only in the DorisStatement grammar, so other dialects are 
unaffected. All required keywords 
(CHECK/TABLET/SET/TABLE/PARTITION/VERSION/PROPERTIES) already exist, so no new 
lexer tokens and no reserved-word shadowing risk exist.
   - **Local verification passed** (against a working tree identical to the PR 
head): `InternalDorisParserIT` Tests run: 1287, Failures: 0 (exit 0); module 
tests for `parser/sql/statement/dialect/doris` and 
`parser/sql/engine/dialect/dialect` engine module exited 0; `spotless:apply 
-Pcheck` and `checkstyle:check -Pcheck` both exited 0.
   - **Test validity**: the `admin_set_partition_version_with_qualified_table` 
case covers qualified table name parsing, and its `SimpleTableSegment` 
start-index counting from the owner (16–42) follows the established 
`show-data.xml` precedent semantics; property assertions include keys, values, 
and zero-based inclusive indices, protecting the parsing behavior itself.
   
   ### Coverage
   
   - Reviewed scope: PR head `c99fb616524`, base `9fdc12bd541` (master). All 18 
files from the authoritative GitHub changed-file list were individually 
reviewed and mapped to behavior clusters: the ADMIN CHECK TABLET parsing chain, 
the ADMIN SET TABLE PARTITION VERSION parsing chain, registration wiring 
(SQLVisitorRule / DorisDALStatementAssert dispatch / RootSQLParserTestCases), 
and an unrelated configuration change.
   - All three discovery lenses (root cause and behavior, blast radius and 
contracts, tests and runtime) completed; the convergence pass produced no new 
independent candidates.
   - Non-blocking scope note: 
`test/e2e/env/src/test/resources/container/mysql/cnf/5/my.cnf` and 
`cnf/8/my.cnf` (`max_connections` 600→2000) are unrelated to the PR's declared 
scope (Fixes #31483, Doris parsing) and constitute a piggybacked E2E 
environment tweak. It does not affect correctness and is not blocking, but the 
path filter will trigger E2E CI jobs that would otherwise not run for a 
parser-only change; the author may keep or split it at discretion.
   - The local repository holds no git ref for the PR head (not fetched), so 
the ledger/inventory scripts that depend on local refs were not run; per-file 
manual accounting against the GitHub file list was completed instead (18/18).
   - Cross-checked against issue #31483: the other four SQL groups (DROP USER, 
FLOAT, split_by_string, ALTER VIEW) already parse under the existing grammar, 
so once this PR merges all items in the issue are complete.
   - CI was not reviewed (Code Correctness Review does not query Actions).


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to