more code

This commit is contained in:
Hongze Cheng 2023-03-23 18:40:44 +08:00
parent 8fa2f08711
commit 62231ef14c
5 changed files with 111 additions and 6 deletions

View File

@ -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;

View File

@ -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;
} }

View File

@ -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

View File

@ -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/>.
*/

View File

@ -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*/