refact
This commit is contained in:
parent
883111c62f
commit
cde3c5a899
|
@ -1,34 +0,0 @@
|
||||||
/*
|
|
||||||
* 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 _TD_META_CACHE_H_
|
|
||||||
#define _TD_META_CACHE_H_
|
|
||||||
|
|
||||||
#include "meta.h"
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
|
|
||||||
typedef struct SMetaCache SMetaCache;
|
|
||||||
|
|
||||||
int metaOpenCache(SMeta *pMeta);
|
|
||||||
void metaCloseCache(SMeta *pMeta);
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /*_TD_META_CACHE_H_*/
|
|
|
@ -1,34 +0,0 @@
|
||||||
/*
|
|
||||||
* 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 _TD_META_CFG_H_
|
|
||||||
#define _TD_META_CFG_H_
|
|
||||||
|
|
||||||
#include "meta.h"
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
|
|
||||||
extern const SMetaCfg defaultMetaOptions;
|
|
||||||
|
|
||||||
int metaValidateOptions(const SMetaCfg *);
|
|
||||||
void metaOptionsCopy(SMetaCfg *pDest, const SMetaCfg *pSrc);
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /*_TD_META_CFG_H_*/
|
|
|
@ -19,18 +19,43 @@
|
||||||
#include "mallocator.h"
|
#include "mallocator.h"
|
||||||
|
|
||||||
#include "meta.h"
|
#include "meta.h"
|
||||||
#include "metaCache.h"
|
|
||||||
#include "metaCfg.h"
|
|
||||||
#include "metaDB.h"
|
#include "metaDB.h"
|
||||||
#include "metaIdx.h"
|
|
||||||
#include "metaTbCfg.h"
|
|
||||||
#include "metaTbTag.h"
|
|
||||||
#include "metaTbUid.h"
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
typedef struct SMetaCache SMetaCache;
|
||||||
|
typedef struct SMetaIdx SMetaIdx;
|
||||||
|
|
||||||
|
// SMetaCache
|
||||||
|
int metaOpenCache(SMeta* pMeta);
|
||||||
|
void metaCloseCache(SMeta* pMeta);
|
||||||
|
|
||||||
|
// SMetaCfg
|
||||||
|
extern const SMetaCfg defaultMetaOptions;
|
||||||
|
// int metaValidateOptions(const SMetaCfg*);
|
||||||
|
void metaOptionsCopy(SMetaCfg* pDest, const SMetaCfg* pSrc);
|
||||||
|
|
||||||
|
// SMetaIdx
|
||||||
|
int metaOpenIdx(SMeta* pMeta);
|
||||||
|
void metaCloseIdx(SMeta* pMeta);
|
||||||
|
int metaSaveTableToIdx(SMeta* pMeta, const STbCfg* pTbOptions);
|
||||||
|
int metaRemoveTableFromIdx(SMeta* pMeta, tb_uid_t uid);
|
||||||
|
|
||||||
|
// STbUidGnrt
|
||||||
|
typedef struct STbUidGenerator {
|
||||||
|
tb_uid_t nextUid;
|
||||||
|
} STbUidGenerator;
|
||||||
|
|
||||||
|
// STableUidGenerator
|
||||||
|
int metaOpenUidGnrt(SMeta *pMeta);
|
||||||
|
void metaCloseUidGnrt(SMeta *pMeta);
|
||||||
|
|
||||||
|
// tb_uid_t
|
||||||
|
#define IVLD_TB_UID 0
|
||||||
|
tb_uid_t metaGenerateUid(SMeta *pMeta);
|
||||||
|
|
||||||
struct SMeta {
|
struct SMeta {
|
||||||
char* path;
|
char* path;
|
||||||
SMetaCfg options;
|
SMetaCfg options;
|
||||||
|
|
|
@ -1,36 +0,0 @@
|
||||||
/*
|
|
||||||
* 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 _TD_META_IDX_H_
|
|
||||||
#define _TD_META_IDX_H_
|
|
||||||
|
|
||||||
#include "meta.h"
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
|
|
||||||
typedef struct SMetaIdx SMetaIdx;
|
|
||||||
|
|
||||||
int metaOpenIdx(SMeta *pMeta);
|
|
||||||
void metaCloseIdx(SMeta *pMeta);
|
|
||||||
int metaSaveTableToIdx(SMeta *pMeta, const STbCfg *pTbOptions);
|
|
||||||
int metaRemoveTableFromIdx(SMeta *pMeta, tb_uid_t uid);
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /*_TD_META_IDX_H_*/
|
|
|
@ -1,27 +0,0 @@
|
||||||
/*
|
|
||||||
* 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 _VNODE_QUERY_H_
|
|
||||||
#define _VNODE_QUERY_H_
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /*_VNODE_QUERY_H_*/
|
|
|
@ -1,32 +0,0 @@
|
||||||
/*
|
|
||||||
* 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 _TD_META_TABLE_CFG_H_
|
|
||||||
#define _TD_META_TABLE_CFG_H_
|
|
||||||
|
|
||||||
#include "meta.h"
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
|
|
||||||
int metaValidateTbCfg(SMeta *pMeta, const STbCfg *);
|
|
||||||
size_t metaEncodeTbObjFromTbOptions(const STbCfg *, void *pBuf, size_t bsize);
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /*_TD_META_TABLE_CFG_H_*/
|
|
|
@ -1,27 +0,0 @@
|
||||||
/*
|
|
||||||
* 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 _TD_META_TB_TAG_H_
|
|
||||||
#define _TD_META_TB_TAG_H_
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /*_TD_META_TB_TAG_H_*/
|
|
|
@ -1,42 +0,0 @@
|
||||||
/*
|
|
||||||
* 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 _TD_META_UID_H_
|
|
||||||
#define _TD_META_UID_H_
|
|
||||||
|
|
||||||
#include "meta.h"
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* ------------------------ APIS EXPOSED ------------------------ */
|
|
||||||
typedef struct STbUidGenerator {
|
|
||||||
tb_uid_t nextUid;
|
|
||||||
} STbUidGenerator;
|
|
||||||
|
|
||||||
// STableUidGenerator
|
|
||||||
int metaOpenUidGnrt(SMeta *pMeta);
|
|
||||||
void metaCloseUidGnrt(SMeta *pMeta);
|
|
||||||
|
|
||||||
// tb_uid_t
|
|
||||||
#define IVLD_TB_UID 0
|
|
||||||
tb_uid_t metaGenerateUid(SMeta *pMeta);
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /*_TD_META_UID_H_*/
|
|
|
@ -1,49 +0,0 @@
|
||||||
/*
|
|
||||||
* 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_ROW_MERGE_BUF_H
|
|
||||||
#define TSDB_ROW_MERGE_BUF_H
|
|
||||||
|
|
||||||
#if 0
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "tsdb.h"
|
|
||||||
#include "tchecksum.h"
|
|
||||||
#include "tsdbReadImpl.h"
|
|
||||||
|
|
||||||
typedef void* SMergeBuf;
|
|
||||||
|
|
||||||
SDataRow tsdbMergeTwoRows(SMergeBuf *pBuf, SMemRow row1, SMemRow row2, STSchema *pSchema1, STSchema *pSchema2);
|
|
||||||
|
|
||||||
static FORCE_INLINE int tsdbMergeBufMakeSureRoom(SMergeBuf *pBuf, STSchema* pSchema1, STSchema* pSchema2) {
|
|
||||||
size_t len1 = dataRowMaxBytesFromSchema(pSchema1);
|
|
||||||
size_t len2 = dataRowMaxBytesFromSchema(pSchema2);
|
|
||||||
return tsdbMakeRoom(pBuf, MAX(len1, len2));
|
|
||||||
}
|
|
||||||
|
|
||||||
static FORCE_INLINE void tsdbFreeMergeBuf(SMergeBuf buf) {
|
|
||||||
taosTZfree(buf);
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* ifndef TSDB_ROW_MERGE_BUF_H */
|
|
|
@ -17,10 +17,10 @@
|
||||||
|
|
||||||
int metaCreateTable(SMeta *pMeta, STbCfg *pTbCfg) {
|
int metaCreateTable(SMeta *pMeta, STbCfg *pTbCfg) {
|
||||||
// Validate the tbOptions
|
// Validate the tbOptions
|
||||||
if (metaValidateTbCfg(pMeta, pTbCfg) < 0) {
|
// if (metaValidateTbCfg(pMeta, pTbCfg) < 0) {
|
||||||
// TODO: handle error
|
// // TODO: handle error
|
||||||
return -1;
|
// return -1;
|
||||||
}
|
// }
|
||||||
|
|
||||||
// TODO: add atomicity
|
// TODO: add atomicity
|
||||||
|
|
||||||
|
|
|
@ -1,30 +0,0 @@
|
||||||
/*
|
|
||||||
* 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/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
// #include "tsdbRowMergeBuf.h"
|
|
||||||
// #include "tdataformat.h"
|
|
||||||
|
|
||||||
// // row1 has higher priority
|
|
||||||
// SMemRow tsdbMergeTwoRows(SMergeBuf *pBuf, SMemRow row1, SMemRow row2, STSchema *pSchema1, STSchema *pSchema2) {
|
|
||||||
// if(row2 == NULL) return row1;
|
|
||||||
// if(row1 == NULL) return row2;
|
|
||||||
// ASSERT(pSchema1->version == memRowVersion(row1));
|
|
||||||
// ASSERT(pSchema2->version == memRowVersion(row2));
|
|
||||||
|
|
||||||
// if(tsdbMergeBufMakeSureRoom(pBuf, pSchema1, pSchema2) < 0) {
|
|
||||||
// return NULL;
|
|
||||||
// }
|
|
||||||
// return mergeTwoMemRows(*pBuf, row1, row2, pSchema1, pSchema2);
|
|
||||||
// }
|
|
Loading…
Reference in New Issue