You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flink.apache.org by "Arvid Heise (Jira)" <ji...@apache.org> on 2026/10/06 13:03:00 UTC

[jira] [Created] (FLINK-40926) Projection push down records a ReadingMetadata ability without metadata keys

Arvid Heise created FLINK-40926:
-----------------------------------

             Summary: Projection push down records a ReadingMetadata ability without metadata keys
                 Key: FLINK-40926
                 URL: https://issues.apache.org/jira/browse/FLINK-40926
             Project: Flink
          Issue Type: Bug
          Components: Table SQL / Planner
    Affects Versions: 2.4.0
            Reporter: Arvid Heise
            Assignee: Arvid Heise


For a source that implements SupportsReadingMetadata, the planner records a ReadingMetadata ability even if the query reads no metadata column:

{code:sql}
CREATE TABLE src (a INT, b BIGINT) WITH ('connector' = 'values');
SELECT a FROM src WHERE b > 1;
{code}

{noformat}
TableSourceScan(table=[[default_catalog, default_database, src, filter=[...], project=[a], metadata=[]]], fields=[a])
{noformat}

The compiled plan carries the same entry:

{code:json}
{ "type" : "ReadingMetadata", "metadataKeys" : [ ], "producedType" : "ROW<`a` INT> NOT NULL" }
{code}

The entry is added by PushProjectIntoTableSourceScanRule (similarly in ScanReuser) whenever the source supports metadata, independent of whether any metadata key is projected. On restore it results in an applyReadableMetadata call with an empty key list.

It is unclear whether this entry is needed at all; most restore test plans in flink-table-planner contain it.

Found while reviewing https://github.com/apache/flink/pull/29385.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)