OrcTableSource implements BatchTableSource<Row>, ProjectableTableSource<Row>, FilterableTableSource<Row> { @Override public TypeInformation<Row> getReturnType() { return typeInfo; } private  OrcTableSource(String path, TypeDescription orcSchema, Configuration orcConfig, int batchSize, boolean recursiveEnumeration); private  OrcTableSource(String path, TypeDescription orcSchema, Configuration orcConfig,
							int batchSize, boolean recursiveEnumeration,
							int[] selectedFields, Predicate[] predicates); @Override DataSet<Row> getDataSet(ExecutionEnvironment execEnv); @Override TypeInformation<Row> getReturnType(); @Override TableSchema getTableSchema(); @Override TableSource<Row> projectFields(int[] selectedFields); @Override TableSource<Row> applyPredicate(List<Expression> predicates); @Override boolean isFilterPushedDown(); @Override String explainSource(); static Builder builder();  }
@Test public void testGetReturnType() throws Exception { OrcTableSource orc = OrcTableSource.builder() .path(getPath(TEST_FILE_NESTED)) .forOrcSchema(TEST_SCHEMA_NESTED) .build(); TypeInformation<Row> returnType = orc.getReturnType(); assertNotNull(returnType); assertTrue(returnType instanceof RowTypeInfo); RowTypeInfo rowType = (RowTypeInfo) returnType; RowTypeInfo expected = Types.ROW_NAMED(getNestedFieldNames(), getNestedFieldTypes()); assertEquals(expected, rowType); }