presto-hive/src/main/java/io/prestosql/plugin/hive/HiveCoercionRecordCursor.java/HiveCoercionRecordCursor/StructCoercer
class HiveCoercionRecordCursor:        public StructCoercer(TypeManager typeManager, HiveType fromHiveType, HiveType toHiveType, BridgingRecordCursor bridgingRecordCursor)
        {
            requireNonNull(typeManager, "typeManage is null");
            requireNonNull(fromHiveType, "fromHiveType is null");
            requireNonNull(toHiveType, "toHiveType is null");
            this.bridgingRecordCursor = requireNonNull(bridgingRecordCursor, "bridgingRecordCursor is null");
            List<HiveType> fromFieldHiveTypes = extractStructFieldTypes(fromHiveType);
            List<HiveType> toFieldHiveTypes = extractStructFieldTypes(toHiveType);
            this.fromFieldTypes = fromHiveType.getType(typeManager).getTypeParameters();
            this.toType = toHiveType.getType(typeManager);
            this.toFieldTypes = toType.getTypeParameters();
            this.coercers = new Coercer[toFieldHiveTypes.size()];
            for (int i = 0; i < min(fromFieldHiveTypes.size(), toFieldHiveTypes.size()); i++) {
                if (!fromFieldTypes.get(i).equals(toFieldTypes.get(i))) {
                    coercers[i] = createCoercer(typeManager, fromFieldHiveTypes.get(i), toFieldHiveTypes.get(i), bridgingRecordCursor);
                }
            }
            this.pageBuilder = new PageBuilder(ImmutableList.of(toType));
        }