hutiefang76 opened a new pull request, #12591:
URL: https://github.com/apache/seatunnel/pull/12591

   ### Purpose of this pull request
   
   Fixes #12517. Generated JDBC statements now bind complete upstream field 
names, including spaces, question marks, colons and quotes, with 
repeated/reordered bindings preserved. Configured `query` SQL uses its existing 
named/positional grammar so escaped literals such as `E'can\'t'` retain their 
previous behavior.
   
   #12529 is the existing space-only slice. This patch also covers the other 
reported names and the actual generated Source/Sink path; it does not reopen 
#12518.
   
   ### Does this PR introduce _any_ user-facing change?
   
   Yes. Correctly quoted columns such as `"field?question"` no longer cause 
generated named SQL to be sent to the driver as positional SQL. Configured 
positional SQL retains field-order binding and verbatim SQL. The EN/ZH JDBC 
sink docs explain the mode boundary.
   
   ### How was this patch tested?
   
   * The original production code produced eight errors in 18 focused 
regressions.
   * On JDK 8 and 17, 28 focused tests passed: FieldNamedPreparedStatementTest, 
DuckDBSourceAndSinkTest and JdbcOutputFormatBuilderTest. The real DuckDB 
factory flow checks special names and a configured escaped-string query 
independently read back from the database.
   * Existing JdbcMysqlIT#testGeneratedSpecialFieldBinding passed on MySQL 
8.0.43 (one executed test, no skip).
   * Scoped Spotless, affected reactor `-DskipTests verify` and four 
MarkdownTest checks passed. This is not the full engine E2E matrix.
   
   ```sh
   ./mvnw -pl seatunnel-connectors-v2/connector-jdbc -am -DskipIT=true 
-Dtest=FieldNamedPreparedStatementTest,DuckDBSourceAndSinkTest,JdbcOutputFormatBuilderTest
 -Dsurefire.failIfNoSpecifiedTests=false verify
   ```
   
   ### Check list
   
   * [ ] New JAR license/notice changes (not applicable; no new dependencies)
   * [x] Updated user documentation
   * [ ] Connector registration/distribution/config changes (not applicable; 
existing connector)
   * [ ] Incompatible changes (configured SQL semantics preserved)
   
   AI disclosure: DeepSeek and Codex assisted the implementation, tests and 
this PR description.
   


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