From b9f8df02648b01a2d58e4a32e4b10c6feccd9fcf Mon Sep 17 00:00:00 2001 From: Stalary Date: Fri, 17 Jun 2022 11:05:17 +0800 Subject: [PATCH] [Bug] Compatible with Datagrip, fix checkStyle (#10143) * Compatible with Datagrip, fix checkStyle * ADD: comment --- .../org/apache/doris/catalog/SchemaTable.java | 590 +++++++++--------- .../org/apache/doris/qe/SessionVariable.java | 150 +++-- 2 files changed, 377 insertions(+), 363 deletions(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/SchemaTable.java b/fe/fe-core/src/main/java/org/apache/doris/catalog/SchemaTable.java index a774ed7c15..a053aa5809 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/catalog/SchemaTable.java +++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/SchemaTable.java @@ -33,47 +33,22 @@ import java.util.List; import java.util.Map; /** - * Palo representation of MySQL information schema table metadata, + * Doris's representation of MySQL information schema table metadata. */ public class SchemaTable extends Table { - private final static int FN_REFLEN = 512; - private final static int NAME_CHAR_LEN = 64; - private final static int MY_CS_NAME_SIZE = 32; - private final static int GRANTEE_len = 81; - private final static int PRIVILEGE_TYPE_LEN = 64; - private final static int IS_GRANTABLE_LEN = 3; - private SchemaTableType schemaTableType; - - protected SchemaTable(long id, String name, TableType type, List baseSchema) { - super(id, name, type, baseSchema); - } - - @Override - public void write(DataOutput out) throws IOException { - throw new UnsupportedOperationException("Do not allow to write SchemaTable to image."); - } - - public void readFields(DataInput in) throws IOException { - throw new UnsupportedOperationException("Do not allow read SchemaTable from image."); - } - - public static Builder builder() { - return new Builder(); - } - + private static final int FN_REFLEN = 512; + private static final int NAME_CHAR_LEN = 64; + private static final int MY_CS_NAME_SIZE = 32; + private static final int GRANTEE_len = 81; + private static final int PRIVILEGE_TYPE_LEN = 64; + private static final int IS_GRANTABLE_LEN = 3; // Now we just mock tables, table_privileges, referential_constraints, key_column_usage and routines table // Because in MySQL ODBC, these tables are used. // TODO(zhaochun): Review some commercial BI to check if we need support where clause in show statement // like 'show table where_clause'. If we decide to support it, we must mock these related table here. - public static Map TABLE_MAP = - ImmutableMap - .builder() - .put("tables", new SchemaTable( - SystemIdGenerator.getNextId(), - "tables", - TableType.SCHEMA, - builder() - .column("TABLE_CATALOG", ScalarType.createVarchar(FN_REFLEN)) + public static Map TABLE_MAP = ImmutableMap.builder().put("tables", + new SchemaTable(SystemIdGenerator.getNextId(), "tables", TableType.SCHEMA, + builder().column("TABLE_CATALOG", ScalarType.createVarchar(FN_REFLEN)) .column("TABLE_SCHEMA", ScalarType.createVarchar(NAME_CHAR_LEN)) .column("TABLE_NAME", ScalarType.createVarchar(NAME_CHAR_LEN)) .column("TABLE_TYPE", ScalarType.createVarchar(NAME_CHAR_LEN)) @@ -93,47 +68,30 @@ public class SchemaTable extends Table { .column("TABLE_COLLATION", ScalarType.createVarchar(MY_CS_NAME_SIZE)) .column("CHECKSUM", ScalarType.createType(PrimitiveType.BIGINT)) .column("CREATE_OPTIONS", ScalarType.createVarchar(255)) - .column("TABLE_COMMENT", ScalarType.createVarchar(2048)) - .build())) - .put("table_privileges", new SchemaTable( - SystemIdGenerator.getNextId(), - "table_privileges", - TableType.SCHEMA, - builder() - .column("GRANTEE", ScalarType.createVarchar(GRANTEE_len)) + .column("TABLE_COMMENT", ScalarType.createVarchar(2048)).build())) + .put("table_privileges", + new SchemaTable(SystemIdGenerator.getNextId(), "table_privileges", TableType.SCHEMA, + builder().column("GRANTEE", ScalarType.createVarchar(GRANTEE_len)) .column("TABLE_CATALOG", ScalarType.createVarchar(FN_REFLEN)) .column("TABLE_SCHEMA", ScalarType.createVarchar(NAME_CHAR_LEN)) .column("TABLE_NAME", ScalarType.createVarchar(NAME_CHAR_LEN)) .column("PRIVILEGE_TYPE", ScalarType.createVarchar(PRIVILEGE_TYPE_LEN)) - .column("IS_GRANTABLE", ScalarType.createVarchar(IS_GRANTABLE_LEN)) - .build())) - .put("schema_privileges", new SchemaTable( - SystemIdGenerator.getNextId(), - "schema_privileges", - TableType.SCHEMA, - builder() - .column("GRANTEE", ScalarType.createVarchar(GRANTEE_len)) + .column("IS_GRANTABLE", ScalarType.createVarchar(IS_GRANTABLE_LEN)).build())) + .put("schema_privileges", + new SchemaTable(SystemIdGenerator.getNextId(), "schema_privileges", TableType.SCHEMA, + builder().column("GRANTEE", ScalarType.createVarchar(GRANTEE_len)) .column("TABLE_CATALOG", ScalarType.createVarchar(FN_REFLEN)) .column("TABLE_SCHEMA", ScalarType.createVarchar(NAME_CHAR_LEN)) .column("PRIVILEGE_TYPE", ScalarType.createVarchar(PRIVILEGE_TYPE_LEN)) - .column("IS_GRANTABLE", ScalarType.createVarchar(IS_GRANTABLE_LEN)) - .build())) - .put("user_privileges", new SchemaTable( - SystemIdGenerator.getNextId(), - "user_privileges", - TableType.SCHEMA, - builder() - .column("GRANTEE", ScalarType.createVarchar(GRANTEE_len)) - .column("TABLE_CATALOG", ScalarType.createVarchar(FN_REFLEN)) - .column("PRIVILEGE_TYPE", ScalarType.createVarchar(PRIVILEGE_TYPE_LEN)) - .column("IS_GRANTABLE", ScalarType.createVarchar(IS_GRANTABLE_LEN)) - .build())) - .put("referential_constraints", new SchemaTable( - SystemIdGenerator.getNextId(), - "referential_constraints", - TableType.SCHEMA, - builder() - .column("CONSTRAINT_CATALOG", ScalarType.createVarchar(NAME_CHAR_LEN)) + .column("IS_GRANTABLE", ScalarType.createVarchar(IS_GRANTABLE_LEN)).build())) + .put("user_privileges", new SchemaTable(SystemIdGenerator.getNextId(), "user_privileges", TableType.SCHEMA, + builder().column("GRANTEE", ScalarType.createVarchar(GRANTEE_len)) + .column("TABLE_CATALOG", ScalarType.createVarchar(FN_REFLEN)) + .column("PRIVILEGE_TYPE", ScalarType.createVarchar(PRIVILEGE_TYPE_LEN)) + .column("IS_GRANTABLE", ScalarType.createVarchar(IS_GRANTABLE_LEN)).build())) + .put("referential_constraints", + new SchemaTable(SystemIdGenerator.getNextId(), "referential_constraints", TableType.SCHEMA, + builder().column("CONSTRAINT_CATALOG", ScalarType.createVarchar(NAME_CHAR_LEN)) .column("CONSTRAINT_SCHEMA", ScalarType.createVarchar(NAME_CHAR_LEN)) .column("CONSTRAINT_NAME", ScalarType.createVarchar(NAME_CHAR_LEN)) .column("UNIQUE_CONSTRAINT_CATALOG", ScalarType.createVarchar(NAME_CHAR_LEN)) @@ -143,14 +101,10 @@ public class SchemaTable extends Table { .column("UPDATE_RULE", ScalarType.createVarchar(NAME_CHAR_LEN)) .column("DELETE_RULE", ScalarType.createVarchar(NAME_CHAR_LEN)) .column("TABLE_NAME", ScalarType.createVarchar(NAME_CHAR_LEN)) - .column("REFERENCED_TABLE_NAME", ScalarType.createVarchar(NAME_CHAR_LEN)) - .build())) - .put("key_column_usage", new SchemaTable( - SystemIdGenerator.getNextId(), - "key_column_usage", - TableType.SCHEMA, - builder() - .column("CONSTRAINT_CATALOG", ScalarType.createVarchar(NAME_CHAR_LEN)) + .column("REFERENCED_TABLE_NAME", ScalarType.createVarchar(NAME_CHAR_LEN)).build())) + .put("key_column_usage", + new SchemaTable(SystemIdGenerator.getNextId(), "key_column_usage", TableType.SCHEMA, + builder().column("CONSTRAINT_CATALOG", ScalarType.createVarchar(NAME_CHAR_LEN)) .column("CONSTRAINT_SCHEMA", ScalarType.createVarchar(NAME_CHAR_LEN)) .column("CONSTRAINT_NAME", ScalarType.createVarchar(NAME_CHAR_LEN)) .column("TABLE_CATALOG", ScalarType.createVarchar(NAME_CHAR_LEN)) @@ -159,73 +113,51 @@ public class SchemaTable extends Table { .column("COLUMN_NAME", ScalarType.createVarchar(NAME_CHAR_LEN)) .column("ORDINAL_POSITION", ScalarType.createType(PrimitiveType.BIGINT)) .column("POSITION_IN_UNIQUE_CONSTRAINT", - ScalarType.createType(PrimitiveType.BIGINT)) + ScalarType.createType(PrimitiveType.BIGINT)) .column("REFERENCED_TABLE_SCHEMA", ScalarType.createVarchar(64)) .column("REFERENCED_TABLE_NAME", ScalarType.createVarchar(64)) - .column("REFERENCED_COLUMN_NAME", ScalarType.createVarchar(64)) - .build())) - .put("routines", new SchemaTable( - SystemIdGenerator.getNextId(), - "routines", - TableType.SCHEMA, - builder() - .column("SPECIFIC_NAME", ScalarType.createVarchar(NAME_CHAR_LEN)) - .column("ROUTINE_CATALOG", ScalarType.createVarchar(NAME_CHAR_LEN)) - .column("ROUTINE_SCHEMA", ScalarType.createVarchar(NAME_CHAR_LEN)) - .column("ROUTINE_NAME", ScalarType.createVarchar(NAME_CHAR_LEN)) - .column("ROUTINE_TYPE", ScalarType.createVarchar(NAME_CHAR_LEN)) - .column("DTD_IDENTIFIER", ScalarType.createVarchar(NAME_CHAR_LEN)) - .column("ROUTINE_BODY", ScalarType.createVarchar(NAME_CHAR_LEN)) - .column("ROUTINE_DEFINITION", ScalarType.createVarchar(NAME_CHAR_LEN)) - .column("EXTERNAL_NAME", ScalarType.createVarchar(NAME_CHAR_LEN)) - .column("EXTERNAL_LANGUAGE", ScalarType.createVarchar(NAME_CHAR_LEN)) - .column("PARAMETER_STYLE", ScalarType.createVarchar(NAME_CHAR_LEN)) - .column("IS_DETERMINISTIC", ScalarType.createVarchar(NAME_CHAR_LEN)) - .column("SQL_DATA_ACCESS", ScalarType.createVarchar(NAME_CHAR_LEN)) - .column("SQL_PATH", ScalarType.createVarchar(NAME_CHAR_LEN)) - .column("SECURITY_TYPE", ScalarType.createVarchar(NAME_CHAR_LEN)) - .column("CREATED", ScalarType.createType(PrimitiveType.DATETIME)) - .column("LAST_ALTERED", ScalarType.createType(PrimitiveType.DATETIME)) - .column("SQL_MODE", ScalarType.createVarchar(NAME_CHAR_LEN)) - .column("ROUTINE_COMMENT", ScalarType.createVarchar(NAME_CHAR_LEN)) - .column("DEFINER", ScalarType.createVarchar(NAME_CHAR_LEN)) - .column("CHARACTER_SET_CLIENT", ScalarType.createVarchar(NAME_CHAR_LEN)) - .column("COLLATION_CONNECTION", ScalarType.createVarchar(NAME_CHAR_LEN)) - .column("DATABASE_COLLATION", ScalarType.createVarchar(NAME_CHAR_LEN)) - .build())) - .put("schemata", new SchemaTable( - SystemIdGenerator.getNextId(), - "schemata", - TableType.SCHEMA, - builder() - .column("CATALOG_NAME", ScalarType.createVarchar(512)) - .column("SCHEMA_NAME", ScalarType.createVarchar(32)) - .column("DEFAULT_CHARACTER_SET_NAME", ScalarType.createVarchar(32)) - .column("DEFAULT_COLLATION_NAME", ScalarType.createVarchar(32)) - .column("SQL_PATH", ScalarType.createVarchar(512)) - .build())) - .put("session_variables", new SchemaTable( - SystemIdGenerator.getNextId(), - "session_variables", - TableType.SCHEMA, - builder() - .column("VARIABLE_NAME", ScalarType.createVarchar(64)) - .column("VARIABLE_VALUE", ScalarType.createVarchar(1024)) - .build())) - .put("global_variables", new SchemaTable( - SystemIdGenerator.getNextId(), - "global_variables", - TableType.SCHEMA, - builder() - .column("VARIABLE_NAME", ScalarType.createVarchar(64)) - .column("VARIABLE_VALUE", ScalarType.createVarchar(1024)) - .build())) - .put("columns", new SchemaTable( - SystemIdGenerator.getNextId(), - "columns", - TableType.SCHEMA, - builder() - .column("TABLE_CATALOG", ScalarType.createVarchar(512)) + .column("REFERENCED_COLUMN_NAME", ScalarType.createVarchar(64)).build())) + .put("routines", new SchemaTable(SystemIdGenerator.getNextId(), "routines", TableType.SCHEMA, + builder().column("SPECIFIC_NAME", ScalarType.createVarchar(NAME_CHAR_LEN)) + .column("ROUTINE_CATALOG", ScalarType.createVarchar(NAME_CHAR_LEN)) + .column("ROUTINE_SCHEMA", ScalarType.createVarchar(NAME_CHAR_LEN)) + .column("ROUTINE_NAME", ScalarType.createVarchar(NAME_CHAR_LEN)) + .column("ROUTINE_TYPE", ScalarType.createVarchar(NAME_CHAR_LEN)) + .column("DTD_IDENTIFIER", ScalarType.createVarchar(NAME_CHAR_LEN)) + .column("ROUTINE_BODY", ScalarType.createVarchar(NAME_CHAR_LEN)) + .column("ROUTINE_DEFINITION", ScalarType.createVarchar(NAME_CHAR_LEN)) + .column("EXTERNAL_NAME", ScalarType.createVarchar(NAME_CHAR_LEN)) + .column("EXTERNAL_LANGUAGE", ScalarType.createVarchar(NAME_CHAR_LEN)) + .column("PARAMETER_STYLE", ScalarType.createVarchar(NAME_CHAR_LEN)) + .column("IS_DETERMINISTIC", ScalarType.createVarchar(NAME_CHAR_LEN)) + .column("SQL_DATA_ACCESS", ScalarType.createVarchar(NAME_CHAR_LEN)) + .column("SQL_PATH", ScalarType.createVarchar(NAME_CHAR_LEN)) + .column("SECURITY_TYPE", ScalarType.createVarchar(NAME_CHAR_LEN)) + .column("CREATED", ScalarType.createType(PrimitiveType.DATETIME)) + .column("LAST_ALTERED", ScalarType.createType(PrimitiveType.DATETIME)) + .column("SQL_MODE", ScalarType.createVarchar(NAME_CHAR_LEN)) + .column("ROUTINE_COMMENT", ScalarType.createVarchar(NAME_CHAR_LEN)) + .column("DEFINER", ScalarType.createVarchar(NAME_CHAR_LEN)) + .column("CHARACTER_SET_CLIENT", ScalarType.createVarchar(NAME_CHAR_LEN)) + .column("COLLATION_CONNECTION", ScalarType.createVarchar(NAME_CHAR_LEN)) + .column("DATABASE_COLLATION", ScalarType.createVarchar(NAME_CHAR_LEN)).build())) + .put("schemata", new SchemaTable(SystemIdGenerator.getNextId(), "schemata", TableType.SCHEMA, + builder().column("CATALOG_NAME", ScalarType.createVarchar(512)) + .column("SCHEMA_NAME", ScalarType.createVarchar(32)) + .column("DEFAULT_CHARACTER_SET_NAME", ScalarType.createVarchar(32)) + .column("DEFAULT_COLLATION_NAME", ScalarType.createVarchar(32)) + .column("SQL_PATH", ScalarType.createVarchar(512)).build())) + .put("session_variables", + new SchemaTable(SystemIdGenerator.getNextId(), "session_variables", TableType.SCHEMA, + builder().column("VARIABLE_NAME", ScalarType.createVarchar(64)) + .column("VARIABLE_VALUE", ScalarType.createVarchar(1024)).build())) + .put("global_variables", + new SchemaTable(SystemIdGenerator.getNextId(), "global_variables", TableType.SCHEMA, + builder().column("VARIABLE_NAME", ScalarType.createVarchar(64)) + .column("VARIABLE_VALUE", ScalarType.createVarchar(1024)).build())) + .put("columns", + new SchemaTable(SystemIdGenerator.getNextId(), "columns", TableType.SCHEMA, + builder().column("TABLE_CATALOG", ScalarType.createVarchar(512)) .column("TABLE_SCHEMA", ScalarType.createVarchar(64)) .column("TABLE_NAME", ScalarType.createVarchar(64)) .column("COLUMN_NAME", ScalarType.createVarchar(64)) @@ -233,10 +165,8 @@ public class SchemaTable extends Table { .column("COLUMN_DEFAULT", ScalarType.createVarchar(1024)) .column("IS_NULLABLE", ScalarType.createVarchar(3)) .column("DATA_TYPE", ScalarType.createVarchar(64)) - .column("CHARACTER_MAXIMUM_LENGTH", - ScalarType.createType(PrimitiveType.BIGINT)) - .column("CHARACTER_OCTET_LENGTH", - ScalarType.createType(PrimitiveType.BIGINT)) + .column("CHARACTER_MAXIMUM_LENGTH", ScalarType.createType(PrimitiveType.BIGINT)) + .column("CHARACTER_OCTET_LENGTH", ScalarType.createType(PrimitiveType.BIGINT)) .column("NUMERIC_PRECISION", ScalarType.createType(PrimitiveType.BIGINT)) .column("NUMERIC_SCALE", ScalarType.createType(PrimitiveType.BIGINT)) .column("DATETIME_PRECISION", ScalarType.createType(PrimitiveType.BIGINT)) @@ -250,177 +180,218 @@ public class SchemaTable extends Table { .column("COLUMN_SIZE", ScalarType.createType(PrimitiveType.BIGINT)) .column("DECIMAL_DIGITS", ScalarType.createType(PrimitiveType.BIGINT)) .column("GENERATION_EXPRESSION", ScalarType.createVarchar(64)) - .column("SRS_ID", ScalarType.createType(PrimitiveType.BIGINT)) - .build())) - .put("character_sets", new SchemaTable( - SystemIdGenerator.getNextId(), - "character_sets", - TableType.SCHEMA, - builder() - .column("CHARACTER_SET_NAME", ScalarType.createVarchar(512)) - .column("DEFAULT_COLLATE_NAME", ScalarType.createVarchar(64)) - .column("DESCRIPTION", ScalarType.createVarchar(64)) - .column("MAXLEN", ScalarType.createType(PrimitiveType.BIGINT)) - .build())) - .put("collations", new SchemaTable( - SystemIdGenerator.getNextId(), - "collations", - TableType.SCHEMA, - builder() - .column("COLLATION_NAME", ScalarType.createVarchar(512)) + .column("SRS_ID", ScalarType.createType(PrimitiveType.BIGINT)).build())) + .put("character_sets", new SchemaTable(SystemIdGenerator.getNextId(), "character_sets", TableType.SCHEMA, + builder().column("CHARACTER_SET_NAME", ScalarType.createVarchar(512)) + .column("DEFAULT_COLLATE_NAME", ScalarType.createVarchar(64)) + .column("DESCRIPTION", ScalarType.createVarchar(64)) + .column("MAXLEN", ScalarType.createType(PrimitiveType.BIGINT)).build())) + .put("collations", + new SchemaTable(SystemIdGenerator.getNextId(), "collations", TableType.SCHEMA, + builder().column("COLLATION_NAME", ScalarType.createVarchar(512)) .column("CHARACTER_SET_NAME", ScalarType.createVarchar(64)) .column("ID", ScalarType.createType(PrimitiveType.BIGINT)) .column("IS_DEFAULT", ScalarType.createVarchar(64)) .column("IS_COMPILED", ScalarType.createVarchar(64)) - .column("SORTLEN", ScalarType.createType(PrimitiveType.BIGINT)) - .build())) - .put("table_constraints", new SchemaTable( - SystemIdGenerator.getNextId(), - "table_constraints", - TableType.SCHEMA, - builder() - .column("CONSTRAINT_CATALOG", ScalarType.createVarchar(512)) + .column("SORTLEN", ScalarType.createType(PrimitiveType.BIGINT)).build())) + .put("table_constraints", + new SchemaTable(SystemIdGenerator.getNextId(), "table_constraints", TableType.SCHEMA, + builder().column("CONSTRAINT_CATALOG", ScalarType.createVarchar(512)) .column("CONSTRAINT_SCHEMA", ScalarType.createVarchar(64)) .column("CONSTRAINT_NAME", ScalarType.createVarchar(64)) .column("TABLE_SCHEMA", ScalarType.createVarchar(64)) .column("TABLE_NAME", ScalarType.createVarchar(64)) - .column("CONSTRAINT_TYPE", ScalarType.createVarchar(64)) - .build())) - .put("engines", - new SchemaTable( - SystemIdGenerator.getNextId(), - "engines", - TableType.SCHEMA, - builder() - .column("ENGINE", ScalarType.createVarchar(64)) - .column("SUPPORT", ScalarType.createVarchar(8)) - .column("COMMENT", ScalarType.createVarchar(80)) - .column("TRANSACTIONS", ScalarType.createVarchar(3)) - .column("XA", ScalarType.createVarchar(3)) - .column("SAVEPOINTS", ScalarType.createVarchar(3)) - .build())) - .put("views", - new SchemaTable( - SystemIdGenerator.getNextId(), - "views", - TableType.SCHEMA, - builder() - .column("TABLE_CATALOG", ScalarType.createVarchar(512)) - .column("TABLE_SCHEMA", ScalarType.createVarchar(64)) - .column("TABLE_NAME", ScalarType.createVarchar(64)) - .column("VIEW_DEFINITION", ScalarType.createVarchar(8096)) - .column("CHECK_OPTION", ScalarType.createVarchar(8)) - .column("IS_UPDATABLE", ScalarType.createVarchar(3)) - .column("DEFINER", ScalarType.createVarchar(77)) - .column("SECURITY_TYPE", ScalarType.createVarchar(7)) - .column("CHARACTER_SET_CLIENT", ScalarType.createVarchar(32)) - .column("COLLATION_CONNECTION", ScalarType.createVarchar(32)) - .build())) - .put("statistics", - new SchemaTable( - SystemIdGenerator.getNextId(), - "statistics", - TableType.SCHEMA, - builder() - .column("TABLE_CATALOG", ScalarType.createVarchar(512)) - .column("TABLE_SCHEMA", ScalarType.createVarchar(64)) - .column("TABLE_NAME", ScalarType.createVarchar(64)) - .column("NON_UNIQUE", ScalarType.createType(PrimitiveType.BIGINT)) - .column("INDEX_SCHEMA", ScalarType.createVarchar(64)) - .column("INDEX_NAME", ScalarType.createVarchar(64)) - .column("SEQ_IN_INDEX", ScalarType.createType(PrimitiveType.BIGINT)) - .column("COLUMN_NAME", ScalarType.createVarchar(64)) - .column("COLLATION", ScalarType.createVarchar(1)) - .column("CARDINALITY", ScalarType.createType(PrimitiveType.BIGINT)) - .column("SUB_PART", ScalarType.createType(PrimitiveType.BIGINT)) - .column("PACKED", ScalarType.createVarchar(10)) - .column("NULLABLE", ScalarType.createVarchar(3)) - .column("INDEX_TYPE", ScalarType.createVarchar(16)) - .column("COMMENT", ScalarType.createVarchar(16)) - .build())) - .put("files", - new SchemaTable( - SystemIdGenerator.getNextId(), - "files", - TableType.SCHEMA, - builder() - .column("FILE_ID", ScalarType.createType(PrimitiveType.BIGINT)) - .column("FILE_NAME", ScalarType.createStringType()) - .column("FILE_TYPE", ScalarType.createVarchar(256)) - .column("TABLESPACE_NAME", ScalarType.createVarchar(256)) - .column("TABLE_CATALOG", ScalarType.createCharType(16)) - .column("TABLE_SCHEMA", ScalarType.createStringType()) - .column("TABLE_NAME", ScalarType.createStringType()) - .column("LOGFILE_GROUP_NAME", ScalarType.createVarchar(256)) - .column("LOGFILE_GROUP_NUMBER", ScalarType.createType(PrimitiveType.BIGINT)) - .column("ENGINE", ScalarType.createVarchar(64)) - .column("FULLTEXT_KEYS", ScalarType.createStringType()) - .column("DELETED_ROWS", ScalarType.createStringType()) - .column("UPDATE_COUNT", ScalarType.createStringType()) - .column("FREE_EXTENTS", ScalarType.createType(PrimitiveType.BIGINT)) - .column("TOTAL_EXTENTS", ScalarType.createType(PrimitiveType.BIGINT)) - .column("EXTENT_SIZE", ScalarType.createType(PrimitiveType.BIGINT)) - .column("INITIAL_SIZE", ScalarType.createType(PrimitiveType.BIGINT)) - .column("MAXIMUM_SIZE", ScalarType.createType(PrimitiveType.BIGINT)) - .column("AUTOEXTEND_SIZE", ScalarType.createType(PrimitiveType.BIGINT)) - .column("CREATION_TIME", ScalarType.createStringType()) - .column("LAST_UPDATE_TIME", ScalarType.createStringType()) - .column("LAST_ACCESS_TIME", ScalarType.createStringType()) - .column("RECOVER_TIME", ScalarType.createStringType()) - .column("TRANSACTION_COUNTER", ScalarType.createStringType()) - .column("VERSION", ScalarType.createType(PrimitiveType.BIGINT)) - .column("ROW_FORMAT", ScalarType.createVarchar(256)) - .column("TABLE_ROWS", ScalarType.createStringType()) - .column("AVG_ROW_LENGTH", ScalarType.createStringType()) - .column("DATA_LENGTH", ScalarType.createStringType()) - .column("MAX_DATA_LENGTH", ScalarType.createStringType()) - .column("INDEX_LENGTH", ScalarType.createStringType()) - .column("DATA_FREE", ScalarType.createType(PrimitiveType.BIGINT)) - .column("CREATE_TIME", ScalarType.createStringType()) - .column("UPDATE_TIME", ScalarType.createStringType()) - .column("CHECK_TIME", ScalarType.createStringType()) - .column("CHECKSUM", ScalarType.createStringType()) - .column("STATUS", ScalarType.createVarchar(256)) - .column("EXTRA", ScalarType.createVarchar(256)) - .build())) - .put("partitions", - new SchemaTable( - SystemIdGenerator.getNextId(), - "partitions", - TableType.SCHEMA, - builder() - .column("TABLE_CATALOG", ScalarType.createVarchar(64)) - .column("TABLE_SCHEMA", ScalarType.createVarchar(64)) - .column("TABLE_NAME", ScalarType.createVarchar(64)) - .column("PARTITION_NAME", ScalarType.createVarchar(64)) - .column("SUBPARTITION_NAME", ScalarType.createVarchar(64)) - .column("PARTITION_ORDINAL_POSITION", - ScalarType.createType(PrimitiveType.INT)) - .column("SUBPARTITION_ORDINAL_POSITION", - ScalarType.createType(PrimitiveType.INT)) - .column("PARTITION_METHOD", ScalarType.createVarchar(13)) - .column("SUBPARTITION_METHOD", ScalarType.createVarchar(13)) - .column("PARTITION_EXPRESSION", ScalarType.createVarchar(2048)) - .column("SUBPARTITION_EXPRESSION", ScalarType.createVarchar(2048)) - .column("PARTITION_DESCRIPTION", ScalarType.createStringType()) - .column("TABLE_ROWS", ScalarType.createType(PrimitiveType.BIGINT)) - .column("AVG_ROW_LENGTH", ScalarType.createType(PrimitiveType.BIGINT)) - .column("DATA_LENGTH", ScalarType.createType(PrimitiveType.BIGINT)) - .column("MAX_DATA_LENGTH", ScalarType.createType(PrimitiveType.BIGINT)) - .column("INDEX_LENGTH", ScalarType.createType(PrimitiveType.BIGINT)) - .column("DATA_FREE", ScalarType.createType(PrimitiveType.BIGINT)) - .column("CREATE_TIME", ScalarType.createType(PrimitiveType.BIGINT)) - .column("UPDATE_TIME", ScalarType.createType(PrimitiveType.DATETIME)) - .column("CHECK_TIME", ScalarType.createType(PrimitiveType.DATETIME)) - .column("CHECKSUM", ScalarType.createType(PrimitiveType.BIGINT)) - .column("PARTITION_COMMENT", ScalarType.createStringType()) - .column("NODEGROUP", ScalarType.createVarchar(256)) - .column("TABLESPACE_NAME", ScalarType.createVarchar(268)) - .build())) - .build(); - // statistics is table provides information about table indexes in mysql: 5.7 - // views column is from show create table views in mysql: 5.5.6 + .column("CONSTRAINT_TYPE", ScalarType.createVarchar(64)).build())) + .put("engines", + new SchemaTable(SystemIdGenerator.getNextId(), "engines", TableType.SCHEMA, + builder().column("ENGINE", ScalarType.createVarchar(64)) + .column("SUPPORT", ScalarType.createVarchar(8)) + .column("COMMENT", ScalarType.createVarchar(80)) + .column("TRANSACTIONS", ScalarType.createVarchar(3)) + .column("XA", ScalarType.createVarchar(3)) + .column("SAVEPOINTS", ScalarType.createVarchar(3)).build())) + .put("views", + new SchemaTable(SystemIdGenerator.getNextId(), "views", TableType.SCHEMA, + builder().column("TABLE_CATALOG", ScalarType.createVarchar(512)) + .column("TABLE_SCHEMA", ScalarType.createVarchar(64)) + .column("TABLE_NAME", ScalarType.createVarchar(64)) + .column("VIEW_DEFINITION", ScalarType.createVarchar(8096)) + .column("CHECK_OPTION", ScalarType.createVarchar(8)) + .column("IS_UPDATABLE", ScalarType.createVarchar(3)) + .column("DEFINER", ScalarType.createVarchar(77)) + .column("SECURITY_TYPE", ScalarType.createVarchar(7)) + .column("CHARACTER_SET_CLIENT", ScalarType.createVarchar(32)) + .column("COLLATION_CONNECTION", ScalarType.createVarchar(32)).build())) + // statistics is table provides information about table indexes in mysql: 5.7 + .put("statistics", new SchemaTable(SystemIdGenerator.getNextId(), "statistics", TableType.SCHEMA, + builder().column("TABLE_CATALOG", ScalarType.createVarchar(512)) + .column("TABLE_SCHEMA", ScalarType.createVarchar(64)) + .column("TABLE_NAME", ScalarType.createVarchar(64)) + .column("NON_UNIQUE", ScalarType.createType(PrimitiveType.BIGINT)) + .column("INDEX_SCHEMA", ScalarType.createVarchar(64)) + .column("INDEX_NAME", ScalarType.createVarchar(64)) + .column("SEQ_IN_INDEX", ScalarType.createType(PrimitiveType.BIGINT)) + .column("COLUMN_NAME", ScalarType.createVarchar(64)) + .column("COLLATION", ScalarType.createVarchar(1)) + .column("CARDINALITY", ScalarType.createType(PrimitiveType.BIGINT)) + .column("SUB_PART", ScalarType.createType(PrimitiveType.BIGINT)) + .column("PACKED", ScalarType.createVarchar(10)) + .column("NULLABLE", ScalarType.createVarchar(3)) + .column("INDEX_TYPE", ScalarType.createVarchar(16)) + .column("COMMENT", ScalarType.createVarchar(16)) + // for datagrip + .column("INDEX_COMMENT", ScalarType.createVarchar(1024)).build())) + .put("files", + new SchemaTable(SystemIdGenerator.getNextId(), "files", TableType.SCHEMA, + builder().column("FILE_ID", ScalarType.createType(PrimitiveType.BIGINT)) + .column("FILE_NAME", ScalarType.createStringType()) + .column("FILE_TYPE", ScalarType.createVarchar(256)) + .column("TABLESPACE_NAME", ScalarType.createVarchar(256)) + .column("TABLE_CATALOG", ScalarType.createCharType(16)) + .column("TABLE_SCHEMA", ScalarType.createStringType()) + .column("TABLE_NAME", ScalarType.createStringType()) + .column("LOGFILE_GROUP_NAME", ScalarType.createVarchar(256)) + .column("LOGFILE_GROUP_NUMBER", ScalarType.createType(PrimitiveType.BIGINT)) + .column("ENGINE", ScalarType.createVarchar(64)) + .column("FULLTEXT_KEYS", ScalarType.createStringType()) + .column("DELETED_ROWS", ScalarType.createStringType()) + .column("UPDATE_COUNT", ScalarType.createStringType()) + .column("FREE_EXTENTS", ScalarType.createType(PrimitiveType.BIGINT)) + .column("TOTAL_EXTENTS", ScalarType.createType(PrimitiveType.BIGINT)) + .column("EXTENT_SIZE", ScalarType.createType(PrimitiveType.BIGINT)) + .column("INITIAL_SIZE", ScalarType.createType(PrimitiveType.BIGINT)) + .column("MAXIMUM_SIZE", ScalarType.createType(PrimitiveType.BIGINT)) + .column("AUTOEXTEND_SIZE", ScalarType.createType(PrimitiveType.BIGINT)) + .column("CREATION_TIME", ScalarType.createStringType()) + .column("LAST_UPDATE_TIME", ScalarType.createStringType()) + .column("LAST_ACCESS_TIME", ScalarType.createStringType()) + .column("RECOVER_TIME", ScalarType.createStringType()) + .column("TRANSACTION_COUNTER", ScalarType.createStringType()) + .column("VERSION", ScalarType.createType(PrimitiveType.BIGINT)) + .column("ROW_FORMAT", ScalarType.createVarchar(256)) + .column("TABLE_ROWS", ScalarType.createStringType()) + .column("AVG_ROW_LENGTH", ScalarType.createStringType()) + .column("DATA_LENGTH", ScalarType.createStringType()) + .column("MAX_DATA_LENGTH", ScalarType.createStringType()) + .column("INDEX_LENGTH", ScalarType.createStringType()) + .column("DATA_FREE", ScalarType.createType(PrimitiveType.BIGINT)) + .column("CREATE_TIME", ScalarType.createStringType()) + .column("UPDATE_TIME", ScalarType.createStringType()) + .column("CHECK_TIME", ScalarType.createStringType()) + .column("CHECKSUM", ScalarType.createStringType()) + .column("STATUS", ScalarType.createVarchar(256)) + .column("EXTRA", ScalarType.createVarchar(256)).build())) + .put("partitions", + new SchemaTable(SystemIdGenerator.getNextId(), "partitions", TableType.SCHEMA, + builder().column("TABLE_CATALOG", ScalarType.createVarchar(64)) + .column("TABLE_SCHEMA", ScalarType.createVarchar(64)) + .column("TABLE_NAME", ScalarType.createVarchar(64)) + .column("PARTITION_NAME", ScalarType.createVarchar(64)) + .column("SUBPARTITION_NAME", ScalarType.createVarchar(64)) + .column("PARTITION_ORDINAL_POSITION", ScalarType.createType(PrimitiveType.INT)) + .column("SUBPARTITION_ORDINAL_POSITION", ScalarType.createType(PrimitiveType.INT)) + .column("PARTITION_METHOD", ScalarType.createVarchar(13)) + .column("SUBPARTITION_METHOD", ScalarType.createVarchar(13)) + .column("PARTITION_EXPRESSION", ScalarType.createVarchar(2048)) + .column("SUBPARTITION_EXPRESSION", ScalarType.createVarchar(2048)) + .column("PARTITION_DESCRIPTION", ScalarType.createStringType()) + .column("TABLE_ROWS", ScalarType.createType(PrimitiveType.BIGINT)) + .column("AVG_ROW_LENGTH", ScalarType.createType(PrimitiveType.BIGINT)) + .column("DATA_LENGTH", ScalarType.createType(PrimitiveType.BIGINT)) + .column("MAX_DATA_LENGTH", ScalarType.createType(PrimitiveType.BIGINT)) + .column("INDEX_LENGTH", ScalarType.createType(PrimitiveType.BIGINT)) + .column("DATA_FREE", ScalarType.createType(PrimitiveType.BIGINT)) + .column("CREATE_TIME", ScalarType.createType(PrimitiveType.BIGINT)) + .column("UPDATE_TIME", ScalarType.createType(PrimitiveType.DATETIME)) + .column("CHECK_TIME", ScalarType.createType(PrimitiveType.DATETIME)) + .column("CHECKSUM", ScalarType.createType(PrimitiveType.BIGINT)) + .column("PARTITION_COMMENT", ScalarType.createStringType()) + .column("NODEGROUP", ScalarType.createVarchar(256)) + .column("TABLESPACE_NAME", ScalarType.createVarchar(268)).build())) + // Compatible with Datagrip + .put("column_privileges", + new SchemaTable(SystemIdGenerator.getNextId(), "column_privileges", TableType.SCHEMA, + builder().column("GRANTEE", ScalarType.createVarchar(128)) + .column("TABLE_CATALOG", ScalarType.createVarchar(512)) + .column("TABLE_SCHEMA", ScalarType.createVarchar(64)) + .column("TABLE_NAME", ScalarType.createVarchar(64)) + .column("COLUMN_NAME", ScalarType.createVarchar(64)) + .column("PRIVILEGE_TYPE", ScalarType.createVarchar(64)) + .column("IS_GRANTABLE", ScalarType.createVarchar(3)).build())) + // Compatible with Datagrip + .put("triggers", + new SchemaTable(SystemIdGenerator.getNextId(), "triggers", TableType.SCHEMA, + builder().column("TRIGGER_CATALOG", ScalarType.createVarchar(512)) + .column("TRIGGER_SCHEMA", ScalarType.createVarchar(64)) + .column("TRIGGER_NAME", ScalarType.createVarchar(64)) + .column("EVENT_MANIPULATION", ScalarType.createVarchar(6)) + .column("EVENT_OBJECT_CATALOG", ScalarType.createVarchar(512)) + .column("EVENT_OBJECT_SCHEMA", ScalarType.createVarchar(64)) + .column("EVENT_OBJECT_TABLE", ScalarType.createVarchar(64)) + .column("ACTION_ORDER", ScalarType.createVarchar(4)) + .column("ACTION_CONDITION", ScalarType.createVarchar(512)) + .column("ACTION_STATEMENT", ScalarType.createVarchar(512)) + .column("ACTION_ORIENTATION", ScalarType.createVarchar(9)) + .column("ACTION_TIMING", ScalarType.createVarchar(6)) + .column("ACTION_REFERENCE_OLD_TABLE", ScalarType.createVarchar(64)) + .column("ACTION_REFERENCE_NEW_TABLE", ScalarType.createVarchar(64)) + .column("ACTION_REFERENCE_OLD_ROW", ScalarType.createVarchar(3)) + .column("ACTION_REFERENCE_NEW_ROW", ScalarType.createVarchar(3)) + .column("CREATED", ScalarType.createType(PrimitiveType.DATETIME)) + .column("SQL_MODE", ScalarType.createVarchar(8192)) + .column("DEFINER", ScalarType.createVarchar(77)) + .column("CHARACTER_SET_CLIENT", ScalarType.createVarchar(32)) + .column("COLLATION_CONNECTION", ScalarType.createVarchar(32)) + .column("DATABASE_COLLATION", ScalarType.createVarchar(32)).build())) + // Compatible with Datagrip + .put("events", + new SchemaTable(SystemIdGenerator.getNextId(), "events", TableType.SCHEMA, + builder().column("EVENT_CATALOG", ScalarType.createVarchar(64)) + .column("EVENT_SCHEMA", ScalarType.createVarchar(64)) + .column("EVENT_NAME", ScalarType.createVarchar(64)) + .column("DEFINER", ScalarType.createVarchar(77)) + .column("TIME_ZONE", ScalarType.createVarchar(64)) + .column("EVENT_BODY", ScalarType.createVarchar(8)) + .column("EVENT_DEFINITION", ScalarType.createVarchar(512)) + .column("EVENT_TYPE", ScalarType.createVarchar(9)) + .column("EXECUTE_AT", ScalarType.createType(PrimitiveType.DATETIME)) + .column("INTERVAL_VALUE", ScalarType.createVarchar(256)) + .column("INTERVAL_FIELD", ScalarType.createVarchar(18)) + .column("SQL_MODE", ScalarType.createVarchar(8192)) + .column("STARTS", ScalarType.createType(PrimitiveType.DATETIME)) + .column("ENDS", ScalarType.createType(PrimitiveType.DATETIME)) + .column("STATUS", ScalarType.createVarchar(18)) + .column("ON_COMPLETION", ScalarType.createVarchar(12)) + .column("CREATED", ScalarType.createType(PrimitiveType.DATETIME)) + .column("LAST_ALTERED", ScalarType.createType(PrimitiveType.DATETIME)) + .column("LAST_EXECUTED", ScalarType.createType(PrimitiveType.DATETIME)) + .column("EVENT_COMMENT", ScalarType.createVarchar(64)) + .column("ORIGINATOR", ScalarType.createType(PrimitiveType.INT)) + .column("CHARACTER_SET_CLIENT", ScalarType.createVarchar(32)) + .column("COLLATION_CONNECTION", ScalarType.createVarchar(32)) + .column("DATABASE_COLLATION", ScalarType.createVarchar(32)).build())).build(); + private SchemaTableType schemaTableType; + protected SchemaTable(long id, String name, TableType type, List baseSchema) { + super(id, name, type, baseSchema); + } + + @Override + public void write(DataOutput out) throws IOException { + throw new UnsupportedOperationException("Do not allow to write SchemaTable to image."); + } + + public void readFields(DataInput in) throws IOException { + throw new UnsupportedOperationException("Do not allow read SchemaTable from image."); + } + + public static Builder builder() { + return new Builder(); + } + + /** + * For TABLE_MAP. + **/ public static class Builder { List columns; @@ -441,8 +412,7 @@ public class SchemaTable extends Table { @Override public TTableDescriptor toThrift() { TSchemaTable tSchemaTable = new TSchemaTable(SchemaTableType.getThriftType(this.name)); - TTableDescriptor tTableDescriptor = - new TTableDescriptor(getId(), TTableType.SCHEMA_TABLE, + TTableDescriptor tTableDescriptor = new TTableDescriptor(getId(), TTableType.SCHEMA_TABLE, TABLE_MAP.get(this.name).getBaseSchema().size(), 0, this.name, ""); tTableDescriptor.setSchemaTable(tSchemaTable); return tTableDescriptor; diff --git a/fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java b/fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java index c78172306c..0e3870da32 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java +++ b/fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java @@ -37,9 +37,11 @@ import java.lang.reflect.Field; import java.util.HashMap; import java.util.Map; -// System variable +/** + * System variable. + **/ public class SessionVariable implements Serializable, Writable { - static final Logger LOG = LogManager.getLogger(SessionVariable.class); + public static final Logger LOG = LogManager.getLogger(SessionVariable.class); public static final String EXEC_MEM_LIMIT = "exec_mem_limit"; public static final String QUERY_TIMEOUT = "query_timeout"; @@ -112,6 +114,10 @@ public class SessionVariable implements Serializable, Writable { public static final String REWRITE_COUNT_DISTINCT_TO_BITMAP_HLL = "rewrite_count_distinct_to_bitmap_hll"; public static final String EVENT_SCHEDULER = "event_scheduler"; public static final String STORAGE_ENGINE = "storage_engine"; + // Compatible with datagrip mysql + public static final String DEFAULT_STORAGE_ENGINE = "default_storage_engine"; + public static final String DEFAULT_TMP_STORAGE_ENGINE = "default_tmp_storage_engine"; + public static final String DIV_PRECISION_INCREMENT = "div_precision_increment"; // see comment of `doris_max_scan_key_num` and `max_pushdown_conditions_per_column` in BE config @@ -160,7 +166,8 @@ public class SessionVariable implements Serializable, Writable { public static final String PARTITION_PRUNE_ALGORITHM_VERSION = "partition_prune_algorithm_version"; - public static final long MIN_INSERT_VISIBLE_TIMEOUT_MS = 1000; // If user set a very small value, use this value instead. + // If user set a very small value, use this value instead. + public static final long MIN_INSERT_VISIBLE_TIMEOUT_MS = 1000; public static final String ENABLE_VECTORIZED_ENGINE = "enable_vectorized_engine"; @@ -180,7 +187,8 @@ public class SessionVariable implements Serializable, Writable { public static final String ENABLE_PROJECTION = "enable_projection"; - public static final String TRIM_TAILING_SPACES_FOR_EXTERNAL_TABLE_QUERY = "trim_tailing_spaces_for_external_table_query"; + public static final String TRIM_TAILING_SPACES_FOR_EXTERNAL_TABLE_QUERY = + "trim_tailing_spaces_for_external_table_query"; static final String ENABLE_ARRAY_TYPE = "enable_array_type"; @@ -322,9 +330,6 @@ public class SessionVariable implements Serializable, Writable { @VariableMgr.VarAttr(name = PREFER_JOIN_METHOD) public String preferJoinMethod = "broadcast"; - @VariableMgr.VarAttr(name = ENABLE_FOLD_CONSTANT_BY_BE) - private boolean enableFoldConstantByBe = false; - /* * the parallel exec instance num for one Fragment in one BE * 1 means disable this feature @@ -344,9 +349,6 @@ public class SessionVariable implements Serializable, Writable { @VariableMgr.VarAttr(name = ENABLE_PARTITION_CACHE) public boolean enablePartitionCache = false; - @VariableMgr.VarAttr(name = ENABLE_COST_BASED_JOIN_REORDER) - private boolean enableJoinReorderBasedCost = false; - @VariableMgr.VarAttr(name = FORWARD_TO_MASTER) public boolean forwardToMaster = true; @@ -368,6 +370,10 @@ public class SessionVariable implements Serializable, Writable { public String eventScheduler = "OFF"; @VariableMgr.VarAttr(name = STORAGE_ENGINE) public String storageEngine = "olap"; + @VariableMgr.VarAttr(name = DEFAULT_STORAGE_ENGINE) + public String defaultStorageEngine = "olap"; + @VariableMgr.VarAttr(name = DEFAULT_TMP_STORAGE_ENGINE) + public String defaultTmpStorageEngine = "olap"; @VariableMgr.VarAttr(name = DIV_PRECISION_INCREMENT) public int divPrecisionIncrement = 4; @@ -394,45 +400,21 @@ public class SessionVariable implements Serializable, Writable { @VariableMgr.VarAttr(name = PARTITION_PRUNE_ALGORITHM_VERSION, needForward = true) public int partitionPruneAlgorithmVersion = 2; - @VariableMgr.VarAttr(name = RUNTIME_FILTER_MODE) - private String runtimeFilterMode = "GLOBAL"; - @VariableMgr.VarAttr(name = RUNTIME_BLOOM_FILTER_SIZE) - private int runtimeBloomFilterSize = 2097152; - @VariableMgr.VarAttr(name = RUNTIME_BLOOM_FILTER_MIN_SIZE) - private int runtimeBloomFilterMinSize = 1048576; - @VariableMgr.VarAttr(name = RUNTIME_BLOOM_FILTER_MAX_SIZE) - private int runtimeBloomFilterMaxSize = 16777216; - @VariableMgr.VarAttr(name = RUNTIME_FILTER_WAIT_TIME_MS) - private int runtimeFilterWaitTimeMs = 1000; - @VariableMgr.VarAttr(name = RUNTIME_FILTERS_MAX_NUM) - private int runtimeFiltersMaxNum = 10; - // Set runtimeFilterType to IN_OR_BLOOM filter - @VariableMgr.VarAttr(name = RUNTIME_FILTER_TYPE) - private int runtimeFilterType = 8; - @VariableMgr.VarAttr(name = RUNTIME_FILTER_MAX_IN_NUM) - private int runtimeFilterMaxInNum = 1024; @VariableMgr.VarAttr(name = ENABLE_VECTORIZED_ENGINE) public boolean enableVectorizedEngine = true; + @VariableMgr.VarAttr(name = ENABLE_PARALLEL_OUTFILE) public boolean enableParallelOutfile = false; @VariableMgr.VarAttr(name = CPU_RESOURCE_LIMIT) public int cpuResourceLimit = -1; - @VariableMgr.VarAttr(name = DISABLE_JOIN_REORDER) - private boolean disableJoinReorder = false; - - @VariableMgr.VarAttr(name = ENABLE_INFER_PREDICATE) - private boolean enableInferPredicate = true; - @VariableMgr.VarAttr(name = SQL_QUOTE_SHOW_CREATE) public boolean sqlQuoteShowCreate = true; - @VariableMgr.VarAttr(name = RETURN_OBJECT_DATA_AS_BINARY) - private boolean returnObjectDataAsBinary = false; + @VariableMgr.VarAttr(name = TRIM_TAILING_SPACES_FOR_EXTERNAL_TABLE_QUERY, needForward = true) + public boolean trimTailingSpacesForExternalTableQuery = false; - @VariableMgr.VarAttr(name = BLOCK_ENCRYPTION_MODE) - private String blockEncryptionMode = ""; // the maximum size in bytes for a table that will be broadcast to all be nodes // when performing a join, By setting this value to -1 broadcasting can be disabled. @@ -440,14 +422,54 @@ public class SessionVariable implements Serializable, Writable { @VariableMgr.VarAttr(name = AUTO_BROADCAST_JOIN_THRESHOLD) public double autoBroadcastJoinThreshold = 0.8; + @VariableMgr.VarAttr(name = ENABLE_COST_BASED_JOIN_REORDER) + private boolean enableJoinReorderBasedCost = false; + + @VariableMgr.VarAttr(name = ENABLE_FOLD_CONSTANT_BY_BE) + private boolean enableFoldConstantByBe = false; + + @VariableMgr.VarAttr(name = RUNTIME_FILTER_MODE) + private String runtimeFilterMode = "GLOBAL"; + + @VariableMgr.VarAttr(name = RUNTIME_BLOOM_FILTER_SIZE) + private int runtimeBloomFilterSize = 2097152; + + @VariableMgr.VarAttr(name = RUNTIME_BLOOM_FILTER_MIN_SIZE) + private int runtimeBloomFilterMinSize = 1048576; + + @VariableMgr.VarAttr(name = RUNTIME_BLOOM_FILTER_MAX_SIZE) + private int runtimeBloomFilterMaxSize = 16777216; + + @VariableMgr.VarAttr(name = RUNTIME_FILTER_WAIT_TIME_MS) + private int runtimeFilterWaitTimeMs = 1000; + + @VariableMgr.VarAttr(name = RUNTIME_FILTERS_MAX_NUM) + private int runtimeFiltersMaxNum = 10; + + // Set runtimeFilterType to IN_OR_BLOOM filter + @VariableMgr.VarAttr(name = RUNTIME_FILTER_TYPE) + private int runtimeFilterType = 8; + + @VariableMgr.VarAttr(name = RUNTIME_FILTER_MAX_IN_NUM) + private int runtimeFilterMaxInNum = 1024; + + @VariableMgr.VarAttr(name = DISABLE_JOIN_REORDER) + private boolean disableJoinReorder = false; + + @VariableMgr.VarAttr(name = ENABLE_INFER_PREDICATE) + private boolean enableInferPredicate = true; + + @VariableMgr.VarAttr(name = RETURN_OBJECT_DATA_AS_BINARY) + private boolean returnObjectDataAsBinary = false; + + @VariableMgr.VarAttr(name = BLOCK_ENCRYPTION_MODE) + private String blockEncryptionMode = ""; + @VariableMgr.VarAttr(name = ENABLE_PROJECTION) private boolean enableProjection = true; - @VariableMgr.VarAttr(name = TRIM_TAILING_SPACES_FOR_EXTERNAL_TABLE_QUERY, needForward = true) - public boolean trimTailingSpacesForExternalTableQuery = false; - @VariableMgr.VarAttr(name = ENABLE_ARRAY_TYPE) - boolean enableArrayType = false; + private boolean enableArrayType = false; public String getBlockEncryptionMode() { return blockEncryptionMode; @@ -589,6 +611,9 @@ public class SessionVariable implements Serializable, Writable { return codegenLevel; } + /** + * setMaxExecMemByte. + **/ public void setMaxExecMemByte(long maxExecMemByte) { if (maxExecMemByte < MIN_EXEC_MEM_LIMIT) { this.maxExecMemByte = MIN_EXEC_MEM_LIMIT; @@ -831,6 +856,9 @@ public class SessionVariable implements Serializable, Writable { this.enableVectorizedEngine = enableVectorizedEngine; } + /** + * getInsertVisibleTimeoutMs. + **/ public long getInsertVisibleTimeoutMs() { if (insertVisibleTimeoutMs < MIN_INSERT_VISIBLE_TIMEOUT_MS) { return MIN_INSERT_VISIBLE_TIMEOUT_MS; @@ -839,6 +867,9 @@ public class SessionVariable implements Serializable, Writable { } } + /** + * setInsertVisibleTimeoutMs. + **/ public void setInsertVisibleTimeoutMs(long insertVisibleTimeoutMs) { if (insertVisibleTimeoutMs < MIN_INSERT_VISIBLE_TIMEOUT_MS) { this.insertVisibleTimeoutMs = MIN_INSERT_VISIBLE_TIMEOUT_MS; @@ -939,8 +970,10 @@ public class SessionVariable implements Serializable, Writable { this.enableArrayType = enableArrayType; } - // Serialize to thrift object - // used for rest api + /** + * Serialize to thrift object. + * Used for rest api. + **/ public TQueryOptions toThrift() { TQueryOptions tResult = new TQueryOptions(); tResult.setMemLimit(maxExecMemByte); @@ -1072,7 +1105,9 @@ public class SessionVariable implements Serializable, Writable { } } - // Get all variables which need to forward along with statement + /** + * Get all variables which need to forward along with statement. + **/ public Map getForwardVariables() { HashMap map = new HashMap(); try { @@ -1090,6 +1125,9 @@ public class SessionVariable implements Serializable, Writable { return map; } + /** + * Set forwardedSessionVariables for variables. + **/ public void setForwardedSessionVariables(Map variables) { try { Field[] fields = SessionVariable.class.getFields(); @@ -1134,15 +1172,9 @@ public class SessionVariable implements Serializable, Writable { } } - // Get all variables which need to be set in TQueryOptions - public TQueryOptions getQueryOptionVariables() { - TQueryOptions queryOptions = new TQueryOptions(); - queryOptions.setMemLimit(maxExecMemByte); - queryOptions.setQueryTimeout(queryTimeoutS); - queryOptions.setLoadMemLimit(loadMemLimit); - return queryOptions; - } - + /** + * Set forwardedSessionVariables for queryOptions. + **/ public void setForwardedSessionVariables(TQueryOptions queryOptions) { if (queryOptions.isSetMemLimit()) { setMaxExecMemByte(queryOptions.getMemLimit()); @@ -1154,4 +1186,16 @@ public class SessionVariable implements Serializable, Writable { setLoadMemLimit(queryOptions.getLoadMemLimit()); } } + + /** + * Get all variables which need to be set in TQueryOptions. + **/ + public TQueryOptions getQueryOptionVariables() { + TQueryOptions queryOptions = new TQueryOptions(); + queryOptions.setMemLimit(maxExecMemByte); + queryOptions.setQueryTimeout(queryTimeoutS); + queryOptions.setLoadMemLimit(loadMemLimit); + return queryOptions; + } + }