fix: add isPk to SColumnNode
This commit is contained in:
parent
d96547f03c
commit
1da0def82d
|
@ -86,6 +86,7 @@ typedef struct SColumnNode {
|
|||
int16_t dataBlockId;
|
||||
int16_t slotId;
|
||||
bool tableHasPk;
|
||||
bool isPk;
|
||||
} SColumnNode;
|
||||
|
||||
typedef struct SColumnRefNode {
|
||||
|
|
|
@ -83,6 +83,7 @@ typedef struct SColMatchItem {
|
|||
bool needOutput;
|
||||
SDataType dataType;
|
||||
int32_t funcType;
|
||||
bool isPk;
|
||||
} SColMatchItem;
|
||||
|
||||
typedef struct SColMatchInfo {
|
||||
|
|
|
@ -1339,6 +1339,7 @@ int32_t extractColMatchInfo(SNodeList* pNodeList, SDataBlockDescNode* pOutputNod
|
|||
c.colId = pColNode->colId;
|
||||
c.srcSlotId = pColNode->slotId;
|
||||
c.dstSlotId = pNode->slotId;
|
||||
c.isPk = pColNode->isPk;
|
||||
taosArrayPush(pList, &c);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -120,6 +120,7 @@ static int32_t columnNodeCopy(const SColumnNode* pSrc, SColumnNode* pDst) {
|
|||
COPY_SCALAR_FIELD(dataBlockId);
|
||||
COPY_SCALAR_FIELD(slotId);
|
||||
COPY_SCALAR_FIELD(tableHasPk);
|
||||
COPY_SCALAR_FIELD(isPk);
|
||||
return TSDB_CODE_SUCCESS;
|
||||
}
|
||||
|
||||
|
|
|
@ -3615,6 +3615,7 @@ static const char* jkColumnColName = "ColName";
|
|||
static const char* jkColumnDataBlockId = "DataBlockId";
|
||||
static const char* jkColumnSlotId = "SlotId";
|
||||
static const char* jkColumnTableHasPk = "TableHasPk";
|
||||
static const char* jkColumnIsPk = "IsPk";
|
||||
|
||||
static int32_t columnNodeToJson(const void* pObj, SJson* pJson) {
|
||||
const SColumnNode* pNode = (const SColumnNode*)pObj;
|
||||
|
@ -3656,6 +3657,9 @@ static int32_t columnNodeToJson(const void* pObj, SJson* pJson) {
|
|||
if (TSDB_CODE_SUCCESS == code) {
|
||||
code = tjsonAddBoolToObject(pJson, jkColumnTableHasPk, pNode->tableHasPk);
|
||||
}
|
||||
if (TSDB_CODE_SUCCESS == code) {
|
||||
code = tjsonAddBoolToObject(pJson, jkColumnIsPk, pNode->isPk);
|
||||
}
|
||||
return code;
|
||||
}
|
||||
|
||||
|
@ -3698,7 +3702,10 @@ static int32_t jsonToColumnNode(const SJson* pJson, void* pObj) {
|
|||
}
|
||||
if (TSDB_CODE_SUCCESS == code) {
|
||||
code = tjsonGetBoolValue(pJson, jkColumnTableHasPk, &pNode->tableHasPk);
|
||||
}
|
||||
}
|
||||
if (TSDB_CODE_SUCCESS == code) {
|
||||
code = tjsonGetBoolValue(pJson, jkColumnIsPk, &pNode->isPk);
|
||||
}
|
||||
return code;
|
||||
}
|
||||
|
||||
|
|
|
@ -728,6 +728,9 @@ static int32_t columnNodeInlineToMsg(const void* pObj, STlvEncoder* pEncoder) {
|
|||
if (TSDB_CODE_SUCCESS == code) {
|
||||
code = tlvEncodeValueBool(pEncoder, pNode->tableHasPk);
|
||||
}
|
||||
if (TSDB_CODE_SUCCESS == code) {
|
||||
code = tlvEncodeValueBool(pEncoder, pNode->isPk);
|
||||
}
|
||||
return code;
|
||||
}
|
||||
|
||||
|
@ -772,6 +775,9 @@ static int32_t msgToColumnNodeInline(STlvDecoder* pDecoder, void* pObj) {
|
|||
if (TSDB_CODE_SUCCESS == code) {
|
||||
code = tlvDecodeValueBool(pDecoder, &pNode->tableHasPk);
|
||||
}
|
||||
if (TSDB_CODE_SUCCESS == code) {
|
||||
code = tlvDecodeValueBool(pDecoder, &pNode->isPk);
|
||||
}
|
||||
return code;
|
||||
}
|
||||
|
||||
|
|
|
@ -938,7 +938,6 @@ static void setColumnInfoBySchema(const SRealTableNode* pTable, const SSchema* p
|
|||
}
|
||||
pCol->tableId = pTable->pMeta->uid;
|
||||
pCol->tableType = pTable->pMeta->tableType;
|
||||
pCol->tableHasPk = hasPkInTable(pTable->pMeta);
|
||||
pCol->colId = pColSchema->colId;
|
||||
pCol->colType = (tagFlag >= 0 ? COLUMN_TYPE_TAG : COLUMN_TYPE_COLUMN);
|
||||
pCol->hasIndex = (pColSchema != NULL && IS_IDX_ON(pColSchema));
|
||||
|
@ -947,6 +946,8 @@ static void setColumnInfoBySchema(const SRealTableNode* pTable, const SSchema* p
|
|||
if (TSDB_DATA_TYPE_TIMESTAMP == pCol->node.resType.type) {
|
||||
pCol->node.resType.precision = pTable->pMeta->tableInfo.precision;
|
||||
}
|
||||
pCol->tableHasPk = hasPkInTable(pTable->pMeta);
|
||||
pCol->isPk = (pCol->tableHasPk) && (pColSchema->flags & COL_IS_KEY);
|
||||
}
|
||||
|
||||
static void setColumnInfoByExpr(STempTableNode* pTable, SExprNode* pExpr, SColumnNode** pColRef) {
|
||||
|
|
Loading…
Reference in New Issue