[Improvement](meta) add default_value column & is changed column for result of show_variables stmt (#23017)
* [Improvement](meta) add default_value column for result of show_variables stmt * add Changed column to show whether value is modified * fix code style issue
This commit is contained in:
@ -32,10 +32,14 @@ public class ShowVariablesStmt extends ShowStmt {
|
||||
private static final Logger LOG = LogManager.getLogger(ShowVariablesStmt.class);
|
||||
private static final String NAME_COL = "Variable_name";
|
||||
private static final String VALUE_COL = "Value";
|
||||
private static final String DEFAULT_VALUE_COL = "Default_Value";
|
||||
private static final String CHANGED_COL = "Changed";
|
||||
private static final ShowResultSetMetaData META_DATA =
|
||||
ShowResultSetMetaData.builder()
|
||||
.addColumn(new Column(NAME_COL, ScalarType.createVarchar(20)))
|
||||
.addColumn(new Column(VALUE_COL, ScalarType.createVarchar(20)))
|
||||
.addColumn(new Column(DEFAULT_VALUE_COL, ScalarType.createVarchar(20)))
|
||||
.addColumn(new Column(CHANGED_COL, ScalarType.createVarchar(20)))
|
||||
.build();
|
||||
|
||||
private SetType type;
|
||||
|
||||
@ -151,11 +151,16 @@ public class SchemaTable extends Table {
|
||||
.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()))
|
||||
.column("VARIABLE_VALUE", ScalarType.createVarchar(1024))
|
||||
.column("DEFAULT_VALUE", ScalarType.createVarchar(1024))
|
||||
.column("CHANGED", ScalarType.createVarchar(4))
|
||||
.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()))
|
||||
.column("VARIABLE_VALUE", ScalarType.createVarchar(1024))
|
||||
.column("DEFAULT_VALUE", ScalarType.createVarchar(1024))
|
||||
.column("CHANGED", ScalarType.createVarchar(4)).build()))
|
||||
.put("columns",
|
||||
new SchemaTable(SystemIdGenerator.getNextId(), "columns", TableType.SCHEMA,
|
||||
builder().column("TABLE_CATALOG", ScalarType.createVarchar(512))
|
||||
|
||||
@ -720,6 +720,15 @@ public class VariableMgr {
|
||||
}
|
||||
}
|
||||
|
||||
VarContext varContext = ctxByVarName.get(entry.getKey());
|
||||
if (varContext != null) {
|
||||
row.add(varContext.defaultValue);
|
||||
row.add(row.get(1).equals(row.get(2)) ? "0" : "1");
|
||||
} else {
|
||||
row.add("-");
|
||||
row.add("-");
|
||||
}
|
||||
|
||||
rows.add(row);
|
||||
}
|
||||
} finally {
|
||||
|
||||
@ -26,16 +26,18 @@ public class ShowVariablesStmtTest {
|
||||
ShowVariablesStmt stmt = new ShowVariablesStmt(null, null);
|
||||
stmt.analyze(null);
|
||||
Assert.assertEquals("SHOW DEFAULT VARIABLES", stmt.toString());
|
||||
Assert.assertEquals(2, stmt.getMetaData().getColumnCount());
|
||||
Assert.assertEquals(4, stmt.getMetaData().getColumnCount());
|
||||
Assert.assertEquals("Variable_name", stmt.getMetaData().getColumn(0).getName());
|
||||
Assert.assertEquals("Value", stmt.getMetaData().getColumn(1).getName());
|
||||
Assert.assertEquals("Default_Value", stmt.getMetaData().getColumn(2).getName());
|
||||
Assert.assertEquals("Changed", stmt.getMetaData().getColumn(3).getName());
|
||||
Assert.assertNull(stmt.getPattern());
|
||||
Assert.assertEquals(SetType.DEFAULT, stmt.getType());
|
||||
|
||||
stmt = new ShowVariablesStmt(SetType.GLOBAL, "abc");
|
||||
stmt.analyze(null);
|
||||
Assert.assertEquals("SHOW GLOBAL VARIABLES LIKE 'abc'", stmt.toString());
|
||||
Assert.assertEquals(2, stmt.getMetaData().getColumnCount());
|
||||
Assert.assertEquals(4, stmt.getMetaData().getColumnCount());
|
||||
Assert.assertEquals("Variable_name", stmt.getMetaData().getColumn(0).getName());
|
||||
Assert.assertEquals("Value", stmt.getMetaData().getColumn(1).getName());
|
||||
Assert.assertEquals("abc", stmt.getPattern());
|
||||
|
||||
Reference in New Issue
Block a user