[
https://issues.apache.org/jira/browse/FLINK-39201?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Fabian Paul reassigned FLINK-39201:
-----------------------------------
Assignee: Fabian Paul
> Length constraints cannot handle null values
> --------------------------------------------
>
> Key: FLINK-39201
> URL: https://issues.apache.org/jira/browse/FLINK-39201
> Project: Flink
> Issue Type: Bug
> Components: Table SQL / Planner
> Affects Versions: 2.1.1
> Reporter: Fabian Paul
> Assignee: Fabian Paul
> Priority: Major
>
> When dealing with nullable columns that have a length constraint writing
> fails with a NPE because the constraint enforcer cannot be applied to null
> values.
> As basic reproduction is
> {code:java}
> @Test
> void testCharLengthEnforcerNpeOnNullableColumn()
> throws ExecutionException, InterruptedException {
> final StreamTableEnvironment tableEnv =
> StreamTableEnvironment.create(env);
> // Row 2 has null values in the nullable CHAR(8), CHAR(6), and
> VARCHAR(6) columns
> final List<Row> rows =
> Arrays.asList(
> Row.of(1, "Apache Flink", "SQL RuleZ", 11, 111,
> "SQL"),
> Row.of(2, null, null, 22, 222, null)); final
> SharedReference<List<RowData>> results = sharedObjects.add(new ArrayList<>());
> tableEnv.createTable(
> "T1",
> TableFactoryHarness.newBuilder()
> .schema(schemaForCharLengthEnforcer())
> .source(new TestSource(rows))
> .sink(buildRuntimeSinkProvider(new
> RecordWriter(results)))
> .build()); tableEnv.getConfig()
> .set(
> TABLE_EXEC_SINK_TYPE_LENGTH_ENFORCER.key(),
>
> ExecutionConfigOptions.TypeLengthEnforcer.TRIM_PAD.name());
> assertThatThrownBy(
> () ->
> tableEnv.executeSql("INSERT INTO T1 SELECT *
> FROM T1")
> .await())
> .isInstanceOf(ExecutionException.class)
> .satisfies(anyCauseMatches(NullPointerException.class));
> }
> {code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)