stalary commented on code in PR #9786:
URL: https://github.com/apache/incubator-doris/pull/9786#discussion_r882408928
##########
fe/fe-core/src/main/java/org/apache/doris/policy/Policy.java:
##########
@@ -17,106 +17,97 @@
package org.apache.doris.policy;
-import org.apache.doris.analysis.CreatePolicyStmt;
-import org.apache.doris.analysis.Expr;
-import org.apache.doris.analysis.SqlParser;
-import org.apache.doris.analysis.SqlScanner;
+import org.apache.doris.analysis.CreateTablePolicyStmt;
import org.apache.doris.analysis.UserIdentity;
import org.apache.doris.catalog.Catalog;
import org.apache.doris.catalog.Database;
import org.apache.doris.catalog.Table;
import org.apache.doris.common.AnalysisException;
import org.apache.doris.common.io.Text;
import org.apache.doris.common.io.Writable;
-import org.apache.doris.common.util.SqlParserUtils;
import org.apache.doris.persist.gson.GsonPostProcessable;
import org.apache.doris.persist.gson.GsonUtils;
import org.apache.doris.qe.ConnectContext;
-import com.google.common.collect.Lists;
import com.google.gson.annotations.SerializedName;
-import lombok.AllArgsConstructor;
-import lombok.Data;
+
+import org.apache.commons.lang.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;
-import java.io.StringReader;
import java.util.List;
+import lombok.Data;
+
/**
* Save policy for filtering data.
**/
@Data
-@AllArgsConstructor
-public class Policy implements Writable, GsonPostProcessable {
-
- public static final String ROW_POLICY = "ROW";
+public abstract class Policy implements Writable, GsonPostProcessable {
private static final Logger LOG = LogManager.getLogger(Policy.class);
- @SerializedName(value = "dbId")
- private long dbId;
-
- @SerializedName(value = "tableId")
- private long tableId;
-
- @SerializedName(value = "policyName")
- private String policyName;
-
- /**
- * ROW.
- **/
@SerializedName(value = "type")
- private PolicyTypeEnum type;
+ protected PolicyTypeEnum type;
- /**
- * PERMISSIVE | RESTRICTIVE, If multiple types exist, the last type
prevails.
- **/
- @SerializedName(value = "filterType")
- private final FilterType filterType;
+ @SerializedName(value = "policyName")
+ protected String policyName;
- private Expr wherePredicate;
+ @SerializedName(value = "dbId")
+ protected long dbId;
Review Comment:
Is it possible that stroage is not for DB, but for be nodes?
##########
fe/fe-core/src/main/java/org/apache/doris/policy/Policy.java:
##########
@@ -17,106 +17,97 @@
package org.apache.doris.policy;
-import org.apache.doris.analysis.CreatePolicyStmt;
-import org.apache.doris.analysis.Expr;
-import org.apache.doris.analysis.SqlParser;
-import org.apache.doris.analysis.SqlScanner;
+import org.apache.doris.analysis.CreateTablePolicyStmt;
import org.apache.doris.analysis.UserIdentity;
import org.apache.doris.catalog.Catalog;
import org.apache.doris.catalog.Database;
import org.apache.doris.catalog.Table;
import org.apache.doris.common.AnalysisException;
import org.apache.doris.common.io.Text;
import org.apache.doris.common.io.Writable;
-import org.apache.doris.common.util.SqlParserUtils;
import org.apache.doris.persist.gson.GsonPostProcessable;
import org.apache.doris.persist.gson.GsonUtils;
import org.apache.doris.qe.ConnectContext;
-import com.google.common.collect.Lists;
import com.google.gson.annotations.SerializedName;
-import lombok.AllArgsConstructor;
-import lombok.Data;
+
+import org.apache.commons.lang.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;
-import java.io.StringReader;
import java.util.List;
+import lombok.Data;
+
/**
* Save policy for filtering data.
**/
@Data
-@AllArgsConstructor
-public class Policy implements Writable, GsonPostProcessable {
-
- public static final String ROW_POLICY = "ROW";
+public abstract class Policy implements Writable, GsonPostProcessable {
private static final Logger LOG = LogManager.getLogger(Policy.class);
- @SerializedName(value = "dbId")
- private long dbId;
-
- @SerializedName(value = "tableId")
- private long tableId;
-
- @SerializedName(value = "policyName")
- private String policyName;
-
- /**
- * ROW.
- **/
@SerializedName(value = "type")
- private PolicyTypeEnum type;
+ protected PolicyTypeEnum type;
- /**
- * PERMISSIVE | RESTRICTIVE, If multiple types exist, the last type
prevails.
- **/
- @SerializedName(value = "filterType")
- private final FilterType filterType;
+ @SerializedName(value = "policyName")
+ protected String policyName;
- private Expr wherePredicate;
+ @SerializedName(value = "dbId")
+ protected long dbId;
/**
* Policy bind user.
**/
@SerializedName(value = "user")
- private final UserIdentity user;
+ protected final UserIdentity user;
/**
* Use for Serialization/deserialization.
**/
@SerializedName(value = "originStmt")
- private String originStmt;
+ protected String originStmt;
+
+ public Policy() {
+ user = null;
Review Comment:
Maybe we can not use final for user?
##########
fe/fe-core/src/main/java/org/apache/doris/policy/Policy.java:
##########
@@ -17,106 +17,97 @@
package org.apache.doris.policy;
-import org.apache.doris.analysis.CreatePolicyStmt;
-import org.apache.doris.analysis.Expr;
-import org.apache.doris.analysis.SqlParser;
-import org.apache.doris.analysis.SqlScanner;
+import org.apache.doris.analysis.CreateTablePolicyStmt;
import org.apache.doris.analysis.UserIdentity;
import org.apache.doris.catalog.Catalog;
import org.apache.doris.catalog.Database;
import org.apache.doris.catalog.Table;
import org.apache.doris.common.AnalysisException;
import org.apache.doris.common.io.Text;
import org.apache.doris.common.io.Writable;
-import org.apache.doris.common.util.SqlParserUtils;
import org.apache.doris.persist.gson.GsonPostProcessable;
import org.apache.doris.persist.gson.GsonUtils;
import org.apache.doris.qe.ConnectContext;
-import com.google.common.collect.Lists;
import com.google.gson.annotations.SerializedName;
-import lombok.AllArgsConstructor;
-import lombok.Data;
+
+import org.apache.commons.lang.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;
-import java.io.StringReader;
import java.util.List;
+import lombok.Data;
+
/**
* Save policy for filtering data.
**/
@Data
-@AllArgsConstructor
-public class Policy implements Writable, GsonPostProcessable {
-
- public static final String ROW_POLICY = "ROW";
+public abstract class Policy implements Writable, GsonPostProcessable {
private static final Logger LOG = LogManager.getLogger(Policy.class);
- @SerializedName(value = "dbId")
- private long dbId;
-
- @SerializedName(value = "tableId")
- private long tableId;
-
- @SerializedName(value = "policyName")
- private String policyName;
-
- /**
- * ROW.
- **/
@SerializedName(value = "type")
- private PolicyTypeEnum type;
+ protected PolicyTypeEnum type;
- /**
- * PERMISSIVE | RESTRICTIVE, If multiple types exist, the last type
prevails.
- **/
- @SerializedName(value = "filterType")
- private final FilterType filterType;
+ @SerializedName(value = "policyName")
+ protected String policyName;
- private Expr wherePredicate;
+ @SerializedName(value = "dbId")
+ protected long dbId;
/**
* Policy bind user.
**/
@SerializedName(value = "user")
- private final UserIdentity user;
+ protected final UserIdentity user;
/**
* Use for Serialization/deserialization.
**/
@SerializedName(value = "originStmt")
- private String originStmt;
+ protected String originStmt;
+
+ public Policy() {
+ user = null;
+ }
+ public Policy(final PolicyTypeEnum type, final String policyName, long
dbId,
+ UserIdentity user, String originStmt) {
+ this.type = type;
+ this.policyName = policyName;
+ this.dbId = dbId;
+ this.user = user;
+ this.originStmt = originStmt;
+ }
/**
* Trans stmt to Policy.
**/
- public static Policy fromCreateStmt(CreatePolicyStmt stmt) throws
AnalysisException {
+ public static Policy fromCreateStmt(CreateTablePolicyStmt stmt) throws
AnalysisException {
Review Comment:
Is it better to use CreateTablePolicyStmt in TablePolicy?
##########
fe/fe-core/src/main/java/org/apache/doris/policy/PolicyMgr.java:
##########
@@ -68,7 +68,7 @@ public class PolicyMgr implements Writable {
* Cache merge policy for match.
* key:dbId:tableId-type-user
**/
- private Map<Long, Map<String, Policy>> dbIdToMergePolicyMap =
Maps.newConcurrentMap();
+ private Map<Long, Map<String, TablePolicy>> dbIdToMergePolicyMap =
Maps.newConcurrentMap();
Review Comment:
```suggestion
private Map<Long, Map<String, TablePolicy>> dbIdToMergeTablePolicyMap =
Maps.newConcurrentMap();
```
--
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: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]