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

   ## Purpose of this PR
   
   This PR acknowledges the contribution to Apache SeaTunnel and fixes a batch 
of real documentation inaccuracies found by comparing the English and Chinese 
connector/transform docs against the actual source code on the current `dev` 
branch.
   
   ## Documentation issues found and fixed
   
   **Option tables vs. code (names, types, defaults, required flags):**
   - `PostgreSQL` source: `driver` description told users to set the **MySQL** 
driver class (`com.mysql.cj.jdbc.Driver`) on the PostgreSQL page; corrected to 
`org.postgresql.Driver`. `query` was marked required, but code only requires 
`url` + `driver` (`JdbcSourceFactory`), so it is now conditional like sibling 
dialect pages.
   - `DB2` source: `query` was marked required although code requires only 
`url` + `driver`.
   - JDBC family (`Mysql`, `Oracle`, `SqlServer`, `PostgreSQL` sources): 
`partition_lower_bound` / `partition_upper_bound` were typed `BigDecimal` or 
`Long`, but `JdbcSourceOptions` declares them as `stringType()`; 
`partition_num` default was documented as "job parallelism" while 
`JdbcSourceTableConfig.DEFAULT_PARTITION_NUMBER` is `10`.
   - `LLM` transform: `api_key` was marked unconditionally required, but 
`LLMTransformFactory` declares it conditionally required 
(OPENAI/DOUBAO/MICROSOFT) and unused for `CUSTOM`.
   - `Copy` transform: `fields` was typed `Object`; `CopyTransformConfig` 
declares a `mapType()` (Map).
   - `Http` sink: `multi_table_sink_replica` default `-`, but 
`SinkConnectorCommonOptions` defaults it to `1`.
   
   **Data-type mapping tables vs. converters:**
   - `Clickhouse` source: `Int8 / UInt8 / Int16 / UInt16 / Int32 → INT` split 
into `Int8 → TINYINT`, `UInt8 / Int16 → SMALLINT`, `UInt16 / Int32 → INT` per 
`TypeConvertUtil`; `DateTime → TIME` corrected to `TIMESTAMP`.
   - `Clickhouse` sink: `INT → Int8/UInt8/Int16/UInt16/Int32` corrected to `INT 
→ Int32` and added `TINYINT → Int8`, `SMALLINT → Int16` per 
`ClickhouseTypeConverter`; `TIME → DateTime` corrected to `TIME → String`, 
added missing `TIMESTAMP → DateTime64` row.
   - `StarRocks` sink: `DATE/DATETIME/ARRAY/MAP → STRING` corrected to `DATE → 
DATE`, `DATETIME → TIMESTAMP`, `ARRAY → ARRAY`, `MAP → MAP` per 
`StarRocksTypeConverter`.
   - `Mysql` source/sink: `TIMESTAMP → TIMESTAMP(s)` corrected to 
`TIMESTAMP_TZ` (UTC-stored, `MySqlTypeConverter`); sink table split 
`TINYINT/TINYINT UNSIGNED/SMALLINT/... → INT` into the correct `TINYINT → 
TINYINT`, `TINYINT UNSIGNED/SMALLINT → SMALLINT`, rest → `INT` rows; removed 
the contradictory `INT UNSIGNED → BOOLEAN` grouping; `GEOMETRY` moved from "Not 
supported yet" to `BYTES`.
   - `Oracle` source/sink: `NUMBER(18 < p, s == 0) → DECIMAL(38, 0)` and 
`NUMBER(s != 0) → DECIMAL(38, 18)` corrected to preserved `DECIMAL(precision, 
0)` / `DECIMAL(precision, scale)` per `OracleTypeConverter`; `TIMESTAMP WITH 
(LOCAL) TIME ZONE → TIMESTAMP` corrected to `TIMESTAMP_TZ`.
   - `SqlServer` source: `DATETIMEOFFSET` moved out of the `TIMESTAMP(s)` group 
to `TIMESTAMP_TZ`; sink `DECIMAL → DECIMAL((column size)+1, scale)` corrected 
to preserved `DECIMAL(precision, scale)`.
   - `PostgreSQL` source/sink: unsupported `_BYTEA → ARRAY<TINYINT>` row 
