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

FilterPushDownRule::visitSubQuery does not consider aliased columns.

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 0.8.0, 0.9.0
    • Planner/Optimizer
    • 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

              blrunner JaeHwa Jung
              blrunner JaeHwa Jung
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Slack

                  Issue deployment