提交 3ed29b7b 编写于 作者: H Hongze Cheng

refact more meta

上级 89c8b768
......@@ -21,6 +21,7 @@ static int metaUpdateNameIdx(SMeta *pMeta, const char *name, tb_uid_t uid);
static int metaCreateNormalTable(SMeta *pMeta, int64_t version, SMetaEntry *pME);
static int metaCreateChildTable(SMeta *pMeta, int64_t version, SMetaEntry *pME);
static int metaUpdateTtlIdx(SMeta *pMeta, int64_t dtime, tb_uid_t uid);
static int metaSaveToSkmDb(SMeta *pMeta, tb_uid_t uid, SSchemaWrapper *pSW);
int metaCreateSTable(SMeta *pMeta, int64_t version, SVCreateStbReq *pReq) {
SMetaEntry me = {0};
......@@ -48,7 +49,7 @@ int metaCreateSTable(SMeta *pMeta, int64_t version, SVCreateStbReq *pReq) {
if (metaSaveToTbDb(pMeta, version, &me) < 0) goto _err;
// save to schema.db (TODO)
// if (metaSaveToSkmDb(pMeta) < 0) goto _err;
if (metaSaveToSkmDb(pMeta, pReq->suid, &pReq->schema) < 0) goto _err;
// update uid idx
if (metaUpdateUidIdx(pMeta, me.uid, version) < 0) goto _err;
......@@ -211,6 +212,7 @@ static int metaCreateNormalTable(SMeta *pMeta, int64_t version, SMetaEntry *pME)
if (metaSaveToTbDb(pMeta, version, pME) < 0) return -1;
// save to schema.db
if (metaSaveToSkmDb(pMeta, pME->uid, &pME->ntbEntry.schema) < 0) return -1;
// update uid.idx
if (metaUpdateUidIdx(pMeta, pME->uid, version) < 0) return -1;
......@@ -227,3 +229,29 @@ static int metaCreateNormalTable(SMeta *pMeta, int64_t version, SMetaEntry *pME)
return 0;
}
static int metaSaveToSkmDb(SMeta *pMeta, tb_uid_t uid, SSchemaWrapper *pSW) {
SCoder coder = {0};
void *pVal = NULL;
int vLen = 0;
int rcode = 0;
SSkmDbKey skmDbKey = {.uid = uid, .sver = pSW->sver};
// encode schema
if (tEncodeSize(tEncodeSSchemaWrapper, pSW, vLen) < 0) return -1;
pVal = TCODER_MALLOC(&coder, vLen);
if (pVal == NULL) {
rcode = -1;
terrno = TSDB_CODE_OUT_OF_MEMORY;
goto _exit;
}
if (tdbDbInsert(pMeta->pSkmDb, &skmDbKey, sizeof(skmDbKey), pVal, vLen, NULL) < 0) {
rcode = -1;
goto _exit;
}
_exit:
tCoderClear(&coder);
return 0;
}
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册