masteryhx commented on code in PR #21635:
URL: https://github.com/apache/flink/pull/21635#discussion_r1085568912


##########
flink-core/src/main/java/org/apache/flink/api/common/typeutils/CompositeTypeSerializerSnapshot.java:
##########
@@ -290,26 +332,26 @@ protected void readOuterSnapshot(
             throws IOException {}
 
     /**
-     * Checks whether the outer snapshot is compatible with a given new 
serializer.
+     * Checks the schema compatibility of the given old serializer snapshot 
based on the outer
+     * snapshot.
      *
-     * <p>The base implementation of this method just returns {@code true}, 
i.e. it assumes that the
-     * outer serializer only has nested serializers and no extra information, 
and therefore the
-     * result of the check must always be true. Otherwise, if the outer 
serializer contains some
+     * <p>The base implementation of this method assumes that the outer 
serializer only has nested
+     * serializers and no extra information, and therefore the result of the 
check is {@link
+     * OuterSchemaCompatibility#COMPATIBLE_AS_IS}. Otherwise, if the outer 
serializer contains some
      * extra information that has been persisted as part of the serializer 
snapshot, this must be
      * overridden. Note that this method and the corresponding methods {@link
      * #writeOuterSnapshot(DataOutputView)}, {@link #readOuterSnapshot(int, 
DataInputView,
      * ClassLoader)} needs to be implemented.
      *
-     * @param newSerializer the new serializer, which contains the new outer 
information to check
-     *     against.
-     * @return a flag indicating whether or not the new serializer's outer 
information is compatible
-     *     with the one written in this snapshot.
-     * @deprecated this method is deprecated, and will be removed in the 
future. Please implement
-     *     {@link #resolveOuterSchemaCompatibility(TypeSerializer)} instead.
+     * @param oldSerializerSnapshot the old serializer snapshot, which 
contains the old outer
+     *     information to check against.
+     * @return a {@link OuterSchemaCompatibility} indicating whether or the 
new serializer's outer
+     *     information is compatible, requires migration, or incompatible with 
the one written in
+     *     this snapshot.
      */
-    @Deprecated
-    protected boolean isOuterSnapshotCompatible(S newSerializer) {

Review Comment:
   Actually, `isOuterSnapshotCompatible` will not be used in current 
implementation.
   
   Currently, the old method called `OuterSchemaCompatibility 
resolveOuterSchemaCompatibility(S newSerializer)` behaves like the old method 
in TypeSerializer -- it calls the new method as its default implementation.
   
   Users could make its logic work without modifying any codes.
   Also if they need to migrate, they could implement the new method called 
`OuterSchemaCompatibility 
resolveOuterSchemaCompatibility(TypeSerializerSnapshot<T> 
oldSerializerSnapshot)` and remove the old method.
   
   In this logic, I think maybe you're right. Users will find its original 
`isOuterSnapshotCompatible` could not work which will confused them.
   Maybe we still need to remove it and add descripation in the release note, 
WDYT?



-- 
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.

To unsubscribe, e-mail: issues-unsubscr...@flink.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to