[ 
https://issues.apache.org/jira/browse/FLINK-6516?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16010262#comment-16010262
 ] 

ASF GitHub Bot commented on FLINK-6516:
---------------------------------------

Github user godfreyhe commented on a diff in the pull request:

    https://github.com/apache/flink/pull/3860#discussion_r116451558
  
    --- Diff: 
flink-libraries/flink-table/src/main/scala/org/apache/flink/table/plan/nodes/PhysicalTableSourceScan.scala
 ---
    @@ -70,4 +73,18 @@ abstract class PhysicalTableSourceScan(
     
       def copy(traitSet: RelTraitSet, tableSource: TableSource[_]): 
PhysicalTableSourceScan
     
    +  override def estimateRowCount(mq: RelMetadataQuery): Double = {
    +    val tableSourceTable = getTable.unwrap(classOf[TableSourceTable[_]])
    +
    +    if (tableSourceTable.getStatistic != FlinkStatistic.UNKNOWN) {
    --- End diff --
    
    The basic idea of current accessing order is let each ``TableSource`` 
decide its statistic (Only it knows how to get correct statistic. And  in 
future there are different kinds of ``XXXTableSource`` ).
    
    we can change the result value of ``fromExternalCatalogTable`` method in 
``TableSourceConverter``:
    
    ``
    def fromExternalCatalogTable(externalCatalogTable: ExternalCatalogTable): 
(T, TableStats)
    ``
    
    Currently, if a table source is ``FilterableTableSource``, the returned 
``TableStats`` is null.


> using real row count instead of dummy row count when optimizing plan
> --------------------------------------------------------------------
>
>                 Key: FLINK-6516
>                 URL: https://issues.apache.org/jira/browse/FLINK-6516
>             Project: Flink
>          Issue Type: Improvement
>          Components: Table API & SQL
>            Reporter: godfrey he
>            Assignee: godfrey he
>
> Currently, the statistic of {{TableSourceTable}} is {{UNKNOWN}} mostly, and 
> the statistic from {{ExternalCatalog}} maybe is null also. Actually, only 
> each {{TableSource}} knows its statistic exactly, especial for 
> {{FilterableTableSource}} and {{PartitionableTableSource}}. So we can add 
> {{getTableStats}} method in {{TableSource}}, and use it in TableSourceScan's 
> estimateRowCount method to get real row count.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to