Merge pull request #19931 from taosdata/feat/TD-22067-MAIN
modify format and remove no use delete
This commit is contained in:
commit
4394949f40
|
@ -32,6 +32,7 @@ void shellShowOnScreen(SShellCmd* cmd);
|
||||||
void shellInsertChar(SShellCmd* cmd, char* c, int size);
|
void shellInsertChar(SShellCmd* cmd, char* c, int size);
|
||||||
void shellInsertStr(SShellCmd* cmd, char* str, int size);
|
void shellInsertStr(SShellCmd* cmd, char* str, int size);
|
||||||
bool appendAfterSelect(TAOS* con, SShellCmd* cmd, char* p, int32_t len);
|
bool appendAfterSelect(TAOS* con, SShellCmd* cmd, char* p, int32_t len);
|
||||||
|
char* tireSearchWord(int type, char* pre);
|
||||||
|
|
||||||
typedef struct SAutoPtr {
|
typedef struct SAutoPtr {
|
||||||
STire* p;
|
STire* p;
|
||||||
|
@ -60,23 +61,22 @@ SWords shellCommands[] = {
|
||||||
{"alter database <db_name> <alter_db_options> <anyword> <alter_db_options> <anyword> <alter_db_options> <anyword> "
|
{"alter database <db_name> <alter_db_options> <anyword> <alter_db_options> <anyword> <alter_db_options> <anyword> "
|
||||||
"<alter_db_options> <anyword> <alter_db_options> <anyword> ;",
|
"<alter_db_options> <anyword> <alter_db_options> <anyword> ;",
|
||||||
0, 0, NULL},
|
0, 0, NULL},
|
||||||
{"alter dnode <dnode_id> balance ", 0, 0, NULL},
|
{"alter dnode <dnode_id> \"resetlog\";", 0, 0, NULL},
|
||||||
{"alter dnode <dnode_id> resetlog;", 0, 0, NULL},
|
{"alter dnode <dnode_id> \"debugFlag\" \"141\";", 0, 0, NULL},
|
||||||
{"alter dnode <dnode_id> debugFlag 141;", 0, 0, NULL},
|
{"alter dnode <dnode_id> \"monitor\" \"0\";", 0, 0, NULL},
|
||||||
{"alter dnode <dnode_id> monitor 1;", 0, 0, NULL},
|
{"alter dnode <dnode_id> \"monitor\" \"1\";", 0, 0, NULL},
|
||||||
{"alter all dnodes monitor ", 0, 0, NULL},
|
{"alter all dnodes \"resetlog\";", 0, 0, NULL},
|
||||||
{"alter alldnodes balance ", 0, 0, NULL},
|
{"alter all dnodes \"debugFlag\" \"141\";", 0, 0, NULL},
|
||||||
{"alter alldnodes resetlog;", 0, 0, NULL},
|
{"alter all dnodes \"monitor\" \"0\";", 0, 0, NULL},
|
||||||
{"alter alldnodes debugFlag 141;", 0, 0, NULL},
|
{"alter all dnodes \"monitor\" \"1\";", 0, 0, NULL},
|
||||||
{"alter alldnodes monitor 1;", 0, 0, NULL},
|
|
||||||
{"alter table <tb_name> <tb_actions> <anyword> ;", 0, 0, NULL},
|
{"alter table <tb_name> <tb_actions> <anyword> ;", 0, 0, NULL},
|
||||||
{"alter table modify column", 0, 0, NULL},
|
{"alter table modify column", 0, 0, NULL},
|
||||||
{"alter local resetlog;", 0, 0, NULL},
|
{"alter local \"resetlog\";", 0, 0, NULL},
|
||||||
{"alter local DebugFlag 143;", 0, 0, NULL},
|
{"alter local \"DebugFlag\" \"143\";", 0, 0, NULL},
|
||||||
{"alter local cDebugFlag 143;", 0, 0, NULL},
|
{"alter local \"cDebugFlag\" \"143\";", 0, 0, NULL},
|
||||||
{"alter local uDebugFlag 143;", 0, 0, NULL},
|
{"alter local \"uDebugFlag\" \"143\";", 0, 0, NULL},
|
||||||
{"alter local rpcDebugFlag 143;", 0, 0, NULL},
|
{"alter local \"rpcDebugFlag\" \"143\";", 0, 0, NULL},
|
||||||
{"alter local tmrDebugFlag 143;", 0, 0, NULL},
|
{"alter local \"tmrDebugFlag\" \"143\";", 0, 0, NULL},
|
||||||
{"alter topic", 0, 0, NULL},
|
{"alter topic", 0, 0, NULL},
|
||||||
{"alter user <user_name> <user_actions> <anyword> ;", 0, 0, NULL},
|
{"alter user <user_name> <user_actions> <anyword> ;", 0, 0, NULL},
|
||||||
// 20
|
// 20
|
||||||
|
@ -108,6 +108,7 @@ SWords shellCommands[] = {
|
||||||
{"drop topic <topic_name> ;", 0, 0, NULL},
|
{"drop topic <topic_name> ;", 0, 0, NULL},
|
||||||
{"drop stream <stream_name> ;", 0, 0, NULL},
|
{"drop stream <stream_name> ;", 0, 0, NULL},
|
||||||
{"explain select", 0, 0, NULL}, // 44 append sub sql
|
{"explain select", 0, 0, NULL}, // 44 append sub sql
|
||||||
|
{"flush database <db_name> ;", 0, 0, NULL},
|
||||||
{"help;", 0, 0, NULL},
|
{"help;", 0, 0, NULL},
|
||||||
{"grant all on <anyword> to <user_name> ;", 0, 0, NULL},
|
{"grant all on <anyword> to <user_name> ;", 0, 0, NULL},
|
||||||
{"grant read on <anyword> to <user_name> ;", 0, 0, NULL},
|
{"grant read on <anyword> to <user_name> ;", 0, 0, NULL},
|
||||||
|
@ -121,7 +122,6 @@ SWords shellCommands[] = {
|
||||||
{"revoke read on <anyword> from <user_name> ;", 0, 0, NULL},
|
{"revoke read on <anyword> from <user_name> ;", 0, 0, NULL},
|
||||||
{"revoke write on <anyword> from <user_name> ;", 0, 0, NULL},
|
{"revoke write on <anyword> from <user_name> ;", 0, 0, NULL},
|
||||||
{"select * from <all_table>", 0, 0, NULL},
|
{"select * from <all_table>", 0, 0, NULL},
|
||||||
{"select _block_dist() from <all_table> \\G;", 0, 0, NULL},
|
|
||||||
{"select client_version();", 0, 0, NULL},
|
{"select client_version();", 0, 0, NULL},
|
||||||
// 60
|
// 60
|
||||||
{"select current_user();", 0, 0, NULL},
|
{"select current_user();", 0, 0, NULL},
|
||||||
|
@ -247,7 +247,7 @@ char* db_options[] = {"keep ",
|
||||||
"wal_retention_size ",
|
"wal_retention_size ",
|
||||||
"wal_segment_size "};
|
"wal_segment_size "};
|
||||||
|
|
||||||
char* alter_db_options[] = {"keep ", "cachemodel ", "cachesize ", "wal_fsync_period ", "wal_level "};
|
char* alter_db_options[] = {"cachemodel ", "replica ", "keep ", "cachesize ", "wal_fsync_period ", "wal_level "};
|
||||||
|
|
||||||
char* data_types[] = {"timestamp", "int",
|
char* data_types[] = {"timestamp", "int",
|
||||||
"int unsigned", "varchar(16)",
|
"int unsigned", "varchar(16)",
|
||||||
|
@ -262,6 +262,14 @@ char* key_tags[] = {"tags("};
|
||||||
|
|
||||||
char* key_select[] = {"select "};
|
char* key_select[] = {"select "};
|
||||||
|
|
||||||
|
char* key_systable[] = {
|
||||||
|
"ins_dnodes", "ins_mnodes", "ins_modules", "ins_qnodes", "ins_snodes", "ins_cluster",
|
||||||
|
"ins_databases", "ins_functions", "ins_indexes", "ins_stables", "ins_tables", "ins_tags",
|
||||||
|
"ins_users", "ins_grants", "ins_vgroups", "ins_configs", "ins_dnode_variables", "ins_topics",
|
||||||
|
"ins_subscriptions", "ins_streams", "ins_stream_tasks", "ins_vnodes", "ins_user_privileges", "perf_connections",
|
||||||
|
"perf_queries", "perf_consumers", "perf_trans", "perf_apps"};
|
||||||
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// ------- gobal variant define ---------
|
// ------- gobal variant define ---------
|
||||||
//
|
//
|
||||||
|
@ -293,8 +301,9 @@ bool waitAutoFill = false;
|
||||||
#define WT_VAR_TBOPTION 16
|
#define WT_VAR_TBOPTION 16
|
||||||
#define WT_VAR_USERACTION 17
|
#define WT_VAR_USERACTION 17
|
||||||
#define WT_VAR_KEYSELECT 18
|
#define WT_VAR_KEYSELECT 18
|
||||||
|
#define WT_VAR_SYSTABLE 19
|
||||||
|
|
||||||
#define WT_VAR_CNT 19
|
#define WT_VAR_CNT 20
|
||||||
|
|
||||||
#define WT_FROM_DB_MAX 6 // max get content from db
|
#define WT_FROM_DB_MAX 6 // max get content from db
|
||||||
#define WT_FROM_DB_CNT (WT_FROM_DB_MAX + 1)
|
#define WT_FROM_DB_CNT (WT_FROM_DB_MAX + 1)
|
||||||
|
@ -327,19 +336,19 @@ int cntDel = 0; // delete byte count after next press tab
|
||||||
|
|
||||||
// show auto tab introduction
|
// show auto tab introduction
|
||||||
void printfIntroduction() {
|
void printfIntroduction() {
|
||||||
printf(" ****************************** Tab Completion **********************************\n");
|
printf(" ****************************** Tab Completion *************************************\n");
|
||||||
printf(" * The TDengine CLI supports tab completion for a variety of items, *\n");
|
printf(" * The TDengine CLI supports tab completion for a variety of items, *\n");
|
||||||
printf(" * including database names, table names, function names and keywords. *\n");
|
printf(" * including database names, table names, function names and keywords. *\n");
|
||||||
printf(" * The full list of shortcut keys is as follows: *\n");
|
printf(" * The full list of shortcut keys is as follows: *\n");
|
||||||
printf(" * [ TAB ] ...... complete the current word *\n");
|
printf(" * [ TAB ] ...... complete the current word *\n");
|
||||||
printf(" * ...... if used on a blank line, display all valid commands *\n");
|
printf(" * ...... if used on a blank line, display all supported commands *\n");
|
||||||
printf(" * [ Ctrl + A ] ...... move cursor to the st[A]rt of the line *\n");
|
printf(" * [ Ctrl + A ] ...... move cursor to the st[A]rt of the line *\n");
|
||||||
printf(" * [ Ctrl + E ] ...... move cursor to the [E]nd of the line *\n");
|
printf(" * [ Ctrl + E ] ...... move cursor to the [E]nd of the line *\n");
|
||||||
printf(" * [ Ctrl + W ] ...... move cursor to the middle of the line *\n");
|
printf(" * [ Ctrl + W ] ...... move cursor to the middle of the line *\n");
|
||||||
printf(" * [ Ctrl + L ] ...... clear the entire screen *\n");
|
printf(" * [ Ctrl + L ] ...... clear the entire screen *\n");
|
||||||
printf(" * [ Ctrl + K ] ...... clear the screen after the cursor *\n");
|
printf(" * [ Ctrl + K ] ...... clear the screen after the cursor *\n");
|
||||||
printf(" * [ Ctrl + U ] ...... clear the screen before the cursor *\n");
|
printf(" * [ Ctrl + U ] ...... clear the screen before the cursor *\n");
|
||||||
printf(" **********************************************************************************\n\n");
|
printf(" *************************************************************************************\n\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
void showHelp() {
|
void showHelp() {
|
||||||
|
@ -348,23 +357,24 @@ void showHelp() {
|
||||||
"\n\
|
"\n\
|
||||||
----- A ----- \n\
|
----- A ----- \n\
|
||||||
alter database <db_name> <db_options> \n\
|
alter database <db_name> <db_options> \n\
|
||||||
alter dnode <dnode_id> balance \n\
|
alter dnode <dnode_id> 'resetlog';\n\
|
||||||
alter dnode <dnode_id> resetlog;\n\
|
alter dnode <dnode_id> 'monitor' '0';\n\
|
||||||
alter all dnodes monitor \n\
|
alter dnode <dnode_id> 'monitor' \"1\";\n\
|
||||||
alter alldnodes balance \n\
|
alter dnode <dnode_id> \"debugflag\" \"143\";\n\
|
||||||
alter alldnodes resetlog;\n\
|
alter all dnodes \"monitor\" \"0\";\n\
|
||||||
alter alldnodes debugFlag \n\
|
alter all dnodes \"monitor\" \"1\";\n\
|
||||||
alter alldnodes monitor \n\
|
alter all dnodes \"resetlog\";\n\
|
||||||
|
alter all dnodes \"debugFlag\" \n\
|
||||||
alter table <tb_name> <tb_actions> ;\n\
|
alter table <tb_name> <tb_actions> ;\n\
|
||||||
alter table modify column\n\
|
alter table modify column\n\
|
||||||
alter local resetlog;\n\
|
alter local \"resetlog\";\n\
|
||||||
alter local DebugFlag 143;\n\
|
alter local \"DebugFlag\" \"143\";\n\
|
||||||
alter topic\n\
|
alter topic\n\
|
||||||
alter user <user_name> <user_actions> ...\n\
|
alter user <user_name> <user_actions> ...\n\
|
||||||
----- C ----- \n\
|
----- C ----- \n\
|
||||||
create table <tb_name> using <stb_name> tags ...\n\
|
create table <tb_name> using <stb_name> tags ...\n\
|
||||||
create database <db_name> <db_options> ...\n\
|
create database <db_name> <db_options> ...\n\
|
||||||
create dnode ...\n\
|
create dnode \"fqdn:port\"n\
|
||||||
create index ...\n\
|
create index ...\n\
|
||||||
create mnode on dnode <dnode_id> ;\n\
|
create mnode on dnode <dnode_id> ;\n\
|
||||||
create qnode on dnode <dnode_id> ;\n\
|
create qnode on dnode <dnode_id> ;\n\
|
||||||
|
@ -387,6 +397,8 @@ void showHelp() {
|
||||||
drop stream <stream_name> ;\n\
|
drop stream <stream_name> ;\n\
|
||||||
----- E ----- \n\
|
----- E ----- \n\
|
||||||
explain select clause ...\n\
|
explain select clause ...\n\
|
||||||
|
----- F ----- \n\
|
||||||
|
flush database <db_name>;\n\
|
||||||
----- H ----- \n\
|
----- H ----- \n\
|
||||||
help;\n\
|
help;\n\
|
||||||
----- I ----- \n\
|
----- I ----- \n\
|
||||||
|
@ -409,7 +421,6 @@ void showHelp() {
|
||||||
revoke write on <priv_level> from <user_name> ;\n\
|
revoke write on <priv_level> from <user_name> ;\n\
|
||||||
----- S ----- \n\
|
----- S ----- \n\
|
||||||
select * from <all_table> where ... \n\
|
select * from <all_table> where ... \n\
|
||||||
select _block_dist() from <all_table>;\n\
|
|
||||||
select client_version();\n\
|
select client_version();\n\
|
||||||
select current_user();\n\
|
select current_user();\n\
|
||||||
select database();\n\
|
select database();\n\
|
||||||
|
@ -619,12 +630,17 @@ bool shellAutoInit() {
|
||||||
GenerateVarType(WT_VAR_TBOPTION, tb_options, sizeof(tb_options) / sizeof(char*));
|
GenerateVarType(WT_VAR_TBOPTION, tb_options, sizeof(tb_options) / sizeof(char*));
|
||||||
GenerateVarType(WT_VAR_USERACTION, user_actions, sizeof(user_actions) / sizeof(char*));
|
GenerateVarType(WT_VAR_USERACTION, user_actions, sizeof(user_actions) / sizeof(char*));
|
||||||
GenerateVarType(WT_VAR_KEYSELECT, key_select, sizeof(key_select) / sizeof(char*));
|
GenerateVarType(WT_VAR_KEYSELECT, key_select, sizeof(key_select) / sizeof(char*));
|
||||||
|
GenerateVarType(WT_VAR_SYSTABLE, key_systable, sizeof(key_systable) / sizeof(char*));
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// set conn
|
// set conn
|
||||||
void shellSetConn(TAOS* conn) { varCon = conn; }
|
void shellSetConn(TAOS* conn) {
|
||||||
|
varCon = conn;
|
||||||
|
// init database and stable
|
||||||
|
tireSearchWord(WT_VAR_DBNAME, "");
|
||||||
|
}
|
||||||
|
|
||||||
// exit shell auto funciton, shell exit call once
|
// exit shell auto funciton, shell exit call once
|
||||||
void shellAutoExit() {
|
void shellAutoExit() {
|
||||||
|
@ -803,6 +819,7 @@ void* varObtainThread(void* param) {
|
||||||
// only match next one word from all match words, return valuue must free by caller
|
// only match next one word from all match words, return valuue must free by caller
|
||||||
char* matchNextPrefix(STire* tire, char* pre) {
|
char* matchNextPrefix(STire* tire, char* pre) {
|
||||||
SMatch* match = NULL;
|
SMatch* match = NULL;
|
||||||
|
if(tire == NULL) return NULL;
|
||||||
|
|
||||||
// re-use last result
|
// re-use last result
|
||||||
if (lastMatch) {
|
if (lastMatch) {
|
||||||
|
@ -1116,6 +1133,7 @@ void printScreen(TAOS* con, SShellCmd* cmd, SWords* match) {
|
||||||
|
|
||||||
// main key press tab , matched return true else false
|
// main key press tab , matched return true else false
|
||||||
bool firstMatchCommand(TAOS* con, SShellCmd* cmd) {
|
bool firstMatchCommand(TAOS* con, SShellCmd* cmd) {
|
||||||
|
if(con == NULL || cmd == NULL) return false;
|
||||||
// parse command
|
// parse command
|
||||||
SWords* input = (SWords*)taosMemoryMalloc(sizeof(SWords));
|
SWords* input = (SWords*)taosMemoryMalloc(sizeof(SWords));
|
||||||
memset(input, 0, sizeof(SWords));
|
memset(input, 0, sizeof(SWords));
|
||||||
|
@ -1660,6 +1678,38 @@ bool matchOther(TAOS* con, SShellCmd* cmd) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// last match if nothing matched
|
||||||
|
bool matchEnd(TAOS* con, SShellCmd* cmd) {
|
||||||
|
// str dump
|
||||||
|
bool ret = false;
|
||||||
|
char* ps = strndup(cmd->command, cmd->commandSize);
|
||||||
|
char* last = lastWord(ps);
|
||||||
|
char* elast = strrchr(last, '.'); // find end last
|
||||||
|
if(elast) {
|
||||||
|
last = elast + 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// less one char can match
|
||||||
|
if(strlen(last) == 0 ) {
|
||||||
|
goto _return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// match database
|
||||||
|
if (fillWithType(con, cmd, last, WT_VAR_DBNAME)) {
|
||||||
|
ret = true;
|
||||||
|
goto _return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (fillWithType(con, cmd, last, WT_VAR_SYSTABLE)) {
|
||||||
|
ret = true;
|
||||||
|
goto _return;
|
||||||
|
}
|
||||||
|
|
||||||
|
_return:
|
||||||
|
taosMemoryFree(ps);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
// main key press tab
|
// main key press tab
|
||||||
void pressTabKey(SShellCmd* cmd) {
|
void pressTabKey(SShellCmd* cmd) {
|
||||||
// check
|
// check
|
||||||
|
@ -1695,6 +1745,9 @@ void pressTabKey(SShellCmd* cmd) {
|
||||||
matched = matchSelectQuery(varCon, cmd);
|
matched = matchSelectQuery(varCon, cmd);
|
||||||
if (matched) return;
|
if (matched) return;
|
||||||
|
|
||||||
|
// match end
|
||||||
|
matched = matchEnd(varCon, cmd);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1911,6 +1964,7 @@ void callbackAutoTab(char* sqlstr, TAOS* pSql, bool usedb) {
|
||||||
|
|
||||||
if (dealUseDB(sql)) {
|
if (dealUseDB(sql)) {
|
||||||
// change to new db
|
// change to new db
|
||||||
|
tireSearchWord(WT_VAR_STABLE, "");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue