public static List<ViewFieldType> viewToFieldTypes(List<FieldType> fields) { List<ViewFieldType> sqlFields = new ArrayList<>(); for (FieldType fieldType : fields) { ViewFieldType sqlField = new ViewFieldType(fieldType.getName(), fieldType.getType().getName()); sqlField.setPrecision(fieldType.getPrecision()); sqlField.setScale(fieldType.getScale()); sqlField.setStartUnit(name(fieldType.getStartUnit())); sqlField.setEndUnit(name(fieldType.getEndUnit())); sqlField.setFractionalSecondPrecision(fieldType.getFractionalSecondPrecision()); sqlField.setIsNullable(fieldType.getIsNullable()); sqlField.setTypeFamily(fieldType.getType().getFamily().toString()); sqlFields.add(sqlField); } return sqlFields; }
public static List<ViewFieldType> getBatchSchemaFields(final BatchSchema batchSchema) { final List<ViewFieldType> fields = Lists.newArrayList(); for (int i = 0; i < batchSchema.getFieldCount(); i++) { final org.apache.arrow.vector.types.pojo.Field field = batchSchema.getColumn(i); final ViewFieldType viewField = new ViewFieldType(field.getName(), TypeInferenceUtils.getCalciteTypeFromMinorType(MajorTypeHelper.getMajorTypeForField(field).getMinorType()).toString()); final CompleteType completeType = CompleteType.fromField(field); final SqlTypeName sqlTypeName = TypeInferenceUtils.getCalciteTypeFromMinorType(getMajorTypeForField(field).getMinorType()); viewField.setPrecision(completeType.getPrecision()); viewField.setScale(completeType.getScale()); viewField.setIsNullable(true); viewField.setTypeFamily(sqlTypeName.getFamily().toString()); // TODO (AH) //viewField.setStartUnit(); //viewField.setEndUnit(); //viewField.setFractionalSecondPrecision(); fields.add(viewField); } return fields; } }