oracledb_cdc: enable prefetch_rows via config - #4698
Conversation
d23edae to
efa5e58
Compare
efa5e58 to
5c9f27a
Compare
| Description("The number of rows Oracle fetches per network round-trip, for both snapshot and streaming reads. This value is passed straight through to the underlying Oracle connection, which otherwise auto-tunes it based on row width. For narrow rows the resulting value can still be small enough that round-trip latency, rather than throughput, ends up limiting read speed — raising this trades some memory per fetch for fewer round-trips."). | ||
| ShortDescription("Rows fetched per network round-trip from Oracle; raising this can reduce round-trip-bound read latency for narrow rows."). | ||
| Example(1000). | ||
| LintRule(`root = if this <= 0 { [ "` + ociFieldPrefetchRows + ` must be greater than 0" ] }`). |
There was a problem hiding this comment.
This LintRule (added by the second commit, "oracledb_cdc: add linter for prefetch_rows") has no test covering it.
ConfigSpec.ParseYAML does not evaluate field lint rules, so TestParsePrefetchRowsConfig only exercises the runtime prefetchRows <= 0 check in parsePrefetchRowsConfig — see config_test.go#L262-L272, where require.NoError(t, err) on ParseYAML for prefetch_rows: 0 confirms the lint never runs there. A typo'd or otherwise ineffective lint rule would therefore land green.
The project test patterns cover this case with a config-linter test (service.NewEnvironment().NewComponentConfigLinter() + LintInputYAML, per the "Config Linting" pattern in CLAUDE.md → tester agent). Suggest adding a small table asserting that prefetch_rows: 0 yields the expected prefetch_rows must be greater than 0 lint and that a valid value yields none.
No description provided.