-
Bug
-
Resolution: Done
-
Major
-
1.5.0.Final
-
None
-
False
-
False
-
Undefined
-
-
There are a few issues about the SchemaNameAdjuster logic:
- The default implementation is AVRO-specific (see
DBZ-2511). - There's no configuration to provide an implementation that would correspond to the converter being used (e.g. JSON).
- Although SchemaNameAdjuster is declared an interface, the core framework uses its static API (e.g. SchemaNameAdjuster#isValidFullname(String)) which is also AVRO-specific.
Specifically, it becomes a problem under the following circumstances:
- A JSON converter is used.
- The team that runs the connector is not in control of the source database schema. In a multi-tenant environment, customers and other technical specialists can execute arbitrary statements on the database (e.g. create and rename tables).
Expected behavior:
- The default adjuster implementation is as permissive as possible. Ideally, a null object.
- The adjuster implementation is configurable.
- By default, the adjuster implementation is derived from the converter (e.g. AVRO, JSON, etc.)
- is related to
-
DBZ-5541 Default schema.name.adjustment.mode to "none"
- Closed