Maciej Bryński created FLINK-23385: --------------------------------------
Summary: org.apache.flink.table.api.TableException when using REGEXP_EXTRACT Key: FLINK-23385 URL: https://issues.apache.org/jira/browse/FLINK-23385 Project: Flink Issue Type: Bug Components: Table SQL / Planner Affects Versions: 1.13.1 Reporter: Maciej Bryński When using REGEXP_EXTRACT on NOT NULL column I'm getting following exception {code:java} select COALESCE(REGEXP_EXTRACT(test, '[A-Z]+'), '-') from test limit 10 [ERROR] Could not execute SQL statement. Reason: org.apache.flink.table.api.TableException: Column 'EXPR$0' is NOT NULL, however, a null value is being written into it. You can set job configuration 'table.exec.sink.not-null-enforcer'='drop' to suppress this exception and drop such records silently. {code} I think the reason is that nullability of result is wrongly calculated. Example: {code:java} create table test ( test STRING NOT NULL ) WITH ( 'connector' = 'datagen' ); explain select COALESCE(REGEXP_EXTRACT(test, '[A-Z]+'), '-') from test == Abstract Syntax Tree == LogicalProject(EXPR$0=[REGEXP_EXTRACT($0, _UTF-16LE'[A-Z]+')]) +- LogicalTableScan(table=[[default_catalog, default_database, test]])== Optimized Physical Plan == Calc(select=[REGEXP_EXTRACT(test, _UTF-16LE'[A-Z]+') AS EXPR$0]) +- TableSourceScan(table=[[default_catalog, default_database, test]], fields=[test])== Optimized Execution Plan == Calc(select=[REGEXP_EXTRACT(test, _UTF-16LE'[A-Z]+') AS EXPR$0]) +- TableSourceScan(table=[[default_catalog, default_database, test]], fields=[test]){code} As you can see Flink is removing COALESCE from query which is wrong. -- This message was sent by Atlassian Jira (v8.3.4#803005)