This is an automated email from the ASF dual-hosted git repository.

lzljs3620320 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/flink.git


The following commit(s) were added to refs/heads/master by this push:
     new 9ae6171  [hotfix][avro] Add comments to explain why projection 
pushdown works for avro bulk format
9ae6171 is described below

commit 9ae617167bfcc1e19e4bf3d3f8dc631eebc7e1cb
Author: tsreaper <[email protected]>
AuthorDate: Mon Feb 21 10:28:22 2022 +0800

    [hotfix][avro] Add comments to explain why projection pushdown works for 
avro bulk format
    
    This closes #18717
---
 .../java/org/apache/flink/formats/avro/AvroFileFormatFactory.java   | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git 
a/flink-formats/flink-avro/src/main/java/org/apache/flink/formats/avro/AvroFileFormatFactory.java
 
b/flink-formats/flink-avro/src/main/java/org/apache/flink/formats/avro/AvroFileFormatFactory.java
index 2d09d93..5e128ec 100644
--- 
a/flink-formats/flink-avro/src/main/java/org/apache/flink/formats/avro/AvroFileFormatFactory.java
+++ 
b/flink-formats/flink-avro/src/main/java/org/apache/flink/formats/avro/AvroFileFormatFactory.java
@@ -121,6 +121,12 @@ public class AvroFileFormatFactory implements 
BulkReaderFormatFactory, BulkWrite
                 DynamicTableSource.Context context,
                 DataType physicalDataType,
                 int[][] projections) {
+            // avro is a file format that keeps schemas in file headers,
+            // if the schema given to the reader is not equal to the schema in 
header,
+            // reader will automatically map the fields and give back records 
with our desired
+            // schema
+            //
+            // for detailed discussion see comments in 
https://github.com/apache/flink/pull/18657
             DataType producedDataType = 
Projection.of(projections).project(physicalDataType);
             return new AvroGenericRecordBulkFormat(
                     context, (RowType) 
producedDataType.getLogicalType().copy(false));

Reply via email to