corrected (no `_bytea` case in `PostgresTypeConverter`); sink 
`INT2/SMALLSERIAL` separated from `INT4/SERIAL` (`SMALLINT` vs `INT`); source 
`TIMESTAMPTZ(s) → TIMESTAMP(s)` corrected to `TIMESTAMP_TZ`.
   - `DB2` source: `DECIMAL → DECIMAL(38,18)` corrected to preserved 
`DECIMAL(precision, scale)`.
   
   **Feature checkboxes vs. reader/sink implementation:**
   - `TDengine` source: unchecked `exactly-once` (splits carry no offsets, 
re-sent after restore) and `column projection` (`TDengineSource` does not 
implement `SupportColumnProjection`).
   - `TDengine` sink: unchecked `exactly-once` (simple sink writer, no 
two-phase commit).
   - `Milvus` source: unchecked `exactly-once` (in-progress partitions are 
re-scanned from the beginning, matching the doc's own Notes).
   - `InfluxDB` source: unchecked `exactly-once` (splits are re-read from the 
start on restore).
   - `Phoenix` source: unchecked `stream` (it wraps the bounded JDBC reader, 
whose own page marks stream as unsupported).
   
   **Behavior descriptions and placeholders:**
   - `Http-Linear` source: corrected two claims — `binary` format and 
`binary_chunk_size` ARE inherited and effective from `HttpSource`, and 
pagination IS supported through the HTTP `pageing` block (both contradicted 
`LinearSource extends HttpSource`).
   - `Doris` sink FAQ: "uses JSON format for Stream Load by default" corrected 
— `doris.config` is required and `format` must be set explicitly or startup 
fails (`SeaTunnelRowSerializerFactory` NPEs).
   - Chinese `Doris`/`StarRocks` sink default `save_mode_create_template` 
examples used the deprecated `${table_name}` placeholder while the code default 
and English docs use `${table}`; aligned to `${table}`.
   - `Redis` sink: `LIST` "append" corrected to "add to the head of the list 
(`LPUSH`)" per `RedisSingleClient`; matching example heading fixed in the 
`Redis` source page.
   - `JsonPath` transform: fixed the SeatunnelRow example table column order — 
extracted fields are appended after the original columns 
(`MultipleFieldOutputTransform`).
   - Chinese `Mysql` sink: fixed garbled duplicated `DECIMAL((DECIMAL((...` 
cell text.
   
   ## Files updated
   
   49 files (25 English + 24 Chinese) across `docs/en|zh/transforms` (copy, 
jsonpath, llm) and `docs/en|zh/connectors` (source/sink of Clickhouse, Doris, 
StarRocks, Mysql, Oracle, SqlServer, DB2, PostgreSQL/PostgreSql, Phoenix, 
Redis, TDengine, Milvus, InfluxDB, Http, Http-Linear). Full list in the commit.
   
   ## Both English and Chinese docs checked
   
   Yes. Every fix was applied to the English doc and its Chinese counterpart 
where the same wrong content exists. The Chinese-only deviations 
(`${table_name}` templates, garbled DECIMAL cell) were fixed so zh matches en 
and the code.
   
   ## Duplicate PR check
   
   Checked all PRs created in the last 7 days (`gh pr list --search 
"created:>=2026-10-21"`): the recent docs PRs #13019, #12993, #12986, #12971 
(open) and #12951, #12941 (merged) were reviewed and their changed-file lists 
(retrieved via the API) were excluded from this batch. This PR does not touch 
any file or issue covered by those PRs (different connectors, different 
transforms, and different problems). #12981 (FieldMapper, another contributor) 
was also avoided.
   
   ## Verification
   
   - Cross-checked every changed row/claim against the connector/transform 
source code (converters, factory option rules, reader/snapshotState 
implementations) before editing.
   - Validated all changed markdown files programmatically: every table row has 
consistent pipe counts, and every relative link in the changed files resolves 
to an existing file.
   - Not run locally: the CI "Build website" Docusaurus job (it checks out the 
separate `apache/seatunnel-website` repo and runs a full npm install/build); 
the changes are table/text-only with no structural markdown changes, so the 
above checks cover the risk. 
   


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