未验证 提交 3d3885d1 编写于 作者: S Shengliang Guan 提交者: GitHub

Merge pull request #19070 from taosdata/enh/3.0_planner_optimize

enh: improve unit tests
...@@ -171,10 +171,10 @@ typedef struct SCreateSubTableClause { ...@@ -171,10 +171,10 @@ typedef struct SCreateSubTableClause {
STableOptions* pOptions; STableOptions* pOptions;
} SCreateSubTableClause; } SCreateSubTableClause;
typedef struct SCreateMultiTableStmt { typedef struct SCreateMultiTablesStmt {
ENodeType type; ENodeType type;
SNodeList* pSubTables; SNodeList* pSubTables;
} SCreateMultiTableStmt; } SCreateMultiTablesStmt;
typedef struct SDropTableClause { typedef struct SDropTableClause {
ENodeType type; ENodeType type;
...@@ -209,14 +209,14 @@ typedef struct SAlterTableStmt { ...@@ -209,14 +209,14 @@ typedef struct SAlterTableStmt {
typedef struct SCreateUserStmt { typedef struct SCreateUserStmt {
ENodeType type; ENodeType type;
char useName[TSDB_USER_LEN]; char userName[TSDB_USER_LEN];
char password[TSDB_USET_PASSWORD_LEN]; char password[TSDB_USET_PASSWORD_LEN];
int8_t sysinfo; int8_t sysinfo;
} SCreateUserStmt; } SCreateUserStmt;
typedef struct SAlterUserStmt { typedef struct SAlterUserStmt {
ENodeType type; ENodeType type;
char useName[TSDB_USER_LEN]; char userName[TSDB_USER_LEN];
int8_t alterType; int8_t alterType;
char password[TSDB_USET_PASSWORD_LEN]; char password[TSDB_USET_PASSWORD_LEN];
int8_t enable; int8_t enable;
......
...@@ -125,7 +125,7 @@ typedef enum ENodeType { ...@@ -125,7 +125,7 @@ typedef enum ENodeType {
QUERY_NODE_TRIM_DATABASE_STMT, QUERY_NODE_TRIM_DATABASE_STMT,
QUERY_NODE_CREATE_TABLE_STMT, QUERY_NODE_CREATE_TABLE_STMT,
QUERY_NODE_CREATE_SUBTABLE_CLAUSE, QUERY_NODE_CREATE_SUBTABLE_CLAUSE,
QUERY_NODE_CREATE_MULTI_TABLE_STMT, QUERY_NODE_CREATE_MULTI_TABLES_STMT,
QUERY_NODE_DROP_TABLE_CLAUSE, QUERY_NODE_DROP_TABLE_CLAUSE,
QUERY_NODE_DROP_TABLE_STMT, QUERY_NODE_DROP_TABLE_STMT,
QUERY_NODE_DROP_SUPER_TABLE_STMT, QUERY_NODE_DROP_SUPER_TABLE_STMT,
......
...@@ -79,6 +79,10 @@ const char* nodesNodeName(ENodeType type) { ...@@ -79,6 +79,10 @@ const char* nodesNodeName(ENodeType type) {
return "TableOptions"; return "TableOptions";
case QUERY_NODE_INDEX_OPTIONS: case QUERY_NODE_INDEX_OPTIONS:
return "IndexOptions"; return "IndexOptions";
case QUERY_NODE_EXPLAIN_OPTIONS:
return "ExplainOptions";
case QUERY_NODE_STREAM_OPTIONS:
return "StreamOptions";
case QUERY_NODE_LEFT_VALUE: case QUERY_NODE_LEFT_VALUE:
return "LeftValue"; return "LeftValue";
case QUERY_NODE_WHEN_THEN: case QUERY_NODE_WHEN_THEN:
...@@ -107,7 +111,7 @@ const char* nodesNodeName(ENodeType type) { ...@@ -107,7 +111,7 @@ const char* nodesNodeName(ENodeType type) {
return "CreateTableStmt"; return "CreateTableStmt";
case QUERY_NODE_CREATE_SUBTABLE_CLAUSE: case QUERY_NODE_CREATE_SUBTABLE_CLAUSE:
return "CreateSubtableClause"; return "CreateSubtableClause";
case QUERY_NODE_CREATE_MULTI_TABLE_STMT: case QUERY_NODE_CREATE_MULTI_TABLES_STMT:
return "CreateMultiTableStmt"; return "CreateMultiTableStmt";
case QUERY_NODE_DROP_TABLE_CLAUSE: case QUERY_NODE_DROP_TABLE_CLAUSE:
return "DropTableClause"; return "DropTableClause";
...@@ -141,20 +145,42 @@ const char* nodesNodeName(ENodeType type) { ...@@ -141,20 +145,42 @@ const char* nodesNodeName(ENodeType type) {
return "CreateQnodeStmt"; return "CreateQnodeStmt";
case QUERY_NODE_DROP_QNODE_STMT: case QUERY_NODE_DROP_QNODE_STMT:
return "DropQnodeStmt"; return "DropQnodeStmt";
case QUERY_NODE_CREATE_SNODE_STMT:
return "CreateSnodeStmt";
case QUERY_NODE_DROP_SNODE_STMT: case QUERY_NODE_DROP_SNODE_STMT:
return "DropSnodeStmt"; return "DropSnodeStmt";
case QUERY_NODE_CREATE_MNODE_STMT:
return "CreateMnodeStmt";
case QUERY_NODE_DROP_MNODE_STMT: case QUERY_NODE_DROP_MNODE_STMT:
return "DropMnodeStmt"; return "DropMnodeStmt";
case QUERY_NODE_CREATE_TOPIC_STMT: case QUERY_NODE_CREATE_TOPIC_STMT:
return "CreateTopicStmt"; return "CreateTopicStmt";
case QUERY_NODE_DROP_TOPIC_STMT: case QUERY_NODE_DROP_TOPIC_STMT:
return "DropTopicStmt"; return "DropTopicStmt";
case QUERY_NODE_DROP_CGROUP_STMT:
return "DropConsumerGroupStmt";
case QUERY_NODE_ALTER_LOCAL_STMT: case QUERY_NODE_ALTER_LOCAL_STMT:
return "AlterLocalStmt"; return "AlterLocalStmt";
case QUERY_NODE_EXPLAIN_STMT:
return "ExplainStmt";
case QUERY_NODE_DESCRIBE_STMT:
return "DescribeStmt";
case QUERY_NODE_CREATE_STREAM_STMT:
return "CreateStreamStmt";
case QUERY_NODE_DROP_STREAM_STMT: case QUERY_NODE_DROP_STREAM_STMT:
return "DropStreamStmt"; return "DropStreamStmt";
case QUERY_NODE_BALANCE_VGROUP_STMT:
return "BalanceVgroupStmt";
case QUERY_NODE_MERGE_VGROUP_STMT:
return "MergeVgroupStmt";
case QUERY_NODE_REDISTRIBUTE_VGROUP_STMT:
return "RedistributeVgroupStmt";
case QUERY_NODE_SPLIT_VGROUP_STMT: case QUERY_NODE_SPLIT_VGROUP_STMT:
return "SplitVgroupStmt"; return "SplitVgroupStmt";
case QUERY_NODE_GRANT_STMT:
return "GrantStmt";
case QUERY_NODE_REVOKE_STMT:
return "RevokeStmt";
case QUERY_NODE_SHOW_DNODES_STMT: case QUERY_NODE_SHOW_DNODES_STMT:
return "ShowDnodesStmt"; return "ShowDnodesStmt";
case QUERY_NODE_SHOW_MNODES_STMT: case QUERY_NODE_SHOW_MNODES_STMT:
...@@ -1400,6 +1426,23 @@ static int32_t logicJoinNodeToJson(const void* pObj, SJson* pJson) { ...@@ -1400,6 +1426,23 @@ static int32_t logicJoinNodeToJson(const void* pObj, SJson* pJson) {
return code; return code;
} }
static int32_t jsonToLogicJoinNode(const SJson* pJson, void* pObj) {
SJoinLogicNode* pNode = (SJoinLogicNode*)pObj;
int32_t code = jsonToLogicPlanNode(pJson, pObj);
if (TSDB_CODE_SUCCESS == code) {
tjsonGetNumberValue(pJson, jkJoinLogicPlanJoinType, pNode->joinType, code);
}
if (TSDB_CODE_SUCCESS == code) {
code = jsonToNodeObject(pJson, jkJoinLogicPlanMergeCondition, &pNode->pMergeCondition);
}
if (TSDB_CODE_SUCCESS == code) {
code = jsonToNodeObject(pJson, jkJoinLogicPlanOnConditions, &pNode->pOnConditions);
}
return code;
}
static const char* jkPhysiPlanOutputDataBlockDesc = "OutputDataBlockDesc"; static const char* jkPhysiPlanOutputDataBlockDesc = "OutputDataBlockDesc";
static const char* jkPhysiPlanConditions = "Conditions"; static const char* jkPhysiPlanConditions = "Conditions";
static const char* jkPhysiPlanChildren = "Children"; static const char* jkPhysiPlanChildren = "Children";
...@@ -4004,6 +4047,45 @@ static int32_t jsonToSlotDescNode(const SJson* pJson, void* pObj) { ...@@ -4004,6 +4047,45 @@ static int32_t jsonToSlotDescNode(const SJson* pJson, void* pObj) {
return code; return code;
} }
static const char* jkColumnDefColName = "ColName";
static const char* jkColumnDefDataType = "DataType";
static const char* jkColumnDefComments = "Comments";
static const char* jkColumnDefSma = "Sma";
static int32_t columnDefNodeToJson(const void* pObj, SJson* pJson) {
const SColumnDefNode* pNode = (const SColumnDefNode*)pObj;
int32_t code = tjsonAddStringToObject(pJson, jkColumnDefColName, pNode->colName);
if (TSDB_CODE_SUCCESS == code) {
code = tjsonAddObject(pJson, jkColumnDefDataType, dataTypeToJson, &pNode->dataType);
}
if (TSDB_CODE_SUCCESS == code) {
code = tjsonAddStringToObject(pJson, jkColumnDefComments, pNode->comments);
}
if (TSDB_CODE_SUCCESS == code) {
code = tjsonAddBoolToObject(pJson, jkColumnDefSma, pNode->sma);
}
return code;
}
static int32_t jsonToColumnDefNode(const SJson* pJson, void* pObj) {
SColumnDefNode* pNode = (SColumnDefNode*)pObj;
int32_t code = tjsonGetStringValue(pJson, jkColumnDefColName, pNode->colName);
if (TSDB_CODE_SUCCESS == code) {
code = tjsonToObject(pJson, jkColumnDefDataType, jsonToDataType, &pNode->dataType);
}
if (TSDB_CODE_SUCCESS == code) {
code = tjsonGetStringValue(pJson, jkColumnDefComments, pNode->comments);
}
if (TSDB_CODE_SUCCESS == code) {
code = tjsonGetBoolValue(pJson, jkColumnDefSma, &pNode->sma);
}
return code;
}
static const char* jkDownstreamSourceAddr = "Addr"; static const char* jkDownstreamSourceAddr = "Addr";
static const char* jkDownstreamSourceTaskId = "TaskId"; static const char* jkDownstreamSourceTaskId = "TaskId";
static const char* jkDownstreamSourceSchedId = "SchedId"; static const char* jkDownstreamSourceSchedId = "SchedId";
...@@ -4194,6 +4276,190 @@ static int32_t jsonToDatabaseOptions(const SJson* pJson, void* pObj) { ...@@ -4194,6 +4276,190 @@ static int32_t jsonToDatabaseOptions(const SJson* pJson, void* pObj) {
return code; return code;
} }
static const char* jkTableOptionsComment = "Comment";
static const char* jkTableOptionsMaxDelay = "MaxDelay";
static const char* jkTableOptionsWatermark = "Watermark";
static const char* jkTableOptionsDeleteMark = "DeleteMark";
static const char* jkTableOptionsRollupFuncs = "RollupFuncs";
static const char* jkTableOptionsTtl = "Ttl";
static const char* jkTableOptionsSma = "Sma";
static int32_t tableOptionsToJson(const void* pObj, SJson* pJson) {
const STableOptions* pNode = (const STableOptions*)pObj;
int32_t code = tjsonAddStringToObject(pJson, jkTableOptionsComment, pNode->comment);
if (TSDB_CODE_SUCCESS == code) {
code = nodeListToJson(pJson, jkTableOptionsMaxDelay, pNode->pMaxDelay);
}
if (TSDB_CODE_SUCCESS == code) {
code = nodeListToJson(pJson, jkTableOptionsWatermark, pNode->pWatermark);
}
if (TSDB_CODE_SUCCESS == code) {
code = nodeListToJson(pJson, jkTableOptionsDeleteMark, pNode->pDeleteMark);
}
if (TSDB_CODE_SUCCESS == code) {
code = nodeListToJson(pJson, jkTableOptionsRollupFuncs, pNode->pRollupFuncs);
}
if (TSDB_CODE_SUCCESS == code) {
code = tjsonAddIntegerToObject(pJson, jkTableOptionsTtl, pNode->ttl);
}
if (TSDB_CODE_SUCCESS == code) {
code = nodeListToJson(pJson, jkTableOptionsSma, pNode->pSma);
}
return code;
}
static int32_t jsonToTableOptions(const SJson* pJson, void* pObj) {
STableOptions* pNode = (STableOptions*)pObj;
int32_t code = tjsonGetStringValue(pJson, jkTableOptionsComment, pNode->comment);
if (TSDB_CODE_SUCCESS == code) {
code = jsonToNodeList(pJson, jkTableOptionsMaxDelay, &pNode->pMaxDelay);
}
if (TSDB_CODE_SUCCESS == code) {
code = jsonToNodeList(pJson, jkTableOptionsWatermark, &pNode->pWatermark);
}
if (TSDB_CODE_SUCCESS == code) {
code = jsonToNodeList(pJson, jkTableOptionsDeleteMark, &pNode->pDeleteMark);
}
if (TSDB_CODE_SUCCESS == code) {
code = jsonToNodeList(pJson, jkTableOptionsRollupFuncs, &pNode->pRollupFuncs);
}
if (TSDB_CODE_SUCCESS == code) {
code = tjsonGetIntValue(pJson, jkTableOptionsTtl, &pNode->ttl);
}
if (TSDB_CODE_SUCCESS == code) {
code = jsonToNodeList(pJson, jkTableOptionsSma, &pNode->pSma);
}
return code;
}
static const char* jkIndexOptionsFuncs = "Funcs";
static const char* jkIndexOptionsInterval = "Interval";
static const char* jkIndexOptionsOffset = "Offset";
static const char* jkIndexOptionsSliding = "Sliding";
static const char* jkIndexOptionsStreamOptions = "StreamOptions";
static int32_t indexOptionsToJson(const void* pObj, SJson* pJson) {
const SIndexOptions* pNode = (const SIndexOptions*)pObj;
int32_t code = nodeListToJson(pJson, jkIndexOptionsFuncs, pNode->pFuncs);
if (TSDB_CODE_SUCCESS == code) {
code = tjsonAddObject(pJson, jkIndexOptionsInterval, nodeToJson, pNode->pInterval);
}
if (TSDB_CODE_SUCCESS == code) {
code = tjsonAddObject(pJson, jkIndexOptionsOffset, nodeToJson, pNode->pOffset);
}
if (TSDB_CODE_SUCCESS == code) {
code = tjsonAddObject(pJson, jkIndexOptionsSliding, nodeToJson, pNode->pSliding);
}
if (TSDB_CODE_SUCCESS == code) {
code = tjsonAddObject(pJson, jkIndexOptionsStreamOptions, nodeToJson, pNode->pStreamOptions);
}
return code;
}
static int32_t jsonToIndexOptions(const SJson* pJson, void* pObj) {
SIndexOptions* pNode = (SIndexOptions*)pObj;
int32_t code = jsonToNodeList(pJson, jkIndexOptionsFuncs, &pNode->pFuncs);
if (TSDB_CODE_SUCCESS == code) {
code = jsonToNodeObject(pJson, jkIndexOptionsInterval, &pNode->pInterval);
}
if (TSDB_CODE_SUCCESS == code) {
code = jsonToNodeObject(pJson, jkIndexOptionsOffset, &pNode->pOffset);
}
if (TSDB_CODE_SUCCESS == code) {
code = jsonToNodeObject(pJson, jkIndexOptionsSliding, &pNode->pSliding);
}
if (TSDB_CODE_SUCCESS == code) {
code = jsonToNodeObject(pJson, jkIndexOptionsStreamOptions, &pNode->pStreamOptions);
}
return code;
}
static const char* jkExplainOptionsVerbose = "Verbose";
static const char* jkExplainOptionsRatio = "Ratio";
static int32_t explainOptionsToJson(const void* pObj, SJson* pJson) {
const SExplainOptions* pNode = (const SExplainOptions*)pObj;
int32_t code = tjsonAddBoolToObject(pJson, jkExplainOptionsVerbose, pNode->verbose);
if (TSDB_CODE_SUCCESS == code) {
code = tjsonAddDoubleToObject(pJson, jkExplainOptionsRatio, pNode->ratio);
}
return code;
}
static int32_t jsonToExplainOptions(const SJson* pJson, void* pObj) {
SExplainOptions* pNode = (SExplainOptions*)pObj;
int32_t code = tjsonGetBoolValue(pJson, jkExplainOptionsVerbose, &pNode->verbose);
if (TSDB_CODE_SUCCESS == code) {
code = tjsonGetDoubleValue(pJson, jkExplainOptionsRatio, &pNode->ratio);
}
return code;
}
static const char* jkStreamOptionsTriggerType = "TriggerType";
static const char* jkStreamOptionsDelay = "Delay";
static const char* jkStreamOptionsWatermark = "Watermark";
static const char* jkStreamOptionsDeleteMark = "DeleteMark";
static const char* jkStreamOptionsFillHistory = "FillHistory";
static const char* jkStreamOptionsIgnoreExpired = "IgnoreExpired";
static int32_t streamOptionsToJson(const void* pObj, SJson* pJson) {
const SStreamOptions* pNode = (const SStreamOptions*)pObj;
int32_t code = tjsonAddIntegerToObject(pJson, jkStreamOptionsTriggerType, pNode->triggerType);
if (TSDB_CODE_SUCCESS == code) {
code = tjsonAddObject(pJson, jkStreamOptionsDelay, nodeToJson, pNode->pDelay);
}
if (TSDB_CODE_SUCCESS == code) {
code = tjsonAddObject(pJson, jkStreamOptionsWatermark, nodeToJson, pNode->pWatermark);
}
if (TSDB_CODE_SUCCESS == code) {
code = tjsonAddObject(pJson, jkStreamOptionsDeleteMark, nodeToJson, pNode->pDeleteMark);
}
if (TSDB_CODE_SUCCESS == code) {
code = tjsonAddIntegerToObject(pJson, jkStreamOptionsFillHistory, pNode->fillHistory);
}
if (TSDB_CODE_SUCCESS == code) {
code = tjsonAddIntegerToObject(pJson, jkStreamOptionsIgnoreExpired, pNode->ignoreExpired);
}
return code;
}
static int32_t jsonToStreamOptions(const SJson* pJson, void* pObj) {
SStreamOptions* pNode = (SStreamOptions*)pObj;
int32_t code = tjsonGetTinyIntValue(pJson, jkStreamOptionsTriggerType, &pNode->triggerType);
if (TSDB_CODE_SUCCESS == code) {
code = jsonToNodeObject(pJson, jkStreamOptionsDelay, &pNode->pDelay);
}
if (TSDB_CODE_SUCCESS == code) {
code = jsonToNodeObject(pJson, jkStreamOptionsWatermark, &pNode->pWatermark);
}
if (TSDB_CODE_SUCCESS == code) {
code = jsonToNodeObject(pJson, jkStreamOptionsDeleteMark, &pNode->pDeleteMark);
}
if (TSDB_CODE_SUCCESS == code) {
code = tjsonGetTinyIntValue(pJson, jkStreamOptionsFillHistory, &pNode->fillHistory);
}
if (TSDB_CODE_SUCCESS == code) {
code = tjsonGetTinyIntValue(pJson, jkStreamOptionsIgnoreExpired, &pNode->ignoreExpired);
}
return code;
}
static const char* jkWhenThenWhen = "When"; static const char* jkWhenThenWhen = "When";
static const char* jkWhenThenThen = "Then"; static const char* jkWhenThenThen = "Then";
...@@ -4512,6 +4778,38 @@ static int32_t jsonToVnodeModifyStmt(const SJson* pJson, void* pObj) { ...@@ -4512,6 +4778,38 @@ static int32_t jsonToVnodeModifyStmt(const SJson* pJson, void* pObj) {
return code; return code;
} }
static const char* jkCreateDatabaseStmtDbName = "DbName";
static const char* jkCreateDatabaseStmtIgnoreExists = "IgnoreExists";
static const char* jkCreateDatabaseStmtOptions = "Options";
static int32_t createDatabaseStmtToJson(const void* pObj, SJson* pJson) {
const SCreateDatabaseStmt* pNode = (const SCreateDatabaseStmt*)pObj;
int32_t code = tjsonAddStringToObject(pJson, jkCreateDatabaseStmtDbName, pNode->dbName);
if (TSDB_CODE_SUCCESS == code) {
code = tjsonAddBoolToObject(pJson, jkCreateDatabaseStmtIgnoreExists, pNode->ignoreExists);
}
if (TSDB_CODE_SUCCESS == code) {
code = tjsonAddObject(pJson, jkCreateDatabaseStmtOptions, nodeToJson, pNode->pOptions);
}
return code;
}
static int32_t jsonToCreateDatabaseStmt(const SJson* pJson, void* pObj) {
SCreateDatabaseStmt* pNode = (SCreateDatabaseStmt*)pObj;
int32_t code = tjsonGetStringValue(pJson, jkCreateDatabaseStmtDbName, pNode->dbName);
if (TSDB_CODE_SUCCESS == code) {
code = tjsonGetBoolValue(pJson, jkCreateDatabaseStmtIgnoreExists, &pNode->ignoreExists);
}
if (TSDB_CODE_SUCCESS == code) {
code = jsonToNodeObject(pJson, jkCreateDatabaseStmtOptions, (SNode**)&pNode->pOptions);
}
return code;
}
static const char* jkAlterDatabaseStmtDbName = "DbName"; static const char* jkAlterDatabaseStmtDbName = "DbName";
static const char* jkAlterDatabaseStmtOptions = "Options"; static const char* jkAlterDatabaseStmtOptions = "Options";
...@@ -4562,6 +4860,138 @@ static int32_t jsonToTrimDatabaseStmt(const SJson* pJson, void* pObj) { ...@@ -4562,6 +4860,138 @@ static int32_t jsonToTrimDatabaseStmt(const SJson* pJson, void* pObj) {
return code; return code;
} }
static const char* jkCreateTableStmtDbName = "DbName";
static const char* jkCreateTableStmtTableName = "TableName";
static const char* jkCreateTableStmtIgnoreExists = "IgnoreExists";
static const char* jkCreateTableStmtCols = "Cols";
static const char* jkCreateTableStmtTags = "Tags";
static const char* jkCreateTableStmtOptions = "Options";
static int32_t createTableStmtToJson(const void* pObj, SJson* pJson) {
const SCreateTableStmt* pNode = (const SCreateTableStmt*)pObj;
int32_t code = tjsonAddStringToObject(pJson, jkCreateTableStmtDbName, pNode->dbName);
if (TSDB_CODE_SUCCESS == code) {
code = tjsonAddStringToObject(pJson, jkCreateTableStmtTableName, pNode->tableName);
}
if (TSDB_CODE_SUCCESS == code) {
code = tjsonAddBoolToObject(pJson, jkCreateTableStmtIgnoreExists, pNode->ignoreExists);
}
if (TSDB_CODE_SUCCESS == code) {
code = nodeListToJson(pJson, jkCreateTableStmtCols, pNode->pCols);
}
if (TSDB_CODE_SUCCESS == code) {
code = nodeListToJson(pJson, jkCreateTableStmtTags, pNode->pTags);
}
if (TSDB_CODE_SUCCESS == code) {
code = tjsonAddObject(pJson, jkCreateTableStmtOptions, nodeToJson, pNode->pOptions);
}
return code;
}
static int32_t jsonToCreateTableStmt(const SJson* pJson, void* pObj) {
SCreateTableStmt* pNode = (SCreateTableStmt*)pObj;
int32_t code = tjsonGetStringValue(pJson, jkCreateTableStmtDbName, pNode->dbName);
if (TSDB_CODE_SUCCESS == code) {
code = tjsonGetStringValue(pJson, jkCreateTableStmtTableName, pNode->tableName);
}
if (TSDB_CODE_SUCCESS == code) {
code = tjsonGetBoolValue(pJson, jkCreateTableStmtIgnoreExists, &pNode->ignoreExists);
}
if (TSDB_CODE_SUCCESS == code) {
code = jsonToNodeList(pJson, jkCreateTableStmtCols, &pNode->pCols);
}
if (TSDB_CODE_SUCCESS == code) {
code = jsonToNodeList(pJson, jkCreateTableStmtTags, &pNode->pTags);
}
if (TSDB_CODE_SUCCESS == code) {
code = jsonToNodeObject(pJson, jkCreateTableStmtOptions, (SNode**)&pNode->pOptions);
}
return code;
}
static const char* jkCreateSubTableClauseDbName = "DbName";
static const char* jkCreateSubTableClauseTableName = "TableName";
static const char* jkCreateSubTableClauseUseDbName = "UseDbName";
static const char* jkCreateSubTableClauseUseTableName = "UseTableName";
static const char* jkCreateSubTableClauseIgnoreExists = "IgnoreExists";
static const char* jkCreateSubTableClauseSpecificTags = "SpecificTags";
static const char* jkCreateSubTableClauseValsOfTags = "ValsOfTags";
static const char* jkCreateSubTableClauseOptions = "Options";
static int32_t createSubTableClauseToJson(const void* pObj, SJson* pJson) {
const SCreateSubTableClause* pNode = (const SCreateSubTableClause*)pObj;
int32_t code = tjsonAddStringToObject(pJson, jkCreateSubTableClauseDbName, pNode->dbName);
if (TSDB_CODE_SUCCESS == code) {
code = tjsonAddStringToObject(pJson, jkCreateSubTableClauseTableName, pNode->tableName);
}
if (TSDB_CODE_SUCCESS == code) {
code = tjsonAddStringToObject(pJson, jkCreateSubTableClauseUseDbName, pNode->useDbName);
}
if (TSDB_CODE_SUCCESS == code) {
code = tjsonAddStringToObject(pJson, jkCreateSubTableClauseUseTableName, pNode->useTableName);
}
if (TSDB_CODE_SUCCESS == code) {
code = tjsonAddBoolToObject(pJson, jkCreateSubTableClauseIgnoreExists, pNode->ignoreExists);
}
if (TSDB_CODE_SUCCESS == code) {
code = nodeListToJson(pJson, jkCreateSubTableClauseSpecificTags, pNode->pSpecificTags);
}
if (TSDB_CODE_SUCCESS == code) {
code = nodeListToJson(pJson, jkCreateSubTableClauseValsOfTags, pNode->pValsOfTags);
}
if (TSDB_CODE_SUCCESS == code) {
code = tjsonAddObject(pJson, jkCreateSubTableClauseOptions, nodeToJson, pNode->pOptions);
}
return code;
}
static int32_t jsonToCreateSubTableClause(const SJson* pJson, void* pObj) {
SCreateSubTableClause* pNode = (SCreateSubTableClause*)pObj;
int32_t code = tjsonGetStringValue(pJson, jkCreateSubTableClauseDbName, pNode->dbName);
if (TSDB_CODE_SUCCESS == code) {
code = tjsonGetStringValue(pJson, jkCreateSubTableClauseTableName, pNode->tableName);
}
if (TSDB_CODE_SUCCESS == code) {
code = tjsonGetStringValue(pJson, jkCreateSubTableClauseUseDbName, pNode->useDbName);
}
if (TSDB_CODE_SUCCESS == code) {
code = tjsonGetStringValue(pJson, jkCreateSubTableClauseUseTableName, pNode->useTableName);
}
if (TSDB_CODE_SUCCESS == code) {
code = tjsonGetBoolValue(pJson, jkCreateSubTableClauseIgnoreExists, &pNode->ignoreExists);
}
if (TSDB_CODE_SUCCESS == code) {
code = jsonToNodeList(pJson, jkCreateSubTableClauseSpecificTags, &pNode->pSpecificTags);
}
if (TSDB_CODE_SUCCESS == code) {
code = jsonToNodeList(pJson, jkCreateSubTableClauseValsOfTags, &pNode->pValsOfTags);
}
if (TSDB_CODE_SUCCESS == code) {
code = jsonToNodeObject(pJson, jkCreateSubTableClauseOptions, (SNode**)&pNode->pOptions);
}
return code;
}
static const char* jkCreateMultiTablesStmtSubTables = "SubTables";
static int32_t createMultiTablesStmtToJson(const void* pObj, SJson* pJson) {
const SCreateMultiTablesStmt* pNode = (const SCreateMultiTablesStmt*)pObj;
return nodeListToJson(pJson, jkCreateMultiTablesStmtSubTables, pNode->pSubTables);
}
static int32_t jsonToCreateMultiTablesStmt(const SJson* pJson, void* pObj) {
SCreateMultiTablesStmt* pNode = (SCreateMultiTablesStmt*)pObj;
return jsonToNodeList(pJson, jkCreateMultiTablesStmtSubTables, &pNode->pSubTables);
}
static const char* jkDropTableClauseDbName = "DbName"; static const char* jkDropTableClauseDbName = "DbName";
static const char* jkDropTableClauseTableName = "TableName"; static const char* jkDropTableClauseTableName = "TableName";
static const char* jkDropTableClauseIgnoreNotExists = "IgnoreNotExists"; static const char* jkDropTableClauseIgnoreNotExists = "IgnoreNotExists";
...@@ -4705,23 +5135,105 @@ static int32_t jsonToAlterTableStmt(const SJson* pJson, void* pObj) { ...@@ -4705,23 +5135,105 @@ static int32_t jsonToAlterTableStmt(const SJson* pJson, void* pObj) {
return code; return code;
} }
static const char* jkDropUserStmtUserName = "UserName"; static int32_t alterStableStmtToJson(const void* pObj, SJson* pJson) { return alterTableStmtToJson(pObj, pJson); }
static int32_t dropUserStmtToJson(const void* pObj, SJson* pJson) { static int32_t jsonToAlterStableStmt(const SJson* pJson, void* pObj) { return jsonToAlterTableStmt(pJson, pObj); }
const SDropUserStmt* pNode = (const SDropUserStmt*)pObj;
return tjsonAddStringToObject(pJson, jkDropUserStmtUserName, pNode->userName);
}
static int32_t jsonToDropUserStmt(const SJson* pJson, void* pObj) { static const char* jkCreateUserStmtUserName = "UserName";
SDropUserStmt* pNode = (SDropUserStmt*)pObj; static const char* jkCreateUserStmtPassword = "Password";
return tjsonGetStringValue(pJson, jkDropUserStmtUserName, pNode->userName); static const char* jkCreateUserStmtSysinfo = "Sysinfo";
}
static const char* jkUseDatabaseStmtDbName = "DbName"; static int32_t createUserStmtToJson(const void* pObj, SJson* pJson) {
const SCreateUserStmt* pNode = (const SCreateUserStmt*)pObj;
static int32_t useDatabaseStmtToJson(const void* pObj, SJson* pJson) { int32_t code = tjsonAddStringToObject(pJson, jkCreateUserStmtUserName, pNode->userName);
const SUseDatabaseStmt* pNode = (const SUseDatabaseStmt*)pObj; if (TSDB_CODE_SUCCESS == code) {
return tjsonAddStringToObject(pJson, jkUseDatabaseStmtDbName, pNode->dbName); code = tjsonAddStringToObject(pJson, jkCreateUserStmtPassword, pNode->password);
}
if (TSDB_CODE_SUCCESS == code) {
code = tjsonAddIntegerToObject(pJson, jkCreateUserStmtSysinfo, pNode->sysinfo);
}
return code;
}
static int32_t jsonToCreateUserStmt(const SJson* pJson, void* pObj) {
SCreateUserStmt* pNode = (SCreateUserStmt*)pObj;
int32_t code = tjsonGetStringValue(pJson, jkCreateUserStmtUserName, pNode->userName);
if (TSDB_CODE_SUCCESS == code) {
code = tjsonGetStringValue(pJson, jkCreateUserStmtPassword, pNode->password);
}
if (TSDB_CODE_SUCCESS == code) {
code = tjsonGetTinyIntValue(pJson, jkCreateUserStmtSysinfo, &pNode->sysinfo);
}
return code;
}
static const char* jkAlterUserStmtUserName = "UserName";
static const char* jkAlterUserStmtAlterType = "AlterType";
static const char* jkAlterUserStmtPassword = "Password";
static const char* jkAlterUserStmtEnable = "Enable";
static const char* jkAlterUserStmtSysinfo = "Sysinfo";
static int32_t alterUserStmtToJson(const void* pObj, SJson* pJson) {
const SAlterUserStmt* pNode = (const SAlterUserStmt*)pObj;
int32_t code = tjsonAddStringToObject(pJson, jkAlterUserStmtUserName, pNode->userName);
if (TSDB_CODE_SUCCESS == code) {
code = tjsonAddIntegerToObject(pJson, jkAlterUserStmtAlterType, pNode->alterType);
}
if (TSDB_CODE_SUCCESS == code) {
code = tjsonAddStringToObject(pJson, jkAlterUserStmtPassword, pNode->password);
}
if (TSDB_CODE_SUCCESS == code) {
code = tjsonAddIntegerToObject(pJson, jkAlterUserStmtEnable, pNode->enable);
}
if (TSDB_CODE_SUCCESS == code) {
code = tjsonAddIntegerToObject(pJson, jkAlterUserStmtSysinfo, pNode->sysinfo);
}
return code;
}
static int32_t jsonToAlterUserStmt(const SJson* pJson, void* pObj) {
SAlterUserStmt* pNode = (SAlterUserStmt*)pObj;
int32_t code = tjsonGetStringValue(pJson, jkAlterUserStmtUserName, pNode->userName);
if (TSDB_CODE_SUCCESS == code) {
code = tjsonGetTinyIntValue(pJson, jkAlterUserStmtAlterType, &pNode->alterType);
}
if (TSDB_CODE_SUCCESS == code) {
code = tjsonGetStringValue(pJson, jkAlterUserStmtPassword, pNode->password);
}
if (TSDB_CODE_SUCCESS == code) {
code = tjsonGetTinyIntValue(pJson, jkAlterUserStmtEnable, &pNode->enable);
}
if (TSDB_CODE_SUCCESS == code) {
code = tjsonGetTinyIntValue(pJson, jkAlterUserStmtSysinfo, &pNode->sysinfo);
}
return code;
}
static const char* jkDropUserStmtUserName = "UserName";
static int32_t dropUserStmtToJson(const void* pObj, SJson* pJson) {
const SDropUserStmt* pNode = (const SDropUserStmt*)pObj;
return tjsonAddStringToObject(pJson, jkDropUserStmtUserName, pNode->userName);
}
static int32_t jsonToDropUserStmt(const SJson* pJson, void* pObj) {
SDropUserStmt* pNode = (SDropUserStmt*)pObj;
return tjsonGetStringValue(pJson, jkDropUserStmtUserName, pNode->userName);
}
static const char* jkUseDatabaseStmtDbName = "DbName";
static int32_t useDatabaseStmtToJson(const void* pObj, SJson* pJson) {
const SUseDatabaseStmt* pNode = (const SUseDatabaseStmt*)pObj;
return tjsonAddStringToObject(pJson, jkUseDatabaseStmtDbName, pNode->dbName);
} }
static int32_t jsonToUseDatabaseStmt(const SJson* pJson, void* pObj) { static int32_t jsonToUseDatabaseStmt(const SJson* pJson, void* pObj) {
...@@ -4729,6 +5241,31 @@ static int32_t jsonToUseDatabaseStmt(const SJson* pJson, void* pObj) { ...@@ -4729,6 +5241,31 @@ static int32_t jsonToUseDatabaseStmt(const SJson* pJson, void* pObj) {
return tjsonGetStringValue(pJson, jkUseDatabaseStmtDbName, pNode->dbName); return tjsonGetStringValue(pJson, jkUseDatabaseStmtDbName, pNode->dbName);
} }
static const char* jkCreateDnodeStmtFqdn = "Fqdn";
static const char* jkCreateDnodeStmtPort = "Port";
static int32_t createDnodeStmtToJson(const void* pObj, SJson* pJson) {
const SCreateDnodeStmt* pNode = (const SCreateDnodeStmt*)pObj;
int32_t code = tjsonAddStringToObject(pJson, jkCreateDnodeStmtFqdn, pNode->fqdn);
if (TSDB_CODE_SUCCESS == code) {
code = tjsonAddIntegerToObject(pJson, jkCreateDnodeStmtPort, pNode->port);
}
return code;
}
static int32_t jsonToCreateDnodeStmt(const SJson* pJson, void* pObj) {
SCreateDnodeStmt* pNode = (SCreateDnodeStmt*)pObj;
int32_t code = tjsonGetStringValue(pJson, jkCreateDnodeStmtFqdn, pNode->fqdn);
if (TSDB_CODE_SUCCESS == code) {
code = tjsonGetIntValue(pJson, jkCreateDnodeStmtPort, &pNode->port);
}
return code;
}
static const char* jkAlterDnodeStmtDnodeId = "DnodeId"; static const char* jkAlterDnodeStmtDnodeId = "DnodeId";
static const char* jkAlterDnodeStmtConfig = "Config"; static const char* jkAlterDnodeStmtConfig = "Config";
static const char* jkAlterDnodeStmtValue = "Value"; static const char* jkAlterDnodeStmtValue = "Value";
...@@ -4761,6 +5298,118 @@ static int32_t jsonToAlterDnodeStmt(const SJson* pJson, void* pObj) { ...@@ -4761,6 +5298,118 @@ static int32_t jsonToAlterDnodeStmt(const SJson* pJson, void* pObj) {
return code; return code;
} }
static const char* jkCreateIndexStmtIndexType = "IndexType";
static const char* jkCreateIndexStmtIgnoreExists = "IgnoreExists";
static const char* jkCreateIndexStmtIndexDbName = "IndexDbName";
static const char* jkCreateIndexStmtIndexName = "indexName";
static const char* jkCreateIndexStmtDbName = "DbName";
static const char* jkCreateIndexStmtTableName = "TableName";
static const char* jkCreateIndexStmtCols = "Cols";
static const char* jkCreateIndexStmtOptions = "Options";
static int32_t createIndexStmtToJson(const void* pObj, SJson* pJson) {
const SCreateIndexStmt* pNode = (const SCreateIndexStmt*)pObj;
int32_t code = tjsonAddIntegerToObject(pJson, jkCreateIndexStmtIndexType, pNode->indexType);
if (TSDB_CODE_SUCCESS == code) {
code = tjsonAddBoolToObject(pJson, jkCreateIndexStmtIgnoreExists, pNode->ignoreExists);
}
if (TSDB_CODE_SUCCESS == code) {
code = tjsonAddStringToObject(pJson, jkCreateIndexStmtIndexDbName, pNode->indexDbName);
}
if (TSDB_CODE_SUCCESS == code) {
code = tjsonAddStringToObject(pJson, jkCreateIndexStmtIndexName, pNode->indexName);
}
if (TSDB_CODE_SUCCESS == code) {
code = tjsonAddStringToObject(pJson, jkCreateIndexStmtDbName, pNode->dbName);
}
if (TSDB_CODE_SUCCESS == code) {
code = tjsonAddStringToObject(pJson, jkCreateIndexStmtTableName, pNode->tableName);
}
if (TSDB_CODE_SUCCESS == code) {
code = nodeListToJson(pJson, jkCreateIndexStmtCols, pNode->pCols);
}
if (TSDB_CODE_SUCCESS == code) {
code = tjsonAddObject(pJson, jkCreateIndexStmtOptions, nodeToJson, pNode->pOptions);
}
return code;
}
static int32_t jsonToCreateIndexStmt(const SJson* pJson, void* pObj) {
SCreateIndexStmt* pNode = (SCreateIndexStmt*)pObj;
int32_t code = TSDB_CODE_SUCCESS;
tjsonGetNumberValue(pJson, jkCreateIndexStmtIndexType, pNode->indexType, code);
if (TSDB_CODE_SUCCESS == code) {
code = tjsonGetBoolValue(pJson, jkCreateIndexStmtIgnoreExists, &pNode->ignoreExists);
}
if (TSDB_CODE_SUCCESS == code) {
code = tjsonGetStringValue(pJson, jkCreateIndexStmtIndexDbName, pNode->indexDbName);
}
if (TSDB_CODE_SUCCESS == code) {
code = tjsonGetStringValue(pJson, jkCreateIndexStmtIndexName, pNode->indexName);
}
if (TSDB_CODE_SUCCESS == code) {
code = tjsonGetStringValue(pJson, jkCreateIndexStmtDbName, pNode->dbName);
}
if (TSDB_CODE_SUCCESS == code) {
code = tjsonGetStringValue(pJson, jkCreateIndexStmtTableName, pNode->tableName);
}
if (TSDB_CODE_SUCCESS == code) {
code = jsonToNodeList(pJson, jkCreateIndexStmtCols, &pNode->pCols);
}
if (TSDB_CODE_SUCCESS == code) {
code = jsonToNodeObject(pJson, jkCreateIndexStmtOptions, (SNode**)&pNode->pOptions);
}
return code;
}
static const char* jkDropIndexStmtIgnoreNotExists = "IgnoreNotExists";
static const char* jkDropIndexStmtIndexDbName = "IndexDbName";
static const char* jkDropIndexStmtIndexName = "IndexName";
static int32_t dropIndexStmtToJson(const void* pObj, SJson* pJson) {
const SDropIndexStmt* pNode = (const SDropIndexStmt*)pObj;
int32_t code = tjsonAddBoolToObject(pJson, jkDropIndexStmtIgnoreNotExists, pNode->ignoreNotExists);
if (TSDB_CODE_SUCCESS == code) {
code = tjsonAddStringToObject(pJson, jkDropIndexStmtIndexDbName, pNode->indexDbName);
}
if (TSDB_CODE_SUCCESS == code) {
code = tjsonAddStringToObject(pJson, jkDropIndexStmtIndexName, pNode->indexName);
}
return code;
}
static int32_t jsonToDropIndexStmt(const SJson* pJson, void* pObj) {
SDropIndexStmt* pNode = (SDropIndexStmt*)pObj;
int32_t code = tjsonGetBoolValue(pJson, jkDropIndexStmtIgnoreNotExists, &pNode->ignoreNotExists);
if (TSDB_CODE_SUCCESS == code) {
code = tjsonGetStringValue(pJson, jkDropIndexStmtIndexDbName, pNode->indexDbName);
}
if (TSDB_CODE_SUCCESS == code) {
code = tjsonGetStringValue(pJson, jkDropIndexStmtIndexName, pNode->indexName);
}
return code;
}
static const char* jkCreateComponentNodeStmtDnodeId = "DnodeId";
static int32_t createComponentNodeStmtToJson(const void* pObj, SJson* pJson) {
const SCreateComponentNodeStmt* pNode = (const SCreateComponentNodeStmt*)pObj;
return tjsonAddIntegerToObject(pJson, jkCreateComponentNodeStmtDnodeId, pNode->dnodeId);
}
static int32_t jsonToCreateComponentNodeStmt(const SJson* pJson, void* pObj) {
SCreateComponentNodeStmt* pNode = (SCreateComponentNodeStmt*)pObj;
return tjsonGetIntValue(pJson, jkCreateComponentNodeStmtDnodeId, &pNode->dnodeId);
}
static const char* jkDropComponentNodeStmtDnodeId = "DnodeId"; static const char* jkDropComponentNodeStmtDnodeId = "DnodeId";
static int32_t dropComponentNodeStmtToJson(const void* pObj, SJson* pJson) { static int32_t dropComponentNodeStmtToJson(const void* pObj, SJson* pJson) {
...@@ -4773,14 +5422,38 @@ static int32_t jsonToDropComponentNodeStmt(const SJson* pJson, void* pObj) { ...@@ -4773,14 +5422,38 @@ static int32_t jsonToDropComponentNodeStmt(const SJson* pJson, void* pObj) {
return tjsonGetIntValue(pJson, jkDropComponentNodeStmtDnodeId, &pNode->dnodeId); return tjsonGetIntValue(pJson, jkDropComponentNodeStmtDnodeId, &pNode->dnodeId);
} }
static int32_t createQnodeStmtToJson(const void* pObj, SJson* pJson) {
return createComponentNodeStmtToJson(pObj, pJson);
}
static int32_t jsonToCreateQnodeStmt(const SJson* pJson, void* pObj) {
return jsonToCreateComponentNodeStmt(pJson, pObj);
}
static int32_t dropQnodeStmtToJson(const void* pObj, SJson* pJson) { return dropComponentNodeStmtToJson(pObj, pJson); } static int32_t dropQnodeStmtToJson(const void* pObj, SJson* pJson) { return dropComponentNodeStmtToJson(pObj, pJson); }
static int32_t jsonToDropQnodeStmt(const SJson* pJson, void* pObj) { return jsonToDropComponentNodeStmt(pJson, pObj); } static int32_t jsonToDropQnodeStmt(const SJson* pJson, void* pObj) { return jsonToDropComponentNodeStmt(pJson, pObj); }
static int32_t createSnodeStmtToJson(const void* pObj, SJson* pJson) {
return createComponentNodeStmtToJson(pObj, pJson);
}
static int32_t jsonToCreateSnodeStmt(const SJson* pJson, void* pObj) {
return jsonToCreateComponentNodeStmt(pJson, pObj);
}
static int32_t dropSnodeStmtToJson(const void* pObj, SJson* pJson) { return dropComponentNodeStmtToJson(pObj, pJson); } static int32_t dropSnodeStmtToJson(const void* pObj, SJson* pJson) { return dropComponentNodeStmtToJson(pObj, pJson); }
static int32_t jsonToDropSnodeStmt(const SJson* pJson, void* pObj) { return jsonToDropComponentNodeStmt(pJson, pObj); } static int32_t jsonToDropSnodeStmt(const SJson* pJson, void* pObj) { return jsonToDropComponentNodeStmt(pJson, pObj); }
static int32_t createMnodeStmtToJson(const void* pObj, SJson* pJson) {
return createComponentNodeStmtToJson(pObj, pJson);
}
static int32_t jsonToCreateMnodeStmt(const SJson* pJson, void* pObj) {
return jsonToCreateComponentNodeStmt(pJson, pObj);
}
static int32_t dropMnodeStmtToJson(const void* pObj, SJson* pJson) { return dropComponentNodeStmtToJson(pObj, pJson); } static int32_t dropMnodeStmtToJson(const void* pObj, SJson* pJson) { return dropComponentNodeStmtToJson(pObj, pJson); }
static int32_t jsonToDropMnodeStmt(const SJson* pJson, void* pObj) { return jsonToDropComponentNodeStmt(pJson, pObj); } static int32_t jsonToDropMnodeStmt(const SJson* pJson, void* pObj) { return jsonToDropComponentNodeStmt(pJson, pObj); }
...@@ -4888,6 +5561,187 @@ static int32_t jsonToDropTopicStmt(const SJson* pJson, void* pObj) { ...@@ -4888,6 +5561,187 @@ static int32_t jsonToDropTopicStmt(const SJson* pJson, void* pObj) {
return code; return code;
} }
static const char* jkDropCGroupStmtTopicName = "TopicName";
static const char* jkDropCGroupStmtConsumerGroup = "ConsumerGroup";
static const char* jkDropCGroupStmtIgnoreNotExists = "IgnoreNotExists";
static int32_t dropConsumerGroupStmtToJson(const void* pObj, SJson* pJson) {
const SDropCGroupStmt* pNode = (const SDropCGroupStmt*)pObj;
int32_t code = tjsonAddStringToObject(pJson, jkDropCGroupStmtTopicName, pNode->topicName);
if (TSDB_CODE_SUCCESS == code) {
code = tjsonAddStringToObject(pJson, jkDropCGroupStmtConsumerGroup, pNode->cgroup);
}
if (TSDB_CODE_SUCCESS == code) {
code = tjsonAddBoolToObject(pJson, jkDropCGroupStmtIgnoreNotExists, pNode->ignoreNotExists);
}
return code;
}
static int32_t jsonToDropConsumerGroupStmt(const SJson* pJson, void* pObj) {
SDropCGroupStmt* pNode = (SDropCGroupStmt*)pObj;
int32_t code = tjsonGetStringValue(pJson, jkDropCGroupStmtTopicName, pNode->topicName);
if (TSDB_CODE_SUCCESS == code) {
code = tjsonGetStringValue(pJson, jkDropCGroupStmtConsumerGroup, pNode->cgroup);
}
if (TSDB_CODE_SUCCESS == code) {
code = tjsonGetBoolValue(pJson, jkDropCGroupStmtIgnoreNotExists, &pNode->ignoreNotExists);
}
return code;
}
static const char* jkAlterLocalStmtConfig = "Config";
static const char* jkAlterLocalStmtValue = "Value";
static int32_t alterLocalStmtToJson(const void* pObj, SJson* pJson) {
const SAlterLocalStmt* pNode = (const SAlterLocalStmt*)pObj;
int32_t code = tjsonAddStringToObject(pJson, jkAlterLocalStmtConfig, pNode->config);
if (TSDB_CODE_SUCCESS == code) {
code = tjsonAddStringToObject(pJson, jkAlterLocalStmtValue, pNode->value);
}
return code;
}
static int32_t jsonToAlterLocalStmt(const SJson* pJson, void* pObj) {
SAlterLocalStmt* pNode = (SAlterLocalStmt*)pObj;
int32_t code = tjsonGetStringValue(pJson, jkAlterLocalStmtConfig, pNode->config);
if (TSDB_CODE_SUCCESS == code) {
code = tjsonGetStringValue(pJson, jkAlterLocalStmtValue, pNode->value);
}
return code;
}
static const char* jkExplainStmtAnalyze = "Analyze";
static const char* jkExplainStmtOptions = "Options";
static const char* jkExplainStmtQuery = "Query";
static int32_t explainStmtToJson(const void* pObj, SJson* pJson) {
const SExplainStmt* pNode = (const SExplainStmt*)pObj;
int32_t code = tjsonAddBoolToObject(pJson, jkExplainStmtAnalyze, pNode->analyze);
if (TSDB_CODE_SUCCESS == code) {
code = tjsonAddObject(pJson, jkExplainStmtOptions, nodeToJson, pNode->pOptions);
}
if (TSDB_CODE_SUCCESS == code) {
code = tjsonAddObject(pJson, jkExplainStmtQuery, nodeToJson, pNode->pQuery);
}
return code;
}
static int32_t jsonToExplainStmt(const SJson* pJson, void* pObj) {
SExplainStmt* pNode = (SExplainStmt*)pObj;
int32_t code = tjsonGetBoolValue(pJson, jkExplainStmtAnalyze, &pNode->analyze);
if (TSDB_CODE_SUCCESS == code) {
code = jsonToNodeObject(pJson, jkExplainStmtOptions, (SNode**)&pNode->pOptions);
}
if (TSDB_CODE_SUCCESS == code) {
code = jsonToNodeObject(pJson, jkExplainStmtQuery, &pNode->pQuery);
}
return code;
}
static const char* jkDescribeStmtDbName = "DbName";
static const char* jkDescribeStmtTableName = "TableName";
static int32_t describeStmtToJson(const void* pObj, SJson* pJson) {
const SDescribeStmt* pNode = (const SDescribeStmt*)pObj;
int32_t code = tjsonAddStringToObject(pJson, jkDescribeStmtDbName, pNode->dbName);
if (TSDB_CODE_SUCCESS == code) {
code = tjsonAddStringToObject(pJson, jkDescribeStmtTableName, pNode->tableName);
}
return code;
}
static int32_t jsonToDescribeStmt(const SJson* pJson, void* pObj) {
SDescribeStmt* pNode = (SDescribeStmt*)pObj;
int32_t code = tjsonGetStringValue(pJson, jkDescribeStmtDbName, pNode->dbName);
if (TSDB_CODE_SUCCESS == code) {
code = tjsonGetStringValue(pJson, jkDescribeStmtTableName, pNode->tableName);
}
return code;
}
static const char* jkCreateStreamStmtStreamName = "StreamName";
static const char* jkCreateStreamStmtTargetDbName = "TargetDbName";
static const char* jkCreateStreamStmtTargetTabName = "TargetTabName";
static const char* jkCreateStreamStmtIgnoreExists = "IgnoreExists";
static const char* jkCreateStreamStmtOptions = "Options";
static const char* jkCreateStreamStmtQuery = "Query";
static const char* jkCreateStreamStmtTags = "Tags";
static const char* jkCreateStreamStmtSubtable = "Subtable";
static int32_t createStreamStmtToJson(const void* pObj, SJson* pJson) {
const SCreateStreamStmt* pNode = (const SCreateStreamStmt*)pObj;
int32_t code = tjsonAddStringToObject(pJson, jkCreateStreamStmtStreamName, pNode->streamName);
if (TSDB_CODE_SUCCESS == code) {
code = tjsonAddStringToObject(pJson, jkCreateStreamStmtTargetDbName, pNode->targetDbName);
}
if (TSDB_CODE_SUCCESS == code) {
code = tjsonAddStringToObject(pJson, jkCreateStreamStmtTargetTabName, pNode->targetTabName);
}
if (TSDB_CODE_SUCCESS == code) {
code = tjsonAddBoolToObject(pJson, jkCreateStreamStmtIgnoreExists, pNode->ignoreExists);
}
if (TSDB_CODE_SUCCESS == code) {
code = tjsonAddObject(pJson, jkCreateStreamStmtOptions, nodeToJson, pNode->pOptions);
}
if (TSDB_CODE_SUCCESS == code) {
code = tjsonAddObject(pJson, jkCreateStreamStmtQuery, nodeToJson, pNode->pQuery);
}
if (TSDB_CODE_SUCCESS == code) {
code = nodeListToJson(pJson, jkCreateStreamStmtTags, pNode->pTags);
}
if (TSDB_CODE_SUCCESS == code) {
code = tjsonAddObject(pJson, jkCreateStreamStmtSubtable, nodeToJson, pNode->pSubtable);
}
return code;
}
static int32_t jsonToCreateStreamStmt(const SJson* pJson, void* pObj) {
SCreateStreamStmt* pNode = (SCreateStreamStmt*)pObj;
int32_t code = tjsonGetStringValue(pJson, jkCreateStreamStmtStreamName, pNode->streamName);
if (TSDB_CODE_SUCCESS == code) {
code = tjsonGetStringValue(pJson, jkCreateStreamStmtTargetDbName, pNode->targetDbName);
}
if (TSDB_CODE_SUCCESS == code) {
code = tjsonGetStringValue(pJson, jkCreateStreamStmtTargetTabName, pNode->targetTabName);
}
if (TSDB_CODE_SUCCESS == code) {
code = tjsonGetBoolValue(pJson, jkCreateStreamStmtIgnoreExists, &pNode->ignoreExists);
}
if (TSDB_CODE_SUCCESS == code) {
code = jsonToNodeObject(pJson, jkCreateStreamStmtOptions, (SNode**)&pNode->pOptions);
}
if (TSDB_CODE_SUCCESS == code) {
code = jsonToNodeObject(pJson, jkCreateStreamStmtQuery, &pNode->pQuery);
}
if (TSDB_CODE_SUCCESS == code) {
code = jsonToNodeList(pJson, jkCreateStreamStmtTags, &pNode->pTags);
}
if (TSDB_CODE_SUCCESS == code) {
code = jsonToNodeObject(pJson, jkCreateStreamStmtSubtable, &pNode->pSubtable);
}
return code;
}
static const char* jkDropStreamStmtStreamName = "StreamName"; static const char* jkDropStreamStmtStreamName = "StreamName";
static const char* jkDropStreamStmtIgnoreNotExists = "IgnoreNotExists"; static const char* jkDropStreamStmtIgnoreNotExists = "IgnoreNotExists";
...@@ -4913,6 +5767,77 @@ static int32_t jsonToDropStreamStmt(const SJson* pJson, void* pObj) { ...@@ -4913,6 +5767,77 @@ static int32_t jsonToDropStreamStmt(const SJson* pJson, void* pObj) {
return code; return code;
} }
static const char* jkMergeVgroupStmtVgroupId1 = "VgroupId1";
static const char* jkMergeVgroupStmtVgroupId2 = "VgroupId2";
static int32_t mergeVgroupStmtToJson(const void* pObj, SJson* pJson) {
const SMergeVgroupStmt* pNode = (const SMergeVgroupStmt*)pObj;
int32_t code = tjsonAddIntegerToObject(pJson, jkMergeVgroupStmtVgroupId1, pNode->vgId1);
if (TSDB_CODE_SUCCESS == code) {
code = tjsonAddIntegerToObject(pJson, jkMergeVgroupStmtVgroupId2, pNode->vgId2);
}
return code;
}
static int32_t jsonToMergeVgroupStmt(const SJson* pJson, void* pObj) {
SMergeVgroupStmt* pNode = (SMergeVgroupStmt*)pObj;
int32_t code = tjsonGetIntValue(pJson, jkMergeVgroupStmtVgroupId1, &pNode->vgId1);
if (TSDB_CODE_SUCCESS == code) {
code = tjsonGetIntValue(pJson, jkMergeVgroupStmtVgroupId2, &pNode->vgId2);
}
return code;
}
static const char* jkRedistributeVgroupStmtVgroupId = "VgroupId";
static const char* jkRedistributeVgroupStmtDnodeId1 = "DnodeId1";
static const char* jkRedistributeVgroupStmtDnodeId2 = "DnodeId2";
static const char* jkRedistributeVgroupStmtDnodeId3 = "DnodeId3";
static const char* jkRedistributeVgroupStmtDnodes = "Dnodes";
static int32_t redistributeVgroupStmtToJson(const void* pObj, SJson* pJson) {
const SRedistributeVgroupStmt* pNode = (const SRedistributeVgroupStmt*)pObj;
int32_t code = tjsonAddIntegerToObject(pJson, jkRedistributeVgroupStmtVgroupId, pNode->vgId);
if (TSDB_CODE_SUCCESS == code) {
code = tjsonAddIntegerToObject(pJson, jkRedistributeVgroupStmtDnodeId1, pNode->dnodeId1);
}
if (TSDB_CODE_SUCCESS == code) {
code = tjsonAddIntegerToObject(pJson, jkRedistributeVgroupStmtDnodeId2, pNode->dnodeId2);
}
if (TSDB_CODE_SUCCESS == code) {
code = tjsonAddIntegerToObject(pJson, jkRedistributeVgroupStmtDnodeId3, pNode->dnodeId3);
}
if (TSDB_CODE_SUCCESS == code) {
code = nodeListToJson(pJson, jkRedistributeVgroupStmtDnodes, pNode->pDnodes);
}
return code;
}
static int32_t jsonToRedistributeVgroupStmt(const SJson* pJson, void* pObj) {
SRedistributeVgroupStmt* pNode = (SRedistributeVgroupStmt*)pObj;
int32_t code = tjsonGetIntValue(pJson, jkRedistributeVgroupStmtVgroupId, &pNode->vgId);
if (TSDB_CODE_SUCCESS == code) {
code = tjsonGetIntValue(pJson, jkRedistributeVgroupStmtDnodeId1, &pNode->dnodeId1);
}
if (TSDB_CODE_SUCCESS == code) {
code = tjsonGetIntValue(pJson, jkRedistributeVgroupStmtDnodeId2, &pNode->dnodeId2);
}
if (TSDB_CODE_SUCCESS == code) {
code = tjsonGetIntValue(pJson, jkRedistributeVgroupStmtDnodeId3, &pNode->dnodeId3);
}
if (TSDB_CODE_SUCCESS == code) {
code = jsonToNodeList(pJson, jkRedistributeVgroupStmtDnodes, &pNode->pDnodes);
}
return code;
}
static const char* jkSplitVgroupStmtVgroupId = "VgroupId"; static const char* jkSplitVgroupStmtVgroupId = "VgroupId";
static int32_t splitVgroupStmtToJson(const void* pObj, SJson* pJson) { static int32_t splitVgroupStmtToJson(const void* pObj, SJson* pJson) {
...@@ -4925,6 +5850,42 @@ static int32_t jsonToSplitVgroupStmt(const SJson* pJson, void* pObj) { ...@@ -4925,6 +5850,42 @@ static int32_t jsonToSplitVgroupStmt(const SJson* pJson, void* pObj) {
return tjsonGetIntValue(pJson, jkSplitVgroupStmtVgroupId, &pNode->vgId); return tjsonGetIntValue(pJson, jkSplitVgroupStmtVgroupId, &pNode->vgId);
} }
static const char* jkGrantStmtUserName = "UserName";
static const char* jkGrantStmtObjName = "ObjName";
static const char* jkGrantStmtPrivileges = "Privileges";
static int32_t grantStmtToJson(const void* pObj, SJson* pJson) {
const SGrantStmt* pNode = (const SGrantStmt*)pObj;
int32_t code = tjsonAddStringToObject(pJson, jkGrantStmtUserName, pNode->userName);
if (TSDB_CODE_SUCCESS == code) {
code = tjsonAddStringToObject(pJson, jkGrantStmtObjName, pNode->objName);
}
if (TSDB_CODE_SUCCESS == code) {
code = tjsonAddIntegerToObject(pJson, jkGrantStmtPrivileges, pNode->privileges);
}
return code;
}
static int32_t jsonToGrantStmt(const SJson* pJson, void* pObj) {
SGrantStmt* pNode = (SGrantStmt*)pObj;
int32_t code = tjsonGetStringValue(pJson, jkGrantStmtUserName, pNode->userName);
if (TSDB_CODE_SUCCESS == code) {
code = tjsonGetStringValue(pJson, jkGrantStmtObjName, pNode->objName);
}
if (TSDB_CODE_SUCCESS == code) {
code = tjsonGetBigIntValue(pJson, jkGrantStmtPrivileges, &pNode->privileges);
}
return code;
}
static int32_t revokeStmtToJson(const void* pObj, SJson* pJson) { return grantStmtToJson(pObj, pJson); }
static int32_t jsonToRevokeStmt(const SJson* pJson, void* pObj) { return jsonToGrantStmt(pJson, pObj); }
static const char* jkShowStmtDbName = "DbName"; static const char* jkShowStmtDbName = "DbName";
static const char* jkShowStmtTbName = "TbName"; static const char* jkShowStmtTbName = "TbName";
static const char* jkShowStmtTableCondType = "TableCondType"; static const char* jkShowStmtTableCondType = "TableCondType";
...@@ -5252,6 +6213,45 @@ static int32_t jsonToDeleteStmt(const SJson* pJson, void* pObj) { ...@@ -5252,6 +6213,45 @@ static int32_t jsonToDeleteStmt(const SJson* pJson, void* pObj) {
return code; return code;
} }
static const char* jkInsertStmtTable = "Table";
static const char* jkInsertStmtCols = "Cols";
static const char* jkInsertStmtQuery = "Query";
static const char* jkInsertStmtPrecision = "Precision";
static int32_t insertStmtToJson(const void* pObj, SJson* pJson) {
const SInsertStmt* pNode = (const SInsertStmt*)pObj;
int32_t code = tjsonAddObject(pJson, jkInsertStmtTable, nodeToJson, pNode->pTable);
if (TSDB_CODE_SUCCESS == code) {
code = nodeListToJson(pJson, jkInsertStmtCols, pNode->pCols);
}
if (TSDB_CODE_SUCCESS == code) {
code = tjsonAddObject(pJson, jkInsertStmtQuery, nodeToJson, pNode->pQuery);
}
if (TSDB_CODE_SUCCESS == code) {
code = tjsonAddIntegerToObject(pJson, jkInsertStmtPrecision, pNode->precision);
}
return code;
}
static int32_t jsonToInsertStmt(const SJson* pJson, void* pObj) {
SInsertStmt* pNode = (SInsertStmt*)pObj;
int32_t code = jsonToNodeObject(pJson, jkInsertStmtTable, &pNode->pTable);
if (TSDB_CODE_SUCCESS == code) {
code = jsonToNodeList(pJson, jkInsertStmtCols, &pNode->pCols);
}
if (TSDB_CODE_SUCCESS == code) {
code = jsonToNodeObject(pJson, jkInsertStmtQuery, &pNode->pQuery);
}
if (TSDB_CODE_SUCCESS == code) {
code = tjsonGetUTinyIntValue(pJson, jkInsertStmtPrecision, &pNode->precision);
}
return code;
}
static int32_t specificNodeToJson(const void* pObj, SJson* pJson) { static int32_t specificNodeToJson(const void* pObj, SJson* pJson) {
switch (nodeType(pObj)) { switch (nodeType(pObj)) {
case QUERY_NODE_COLUMN: case QUERY_NODE_COLUMN:
...@@ -5295,11 +6295,19 @@ static int32_t specificNodeToJson(const void* pObj, SJson* pJson) { ...@@ -5295,11 +6295,19 @@ static int32_t specificNodeToJson(const void* pObj, SJson* pJson) {
case QUERY_NODE_SLOT_DESC: case QUERY_NODE_SLOT_DESC:
return slotDescNodeToJson(pObj, pJson); return slotDescNodeToJson(pObj, pJson);
case QUERY_NODE_COLUMN_DEF: case QUERY_NODE_COLUMN_DEF:
break; return columnDefNodeToJson(pObj, pJson);
case QUERY_NODE_DOWNSTREAM_SOURCE: case QUERY_NODE_DOWNSTREAM_SOURCE:
return downstreamSourceNodeToJson(pObj, pJson); return downstreamSourceNodeToJson(pObj, pJson);
case QUERY_NODE_DATABASE_OPTIONS: case QUERY_NODE_DATABASE_OPTIONS:
return databaseOptionsToJson(pObj, pJson); return databaseOptionsToJson(pObj, pJson);
case QUERY_NODE_TABLE_OPTIONS:
return tableOptionsToJson(pObj, pJson);
case QUERY_NODE_INDEX_OPTIONS:
return indexOptionsToJson(pObj, pJson);
case QUERY_NODE_EXPLAIN_OPTIONS:
return explainOptionsToJson(pObj, pJson);
case QUERY_NODE_STREAM_OPTIONS:
return streamOptionsToJson(pObj, pJson);
case QUERY_NODE_LEFT_VALUE: case QUERY_NODE_LEFT_VALUE:
return TSDB_CODE_SUCCESS; // SLeftValueNode has no fields to serialize. return TSDB_CODE_SUCCESS; // SLeftValueNode has no fields to serialize.
case QUERY_NODE_WHEN_THEN: case QUERY_NODE_WHEN_THEN:
...@@ -5315,13 +6323,17 @@ static int32_t specificNodeToJson(const void* pObj, SJson* pJson) { ...@@ -5315,13 +6323,17 @@ static int32_t specificNodeToJson(const void* pObj, SJson* pJson) {
case QUERY_NODE_VNODE_MODIFY_STMT: case QUERY_NODE_VNODE_MODIFY_STMT:
return vnodeModifyStmtToJson(pObj, pJson); return vnodeModifyStmtToJson(pObj, pJson);
case QUERY_NODE_CREATE_DATABASE_STMT: case QUERY_NODE_CREATE_DATABASE_STMT:
break; return createDatabaseStmtToJson(pObj, pJson);
case QUERY_NODE_ALTER_DATABASE_STMT: case QUERY_NODE_ALTER_DATABASE_STMT:
return alterDatabaseStmtToJson(pObj, pJson); return alterDatabaseStmtToJson(pObj, pJson);
case QUERY_NODE_TRIM_DATABASE_STMT: case QUERY_NODE_TRIM_DATABASE_STMT:
return trimDatabaseStmtToJson(pObj, pJson); return trimDatabaseStmtToJson(pObj, pJson);
case QUERY_NODE_CREATE_TABLE_STMT: case QUERY_NODE_CREATE_TABLE_STMT:
break; return createTableStmtToJson(pObj, pJson);
case QUERY_NODE_CREATE_SUBTABLE_CLAUSE:
return createSubTableClauseToJson(pObj, pJson);
case QUERY_NODE_CREATE_MULTI_TABLES_STMT:
return createMultiTablesStmtToJson(pObj, pJson);
case QUERY_NODE_DROP_TABLE_CLAUSE: case QUERY_NODE_DROP_TABLE_CLAUSE:
return dropTableClauseToJson(pObj, pJson); return dropTableClauseToJson(pObj, pJson);
case QUERY_NODE_DROP_TABLE_STMT: case QUERY_NODE_DROP_TABLE_STMT:
...@@ -5330,28 +6342,66 @@ static int32_t specificNodeToJson(const void* pObj, SJson* pJson) { ...@@ -5330,28 +6342,66 @@ static int32_t specificNodeToJson(const void* pObj, SJson* pJson) {
return dropStableStmtToJson(pObj, pJson); return dropStableStmtToJson(pObj, pJson);
case QUERY_NODE_ALTER_TABLE_STMT: case QUERY_NODE_ALTER_TABLE_STMT:
return alterTableStmtToJson(pObj, pJson); return alterTableStmtToJson(pObj, pJson);
case QUERY_NODE_ALTER_SUPER_TABLE_STMT:
return alterStableStmtToJson(pObj, pJson);
case QUERY_NODE_CREATE_USER_STMT:
return createUserStmtToJson(pObj, pJson);
case QUERY_NODE_ALTER_USER_STMT:
return alterUserStmtToJson(pObj, pJson);
case QUERY_NODE_DROP_USER_STMT: case QUERY_NODE_DROP_USER_STMT:
return dropUserStmtToJson(pObj, pJson); return dropUserStmtToJson(pObj, pJson);
case QUERY_NODE_USE_DATABASE_STMT: case QUERY_NODE_USE_DATABASE_STMT:
return useDatabaseStmtToJson(pObj, pJson); return useDatabaseStmtToJson(pObj, pJson);
case QUERY_NODE_CREATE_DNODE_STMT:
return createDnodeStmtToJson(pObj, pJson);
case QUERY_NODE_DROP_DNODE_STMT: case QUERY_NODE_DROP_DNODE_STMT:
return dropDnodeStmtToJson(pObj, pJson); return dropDnodeStmtToJson(pObj, pJson);
case QUERY_NODE_ALTER_DNODE_STMT: case QUERY_NODE_ALTER_DNODE_STMT:
return alterDnodeStmtToJson(pObj, pJson); return alterDnodeStmtToJson(pObj, pJson);
case QUERY_NODE_CREATE_INDEX_STMT:
return createIndexStmtToJson(pObj, pJson);
case QUERY_NODE_DROP_INDEX_STMT:
return dropIndexStmtToJson(pObj, pJson);
case QUERY_NODE_CREATE_QNODE_STMT:
return createQnodeStmtToJson(pObj, pJson);
case QUERY_NODE_DROP_QNODE_STMT: case QUERY_NODE_DROP_QNODE_STMT:
return dropQnodeStmtToJson(pObj, pJson); return dropQnodeStmtToJson(pObj, pJson);
case QUERY_NODE_CREATE_SNODE_STMT:
return createSnodeStmtToJson(pObj, pJson);
case QUERY_NODE_DROP_SNODE_STMT: case QUERY_NODE_DROP_SNODE_STMT:
return dropSnodeStmtToJson(pObj, pJson); return dropSnodeStmtToJson(pObj, pJson);
case QUERY_NODE_CREATE_MNODE_STMT:
return createMnodeStmtToJson(pObj, pJson);
case QUERY_NODE_DROP_MNODE_STMT: case QUERY_NODE_DROP_MNODE_STMT:
return dropMnodeStmtToJson(pObj, pJson); return dropMnodeStmtToJson(pObj, pJson);
case QUERY_NODE_CREATE_TOPIC_STMT: case QUERY_NODE_CREATE_TOPIC_STMT:
return createTopicStmtToJson(pObj, pJson); return createTopicStmtToJson(pObj, pJson);
case QUERY_NODE_DROP_TOPIC_STMT: case QUERY_NODE_DROP_TOPIC_STMT:
return dropTopicStmtToJson(pObj, pJson); return dropTopicStmtToJson(pObj, pJson);
case QUERY_NODE_DROP_CGROUP_STMT:
return dropConsumerGroupStmtToJson(pObj, pJson);
case QUERY_NODE_ALTER_LOCAL_STMT:
return alterLocalStmtToJson(pObj, pJson);
case QUERY_NODE_EXPLAIN_STMT:
return explainStmtToJson(pObj, pJson);
case QUERY_NODE_DESCRIBE_STMT:
return describeStmtToJson(pObj, pJson);
case QUERY_NODE_CREATE_STREAM_STMT:
return createStreamStmtToJson(pObj, pJson);
case QUERY_NODE_DROP_STREAM_STMT: case QUERY_NODE_DROP_STREAM_STMT:
return dropStreamStmtToJson(pObj, pJson); return dropStreamStmtToJson(pObj, pJson);
case QUERY_NODE_BALANCE_VGROUP_STMT:
return TSDB_CODE_SUCCESS; // SBalanceVgroupStmt has no fields to serialize.
case QUERY_NODE_MERGE_VGROUP_STMT:
return mergeVgroupStmtToJson(pObj, pJson);
case QUERY_NODE_REDISTRIBUTE_VGROUP_STMT:
return redistributeVgroupStmtToJson(pObj, pJson);
case QUERY_NODE_SPLIT_VGROUP_STMT: case QUERY_NODE_SPLIT_VGROUP_STMT:
return splitVgroupStmtToJson(pObj, pJson); return splitVgroupStmtToJson(pObj, pJson);
case QUERY_NODE_GRANT_STMT:
return grantStmtToJson(pObj, pJson);
case QUERY_NODE_REVOKE_STMT:
return revokeStmtToJson(pObj, pJson);
case QUERY_NODE_SHOW_DNODES_STMT: case QUERY_NODE_SHOW_DNODES_STMT:
return showDnodesStmtToJson(pObj, pJson); return showDnodesStmtToJson(pObj, pJson);
case QUERY_NODE_SHOW_MNODES_STMT: case QUERY_NODE_SHOW_MNODES_STMT:
...@@ -5406,6 +6456,8 @@ static int32_t specificNodeToJson(const void* pObj, SJson* pJson) { ...@@ -5406,6 +6456,8 @@ static int32_t specificNodeToJson(const void* pObj, SJson* pJson) {
return showTableTagsStmtToJson(pObj, pJson); return showTableTagsStmtToJson(pObj, pJson);
case QUERY_NODE_DELETE_STMT: case QUERY_NODE_DELETE_STMT:
return deleteStmtToJson(pObj, pJson); return deleteStmtToJson(pObj, pJson);
case QUERY_NODE_INSERT_STMT:
return insertStmtToJson(pObj, pJson);
case QUERY_NODE_LOGIC_PLAN_SCAN: case QUERY_NODE_LOGIC_PLAN_SCAN:
return logicScanNodeToJson(pObj, pJson); return logicScanNodeToJson(pObj, pJson);
case QUERY_NODE_LOGIC_PLAN_JOIN: case QUERY_NODE_LOGIC_PLAN_JOIN:
...@@ -5548,10 +6600,20 @@ static int32_t jsonToSpecificNode(const SJson* pJson, void* pObj) { ...@@ -5548,10 +6600,20 @@ static int32_t jsonToSpecificNode(const SJson* pJson, void* pObj) {
return jsonToDataBlockDescNode(pJson, pObj); return jsonToDataBlockDescNode(pJson, pObj);
case QUERY_NODE_SLOT_DESC: case QUERY_NODE_SLOT_DESC:
return jsonToSlotDescNode(pJson, pObj); return jsonToSlotDescNode(pJson, pObj);
case QUERY_NODE_COLUMN_DEF:
return jsonToColumnDefNode(pJson, pObj);
case QUERY_NODE_DOWNSTREAM_SOURCE: case QUERY_NODE_DOWNSTREAM_SOURCE:
return jsonToDownstreamSourceNode(pJson, pObj); return jsonToDownstreamSourceNode(pJson, pObj);
case QUERY_NODE_DATABASE_OPTIONS: case QUERY_NODE_DATABASE_OPTIONS:
return jsonToDatabaseOptions(pJson, pObj); return jsonToDatabaseOptions(pJson, pObj);
case QUERY_NODE_TABLE_OPTIONS:
return jsonToTableOptions(pJson, pObj);
case QUERY_NODE_INDEX_OPTIONS:
return jsonToIndexOptions(pJson, pObj);
case QUERY_NODE_EXPLAIN_OPTIONS:
return jsonToExplainOptions(pJson, pObj);
case QUERY_NODE_STREAM_OPTIONS:
return jsonToStreamOptions(pJson, pObj);
case QUERY_NODE_LEFT_VALUE: case QUERY_NODE_LEFT_VALUE:
return TSDB_CODE_SUCCESS; // SLeftValueNode has no fields to deserialize. return TSDB_CODE_SUCCESS; // SLeftValueNode has no fields to deserialize.
case QUERY_NODE_WHEN_THEN: case QUERY_NODE_WHEN_THEN:
...@@ -5566,10 +6628,18 @@ static int32_t jsonToSpecificNode(const SJson* pJson, void* pObj) { ...@@ -5566,10 +6628,18 @@ static int32_t jsonToSpecificNode(const SJson* pJson, void* pObj) {
return jsonToSelectStmt(pJson, pObj); return jsonToSelectStmt(pJson, pObj);
case QUERY_NODE_VNODE_MODIFY_STMT: case QUERY_NODE_VNODE_MODIFY_STMT:
return jsonToVnodeModifyStmt(pJson, pObj); return jsonToVnodeModifyStmt(pJson, pObj);
case QUERY_NODE_CREATE_DATABASE_STMT:
return jsonToCreateDatabaseStmt(pJson, pObj);
case QUERY_NODE_ALTER_DATABASE_STMT: case QUERY_NODE_ALTER_DATABASE_STMT:
return jsonToAlterDatabaseStmt(pJson, pObj); return jsonToAlterDatabaseStmt(pJson, pObj);
case QUERY_NODE_TRIM_DATABASE_STMT: case QUERY_NODE_TRIM_DATABASE_STMT:
return jsonToTrimDatabaseStmt(pJson, pObj); return jsonToTrimDatabaseStmt(pJson, pObj);
case QUERY_NODE_CREATE_TABLE_STMT:
return jsonToCreateTableStmt(pJson, pObj);
case QUERY_NODE_CREATE_SUBTABLE_CLAUSE:
return jsonToCreateSubTableClause(pJson, pObj);
case QUERY_NODE_CREATE_MULTI_TABLES_STMT:
return jsonToCreateMultiTablesStmt(pJson, pObj);
case QUERY_NODE_DROP_TABLE_CLAUSE: case QUERY_NODE_DROP_TABLE_CLAUSE:
return jsonToDropTableClause(pJson, pObj); return jsonToDropTableClause(pJson, pObj);
case QUERY_NODE_DROP_TABLE_STMT: case QUERY_NODE_DROP_TABLE_STMT:
...@@ -5578,28 +6648,66 @@ static int32_t jsonToSpecificNode(const SJson* pJson, void* pObj) { ...@@ -5578,28 +6648,66 @@ static int32_t jsonToSpecificNode(const SJson* pJson, void* pObj) {
return jsonToDropStableStmt(pJson, pObj); return jsonToDropStableStmt(pJson, pObj);
case QUERY_NODE_ALTER_TABLE_STMT: case QUERY_NODE_ALTER_TABLE_STMT:
return jsonToAlterTableStmt(pJson, pObj); return jsonToAlterTableStmt(pJson, pObj);
case QUERY_NODE_ALTER_SUPER_TABLE_STMT:
return jsonToAlterStableStmt(pJson, pObj);
case QUERY_NODE_CREATE_USER_STMT:
return jsonToCreateUserStmt(pJson, pObj);
case QUERY_NODE_ALTER_USER_STMT:
return jsonToAlterUserStmt(pJson, pObj);
case QUERY_NODE_DROP_USER_STMT: case QUERY_NODE_DROP_USER_STMT:
return jsonToDropUserStmt(pJson, pObj); return jsonToDropUserStmt(pJson, pObj);
case QUERY_NODE_USE_DATABASE_STMT: case QUERY_NODE_USE_DATABASE_STMT:
return jsonToUseDatabaseStmt(pJson, pObj); return jsonToUseDatabaseStmt(pJson, pObj);
case QUERY_NODE_CREATE_DNODE_STMT:
return jsonToCreateDnodeStmt(pJson, pObj);
case QUERY_NODE_DROP_DNODE_STMT: case QUERY_NODE_DROP_DNODE_STMT:
return jsonToDropDnodeStmt(pJson, pObj); return jsonToDropDnodeStmt(pJson, pObj);
case QUERY_NODE_ALTER_DNODE_STMT: case QUERY_NODE_ALTER_DNODE_STMT:
return jsonToAlterDnodeStmt(pJson, pObj); return jsonToAlterDnodeStmt(pJson, pObj);
case QUERY_NODE_CREATE_INDEX_STMT:
return jsonToCreateIndexStmt(pJson, pObj);
case QUERY_NODE_DROP_INDEX_STMT:
return jsonToDropIndexStmt(pJson, pObj);
case QUERY_NODE_CREATE_QNODE_STMT:
return jsonToCreateQnodeStmt(pJson, pObj);
case QUERY_NODE_DROP_QNODE_STMT: case QUERY_NODE_DROP_QNODE_STMT:
return jsonToDropQnodeStmt(pJson, pObj); return jsonToDropQnodeStmt(pJson, pObj);
case QUERY_NODE_CREATE_SNODE_STMT:
return jsonToCreateSnodeStmt(pJson, pObj);
case QUERY_NODE_DROP_SNODE_STMT: case QUERY_NODE_DROP_SNODE_STMT:
return jsonToDropSnodeStmt(pJson, pObj); return jsonToDropSnodeStmt(pJson, pObj);
case QUERY_NODE_CREATE_MNODE_STMT:
return jsonToCreateMnodeStmt(pJson, pObj);
case QUERY_NODE_DROP_MNODE_STMT: case QUERY_NODE_DROP_MNODE_STMT:
return jsonToDropMnodeStmt(pJson, pObj); return jsonToDropMnodeStmt(pJson, pObj);
case QUERY_NODE_CREATE_TOPIC_STMT: case QUERY_NODE_CREATE_TOPIC_STMT:
return jsonToCreateTopicStmt(pJson, pObj); return jsonToCreateTopicStmt(pJson, pObj);
case QUERY_NODE_DROP_TOPIC_STMT: case QUERY_NODE_DROP_TOPIC_STMT:
return jsonToDropTopicStmt(pJson, pObj); return jsonToDropTopicStmt(pJson, pObj);
case QUERY_NODE_DROP_CGROUP_STMT:
return jsonToDropConsumerGroupStmt(pJson, pObj);
case QUERY_NODE_ALTER_LOCAL_STMT:
return jsonToAlterLocalStmt(pJson, pObj);
case QUERY_NODE_EXPLAIN_STMT:
return jsonToExplainStmt(pJson, pObj);
case QUERY_NODE_DESCRIBE_STMT:
return jsonToDescribeStmt(pJson, pObj);
case QUERY_NODE_CREATE_STREAM_STMT:
return jsonToCreateStreamStmt(pJson, pObj);
case QUERY_NODE_DROP_STREAM_STMT: case QUERY_NODE_DROP_STREAM_STMT:
return jsonToDropStreamStmt(pJson, pObj); return jsonToDropStreamStmt(pJson, pObj);
case QUERY_NODE_BALANCE_VGROUP_STMT:
return TSDB_CODE_SUCCESS; // SBalanceVgroupStmt has no fields to deserialize.
case QUERY_NODE_MERGE_VGROUP_STMT:
return jsonToMergeVgroupStmt(pJson, pObj);
case QUERY_NODE_REDISTRIBUTE_VGROUP_STMT:
return jsonToRedistributeVgroupStmt(pJson, pObj);
case QUERY_NODE_SPLIT_VGROUP_STMT: case QUERY_NODE_SPLIT_VGROUP_STMT:
return jsonToSplitVgroupStmt(pJson, pObj); return jsonToSplitVgroupStmt(pJson, pObj);
case QUERY_NODE_GRANT_STMT:
return jsonToGrantStmt(pJson, pObj);
case QUERY_NODE_REVOKE_STMT:
return jsonToRevokeStmt(pJson, pObj);
case QUERY_NODE_SHOW_DNODES_STMT: case QUERY_NODE_SHOW_DNODES_STMT:
return jsonToShowDnodesStmt(pJson, pObj); return jsonToShowDnodesStmt(pJson, pObj);
case QUERY_NODE_SHOW_MNODES_STMT: case QUERY_NODE_SHOW_MNODES_STMT:
...@@ -5654,8 +6762,12 @@ static int32_t jsonToSpecificNode(const SJson* pJson, void* pObj) { ...@@ -5654,8 +6762,12 @@ static int32_t jsonToSpecificNode(const SJson* pJson, void* pObj) {
return jsonToShowTableTagsStmt(pJson, pObj); return jsonToShowTableTagsStmt(pJson, pObj);
case QUERY_NODE_DELETE_STMT: case QUERY_NODE_DELETE_STMT:
return jsonToDeleteStmt(pJson, pObj); return jsonToDeleteStmt(pJson, pObj);
case QUERY_NODE_INSERT_STMT:
return jsonToInsertStmt(pJson, pObj);
case QUERY_NODE_LOGIC_PLAN_SCAN: case QUERY_NODE_LOGIC_PLAN_SCAN:
return jsonToLogicScanNode(pJson, pObj); return jsonToLogicScanNode(pJson, pObj);
case QUERY_NODE_LOGIC_PLAN_JOIN:
return jsonToLogicJoinNode(pJson, pObj);
case QUERY_NODE_LOGIC_PLAN_AGG: case QUERY_NODE_LOGIC_PLAN_AGG:
return jsonToLogicAggNode(pJson, pObj); return jsonToLogicAggNode(pJson, pObj);
case QUERY_NODE_LOGIC_PLAN_PROJECT: case QUERY_NODE_LOGIC_PLAN_PROJECT:
......
...@@ -321,8 +321,8 @@ SNode* nodesMakeNode(ENodeType type) { ...@@ -321,8 +321,8 @@ SNode* nodesMakeNode(ENodeType type) {
return makeNode(type, sizeof(SCreateTableStmt)); return makeNode(type, sizeof(SCreateTableStmt));
case QUERY_NODE_CREATE_SUBTABLE_CLAUSE: case QUERY_NODE_CREATE_SUBTABLE_CLAUSE:
return makeNode(type, sizeof(SCreateSubTableClause)); return makeNode(type, sizeof(SCreateSubTableClause));
case QUERY_NODE_CREATE_MULTI_TABLE_STMT: case QUERY_NODE_CREATE_MULTI_TABLES_STMT:
return makeNode(type, sizeof(SCreateMultiTableStmt)); return makeNode(type, sizeof(SCreateMultiTablesStmt));
case QUERY_NODE_DROP_TABLE_CLAUSE: case QUERY_NODE_DROP_TABLE_CLAUSE:
return makeNode(type, sizeof(SDropTableClause)); return makeNode(type, sizeof(SDropTableClause));
case QUERY_NODE_DROP_TABLE_STMT: case QUERY_NODE_DROP_TABLE_STMT:
...@@ -861,8 +861,8 @@ void nodesDestroyNode(SNode* pNode) { ...@@ -861,8 +861,8 @@ void nodesDestroyNode(SNode* pNode) {
nodesDestroyNode((SNode*)pStmt->pOptions); nodesDestroyNode((SNode*)pStmt->pOptions);
break; break;
} }
case QUERY_NODE_CREATE_MULTI_TABLE_STMT: case QUERY_NODE_CREATE_MULTI_TABLES_STMT:
nodesDestroyList(((SCreateMultiTableStmt*)pNode)->pSubTables); nodesDestroyList(((SCreateMultiTablesStmt*)pNode)->pSubTables);
break; break;
case QUERY_NODE_DROP_TABLE_CLAUSE: // no pointer field case QUERY_NODE_DROP_TABLE_CLAUSE: // no pointer field
break; break;
......
...@@ -1208,7 +1208,7 @@ SNode* createCreateSubTableClause(SAstCreateContext* pCxt, bool ignoreExists, SN ...@@ -1208,7 +1208,7 @@ SNode* createCreateSubTableClause(SAstCreateContext* pCxt, bool ignoreExists, SN
SNode* createCreateMultiTableStmt(SAstCreateContext* pCxt, SNodeList* pSubTables) { SNode* createCreateMultiTableStmt(SAstCreateContext* pCxt, SNodeList* pSubTables) {
CHECK_PARSER_STATUS(pCxt); CHECK_PARSER_STATUS(pCxt);
SCreateMultiTableStmt* pStmt = (SCreateMultiTableStmt*)nodesMakeNode(QUERY_NODE_CREATE_MULTI_TABLE_STMT); SCreateMultiTablesStmt* pStmt = (SCreateMultiTablesStmt*)nodesMakeNode(QUERY_NODE_CREATE_MULTI_TABLES_STMT);
CHECK_OUT_OF_MEM(pStmt); CHECK_OUT_OF_MEM(pStmt);
pStmt->pSubTables = pSubTables; pStmt->pSubTables = pSubTables;
return (SNode*)pStmt; return (SNode*)pStmt;
...@@ -1430,7 +1430,7 @@ SNode* createCreateUserStmt(SAstCreateContext* pCxt, SToken* pUserName, const ST ...@@ -1430,7 +1430,7 @@ SNode* createCreateUserStmt(SAstCreateContext* pCxt, SToken* pUserName, const ST
} }
SCreateUserStmt* pStmt = (SCreateUserStmt*)nodesMakeNode(QUERY_NODE_CREATE_USER_STMT); SCreateUserStmt* pStmt = (SCreateUserStmt*)nodesMakeNode(QUERY_NODE_CREATE_USER_STMT);
CHECK_OUT_OF_MEM(pStmt); CHECK_OUT_OF_MEM(pStmt);
COPY_STRING_FORM_ID_TOKEN(pStmt->useName, pUserName); COPY_STRING_FORM_ID_TOKEN(pStmt->userName, pUserName);
strcpy(pStmt->password, password); strcpy(pStmt->password, password);
pStmt->sysinfo = sysinfo; pStmt->sysinfo = sysinfo;
return (SNode*)pStmt; return (SNode*)pStmt;
...@@ -1443,7 +1443,7 @@ SNode* createAlterUserStmt(SAstCreateContext* pCxt, SToken* pUserName, int8_t al ...@@ -1443,7 +1443,7 @@ SNode* createAlterUserStmt(SAstCreateContext* pCxt, SToken* pUserName, int8_t al
} }
SAlterUserStmt* pStmt = (SAlterUserStmt*)nodesMakeNode(QUERY_NODE_ALTER_USER_STMT); SAlterUserStmt* pStmt = (SAlterUserStmt*)nodesMakeNode(QUERY_NODE_ALTER_USER_STMT);
CHECK_OUT_OF_MEM(pStmt); CHECK_OUT_OF_MEM(pStmt);
COPY_STRING_FORM_ID_TOKEN(pStmt->useName, pUserName); COPY_STRING_FORM_ID_TOKEN(pStmt->userName, pUserName);
pStmt->alterType = alterType; pStmt->alterType = alterType;
switch (alterType) { switch (alterType) {
case TSDB_ALTER_USER_PASSWD: { case TSDB_ALTER_USER_PASSWD: {
......
...@@ -252,7 +252,7 @@ static int32_t collectMetaKeyFromCreateTable(SCollectMetaKeyCxt* pCxt, SCreateTa ...@@ -252,7 +252,7 @@ static int32_t collectMetaKeyFromCreateTable(SCollectMetaKeyCxt* pCxt, SCreateTa
return code; return code;
} }
static int32_t collectMetaKeyFromCreateMultiTable(SCollectMetaKeyCxt* pCxt, SCreateMultiTableStmt* pStmt) { static int32_t collectMetaKeyFromCreateMultiTable(SCollectMetaKeyCxt* pCxt, SCreateMultiTablesStmt* pStmt) {
int32_t code = TSDB_CODE_SUCCESS; int32_t code = TSDB_CODE_SUCCESS;
SNode* pNode = NULL; SNode* pNode = NULL;
FOREACH(pNode, pStmt->pSubTables) { FOREACH(pNode, pStmt->pSubTables) {
...@@ -613,8 +613,8 @@ static int32_t collectMetaKeyFromQuery(SCollectMetaKeyCxt* pCxt, SNode* pStmt) { ...@@ -613,8 +613,8 @@ static int32_t collectMetaKeyFromQuery(SCollectMetaKeyCxt* pCxt, SNode* pStmt) {
return collectMetaKeyFromFlushDatabase(pCxt, (SFlushDatabaseStmt*)pStmt); return collectMetaKeyFromFlushDatabase(pCxt, (SFlushDatabaseStmt*)pStmt);
case QUERY_NODE_CREATE_TABLE_STMT: case QUERY_NODE_CREATE_TABLE_STMT:
return collectMetaKeyFromCreateTable(pCxt, (SCreateTableStmt*)pStmt); return collectMetaKeyFromCreateTable(pCxt, (SCreateTableStmt*)pStmt);
case QUERY_NODE_CREATE_MULTI_TABLE_STMT: case QUERY_NODE_CREATE_MULTI_TABLES_STMT:
return collectMetaKeyFromCreateMultiTable(pCxt, (SCreateMultiTableStmt*)pStmt); return collectMetaKeyFromCreateMultiTable(pCxt, (SCreateMultiTablesStmt*)pStmt);
case QUERY_NODE_DROP_TABLE_STMT: case QUERY_NODE_DROP_TABLE_STMT:
return collectMetaKeyFromDropTable(pCxt, (SDropTableStmt*)pStmt); return collectMetaKeyFromDropTable(pCxt, (SDropTableStmt*)pStmt);
case QUERY_NODE_ALTER_TABLE_STMT: case QUERY_NODE_ALTER_TABLE_STMT:
......
...@@ -108,7 +108,7 @@ static int32_t authCreateTable(SAuthCxt* pCxt, SCreateTableStmt* pStmt) { ...@@ -108,7 +108,7 @@ static int32_t authCreateTable(SAuthCxt* pCxt, SCreateTableStmt* pStmt) {
return checkAuth(pCxt, pStmt->dbName, AUTH_TYPE_WRITE); return checkAuth(pCxt, pStmt->dbName, AUTH_TYPE_WRITE);
} }
static int32_t authCreateMultiTable(SAuthCxt* pCxt, SCreateMultiTableStmt* pStmt) { static int32_t authCreateMultiTable(SAuthCxt* pCxt, SCreateMultiTablesStmt* pStmt) {
int32_t code = TSDB_CODE_SUCCESS; int32_t code = TSDB_CODE_SUCCESS;
SNode* pNode = NULL; SNode* pNode = NULL;
FOREACH(pNode, pStmt->pSubTables) { FOREACH(pNode, pStmt->pSubTables) {
...@@ -134,8 +134,8 @@ static int32_t authQuery(SAuthCxt* pCxt, SNode* pStmt) { ...@@ -134,8 +134,8 @@ static int32_t authQuery(SAuthCxt* pCxt, SNode* pStmt) {
return authInsert(pCxt, (SInsertStmt*)pStmt); return authInsert(pCxt, (SInsertStmt*)pStmt);
case QUERY_NODE_CREATE_TABLE_STMT: case QUERY_NODE_CREATE_TABLE_STMT:
return authCreateTable(pCxt, (SCreateTableStmt*)pStmt); return authCreateTable(pCxt, (SCreateTableStmt*)pStmt);
case QUERY_NODE_CREATE_MULTI_TABLE_STMT: case QUERY_NODE_CREATE_MULTI_TABLES_STMT:
return authCreateMultiTable(pCxt, (SCreateMultiTableStmt*)pStmt); return authCreateMultiTable(pCxt, (SCreateMultiTablesStmt*)pStmt);
case QUERY_NODE_SHOW_DNODES_STMT: case QUERY_NODE_SHOW_DNODES_STMT:
case QUERY_NODE_SHOW_MNODES_STMT: case QUERY_NODE_SHOW_MNODES_STMT:
case QUERY_NODE_SHOW_MODULES_STMT: case QUERY_NODE_SHOW_MODULES_STMT:
......
...@@ -5083,7 +5083,7 @@ static int32_t translateUseDatabase(STranslateContext* pCxt, SUseDatabaseStmt* p ...@@ -5083,7 +5083,7 @@ static int32_t translateUseDatabase(STranslateContext* pCxt, SUseDatabaseStmt* p
static int32_t translateCreateUser(STranslateContext* pCxt, SCreateUserStmt* pStmt) { static int32_t translateCreateUser(STranslateContext* pCxt, SCreateUserStmt* pStmt) {
SCreateUserReq createReq = {0}; SCreateUserReq createReq = {0};
strcpy(createReq.user, pStmt->useName); strcpy(createReq.user, pStmt->userName);
createReq.createType = 0; createReq.createType = 0;
createReq.superUser = 0; createReq.superUser = 0;
createReq.sysInfo = pStmt->sysinfo; createReq.sysInfo = pStmt->sysinfo;
...@@ -5095,7 +5095,7 @@ static int32_t translateCreateUser(STranslateContext* pCxt, SCreateUserStmt* pSt ...@@ -5095,7 +5095,7 @@ static int32_t translateCreateUser(STranslateContext* pCxt, SCreateUserStmt* pSt
static int32_t translateAlterUser(STranslateContext* pCxt, SAlterUserStmt* pStmt) { static int32_t translateAlterUser(STranslateContext* pCxt, SAlterUserStmt* pStmt) {
SAlterUserReq alterReq = {0}; SAlterUserReq alterReq = {0};
strcpy(alterReq.user, pStmt->useName); strcpy(alterReq.user, pStmt->userName);
alterReq.alterType = pStmt->alterType; alterReq.alterType = pStmt->alterType;
alterReq.superUser = 0; alterReq.superUser = 0;
alterReq.enable = pStmt->enable; alterReq.enable = pStmt->enable;
...@@ -7029,7 +7029,7 @@ SArray* serializeVgroupsCreateTableBatch(SHashObj* pVgroupHashmap) { ...@@ -7029,7 +7029,7 @@ SArray* serializeVgroupsCreateTableBatch(SHashObj* pVgroupHashmap) {
} }
static int32_t rewriteCreateMultiTable(STranslateContext* pCxt, SQuery* pQuery) { static int32_t rewriteCreateMultiTable(STranslateContext* pCxt, SQuery* pQuery) {
SCreateMultiTableStmt* pStmt = (SCreateMultiTableStmt*)pQuery->pRoot; SCreateMultiTablesStmt* pStmt = (SCreateMultiTablesStmt*)pQuery->pRoot;
SHashObj* pVgroupHashmap = taosHashInit(4, taosGetDefaultHashFunction(TSDB_DATA_TYPE_INT), false, HASH_NO_LOCK); SHashObj* pVgroupHashmap = taosHashInit(4, taosGetDefaultHashFunction(TSDB_DATA_TYPE_INT), false, HASH_NO_LOCK);
if (NULL == pVgroupHashmap) { if (NULL == pVgroupHashmap) {
...@@ -7637,7 +7637,7 @@ static int32_t rewriteQuery(STranslateContext* pCxt, SQuery* pQuery) { ...@@ -7637,7 +7637,7 @@ static int32_t rewriteQuery(STranslateContext* pCxt, SQuery* pQuery) {
code = rewriteCreateTable(pCxt, pQuery); code = rewriteCreateTable(pCxt, pQuery);
} }
break; break;
case QUERY_NODE_CREATE_MULTI_TABLE_STMT: case QUERY_NODE_CREATE_MULTI_TABLES_STMT:
code = rewriteCreateMultiTable(pCxt, pQuery); code = rewriteCreateMultiTable(pCxt, pQuery);
break; break;
case QUERY_NODE_DROP_TABLE_STMT: case QUERY_NODE_DROP_TABLE_STMT:
......
...@@ -1386,7 +1386,7 @@ static int32_t createSetOperatorLogicNode(SLogicPlanContext* pCxt, SSetOperator* ...@@ -1386,7 +1386,7 @@ static int32_t createSetOperatorLogicNode(SLogicPlanContext* pCxt, SSetOperator*
static int32_t getMsgType(ENodeType sqlType) { static int32_t getMsgType(ENodeType sqlType) {
switch (sqlType) { switch (sqlType) {
case QUERY_NODE_CREATE_TABLE_STMT: case QUERY_NODE_CREATE_TABLE_STMT:
case QUERY_NODE_CREATE_MULTI_TABLE_STMT: case QUERY_NODE_CREATE_MULTI_TABLES_STMT:
return TDMT_VND_CREATE_TABLE; return TDMT_VND_CREATE_TABLE;
case QUERY_NODE_DROP_TABLE_STMT: case QUERY_NODE_DROP_TABLE_STMT:
return TDMT_VND_DROP_TABLE; return TDMT_VND_DROP_TABLE;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册