update stb
This commit is contained in:
parent
94de43c53d
commit
3a2a8871d8
|
@ -1178,31 +1178,28 @@ typedef struct SVCreateTbReq {
|
||||||
SSchema* pSchema;
|
SSchema* pSchema;
|
||||||
} ntbCfg;
|
} ntbCfg;
|
||||||
};
|
};
|
||||||
} SVCreateTbReq;
|
} SVCreateTbReq, SVUpdateTbReq;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
} SVCreateTbRsp, SVUpdateTbRsp;
|
||||||
|
|
||||||
|
int32_t tSerializeSVCreateTbReq(void** buf, SVCreateTbReq* pReq);
|
||||||
|
void* tDeserializeSVCreateTbReq(void* buf, SVCreateTbReq* pReq);
|
||||||
|
int32_t tSerializeSVCreateTbRsp(void** buf, SVCreateTbRsp* pRsp);
|
||||||
|
void* tDeserializeSVCreateTbRsp(void* buf, SVCreateTbRsp* pRsp);
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
uint64_t ver; // use a general definition
|
uint64_t ver; // use a general definition
|
||||||
SArray* pArray;
|
SArray* pArray;
|
||||||
} SVCreateTbBatchReq;
|
} SVCreateTbBatchReq;
|
||||||
|
|
||||||
int tSerializeSVCreateTbReq(void** buf, SVCreateTbReq* pReq);
|
|
||||||
void* tDeserializeSVCreateTbReq(void* buf, SVCreateTbReq* pReq);
|
|
||||||
int tSVCreateTbBatchReqSerialize(void** buf, SVCreateTbBatchReq* pReq);
|
|
||||||
void* tSVCreateTbBatchReqDeserialize(void* buf, SVCreateTbBatchReq* pReq);
|
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
SMsgHead head;
|
} SVCreateTbBatchRsp;
|
||||||
} SVCreateTbRsp;
|
|
||||||
|
|
||||||
typedef struct {
|
int32_t tSerializeSVCreateTbBatchReq(void** buf, SVCreateTbBatchReq* pReq);
|
||||||
SMsgHead head;
|
void* tDeserializeSVCreateTbBatchReq(void* buf, SVCreateTbBatchReq* pReq);
|
||||||
char name[TSDB_TABLE_FNAME_LEN];
|
int32_t tSerializeSVCreateTbBatchReqp(void** buf, SVCreateTbBatchReq* pRsp);
|
||||||
int8_t ignoreNotExists;
|
void* tDeserializeSVCreateTbBatchReq(void* buf, SVCreateTbBatchReq* pRsp);
|
||||||
} SVAlterTbReq;
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
SMsgHead head;
|
|
||||||
} SVAlterTbRsp;
|
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
uint64_t ver;
|
uint64_t ver;
|
||||||
|
|
|
@ -293,7 +293,7 @@ void *tDeserializeSVCreateTbReq(void *buf, SVCreateTbReq *pReq) {
|
||||||
return buf;
|
return buf;
|
||||||
}
|
}
|
||||||
|
|
||||||
int tSVCreateTbBatchReqSerialize(void **buf, SVCreateTbBatchReq *pReq) {
|
int tSerializeSVCreateTbBatchReq(void **buf, SVCreateTbBatchReq *pReq) {
|
||||||
int tlen = 0;
|
int tlen = 0;
|
||||||
|
|
||||||
tlen += taosEncodeFixedU64(buf, pReq->ver);
|
tlen += taosEncodeFixedU64(buf, pReq->ver);
|
||||||
|
@ -306,7 +306,7 @@ int tSVCreateTbBatchReqSerialize(void **buf, SVCreateTbBatchReq *pReq) {
|
||||||
return tlen;
|
return tlen;
|
||||||
}
|
}
|
||||||
|
|
||||||
void *tSVCreateTbBatchReqDeserialize(void *buf, SVCreateTbBatchReq *pReq) {
|
void *tDeserializeSVCreateTbBatchReq(void *buf, SVCreateTbBatchReq *pReq) {
|
||||||
uint32_t nsize = 0;
|
uint32_t nsize = 0;
|
||||||
|
|
||||||
buf = taosDecodeFixedU64(buf, &pReq->ver);
|
buf = taosDecodeFixedU64(buf, &pReq->ver);
|
||||||
|
|
|
@ -220,16 +220,70 @@ TEST_F(DndTestVnode, 03_Create_Stb) {
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(DndTestVnode, 04_ALTER_Stb) {
|
TEST_F(DndTestVnode, 04_ALTER_Stb) {
|
||||||
#if 0
|
for (int i = 0; i < 1; ++i) {
|
||||||
|
SVCreateTbReq req = {0};
|
||||||
|
req.ver = 0;
|
||||||
|
req.name = (char*)"stb1";
|
||||||
|
req.ttl = 0;
|
||||||
|
req.keep = 0;
|
||||||
|
req.type = TD_SUPER_TABLE;
|
||||||
|
|
||||||
|
SSchema schemas[5] = {0};
|
||||||
{
|
{
|
||||||
for (int i = 0; i < 3; ++i) {
|
SSchema* pSchema = &schemas[0];
|
||||||
SRpcMsg* pRsp = test.SendReq(TDMT_VND_ALTER_STB, pReq, contLen);
|
pSchema->bytes = htonl(8);
|
||||||
|
pSchema->type = TSDB_DATA_TYPE_TIMESTAMP;
|
||||||
|
strcpy(pSchema->name, "ts");
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
SSchema* pSchema = &schemas[1];
|
||||||
|
pSchema->bytes = htonl(4);
|
||||||
|
pSchema->type = TSDB_DATA_TYPE_INT;
|
||||||
|
strcpy(pSchema->name, "col1");
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
SSchema* pSchema = &schemas[2];
|
||||||
|
pSchema->bytes = htonl(2);
|
||||||
|
pSchema->type = TSDB_DATA_TYPE_TINYINT;
|
||||||
|
strcpy(pSchema->name, "_tag1");
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
SSchema* pSchema = &schemas[3];
|
||||||
|
pSchema->bytes = htonl(8);
|
||||||
|
pSchema->type = TSDB_DATA_TYPE_BIGINT;
|
||||||
|
strcpy(pSchema->name, "_tag2");
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
SSchema* pSchema = &schemas[4];
|
||||||
|
pSchema->bytes = htonl(16);
|
||||||
|
pSchema->type = TSDB_DATA_TYPE_BINARY;
|
||||||
|
strcpy(pSchema->name, "_tag3");
|
||||||
|
}
|
||||||
|
|
||||||
|
req.stbCfg.suid = 9527;
|
||||||
|
req.stbCfg.nCols = 2;
|
||||||
|
req.stbCfg.pSchema = &schemas[0];
|
||||||
|
req.stbCfg.nTagCols = 3;
|
||||||
|
req.stbCfg.pTagSchema = &schemas[2];
|
||||||
|
|
||||||
|
int32_t contLen = tSerializeSVCreateTbReq(NULL, &req) + sizeof(SMsgHead);
|
||||||
|
SMsgHead* pHead = (SMsgHead*)rpcMallocCont(contLen);
|
||||||
|
|
||||||
|
pHead->contLen = htonl(contLen);
|
||||||
|
pHead->vgId = htonl(2);
|
||||||
|
|
||||||
|
void* pBuf = POINTER_SHIFT(pHead, sizeof(SMsgHead));
|
||||||
|
tSerializeSVCreateTbReq(&pBuf, &req);
|
||||||
|
|
||||||
|
SRpcMsg* pRsp = test.SendReq(TDMT_VND_ALTER_STB, (void*)pHead, contLen);
|
||||||
ASSERT_NE(pRsp, nullptr);
|
ASSERT_NE(pRsp, nullptr);
|
||||||
ASSERT_EQ(pRsp->code, 0);
|
ASSERT_EQ(pRsp->code, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
TEST_F(DndTestVnode, 05_DROP_Stb) {
|
TEST_F(DndTestVnode, 05_DROP_Stb) {
|
||||||
{
|
{
|
||||||
|
|
|
@ -83,7 +83,7 @@ int vnodeApplyWMsg(SVnode *pVnode, SRpcMsg *pMsg, SRpcMsg **pRsp) {
|
||||||
free(vCreateTbReq.name);
|
free(vCreateTbReq.name);
|
||||||
break;
|
break;
|
||||||
case TDMT_VND_CREATE_TABLE:
|
case TDMT_VND_CREATE_TABLE:
|
||||||
tSVCreateTbBatchReqDeserialize(POINTER_SHIFT(pMsg->pCont, sizeof(SMsgHead)), &vCreateTbBatchReq);
|
tDeserializeSVCreateTbBatchReq(POINTER_SHIFT(pMsg->pCont, sizeof(SMsgHead)), &vCreateTbBatchReq);
|
||||||
for (int i = 0; i < taosArrayGetSize(vCreateTbBatchReq.pArray); i++) {
|
for (int i = 0; i < taosArrayGetSize(vCreateTbBatchReq.pArray); i++) {
|
||||||
SVCreateTbReq *pCreateTbReq = taosArrayGet(vCreateTbBatchReq.pArray, i);
|
SVCreateTbReq *pCreateTbReq = taosArrayGet(vCreateTbBatchReq.pArray, i);
|
||||||
if (metaCreateTable(pVnode->pMeta, pCreateTbReq) < 0) {
|
if (metaCreateTable(pVnode->pMeta, pCreateTbReq) < 0) {
|
||||||
|
|
|
@ -598,7 +598,7 @@ static int32_t doCheckAndBuildCreateCTableReq(SCreateTableSql* pCreateTable, SPa
|
||||||
}
|
}
|
||||||
|
|
||||||
static int32_t serializeVgroupTablesBatchImpl(SVgroupTablesBatch* pTbBatch, SArray* pBufArray) {
|
static int32_t serializeVgroupTablesBatchImpl(SVgroupTablesBatch* pTbBatch, SArray* pBufArray) {
|
||||||
int tlen = sizeof(SMsgHead) + tSVCreateTbBatchReqSerialize(NULL, &(pTbBatch->req));
|
int tlen = sizeof(SMsgHead) + tSerializeSVCreateTbBatchReq(NULL, &(pTbBatch->req));
|
||||||
void* buf = malloc(tlen);
|
void* buf = malloc(tlen);
|
||||||
if (buf == NULL) {
|
if (buf == NULL) {
|
||||||
// TODO: handle error
|
// TODO: handle error
|
||||||
|
@ -608,7 +608,7 @@ static int32_t serializeVgroupTablesBatchImpl(SVgroupTablesBatch* pTbBatch, SArr
|
||||||
((SMsgHead*)buf)->contLen = htonl(tlen);
|
((SMsgHead*)buf)->contLen = htonl(tlen);
|
||||||
|
|
||||||
void* pBuf = POINTER_SHIFT(buf, sizeof(SMsgHead));
|
void* pBuf = POINTER_SHIFT(buf, sizeof(SMsgHead));
|
||||||
tSVCreateTbBatchReqSerialize(&pBuf, &(pTbBatch->req));
|
tSerializeSVCreateTbBatchReq(&pBuf, &(pTbBatch->req));
|
||||||
|
|
||||||
SVgDataBlocks* pVgData = calloc(1, sizeof(SVgDataBlocks));
|
SVgDataBlocks* pVgData = calloc(1, sizeof(SVgDataBlocks));
|
||||||
pVgData->vg = pTbBatch->info;
|
pVgData->vg = pTbBatch->info;
|
||||||
|
|
Loading…
Reference in New Issue