[
https://issues.apache.org/jira/browse/FLINK-37132?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17946051#comment-17946051
]
Yanquan Lv edited comment on FLINK-37132 at 4/21/25 6:24 AM:
-------------------------------------------------------------
Hi, [~MOBIN].
Consider the situation that the user wishes to add an identifier_name field to
all tables, but adds an additional field to a certain table.
The job would be written as:
{panel}
transform:
- source-table: mydb.web_order
projection: *, order_id, UPPER(product_name) as product_name,
__namespace_name__ || '.' || __schema_name__ || '.' || __table_name__ AS
identifier_name, __data_event_type__ AS type, op_ts AS opts
- source-table: \.*.\.*
projection: *, __namespace_name__ || '.' || __schema_name__ || '.' ||
__table_name__ AS identifier_name, __data_event_type__ AS type, op_ts AS
opts{panel}
Because we do not have the exclude.table function in transform, if we do not
support this kind of configuration, it will be difficult for users to meet
their needs.
was (Author: JIRAUSER304414):
Hi, [~MOBIN].
Consider the situation that the user wishes to add an identifier_name field to
all tables, but adds an additional field to a certain table.
The job would be written as:
transform:
- source-table: mydb.web_order
projection: *, order_id, UPPER(product_name) as product_name,
_{_}namespace_name{_}_ || '.' || _{_}schema_name{_}_ || '.' ||
_{_}table_name{_}_ identifier_name
partition-keys: product_name
- source-table: \.*.\.*
projection: *, _{_}namespace_name{_}_ || '.' || _{_}schema_name{_}_ || '.'
|| _{_}table_name{_}_ identifier_name
Because we do not have the exclude.table function in transform, if we do not
support this kind of configuration, it will be difficult for users to meet
their needs.
> Add schema validation in Multi Transform
> ----------------------------------------
>
> Key: FLINK-37132
> URL: https://issues.apache.org/jira/browse/FLINK-37132
> Project: Flink
> Issue Type: Bug
> Components: Flink CDC
> Affects Versions: cdc-3.2.0, cdc-3.2.1
> Reporter: MOBIN
> Assignee: MOBIN
> Priority: Major
> Labels: pull-request-available
>
> The following scenarios should throw an exception of [different column count]
> {code:java}
> void testMultiTransformSchemaColumnsCompatibilityWithDiffColumnCount(
> ValuesDataSink.SinkApi sinkApi) {
> assertThatThrownBy(
> () ->
> runGenericTransformTest(
> sinkApi,
> Arrays.asList(
> new TransformDef(
>
> "default_namespace.default_schema.mytable2",
> "*",
> "age < 18",
> null,
> null,
> null,
> null,
> null),
> new TransformDef(
>
> "default_namespace.default_schema.mytable2",
> // reference part column
> "id,UPPER(name) AS name",
> "age >= 18",
> null,
> null,
> null,
> null,
> null)),
> Collections.emptyList()))
> .rootCause()
> .isExactlyInstanceOf(IllegalStateException.class)
> .hasMessage(
> "Unable to merge schema columns={`id` BIGINT NOT
> NULL,`name` VARCHAR(255),`age` TINYINT,`description` STRING}, primaryKeys=id,
> options=() "
> + "and columns={`id` BIGINT NOT NULL,`name`
> STRING}, primaryKeys=id, options=() with different column counts.");
> } {code}
> In Multi Transform, metadata fields like primaryKeys, partitionKeys, and
> options also need to be consistent.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)