presto-main/src/main/java/io/prestosql/operator/scalar/MapEqualOperator.java/MapEqualOperator/equals
class MapEqualOperator:    @TypeParameter("K")
    @TypeParameter("V")
    @SqlNullable
    @SqlType(StandardTypes.BOOLEAN)
    public static Boolean equals(
            @OperatorDependency(operator = EQUAL, argumentTypes = {"K", "K"}) MethodHandle keyEqualsFunction,
            @OperatorDependency(operator = HASH_CODE, argumentTypes = "K") MethodHandle keyHashcodeFunction,
            @OperatorDependency(operator = EQUAL, argumentTypes = {"V", "V"}) MethodHandle valueEqualsFunction,
            @TypeParameter("K") Type keyType,
            @TypeParameter("V") Type valueType,
            @SqlType("map(K,V)") Block leftMapBlock,
            @SqlType("map(K,V)") Block rightMapBlock)
    {
        return MapGenericEquality.genericEqual(
                keyType,
                leftMapBlock,
                rightMapBlock,
                (leftMapIndex, rightMapIndex) -> {
                    Object leftValue = readNativeValue(valueType, leftMapBlock, leftMapIndex);
                    if (leftValue == null) {
                        return null;
                    }
                    Object rightValue = readNativeValue(valueType, rightMapBlock, rightMapIndex);
                    if (rightValue == null) {
                        return null;
                    }
                    return (Boolean) valueEqualsFunction.invoke(leftValue, rightValue);
                });
    }