Uploaded image for project: 'Tajo'
  1. Tajo
  2. TAJO-787

FilterPushDownRule::visitSubQuery does not consider aliased columns.

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 0.8.0, 0.9.0
    • Component/s: Planner/Optimizer
    • Labels:
      None

      Description

      I found a bug for FilterPushDownRule as follows:

      • Schema
        default> \d table1;
        
        table name: default.table1
        table path: hdfs://localhost:9010/tajo/warehouse/table1
        store type: CSV
        number of rows: 0
        volume: 60 B
        Options: 
        	'csvfile.delimiter'='|'
        
        schema: 
        id	INT4
        name	TEXT
        score	FLOAT4
        type	TEXT
        
        
        default> \d table2;
        
        table name: default.table2
        table path: hdfs://localhost:9010/tajo/warehouse/table2
        store type: CSV
        number of rows: 0
        volume: 61 B
        Options: 
        	'csvfile.delimiter'='|'
        
        schema: 
        id	INT4
        name	TEXT
        score	FLOAT4
        type	TEXT
        
      • SQL
        select t1.id, t1.name, t1.cnt
        from (
          select a.id, a.name, count(*) as cnt
          from table1 a
          group by a.id, a.name
        ) t1
        where t1.cnt > 0
        
      • Error Message
        java.lang.NullPointerException
        	at org.apache.tajo.catalog.Column.equals(Column.java:115)
        	at java.util.ArrayList.indexOf(ArrayList.java:216)
        	at java.util.ArrayList.contains(ArrayList.java:199)
        	at java.util.AbstractCollection.containsAll(AbstractCollection.java:278)
        	at org.apache.tajo.catalog.Schema.containsAll(Schema.java:269)
        	at org.apache.tajo.engine.planner.LogicalPlanner.checkIfBeEvaluatedAtRelation(LogicalPlanner.java:1575)
        	at org.apache.tajo.engine.planner.rewrite.FilterPushDownRule.visitScan(FilterPushDownRule.java:315)
        	at org.apache.tajo.engine.planner.rewrite.FilterPushDownRule.visitScan(FilterPushDownRule.java:35)
        
        

        If I remove where clause, it will run successfully.

        Attachments

        1. TAJO-787.patch
          3 kB
          Jaehwa Jung
        2. TAJO-787_2.patch
          3 kB
          Jaehwa Jung

          Issue Links

            Activity

              People

              • Assignee:
                blrunner Jaehwa Jung
                Reporter:
                blrunner Jaehwa Jung
              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: