zhangshenghang opened a new pull request, #13072:
URL: https://github.com/apache/seatunnel/pull/13072
## Contribution Acknowledgment
I acknowledge that I am contributing to **Apache SeaTunnel**.
## What documentation issues were found
While auditing the connector documentation against the actual source code on
`dev` (commit f3e1c2ee3b), I found 12 real documentation defects across 10
connector/common-option pages. Every issue was verified against the Java
sources before editing:
1. **Maxcompute source** (`docs/{en,zh}/connectors/source/Maxcompute.md`):
the `table_list` section claimed every per-table option (including
`read_columns`) falls back to the top-level value. In `MaxcomputeSource.java`
(lines 140-148), `read_columns` is the only per-table option **without** a
top-level fallback — a top-level `read_columns` is silently ignored in
`table_list` mode.
2. **Maxcompute sink** (`docs/{en,zh}/connectors/sink/Maxcompute.md`):
- `overwrite` is deprecated in code — `MaxcomputeSink.java` (lines 86-91)
logs a warning and forces `DataSaveMode.DROP_DATA` — but the doc did not
mention this.
- The `save_mode_create_template` placeholder list advertised
`${table_name}`, which is `@Deprecated` in `SaveModePlaceHolder` and never
replaced by this connector; the catalog replaces `${table}`
(`MaxComputeCatalogUtil.java`, lines 106-113).
- The claim "Only work on multi-table mode at now" is stale:
`MaxcomputeSink.getSaveModeHandler()` always builds a save-mode handler that
applies the template in single-table mode too.
3. **Paimon source** (`docs/en/connectors/source/Paimon.md`): `database` was
marked unconditionally required, but `PaimonSourceFactory.optionRule()` lists
it as optional and it is unused when reading via `table_list` (each item
carries its own `database`). Also fixed the `paimon.hadoop.conf` detail heading
from `[string]` to `[map]` (it is `mapType()` in `PaimonBaseOptions.java`). The
ZH counterpart is intentionally untouched because open PR #13062 already covers
it.
4. **Databend source** (`docs/{en,zh}/connectors/source/Databend.md`): the
`parallelism` feature checkbox was `[x]`, but `DatabendSource` extends
`AbstractSingleSplitSource` (single split; parallelism does not increase read
parallelism).
5. **Databend sink** (`docs/{en,zh}/connectors/sink/Databend.md`): the
SeaTunnel→Databend type mapping still showed `TIME → TIME`, while
`DatabendTypeConverter.java` (lines 70-78) maps `TIME → STRING` (Databend has
no TIME type; PR #13040 fixed the code and the source doc but missed this sink
table). Also added the missing `ARRAY`/`MAP`/`ROW`/`NULL` rows that the same
converter produces.
6. **FakeSource** (`docs/{en,zh}/connectors/source/FakeSource.md`):
`parallelism` was unchecked with a note arguing it should stay unchecked, but
`FakeSource` implements `SupportParallelism` and `FakeSourceSplitEnumerator`
computes `numReaders × split.num` splits and distributes them — this is exactly
what the [feature
definition](docs/en/introduction/concepts/connector-v2-features.md) describes.
7. **Elasticsearch sink** (`docs/{en,zh}/connectors/sink/Elasticsearch.md`):
removed the duplicated `### Schema Evolution` heading (two identical headings,
the second wrapping only the example); fixed the `auth_type` type column from
`string` to `enum` (`AuthTypeEnum` in `ElasticsearchBaseOptions.java`); in the
ZH page, fixed a full-width comma (,) inside the code span of the `hosts`
example, which breaks the example when copied, and the same duplicated-heading
problem.
8. **Pulsar source** (`docs/en/connectors/source/Pulsar.md`): the
`cursor.stop.mode` detail heading said `[String]` while the option is an
`enumType` (the table and the ZH page already said `Enum`).
9. **HBase sink** (`docs/{en,zh}/connectors/sink/Hbase.md`): the
`schema_save_mode` value list omitted the `IGNORE` enum value defined in
`SchemaSaveMode` and handled by `DefaultSaveModeHandler`.
10. **ObsFile sink** (`docs/{en,zh}/connectors/sink/ObsFile.md`): three
example code fences used the invalid language tag `hcocn` instead of `hocon`
(json/excel/csv examples).
11. **Sink Common Options**
(`docs/en/connectors/common-options/sink-common-options.md`): fixed the typo
"pipiles" → "pipelines".
12. **Sink Common Options ZH**
(`docs/zh/connectors/common-options/sink-common-options.md`): the option table
was missing the whole `Description` column that the EN page has, and the EN
"Important note" section (`plugin_input` vs `plugin_output` semantics) had no
ZH counterpart — both added to align the two languages.
## What was changed
- 20 documentation files (10 EN + 10 ZH pages; Paimon ZH deliberately
excluded to avoid conflicting with open PR #13062)
- 56 insertions / 38 deletions of real content: corrected option semantics,
deprecated-option notes, enum value lists, type-mapping rows, feature
checkboxes, heading structure, copy-paste-safe examples, and EN/ZH alignment
## Which areas/files were updated
- `docs/en/connectors/source/`: FakeSource, Databend, Maxcompute, Paimon,
Pulsar
- `docs/zh/connectors/source/`: FakeSource, Databend, Maxcompute
- `docs/en/connectors/sink/`: Databend, Maxcompute, Elasticsearch, Hbase,
ObsFile
- `docs/zh/connectors/sink/`: Databend, Maxcompute, Elasticsearch, Hbase,
ObsFile
- `docs/{en,zh}/connectors/common-options/sink-common-options.md`
## Were English and Chinese docs both checked?
Yes. Every fix was applied to both language versions except: (a) the Paimon
ZH page, which open PR #13062 already rewrites, and (b) the Pulsar
`cursor.stop.mode` heading and the Maxcompute `table_list` wording, where the
ZH page was already correct or the divergence did not exist there.
## How duplicate PRs from the last 7 days were checked
Before starting I listed all PRs created since 2026-10-24 that touch `docs/`
(#13062, #13050, #12993, #12986, #13081) and built an exclusion set of every
file they modify; none of those connectors were re-audited for this PR except
the Paimon EN page, which does not overlap with #13062's ZH-only Paimon
changes. Immediately before opening this PR I re-ran the search — no new
overlapping docs PR had appeared. This PR modifies only files outside all of
those PRs' file sets.
## How the change was verified
- Every option name, type, default, enum value and behavioral claim was read
back against the connector source (`Options.key` definitions, factory
`optionRule()`s, and the cited classes) before editing; file/line evidence is
listed above.
- Ran a repository-wide relative-link checker (3,163 links across `docs/en`
+ `docs/zh`): 0 broken links.
- Ran a repository-wide anchor checker (381 in-page anchors): the two
remaining reports were manually traced through the CommonMark fenced-code rules
and confirmed to be false positives (the `### UUID` target heading exists; the
checker mis-tracked non-fence ``` lines with info strings).
- Verified all edited markdown tables keep consistent column counts.
- No build/test run: this PR changes only `.md` files; there is no code or
config change to compile, and the repository has no markdown linter in CI. The
doc CI job is path-gated and only triggers website builds.
--
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]