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

dataroaring pushed a commit to branch branch-3.0
in repository https://gitbox.apache.org/repos/asf/doris.git

commit 2261a094be66250d71cc3c1eb38dce4a1d190c14
Author: deardeng <565620...@qq.com>
AuthorDate: Fri Jul 19 12:03:37 2024 +0800

    [fix](cloud) To ensure compatibility with the cloud upgrade (#37708)
    
    Due to the cloud version being significantly outdated, to ensure
    compatibility with the cloud version, the version value has been lowered
    to 123
---
 .../org/apache/doris/mysql/privilege/Role.java     | 94 ++++++++++++----------
 1 file changed, 52 insertions(+), 42 deletions(-)

diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/mysql/privilege/Role.java 
b/fe/fe-core/src/main/java/org/apache/doris/mysql/privilege/Role.java
index 2cea07bec0b..4146da80827 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/mysql/privilege/Role.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/mysql/privilege/Role.java
@@ -1102,48 +1102,58 @@ public class Role implements Writable, 
GsonPostProcessable {
     }
 
     private void compatibilityErrEnum() {
-        if (Env.getCurrentEnvJournalVersion() >= FeMetaVersion.VERSION_129) {
-            if (Config.isNotCloudMode()) {
-                // not cloud mode,
-                // SHOW_VIEW_PRIV_DEPRECATED -> SHOW_VIEW_PRIV (9 -> 14)
-                tblPatternToPrivs.values().forEach(privBitSet -> {
-                    if 
(privBitSet.containsPrivs(Privilege.SHOW_VIEW_PRIV_DEPRECATED)) {
-                        // remove SHOW_VIEW_PRIV_DEPRECATED
-                        
privBitSet.unset(Privilege.SHOW_VIEW_PRIV_DEPRECATED.getIdx());
-                        // add SHOW_VIEW_PRIV
-                        privBitSet.set(Privilege.SHOW_VIEW_PRIV.getIdx());
-                    }
-                });
-            } else {
-                // cloud mode
-                // CLUSTER_USAGE_PRIV_DEPRECATED -> CLUSTER_USAGE_PRIV (9 -> 
12)
-                clusterPatternToPrivs.values().forEach(privBitSet -> {
-                    if 
(privBitSet.containsPrivs(Privilege.CLUSTER_USAGE_PRIV_DEPRECATED)) {
-                        // remove CLUSTER_USAGE_PRIV_DEPRECATED
-                        
privBitSet.unset(Privilege.CLUSTER_USAGE_PRIV_DEPRECATED.getIdx());
-                        // add CLUSTER_USAGE_PRIV
-                        privBitSet.set(Privilege.CLUSTER_USAGE_PRIV.getIdx());
-                    }
-                });
-                // STAGE_USAGE_PRIV_DEPRECATED -> STAGE_USAGE_PRIV (10 -> 13)
-                stagePatternToPrivs.values().forEach(privBitSet -> {
-                    if 
(privBitSet.containsPrivs(Privilege.STAGE_USAGE_PRIV_DEPRECATED)) {
-                        // remove CLUSTER_USAGE_PRIV_DEPRECATED
-                        
privBitSet.unset(Privilege.STAGE_USAGE_PRIV_DEPRECATED.getIdx());
-                        // add CLUSTER_USAGE_PRIV
-                        privBitSet.set(Privilege.STAGE_USAGE_PRIV.getIdx());
-                    }
-                });
-                // SHOW_VIEW_PRIV_CLOUD_DEPRECATED -> SHOW_VIEW_PRIV (11 -> 14)
-                tblPatternToPrivs.values().forEach(privBitSet -> {
-                    if 
(privBitSet.containsPrivs(Privilege.SHOW_VIEW_PRIV_CLOUD_DEPRECATED)) {
-                        // remove SHOW_VIEW_PRIV_CLOUD_DEPRECATED
-                        
privBitSet.unset(Privilege.SHOW_VIEW_PRIV_CLOUD_DEPRECATED.getIdx());
-                        // add SHOW_VIEW_PRIV
-                        privBitSet.set(Privilege.SHOW_VIEW_PRIV.getIdx());
-                    }
-                });
-            }
+        int currentVersion = Env.getCurrentEnvJournalVersion();
+        if (currentVersion < FeMetaVersion.VERSION_123) {
+            // For versions lower than VERSION_123, neither the community nor 
the cloud requires compatibility logic.
+            return;
+        }
+
+        LOG.info("auth into compatibility logic, currentVersion={}", 
currentVersion);
+        if (Config.isNotCloudMode() && currentVersion >= 
FeMetaVersion.VERSION_129) {
+            // not cloud mode,
+            // For versions greater than VERSION_123,
+            // the community requires versions above VERSION_129 to follow 
compatibility logic.
+
+            // SHOW_VIEW_PRIV_DEPRECATED -> SHOW_VIEW_PRIV (9 -> 14)
+            tblPatternToPrivs.values().forEach(privBitSet -> {
+                if 
(privBitSet.containsPrivs(Privilege.SHOW_VIEW_PRIV_DEPRECATED)) {
+                    // remove SHOW_VIEW_PRIV_DEPRECATED
+                    
privBitSet.unset(Privilege.SHOW_VIEW_PRIV_DEPRECATED.getIdx());
+                    // add SHOW_VIEW_PRIV
+                    privBitSet.set(Privilege.SHOW_VIEW_PRIV.getIdx());
+                }
+            });
+        } else {
+            // cloud mode
+            // For versions greater than VERSION_123, the cloud requires 
compatibility logic.
+
+            // CLUSTER_USAGE_PRIV_DEPRECATED -> CLUSTER_USAGE_PRIV (9 -> 12)
+            clusterPatternToPrivs.values().forEach(privBitSet -> {
+                if 
(privBitSet.containsPrivs(Privilege.CLUSTER_USAGE_PRIV_DEPRECATED)) {
+                    // remove CLUSTER_USAGE_PRIV_DEPRECATED
+                    
privBitSet.unset(Privilege.CLUSTER_USAGE_PRIV_DEPRECATED.getIdx());
+                    // add CLUSTER_USAGE_PRIV
+                    privBitSet.set(Privilege.CLUSTER_USAGE_PRIV.getIdx());
+                }
+            });
+            // STAGE_USAGE_PRIV_DEPRECATED -> STAGE_USAGE_PRIV (10 -> 13)
+            stagePatternToPrivs.values().forEach(privBitSet -> {
+                if 
(privBitSet.containsPrivs(Privilege.STAGE_USAGE_PRIV_DEPRECATED)) {
+                    // remove CLUSTER_USAGE_PRIV_DEPRECATED
+                    
privBitSet.unset(Privilege.STAGE_USAGE_PRIV_DEPRECATED.getIdx());
+                    // add CLUSTER_USAGE_PRIV
+                    privBitSet.set(Privilege.STAGE_USAGE_PRIV.getIdx());
+                }
+            });
+            // SHOW_VIEW_PRIV_CLOUD_DEPRECATED -> SHOW_VIEW_PRIV (11 -> 14)
+            tblPatternToPrivs.values().forEach(privBitSet -> {
+                if 
(privBitSet.containsPrivs(Privilege.SHOW_VIEW_PRIV_CLOUD_DEPRECATED)) {
+                    // remove SHOW_VIEW_PRIV_CLOUD_DEPRECATED
+                    
privBitSet.unset(Privilege.SHOW_VIEW_PRIV_CLOUD_DEPRECATED.getIdx());
+                    // add SHOW_VIEW_PRIV
+                    privBitSet.set(Privilege.SHOW_VIEW_PRIV.getIdx());
+                }
+            });
         }
     }
 


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to