more code
This commit is contained in:
parent
8fa2f08711
commit
62231ef14c
|
@ -33,13 +33,16 @@ typedef enum {
|
||||||
TSDB_FTYPE_TOMB, // .tomb
|
TSDB_FTYPE_TOMB, // .tomb
|
||||||
} tsdb_ftype_t;
|
} tsdb_ftype_t;
|
||||||
|
|
||||||
|
const char *tsdb_ftype_suffix[] = {
|
||||||
|
"none", "stt", "head", "data", "sma", "tomb",
|
||||||
|
};
|
||||||
|
|
||||||
typedef struct SFStt {
|
typedef struct SFStt {
|
||||||
int64_t cid;
|
|
||||||
int64_t offset;
|
int64_t offset;
|
||||||
} SFStt;
|
} SFStt;
|
||||||
|
|
||||||
typedef struct SFHead {
|
typedef struct SFHead {
|
||||||
// TODO
|
int64_t offset;
|
||||||
} SFHead;
|
} SFHead;
|
||||||
|
|
||||||
typedef struct SFData {
|
typedef struct SFData {
|
||||||
|
@ -56,8 +59,10 @@ typedef struct SFTomb {
|
||||||
|
|
||||||
struct STFile {
|
struct STFile {
|
||||||
SDiskID diskId;
|
SDiskID diskId;
|
||||||
tsdb_ftype_t type;
|
|
||||||
int64_t size;
|
int64_t size;
|
||||||
|
int64_t cid;
|
||||||
|
int32_t fid;
|
||||||
|
tsdb_ftype_t type;
|
||||||
union {
|
union {
|
||||||
SFStt fstt;
|
SFStt fstt;
|
||||||
SFHead fhead;
|
SFHead fhead;
|
||||||
|
|
|
@ -14,10 +14,44 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "tsdbSttFWriter.h"
|
#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 tsdbSttFWriterOpen(const SSttFWriterConf *pConf, SSttFWriter **ppWriter) {
|
||||||
int32_t code = 0;
|
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;
|
return code;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -31,8 +31,10 @@ int32_t tsdbSttFWriteTSData(SSttFWriter *pWriter, TABLEID *tbid, TSDBROW *pRow);
|
||||||
int32_t tsdbSttFWriteDLData(SSttFWriter *pWriter, TABLEID *tbid, SDelData *pDelData);
|
int32_t tsdbSttFWriteDLData(SSttFWriter *pWriter, TABLEID *tbid, SDelData *pDelData);
|
||||||
|
|
||||||
struct SSttFWriterConf {
|
struct SSttFWriterConf {
|
||||||
STsdb *pTsdb;
|
STsdb *pTsdb;
|
||||||
int32_t maxRow;
|
SSkmInfo *pSkmTb;
|
||||||
|
SSkmInfo *pSkmRow;
|
||||||
|
int32_t maxRow;
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
|
|
@ -0,0 +1,14 @@
|
||||||
|
/*
|
||||||
|
* 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/>.
|
||||||
|
*/
|
|
@ -0,0 +1,50 @@
|
||||||
|
/*
|
||||||
|
* 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*/
|
Loading…
Reference in New Issue