@@ -1111,53 +1111,70 @@ private void compatibilityErrEnum() {
1111
1111
1112
1112
LOG .info ("auth into compatibility logic, currentVersion={}" , currentVersion );
1113
1113
if (Config .isNotCloudMode () && currentVersion >= FeMetaVersion .VERSION_129 ) {
1114
- // not cloud mode,
1115
- // For versions greater than VERSION_123,
1116
- // the community requires versions above VERSION_129 to follow compatibility logic.
1117
-
1118
- // SHOW_VIEW_PRIV_DEPRECATED -> SHOW_VIEW_PRIV (9 -> 14)
1119
1114
tblPatternToPrivs .values ().forEach (privBitSet -> {
1120
- if (privBitSet .containsPrivs (Privilege .SHOW_VIEW_PRIV_DEPRECATED )) {
1121
- // remove SHOW_VIEW_PRIV_DEPRECATED
1122
- privBitSet .unset (Privilege .SHOW_VIEW_PRIV_DEPRECATED .getIdx ());
1123
- // add SHOW_VIEW_PRIV
1124
- privBitSet .set (Privilege .SHOW_VIEW_PRIV .getIdx ());
1125
- }
1115
+ compatibilityAuthIndexChange (privBitSet );
1126
1116
});
1127
1117
} else if (Config .isCloudMode ()) {
1128
- // cloud mode
1129
- // For versions greater than VERSION_123, the cloud requires compatibility logic.
1130
-
1131
- // CLUSTER_USAGE_PRIV_DEPRECATED -> CLUSTER_USAGE_PRIV (9 -> 12)
1132
1118
clusterPatternToPrivs .values ().forEach (privBitSet -> {
1133
- if (privBitSet .containsPrivs (Privilege .CLUSTER_USAGE_PRIV_DEPRECATED )) {
1134
- // remove CLUSTER_USAGE_PRIV_DEPRECATED
1135
- privBitSet .unset (Privilege .CLUSTER_USAGE_PRIV_DEPRECATED .getIdx ());
1136
- // add CLUSTER_USAGE_PRIV
1137
- privBitSet .set (Privilege .CLUSTER_USAGE_PRIV .getIdx ());
1138
- }
1119
+ compatibilityAuthIndexChange (privBitSet );
1139
1120
});
1140
- // STAGE_USAGE_PRIV_DEPRECATED -> STAGE_USAGE_PRIV (10 -> 13)
1141
1121
stagePatternToPrivs .values ().forEach (privBitSet -> {
1142
- if (privBitSet .containsPrivs (Privilege .STAGE_USAGE_PRIV_DEPRECATED )) {
1143
- // remove CLUSTER_USAGE_PRIV_DEPRECATED
1144
- privBitSet .unset (Privilege .STAGE_USAGE_PRIV_DEPRECATED .getIdx ());
1145
- // add CLUSTER_USAGE_PRIV
1146
- privBitSet .set (Privilege .STAGE_USAGE_PRIV .getIdx ());
1147
- }
1122
+ compatibilityAuthIndexChange (privBitSet );
1148
1123
});
1149
- // SHOW_VIEW_PRIV_CLOUD_DEPRECATED -> SHOW_VIEW_PRIV (11 -> 14)
1150
1124
tblPatternToPrivs .values ().forEach (privBitSet -> {
1151
- if (privBitSet .containsPrivs (Privilege .SHOW_VIEW_PRIV_CLOUD_DEPRECATED )) {
1152
- // remove SHOW_VIEW_PRIV_CLOUD_DEPRECATED
1153
- privBitSet .unset (Privilege .SHOW_VIEW_PRIV_CLOUD_DEPRECATED .getIdx ());
1154
- // add SHOW_VIEW_PRIV
1155
- privBitSet .set (Privilege .SHOW_VIEW_PRIV .getIdx ());
1156
- }
1125
+ compatibilityAuthIndexChange (privBitSet );
1157
1126
});
1158
1127
}
1159
1128
}
1160
1129
1130
+ public static void compatibilityAuthIndexChange (PrivBitSet privBitSet ) {
1131
+ if (privBitSet == null ) {
1132
+ return ;
1133
+ }
1134
+ int currentVersion = Env .getCurrentEnvJournalVersion ();
1135
+ // not cloud mode,
1136
+ // For versions greater than VERSION_123,
1137
+ // the community requires versions above VERSION_129 to follow compatibility logic.
1138
+
1139
+ // SHOW_VIEW_PRIV_DEPRECATED -> SHOW_VIEW_PRIV (9 -> 14)
1140
+ if (Config .isNotCloudMode () && currentVersion >= FeMetaVersion .VERSION_129 ) {
1141
+ if (privBitSet .containsPrivs (Privilege .SHOW_VIEW_PRIV_DEPRECATED )) {
1142
+ // remove SHOW_VIEW_PRIV_DEPRECATED
1143
+ privBitSet .unset (Privilege .SHOW_VIEW_PRIV_DEPRECATED .getIdx ());
1144
+ // add SHOW_VIEW_PRIV
1145
+ privBitSet .set (Privilege .SHOW_VIEW_PRIV .getIdx ());
1146
+ }
1147
+ } else if (Config .isCloudMode ()) {
1148
+ // cloud mode
1149
+ // For versions greater than VERSION_123, the cloud requires compatibility logic.
1150
+
1151
+ // CLUSTER_USAGE_PRIV_DEPRECATED -> CLUSTER_USAGE_PRIV (9 -> 12)
1152
+
1153
+ if (privBitSet .containsPrivs (Privilege .CLUSTER_USAGE_PRIV_DEPRECATED )) {
1154
+ // remove CLUSTER_USAGE_PRIV_DEPRECATED
1155
+ privBitSet .unset (Privilege .CLUSTER_USAGE_PRIV_DEPRECATED .getIdx ());
1156
+ // add CLUSTER_USAGE_PRIV
1157
+ privBitSet .set (Privilege .CLUSTER_USAGE_PRIV .getIdx ());
1158
+ }
1159
+
1160
+ // STAGE_USAGE_PRIV_DEPRECATED -> STAGE_USAGE_PRIV (10 -> 13)
1161
+ if (privBitSet .containsPrivs (Privilege .STAGE_USAGE_PRIV_DEPRECATED )) {
1162
+ // remove CLUSTER_USAGE_PRIV_DEPRECATED
1163
+ privBitSet .unset (Privilege .STAGE_USAGE_PRIV_DEPRECATED .getIdx ());
1164
+ // add CLUSTER_USAGE_PRIV
1165
+ privBitSet .set (Privilege .STAGE_USAGE_PRIV .getIdx ());
1166
+ }
1167
+
1168
+ // SHOW_VIEW_PRIV_CLOUD_DEPRECATED -> SHOW_VIEW_PRIV (11 -> 14)
1169
+ if (privBitSet .containsPrivs (Privilege .SHOW_VIEW_PRIV_CLOUD_DEPRECATED )) {
1170
+ // remove SHOW_VIEW_PRIV_CLOUD_DEPRECATED
1171
+ privBitSet .unset (Privilege .SHOW_VIEW_PRIV_CLOUD_DEPRECATED .getIdx ());
1172
+ // add SHOW_VIEW_PRIV
1173
+ privBitSet .set (Privilege .SHOW_VIEW_PRIV .getIdx ());
1174
+ }
1175
+ }
1176
+ }
1177
+
1161
1178
private void rebuildPrivTables () {
1162
1179
globalPrivTable = new GlobalPrivTable ();
1163
1180
catalogPrivTable = new CatalogPrivTable ();
0 commit comments