[Bug] Compatible with Datagrip, fix checkStyle (#10143)
* Compatible with Datagrip, fix checkStyle * ADD: comment
This commit is contained in:
@ -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<Column> 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<String, Table> TABLE_MAP =
|
||||
ImmutableMap
|
||||
.<String, Table>builder()
|
||||
.put("tables", new SchemaTable(
|
||||
SystemIdGenerator.getNextId(),
|
||||
"tables",
|
||||
TableType.SCHEMA,
|
||||
builder()
|
||||
.column("TABLE_CATALOG", ScalarType.createVarchar(FN_REFLEN))
|
||||
public static Map<String, Table> TABLE_MAP = ImmutableMap.<String, Table>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<Column> 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<Column> 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;
|
||||
|
||||
@ -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<String, String> getForwardVariables() {
|
||||
HashMap<String, String> map = new HashMap<String, String>();
|
||||
try {
|
||||
@ -1090,6 +1125,9 @@ public class SessionVariable implements Serializable, Writable {
|
||||
return map;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set forwardedSessionVariables for variables.
|
||||
**/
|
||||
public void setForwardedSessionVariables(Map<String, String> 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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user