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

   ### Result
   
   **Review Result: Mergeable**
   
   **Blocking Issues: 0**
   
   The fix is properly scoped and does not change any public API, SQL 
statement, or JDBC call count.
   
   Review recommendations: No changes recommended.
   
   ### Evidence
   
   - `MySQLMetaDataLoader.java:52-99`
     - Uses the existing `PRIMARY` index metadata to identify actual 
primary-key columns, preventing a `UNIQUE NOT NULL` column in a table without a 
primary key from being misidentified because `COLUMN_KEY=PRI`.
     - This behavior is consistent with the [MySQL COLUMNS 
documentation](https://dev.mysql.com/doc/refman/8.4/en/information-schema-columns-table.html).
     - No additional database queries are introduced. The implementation only 
matches already-loaded column and index metadata.
   - `MySQLMetaDataLoader.java:169-173`
     - Parses `EXTRA` as a combination of attributes, correctly handling 
`auto_increment INVISIBLE`.
     - `VIRTUAL GENERATED INVISIBLE` is marked as invisible without being 
incorrectly treated as a ShardingSphere-generated key. This combination is 
documented in [MySQL invisible 
columns](https://dev.mysql.com/worklog/task/?id=10905).
   - `MySQLMetaDataLoaderTest.java:150-236`
     - Covers an actual `PRIMARY` index.
     - Covers the false-positive case where `COLUMN_KEY=PRI` is returned for a 
non-primary index.
     - Covers combined `EXTRA` attributes.
   
   Verification results:
   
   - Focused tests: 6 tests passed.
   - MySQL connector module: 85 tests passed.
   - Spotless: Passed.
   - Checkstyle: 0 violations.
   
   ### Coverage
   
   - Candidate: Standalone local candidate.
   - Baseline: `47f4a2dbceb9d8272cc5aed420b64c109fd2171d`
   - Changed files: 2, both reviewed.
   - Root-cause, blast-radius, tests/runtime, and convergence reviews completed.
   - CI was not reviewed; this result applies only to the current local code.
   - Remaining risk: No integration test against a live MySQL instance was 
executed. The behavior is supported by MySQL’s official metadata contract and 
focused unit tests.
   - The existing Locale sensitivity of `COLUMN_TYPE.toUpperCase()` is outside 
the scope of this fix and was not worsened by these changes.


-- 
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