提交 e779eed9 编写于 作者: H Hongze Cheng

more

上级 85e321f0
/*
* 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_TREQUEST_H_
#define _TD_TREQUEST_H_
#ifdef __cplusplus
extern "C" {
#endif
typedef struct SRequest SRequest;
typedef struct SReqBatch SReqBatch;
typedef struct SReqBatchIter SReqBatchIter;
#ifdef __cplusplus
}
#endif
#endif /*_TD_TREQUEST_H_*/
\ 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 _TD_META_IMPL_H_
#define _TD_META_IMPL_H_
#include "os.h"
#include "taosmsg.h"
#ifdef __cplusplus
extern "C" {
#endif
typedef uint64_t tb_uid_t;
typedef enum { META_INIT_TABLE = 0, META_SUPER_TABLE = 1, META_CHILD_TABLE = 2, META_NORMAL_TABLE = 3 } EMetaTableT;
typedef struct SSuperTableOpts {
tb_uid_t uid;
STSchema *pSchema; // (ts timestamp, a int)
STSchema *pTagSchema; // (tag1 binary(10), tag2 int)
} SSuperTableOpts;
typedef struct SChildTableOpts {
tb_uid_t suid; // super table uid
SKVRow tags; // tag value of the child table
} SChildTableOpts;
typedef struct SNormalTableOpts {
STSchema *pSchema;
} SNormalTableOpts;
struct STableOptions {
int8_t type;
char * name;
union {
SSuperTableOpts superOpts;
SChildTableOpts childOpts;
SNormalTableOpts normalOpts;
};
};
#ifdef __cplusplus
}
#endif
#endif /*_TD_META_IMPL_H_*/
\ No newline at end of file
...@@ -16,81 +16,37 @@ ...@@ -16,81 +16,37 @@
#ifndef _TD_META_H_ #ifndef _TD_META_H_
#define _TD_META_H_ #define _TD_META_H_
#include "taosmsg.h" #include "impl/metaImpl.h"
#include "os.h"
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
/* ------------------------ APIs Exposed ------------------------ */
// Types exported // Types exported
typedef uint64_t tb_uid_t; typedef struct SMeta SMeta;
typedef struct SMeta SMeta; typedef struct SMetaOptions SMetaOptions;
typedef struct SMetaOpts SMetaOpts; typedef struct STableOptions STableOptions;
typedef struct SMetaQueryHandle SMetaQueryHandle;
typedef struct SMetaQueryOpts SMetaQueryOpts;
typedef struct STableOpts STableOpts;
// SMeta operations // SMeta operations
int metaCreate(const char *path); SMeta *metaOpen(const char *path, const SMetaOptions *);
void metaDestroy(const char *path);
SMeta *metaOpen(SMetaOpts *);
void metaClose(SMeta *); void metaClose(SMeta *);
int metaCreateTable(SMeta *, const STableOpts *); void metaRemove(const char *path);
int metaDropTable(SMeta *, uint64_t tuid_t); int metaCreateTable(SMeta *pMeta, const STableOptions *);
int metaAlterTable(SMeta *, void *); int metaDropTable(SMeta *pMeta, tb_uid_t uid);
int metaCommit(SMeta *); int metaCommit(SMeta *);
// Options // Options
SMetaOpts *metaOptionsCreate(); SMetaOptions *metaOptionsCreate();
void metaOptionsDestroy(SMetaOpts *); void metaOptionsDestroy(SMetaOptions *);
void metaOptionsSetCache(SMetaOpts *, size_t capacity); void metaOptionsSetCache(SMetaOptions *, size_t capacity);
// SMetaQueryHandle
SMetaQueryHandle *metaQueryHandleCreate(SMetaQueryOpts *);
void metaQueryHandleDestroy(SMetaQueryHandle *);
// SMetaQueryOpts
SMetaQueryOpts *metaQueryOptionsCreate();
void metaQueryOptionsDestroy(SMetaQueryOpts *);
// STableOpts // STableOpts
#define META_TABLE_OPTS_DECLARE(name) STableOpts name = {0} #define META_TABLE_OPTS_DECLARE(name) STableOpts name = {0}
void metaNormalTableOptsInit(STableOpts *, const char *name, const STSchema *pSchema); void metaNormalTableOptsInit(STableOptions *, const char *name, const STSchema *pSchema);
void metaSuperTableOptsInit(STableOpts *, const char *name, tb_uid_t uid, const STSchema *pSchema, void metaSuperTableOptsInit(STableOptions *, const char *name, tb_uid_t uid, const STSchema *pSchema,
const STSchema *pTagSchema); const STSchema *pTagSchema);
void metaChildTableOptsInit(STableOpts *, const char *name, tb_uid_t suid, const SKVRow tags); void metaChildTableOptsInit(STableOptions *, const char *name, tb_uid_t suid, const SKVRow tags);
void metaTableOptsClear(STableOpts *); void metaTableOptsClear(STableOptions *);
/* ------------------------ Impl should hidden ------------------------ */
typedef enum { META_INIT_TABLE = 0, META_SUPER_TABLE = 1, META_CHILD_TABLE = 2, META_NORMAL_TABLE = 3 } EMetaTableT;
typedef struct SSuperTableOpts {
tb_uid_t uid;
STSchema *pSchema; // (ts timestamp, a int)
STSchema *pTagSchema; // (tag1 binary(10), tag2 int)
} SSuperTableOpts;
typedef struct SChildTableOpts {
tb_uid_t suid; // super table uid
SKVRow tags; // tag value of the child table
} SChildTableOpts;
typedef struct SNormalTableOpts {
STSchema *pSchema;
} SNormalTableOpts;
struct STableOpts {
int8_t type;
char * name;
union {
SSuperTableOpts superOpts;
SChildTableOpts childOpts;
SNormalTableOpts normalOpts;
};
};
#ifdef __cplusplus #ifdef __cplusplus
} }
......
...@@ -21,7 +21,7 @@ static int metaCreateSuperTable(SMeta *pMeta, const char *tbname, const SSuperTa ...@@ -21,7 +21,7 @@ static int metaCreateSuperTable(SMeta *pMeta, const char *tbname, const SSuperTa
static int metaCreateChildTable(SMeta *pMeta, const char *tbname, const SChildTableOpts *pChildTableOpts); static int metaCreateChildTable(SMeta *pMeta, const char *tbname, const SChildTableOpts *pChildTableOpts);
static int metaCreateNormalTable(SMeta *pMeta, const char *tbname, const SNormalTableOpts *pNormalTableOpts); static int metaCreateNormalTable(SMeta *pMeta, const char *tbname, const SNormalTableOpts *pNormalTableOpts);
SMeta *metaOpen(SMetaOpts *pMetaOpts) { SMeta *metaOpen(const char *path, const SMetaOptions *pMetaOpts) {
SMeta *pMeta = NULL; SMeta *pMeta = NULL;
pMeta = (SMeta *)calloc(1, sizeof(*pMeta)); pMeta = (SMeta *)calloc(1, sizeof(*pMeta));
...@@ -81,7 +81,7 @@ void metaClose(SMeta *pMeta) { ...@@ -81,7 +81,7 @@ void metaClose(SMeta *pMeta) {
} }
} }
int metaCreateTable(SMeta *pMeta, const STableOpts *pTableOpts) { int metaCreateTable(SMeta *pMeta, const STableOptions *pTableOpts) {
size_t vallen; size_t vallen;
char * pUid; char * pUid;
...@@ -213,13 +213,13 @@ static int metaCreateNormalTable(SMeta *pMeta, const char *tbname, const SNormal ...@@ -213,13 +213,13 @@ static int metaCreateNormalTable(SMeta *pMeta, const char *tbname, const SNormal
return 0; return 0;
} }
void metaNormalTableOptsInit(STableOpts *pTableOpts, const char *name, const STSchema *pSchema) { void metaNormalTableOptsInit(STableOptions *pTableOpts, const char *name, const STSchema *pSchema) {
pTableOpts->type = META_NORMAL_TABLE; pTableOpts->type = META_NORMAL_TABLE;
pTableOpts->name = strdup(name); pTableOpts->name = strdup(name);
pTableOpts->normalOpts.pSchema = tdDupSchema(pSchema); pTableOpts->normalOpts.pSchema = tdDupSchema(pSchema);
} }
void metaSuperTableOptsInit(STableOpts *pTableOpts, const char *name, tb_uid_t uid, const STSchema *pSchema, void metaSuperTableOptsInit(STableOptions *pTableOpts, const char *name, tb_uid_t uid, const STSchema *pSchema,
const STSchema *pTagSchema) { const STSchema *pTagSchema) {
pTableOpts->type = META_SUPER_TABLE; pTableOpts->type = META_SUPER_TABLE;
pTableOpts->name = strdup(name); pTableOpts->name = strdup(name);
...@@ -228,14 +228,14 @@ void metaSuperTableOptsInit(STableOpts *pTableOpts, const char *name, tb_uid_t u ...@@ -228,14 +228,14 @@ void metaSuperTableOptsInit(STableOpts *pTableOpts, const char *name, tb_uid_t u
pTableOpts->superOpts.pTagSchema = tdDupSchema(pTagSchema); pTableOpts->superOpts.pTagSchema = tdDupSchema(pTagSchema);
} }
void metaChildTableOptsInit(STableOpts *pTableOpts, const char *name, tb_uid_t suid, const SKVRow tags) { void metaChildTableOptsInit(STableOptions *pTableOpts, const char *name, tb_uid_t suid, const SKVRow tags) {
pTableOpts->type = META_CHILD_TABLE; pTableOpts->type = META_CHILD_TABLE;
pTableOpts->name = strdup(name); pTableOpts->name = strdup(name);
pTableOpts->childOpts.suid = suid; pTableOpts->childOpts.suid = suid;
pTableOpts->childOpts.tags = tdKVRowDup(tags); pTableOpts->childOpts.tags = tdKVRowDup(tags);
} }
void metaTableOptsClear(STableOpts *pTableOpts) { void metaTableOptsClear(STableOptions *pTableOpts) {
switch (pTableOpts->type) { switch (pTableOpts->type) {
case META_NORMAL_TABLE: case META_NORMAL_TABLE:
tfree(pTableOpts->name); tfree(pTableOpts->name);
......
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
#include "meta.h" #include "meta.h"
#if 0
static STSchema *metaGetSimpleSchema() { static STSchema *metaGetSimpleSchema() {
STSchema * pSchema = NULL; STSchema * pSchema = NULL;
STSchemaBuilder sb = {0}; STSchemaBuilder sb = {0};
...@@ -38,7 +39,7 @@ static SKVRow metaGetSimpleTags() { ...@@ -38,7 +39,7 @@ static SKVRow metaGetSimpleTags() {
TEST(MetaTest, DISABLED_meta_create_1m_normal_tables_test) { TEST(MetaTest, DISABLED_meta_create_1m_normal_tables_test) {
// Open Meta // Open Meta
SMeta *meta = metaOpen(NULL); SMeta *meta = metaOpen(NULL, NULL);
std::cout << "Meta is opened!" << std::endl; std::cout << "Meta is opened!" << std::endl;
// Create 1000000 normal tables // Create 1000000 normal tables
...@@ -100,4 +101,5 @@ TEST(MetaTest, meta_create_1m_child_tables_test) { ...@@ -100,4 +101,5 @@ TEST(MetaTest, meta_create_1m_child_tables_test) {
// Destroy Meta // Destroy Meta
metaDestroy("meta"); metaDestroy("meta");
std::cout << "Meta is destroyed!" << std::endl; std::cout << "Meta is destroyed!" << std::endl;
} }
\ No newline at end of file #endif
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册