more tdb
This commit is contained in:
parent
7dbc861b4c
commit
c8557afd44
|
@ -43,8 +43,8 @@ typedef struct {
|
|||
} TDB_KEY, TDB_VALUE;
|
||||
|
||||
// TDB Operations
|
||||
TDB_EXTERN int tdbCreateDB(TDB** dbpp);
|
||||
TDB_EXTERN int tdbOpenDB(TDB* dbp, tdb_db_t type, uint32_t flags);
|
||||
TDB_EXTERN int tdbCreateDB(TDB** dbpp, tdb_db_t type);
|
||||
TDB_EXTERN int tdbOpenDB(TDB* dbp, uint32_t flags);
|
||||
TDB_EXTERN int tdbCloseDB(TDB* dbp, uint32_t flags);
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
|
|
@ -16,19 +16,52 @@
|
|||
#include "tdbDB.h"
|
||||
#include "tdb.h"
|
||||
|
||||
TDB_EXTERN int tdbCreateDB(TDB** dbpp) {
|
||||
TDB_EXTERN int tdbCreateDB(TDB** dbpp, tdb_db_t type) {
|
||||
TDB* dbp;
|
||||
int ret;
|
||||
|
||||
// dbp = malloc
|
||||
dbp = calloc(1, sizeof(*dbp));
|
||||
if (dbp == NULL) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
dbp->pageSize = TDB_DEFAULT_PGSIZE;
|
||||
dbp->type = type;
|
||||
|
||||
switch (type) {
|
||||
case TDB_BTREE_T:
|
||||
// ret = tdbInitBtreeDB(dbp);
|
||||
// if (ret < 0) goto _err;
|
||||
break;
|
||||
case TDB_HASH_T:
|
||||
// ret = tdbInitHashDB(dbp);
|
||||
// if (ret < 0) goto _err;
|
||||
break;
|
||||
case TDB_HEAP_T:
|
||||
// ret = tdbInitHeapDB(dbp);
|
||||
// if (ret < 0) goto _err;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
*dbpp = dbp;
|
||||
return 0;
|
||||
|
||||
_err:
|
||||
if (dbp) {
|
||||
free(dbp);
|
||||
}
|
||||
*dbpp = NULL;
|
||||
return 0;
|
||||
}
|
||||
|
||||
int tdbOpenDB(TDB* dbp, tdb_db_t type, uint32_t flags) {
|
||||
TDB_EXTERN int tdbOpenDB(TDB* dbp, uint32_t flags) {
|
||||
// TODO
|
||||
return 0;
|
||||
}
|
||||
|
||||
int tdbCloseDB(TDB* dbp, uint32_t flags) {
|
||||
TDB_EXTERN int tdbCloseDB(TDB* dbp, uint32_t flags) {
|
||||
// TODO
|
||||
return 0;
|
||||
}
|
|
@ -26,6 +26,8 @@ typedef struct {
|
|||
pgid_t root; // root page number
|
||||
} TDB_BTREE;
|
||||
|
||||
TDB_PUBLIC int tdbInitBtreeDB(TDB *dbp);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
#include "tdb.h"
|
||||
#include "tdbBtree.h"
|
||||
#include "tdbHash.h"
|
||||
#include "tdbHeap.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
|
@ -28,8 +29,9 @@ struct TDB {
|
|||
pgsize_t pageSize;
|
||||
tdb_db_t type;
|
||||
union {
|
||||
TDB_BTREE btree;
|
||||
TDB_HASH hash;
|
||||
TDB_BTREE *btree;
|
||||
TDB_HASH * hash;
|
||||
TDB_HEAP * heap;
|
||||
} dbam; // Different access methods
|
||||
};
|
||||
|
||||
|
|
|
@ -13,8 +13,8 @@
|
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef _TD_TKV_HAHS_H_
|
||||
#define _TD_TKV_HAHS_H_
|
||||
#ifndef _TD_TDB_HASH_H_
|
||||
#define _TD_TDB_HASH_H_
|
||||
|
||||
#include "tdbDef.h"
|
||||
|
||||
|
@ -26,8 +26,10 @@ typedef struct {
|
|||
// TODO
|
||||
} TDB_HASH;
|
||||
|
||||
TDB_PUBLIC int tdbInitHashDB(TDB *dbp);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /*_TD_TKV_HAHS_H_*/
|
||||
#endif /*_TD_TDB_HASH_H_*/
|
|
@ -0,0 +1,35 @@
|
|||
/*
|
||||
* 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_TDB_HEAP_H_
|
||||
#define _TD_TDB_HEAP_H_
|
||||
|
||||
#include "tdbDef.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef struct {
|
||||
// TODO
|
||||
} TDB_HEAP;
|
||||
|
||||
TDB_PUBLIC int tdbInitHeapDB(TDB *dbp);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /*_TD_TDB_HEAP_H_*/
|
|
@ -6,9 +6,9 @@ TEST(tdb_api_test, tdb_create_open_close_db_test) {
|
|||
int ret;
|
||||
TDB *dbp;
|
||||
|
||||
tdbCreateDB(&dbp);
|
||||
tdbCreateDB(&dbp, TDB_BTREE_T);
|
||||
|
||||
tdbOpenDB(dbp, TDB_BTREE_T, 0);
|
||||
tdbOpenDB(dbp, 0);
|
||||
|
||||
tdbCloseDB(dbp, 0);
|
||||
}
|
Loading…
Reference in New Issue