[jira] [Created] (FLINK-7696) Add projection push-down support for TableSources with time attributes

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[jira] [Created] (FLINK-7696) Add projection push-down support for TableSources with time attributes

Shang Yuanchun (Jira)
Fabian Hueske created FLINK-7696:
------------------------------------

             Summary: Add projection push-down support for TableSources with time attributes
                 Key: FLINK-7696
                 URL: https://issues.apache.org/jira/browse/FLINK-7696
             Project: Flink
          Issue Type: Improvement
          Components: Table API & SQL
    Affects Versions: 1.4.0
            Reporter: Fabian Hueske


Table sources that implement the {{DefinedProctimeAttribute}} or {{DefinedRowtimeAttribute}} do not support projection push-down even if they also implement {{ProjectableTableSource}}.

There are several problems:
- the schema of a {{TableSource}} that implements {{DefinedRowtimeAttribute}} or {{DefinedProctimeAttribute}} is constructed in the catalog not in the {{TableSource}} (proctime fields are always appended at the end).
- the {{ProjectableTableSource.projectFields()}} method returns the projected fields as int indicies. In order to handle the indicies correctly, the TableSource would need to know about the internals of the Table API.
- {{ProjectableTableSource.projectFields()}} might reorder fields and move a proctime field into the middle of the schema. However, the TableSource has no control over that.
- A {{TableSource}} that implements {{DefinedRowtimeAttribute}} or {{DefinedProctimeAttribute}} would need to change the return values of {{getRowtimeAttribute()}} or {{getProctimeAttribute()}} depending on whether the attribute is kept or not.

Adjusting the schema of table sources inside of the Table API makes all of this quite messy. Maybe we need to refine the interfaces. For instance, we could ask users to explicitly add time indicator fields in the {{TypeInformation}} returned by {{TableSource.getReturnType()}}. However, that might collide with plans to add computable time attributes as proposed in FLINK-7548.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)