Ning Sheng created CALCITE-4696:
-----------------------------------

             Summary: The method of EnumerableTableScan.fieldExpression throw 
NullPointerException
                 Key: CALCITE-4696
                 URL: https://issues.apache.org/jira/browse/CALCITE-4696
             Project: Calcite
          Issue Type: Bug
          Components: core
            Reporter: Ning Sheng


test sql
{code:java}
select d.deptno, min(e.empid) from hr.emps as e join hr.depts as d on e.deptno 
= d.deptno group by d.deptno having count(*) > 1
{code}
when dept has list element.
{code:java}
public static class Department { 
  public final int deptno; 
  public final String name; 
  public final List<Employee> employees;
}
{code}
It throw NullException in EnumerableTableScan.java because relFieldType is 
JavaType of java.util.List.
{code:java}
private Expression fieldExpression(ParameterExpression row_, int i, PhysType 
physType, JavaRowFormat format) { 
  final Expression e = format.field(row_, i, null, 
physType.getJavaFieldType(i));     
  final RelDataType relFieldType = 
physType.getRowType().getFieldList().get(i).getType(); 
  switch (relFieldType.getSqlTypeName()) { 
    case ARRAY: 
    case MULTISET: 
      final RelDataType fieldType = relFieldType.getComponentType(); 
      if (fieldType != null && fieldType.isStruct()) {
{code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to