diff --git a/include/libs/nodes/cmdnodes.h b/include/libs/nodes/cmdnodes.h index 60850936ad..c39c195a42 100644 --- a/include/libs/nodes/cmdnodes.h +++ b/include/libs/nodes/cmdnodes.h @@ -177,10 +177,8 @@ typedef struct SColumnDefNode { ENodeType type; char colName[TSDB_COL_NAME_LEN]; SDataType dataType; - char comments[TSDB_TB_COMMENT_LEN]; SColumnOptions* pOptions; bool sma; - bool is_pk; } SColumnDefNode; typedef struct SCreateTableStmt { diff --git a/source/libs/nodes/src/nodesCodeFuncs.c b/source/libs/nodes/src/nodesCodeFuncs.c index 6ebf93dc19..6e9ea74f48 100644 --- a/source/libs/nodes/src/nodesCodeFuncs.c +++ b/source/libs/nodes/src/nodesCodeFuncs.c @@ -4704,7 +4704,7 @@ static const char* jkColumnDefColName = "ColName"; static const char* jkColumnDefDataType = "DataType"; static const char* jkColumnDefComments = "Comments"; static const char* jkColumnDefSma = "Sma"; -static const char* jkColumnDefIsPK = "IsPK"; +static const char* jkColumnDefOptions = "ColumnOptions"; static int32_t columnDefNodeToJson(const void* pObj, SJson* pJson) { const SColumnDefNode* pNode = (const SColumnDefNode*)pObj; @@ -4713,14 +4713,11 @@ static int32_t columnDefNodeToJson(const void* pObj, SJson* pJson) { 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); } if (TSDB_CODE_SUCCESS == code) { - code = tjsonAddBoolToObject(pJson, jkColumnDefIsPK, pNode->is_pk); + code = tjsonAddObject(pJson, jkColumnDefOptions, nodeToJson, pNode->pOptions); } return code; @@ -4733,14 +4730,11 @@ static int32_t jsonToColumnDefNode(const SJson* pJson, void* pObj) { 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); } if (TSDB_CODE_SUCCESS == code) { - code = tjsonGetBoolValue(pJson, jkColumnDefIsPK, &pNode->is_pk); + code = jsonToNodeObject(pJson, jkColumnDefOptions, (SNode**)&pNode->pOptions); } return code; } diff --git a/source/libs/parser/src/parAstCreater.c b/source/libs/parser/src/parAstCreater.c index edeecbada9..2c3a511ca2 100644 --- a/source/libs/parser/src/parAstCreater.c +++ b/source/libs/parser/src/parAstCreater.c @@ -1555,8 +1555,6 @@ SNode* createColumnDefNode(SAstCreateContext* pCxt, SToken* pColName, SDataType pCol->dataType = dataType; pCol->pOptions = (SColumnOptions*)pNode; pCol->sma = true; - // pNode equals to NULL means that the column is a tag. - pCol->is_pk = (SColumnOptions*)pNode ? ((SColumnOptions*)pNode)->bPrimaryKey : false; return (SNode*)pCol; } diff --git a/source/libs/parser/src/parTranslater.c b/source/libs/parser/src/parTranslater.c index 601725e326..8f83599e57 100644 --- a/source/libs/parser/src/parTranslater.c +++ b/source/libs/parser/src/parTranslater.c @@ -5808,9 +5808,6 @@ static int32_t tagDefNodeToField(SNodeList* pList, SArray** pArray) { if (pCol->sma) { field.flags |= COL_SMA_ON; } - if (pCol->is_pk) { - field.flags |= COL_IS_KEY; - } taosArrayPush(*pArray, &field); } return TSDB_CODE_SUCCESS; @@ -5910,9 +5907,6 @@ static int32_t checkTableTagsSchema(STranslateContext* pCxt, SHashObj* pHash, SN if (NULL != taosHashGet(pHash, pTag->colName, len)) { code = generateSyntaxErrMsg(&pCxt->msgBuf, TSDB_CODE_PAR_DUPLICATED_COLUMN); } - if (TSDB_CODE_SUCCESS == code && pTag->is_pk) { - code = generateSyntaxErrMsg(&pCxt->msgBuf, TSDB_CODE_PAR_TAG_IS_PRIMARY_KEY, pTag->colName); - } if (TSDB_CODE_SUCCESS == code && pTag->dataType.type == TSDB_DATA_TYPE_JSON && ntags > 1) { code = generateSyntaxErrMsg(&pCxt->msgBuf, TSDB_CODE_PAR_ONLY_ONE_JSON_TAG); } @@ -5969,7 +5963,7 @@ static int32_t checkTableColsSchema(STranslateContext* pCxt, SHashObj* pHash, in code = generateSyntaxErrMsg(&pCxt->msgBuf, TSDB_CODE_PAR_INVALID_FIRST_COLUMN); } } - if (TSDB_CODE_SUCCESS == code && pCol->is_pk && colIndex != 1) { + if (TSDB_CODE_SUCCESS == code && pCol->pOptions && pCol->pOptions->bPrimaryKey && colIndex != 1) { code = generateSyntaxErrMsg(&pCxt->msgBuf, TSDB_CODE_PAR_SECOND_COL_PK); } if (TSDB_CODE_SUCCESS == code && pCol->dataType.type == TSDB_DATA_TYPE_JSON) { @@ -6193,7 +6187,7 @@ static void toSchema(const SColumnDefNode* pCol, col_id_t colId, SSchema* pSchem if (pCol->sma) { flags |= COL_SMA_ON; } - if (pCol->is_pk) { + if (pCol->pOptions && pCol->pOptions->bPrimaryKey) { flags |= COL_IS_KEY; } pSchema->colId = colId;