goutamadwant opened a new pull request, #12303: URL: https://github.com/apache/seatunnel/pull/12303
### Purpose of this pull request Related to #10425, covering the OpenMldb source only. Add multi-table reads using the common `tables_configs` option. Each query declares its result schema and output table identity and can override the source database. Connection settings remain shared. The reader changes also address correctness problems encountered while validating this path: SQL NULL handling, nullable metadata, reused row arrays, shared executor ownership, and cluster queries taking the offline-job execution path. ### Does this PR introduce _any_ user-facing change? Yes. Before, one source accepted one root-level `sql` query and used the SDK's input-schema discovery. Separate queries with different result schemas required separate source configurations. After, one source can read multiple queries sequentially through `tables_configs`: - Each entry requires `sql`, a unique `schema.table`, and non-empty `schema.fields`; `database` is optional per entry. - Result columns are matched to configured field names, including SQL aliases, case-sensitively. Incorrect names, counts, or types fail the read. - Rows carry their output table identity. Batch completion is reported only after all queries succeed, including empty results. - SQL NULL values remain null for all supported types, and closing one reader does not close another reader's connection. - Cluster reads query online table rows directly instead of submitting an offline job. Existing root-level `sql` configurations remain supported. Their input-schema and positional-mapping limitations are documented. No connector options are removed, connection defaults are unchanged, and the SDK remains at 0.6.3. This does not add parallelism, CDC, exactly-once delivery, or a consistent snapshot across tables. Streaming mode continues to repeat the configured queries and can emit duplicates. English and Chinese source documentation include configuration examples and validation rules. ### How was this patch tested? - 29 connector unit tests passed on both Java 8 and Java 11. - The Java 11 connector dependency reactor passed `verify`: 506 tests, no failures, errors, or skipped tests. ```shell ./mvnw -o -pl seatunnel-connectors-v2/connector-openmldb -am verify ``` - Five added integration tests passed against OpenMLDB 0.6.3 in each combination of Java 8/11 and standalone/cluster mode: 20 successful test executions. These were run through JUnit Platform in a compatible Linux amd64 container against real servers, separately from Maven verification. - Coverage includes different databases and schemas, reordered aliases, all supported nullable types, zero/false/empty-string values, empty results, reader isolation, query failures, and completion behavior. - The integration tests also verify 1,101 complete, unique rows, using four partitions in cluster mode. `OpenMldbSourceIT` is opt-in with `-Dopenmldb.integration=true`. Its class documentation lists the standalone and ZooKeeper connection properties. It requires a disposable server and a Linux amd64 runtime compatible with the pinned SDK's native library. Zeta/Flink/Spark engine E2E validation remains pending. The real-server connector tests above do not replace that matrix; this change should remain draft while those checks are completed. ### Check list - [x] License notice reviewed: no new dependencies or JAR binaries. - [x] English and Chinese connector documentation updated. - [x] Compatibility reviewed: no configuration migration required; reader behavior corrections are described above. - [x] Existing connector registration reviewed: plugin mapping, distribution configuration, CI labels, and plugin configuration require no changes. - [x] Unit tests and opt-in real-server connector integration tests added. - [ ] Engine E2E testcase and Zeta/Flink/Spark validation. -- 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]
