提交 62231ef1 编写于 作者: H Hongze Cheng

more code

上级 8fa2f087
......@@ -33,13 +33,16 @@ typedef enum {
TSDB_FTYPE_TOMB, // .tomb
} tsdb_ftype_t;
const char *tsdb_ftype_suffix[] = {
"none", "stt", "head", "data", "sma", "tomb",
};
typedef struct SFStt {
int64_t cid;
int64_t offset;
} SFStt;
typedef struct SFHead {
// TODO
int64_t offset;
} SFHead;
typedef struct SFData {
......@@ -56,8 +59,10 @@ typedef struct SFTomb {
struct STFile {
SDiskID diskId;
tsdb_ftype_t type;
int64_t size;
int64_t cid;
int32_t fid;
tsdb_ftype_t type;
union {
SFStt fstt;
SFHead fhead;
......
......@@ -14,10 +14,44 @@
*/
#include "tsdbSttFWriter.h"
#include "tsdbUtil.h"
struct SSttFWriter {
SSttFWriterConf conf;
SBlockData bData;
SDelBlock dData;
SArray *aSttBlk; // SArray<SSttBlk>
SArray *aDelBlk; // SArray<SDelBlk>
SSkmInfo skmTb;
SSkmInfo skmRow;
STsdbFD *pFd;
};
int32_t tsdbSttFWriterOpen(const SSttFWriterConf *pConf, SSttFWriter **ppWriter) {
int32_t code = 0;
// TODO
int32_t lino = 0;
ppWriter[0] = taosMemoryCalloc(1, sizeof(SSttFWriter));
if (ppWriter[0] == NULL) {
code = TSDB_CODE_OUT_OF_MEMORY;
TSDB_CHECK_CODE(code, lino, _exit);
}
ppWriter[0]->conf = pConf[0];
if (ppWriter[0]->conf.pSkmTb == NULL) ppWriter[0]->conf.pSkmTb = &ppWriter[0]->skmTb;
if (ppWriter[0]->conf.pSkmRow == NULL) ppWriter[0]->conf.pSkmRow = &ppWriter[0]->skmRow;
tBlockDataCreate(&ppWriter[0]->bData);
// tDelBlockCreate(&ppWriter[0]->dData);
_exit:
if (code) {
tsdbError("vgId:%d %s failed at line %d since %s", TD_VID(pConf->pTsdb->pVnode), __func__, lino, tstrerror(code));
if (ppWriter[0]) {
taosMemoryFree(ppWriter[0]);
ppWriter[0] = NULL;
}
}
return code;
}
......
......@@ -31,8 +31,10 @@ int32_t tsdbSttFWriteTSData(SSttFWriter *pWriter, TABLEID *tbid, TSDBROW *pRow);
int32_t tsdbSttFWriteDLData(SSttFWriter *pWriter, TABLEID *tbid, SDelData *pDelData);
struct SSttFWriterConf {
STsdb *pTsdb;
int32_t maxRow;
STsdb *pTsdb;
SSkmInfo *pSkmTb;
SSkmInfo *pSkmRow;
int32_t maxRow;
};
#ifdef __cplusplus
......
/*
* Copyright (c) 2019 TAOS Data, Inc. <jhtao@taosdata.com>
*
* This program is free software: you can use, redistribute, and/or modify
* it under the terms of the GNU Affero General Public License, version 3
* or later ("AGPL"), as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
\ No newline at end of file
/*
* Copyright (c) 2019 TAOS Data, Inc. <jhtao@taosdata.com>
*
* This program is free software: you can use, redistribute, and/or modify
* it under the terms of the GNU Affero General Public License, version 3
* or later ("AGPL"), as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef _TSDB_UTIL_H
#define _TSDB_UTIL_H
#include "tsdb.h"
#ifdef __cplusplus
extern "C" {
#endif
/* Exposed Handle */
typedef struct SDelBlock SDelBlock;
typedef struct SDelBlk SDelBlk;
/* Exposed APIs */
/* Exposed Structs */
struct SDelBlock {
// <suid, uid, version, skey, ekey>
SColData aColData[4];
};
struct SDelBlk {
int64_t suidMax;
int64_t suidMin;
int64_t uidMax;
int64_t uidMin;
int64_t verMax;
int64_t verMin;
};
#ifdef __cplusplus
}
#endif
#endif /*_TSDB_UTIL_H*/
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册