dawidwys commented on a change in pull request #13763:
URL: https://github.com/apache/flink/pull/13763#discussion_r512673931



##########
File path: 
flink-formats/flink-avro/src/main/java/org/apache/flink/formats/avro/typeutils/AvroSchemaConverter.java
##########
@@ -297,17 +299,22 @@ private static DataType convertToDataType(Schema schema) {
         * @return Avro's {@link Schema} matching this logical type.
         */
        public static Schema convertToSchema(LogicalType logicalType) {
-               return convertToSchema(logicalType, "record");
+               return convertToSchema(logicalType, "record", true);
        }
 
        /**
         * Converts Flink SQL {@link LogicalType} (can be nested) into an Avro 
schema.
         *
         * @param logicalType logical type
         * @param rowName     the record name
+        * @param top         whether it is parsing the root record,
+        *                    if it is, the logical type nullability would be 
ignored
         * @return Avro's {@link Schema} matching this logical type.
         */
-       public static Schema convertToSchema(LogicalType logicalType, String 
rowName) {
+       public static Schema convertToSchema(
+                       LogicalType logicalType,
+                       String rowName,
+                       boolean top) {

Review comment:
       Sorry, but I don't understand your arguments.
   
   What do you mean by "inferring" the outer row nullability? There is no 
inference. In SQL the outer row is always `NOT NULL` or otherwise the row 
simply does not exist.
   
   In the current shape you have two arguments that contradict each other. Take 
this example:
   
   ```
   DataType type = DataTypes.ROW(
       DataTypes.FIELD("f0", DataTypes.ROW(
           DataTypes.FIELD("f1", DataTypes.BIGINT()
       ).nullable()
   ).nullable();
   
   Schema schema = convertToSchema(type, "record", true) // <- you're 
overriding the property of type
   // you can achieve the same with
   // Schema schema = convertToSchema(type.notNull(), "record")
   ```
   
   It's the Planners task to produce a `notNull` type for a Tables type.
   




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to