Commit 90f83382 authored by Bradley C. Kuszmaul's avatar Bradley C. Kuszmaul

use the new db.h

git-svn-id: file:///svn/tokudb@276 c7de825b-a66e-492c-adef-691d508d4ae1
parent 2ade584a
...@@ -51,6 +51,20 @@ typedef enum { /* This appears to be a mysql-specific addition to the api. */ ...@@ -51,6 +51,20 @@ typedef enum { /* This appears to be a mysql-specific addition to the api. */
#define DB_INIT_LOG 8192 #define DB_INIT_LOG 8192
#define DB_INIT_MPOOL 16384 #define DB_INIT_MPOOL 16384
#define DB_INIT_TXN 32768 #define DB_INIT_TXN 32768
#define DB_KEYEMPTY -30998
#define DB_KEYEXIST -30997
#define DB_LOCK_DEADLOCK -30996
#define DB_NOTFOUND -30991
#define DB_BADFORMAT -30500
#define DB_FIRST 10
#define DB_GET_BOTH 11
#define DB_LAST 18
#define DB_NEXT 19
#define DB_NEXT_DUP 20
#define DB_PREV 27
#define DB_SET 30
#define DB_SET_RANGE 32
#define DB_RMW 1073741824
/* in wrap mode, top-level function txn_begin is renamed, but the field isn't renamed, so we have to hack it here.*/ /* in wrap mode, top-level function txn_begin is renamed, but the field isn't renamed, so we have to hack it here.*/
#ifdef _TOKUDB_WRAP_H #ifdef _TOKUDB_WRAP_H
#undef txn_begin #undef txn_begin
......
...@@ -54,6 +54,23 @@ void print_defines (void) { ...@@ -54,6 +54,23 @@ void print_defines (void) {
dodefine(DB_INIT_LOG); dodefine(DB_INIT_LOG);
dodefine(DB_INIT_MPOOL); dodefine(DB_INIT_MPOOL);
dodefine(DB_INIT_TXN); dodefine(DB_INIT_TXN);
dodefine(DB_KEYEMPTY);
dodefine(DB_KEYEXIST);
dodefine(DB_LOCK_DEADLOCK);
dodefine(DB_NOTFOUND);
printf("#define DB_BADFORMAT -30500\n"); // private tokudb
dodefine(DB_FIRST);
dodefine(DB_GET_BOTH);
dodefine(DB_LAST);
dodefine(DB_NEXT);
dodefine(DB_NEXT_DUP);
dodefine(DB_PREV);
dodefine(DB_SET);
dodefine(DB_SET_RANGE);
dodefine(DB_RMW);
} }
//#define DECL_LIMIT 100 //#define DECL_LIMIT 100
......
#ifndef _YOBI_DB_H #ifndef _DB_H
#define _YOBI_DB_H #define _DB_H
/* This code generated by make_db_h. Copyright (c) 2007 Tokutek */
#include "ydb-constants.h" #include <sys/types.h>
#if defined(__cplusplus) #if defined(__cplusplus)
extern "C" { extern "C" {
#if 0
}
#endif #endif
#ifndef _TOKUDB_WRAP_H
#define DB_VERSION_STRING "Tokutek: TokuDB"
#else
#define DB_VERSION_STRING "Tokutek: TokuDB (wrapped bdb)"
#endif #endif
typedef struct __toku_db_btree_stat DB_BTREE_STAT;
#include <sys/types.h> typedef struct __toku_db_env DB_ENV;
#include <stdio.h> typedef struct __toku_db_key_range DB_KEY_RANGE;
typedef struct __toku_db_lsn DB_LSN;
typedef struct __toku_db DB;
typedef struct __toku_db_txn DB_TXN;
typedef struct __toku_db_txn_active DB_TXN_ACTIVE;
typedef struct __toku_db_txn_stat DB_TXN_STAT;
typedef struct __toku_dbc DBC;
typedef struct __toku_dbt DBT;
typedef enum { typedef enum {
DB_BTREE=1, DB_BTREE=1
// DB_HASH=2,
// DB_RECNO=3,
// DB_QUEUE=4,
// DB_UNKNOWN=5 /* Figure it out on open. */
} DBTYPE; } DBTYPE;
typedef enum { /* This appears to be a mysql-specific addition to the api. */
typedef enum { DB_NOTICE_LOGFILE_CHANGED=0
DB_NOTICE_LOGFILE_CHANGED
} db_notices; } db_notices;
#define DB_VERB_DEADLOCK 2
enum { #define DB_VERB_RECOVERY 4
DB_VERB_CHKPOINT = 0x0001, #define DB_VERB_REPLICATION 8
DB_VERB_DEADLOCK = 0x0002, #define DB_VERB_WAITSFOR 16
DB_VERB_RECOVERY = 0x0004 #define DB_DBT_MALLOC 4
#define DB_DBT_REALLOC 16
}; #define DB_DBT_USERMEM 32
#define DB_DBT_DUPOK 64
typedef struct yobi_db DB; #define DB_ARCH_ABS 1
typedef struct yobi_db_btree_stat DB_BTREE_STAT; #define DB_ARCH_LOG 4
typedef struct yobi_db_env DB_ENV; #define DB_CREATE 1
typedef struct yobi_db_key_range DB_KEY_RANGE; #define DB_PRIVATE 262144
typedef struct yobi_db_lsn DB_LSN; #define DB_RDONLY 16
typedef struct yobi_db_txn DB_TXN; #define DB_RECOVER 32
typedef struct yobi_db_txn_active DB_TXN_ACTIVE; #define DB_THREAD 64
typedef struct yobi_db_txn_stat DB_TXN_STAT; #define DB_TXN_NOSYNC 256
typedef struct yobi_dbc DBC; #define DB_LOCK_DEFAULT 1
typedef struct yobi_dbt DBT; #define DB_LOCK_OLDEST 6
#define DB_LOCK_RANDOM 7
struct yobi_db { #define DB_DUP 2
void *app_private; #define DB_NOOVERWRITE 23
int (*close) (DB *, u_int32_t); #define DB_INIT_LOCK 4096
int (*cursor) (DB *, DB_TXN *, DBC **, u_int32_t); #define DB_INIT_LOG 8192
int (*del) (DB *, DB_TXN *, DBT *, u_int32_t); #define DB_INIT_MPOOL 16384
int (*get) (DB *, DB_TXN *, DBT *, DBT *, u_int32_t); #define DB_INIT_TXN 32768
int (*key_range) (DB *, DB_TXN *, DBT *, DB_KEY_RANGE *, u_int32_t); #define DB_KEYEMPTY -30998
int (*open) (DB *, DB_TXN *, #define DB_KEYEXIST -30997
const char *, const char *, DBTYPE, u_int32_t, int); #define DB_LOCK_DEADLOCK -30996
int (*put) (DB *, DB_TXN *, DBT *, DBT *, u_int32_t); #define DB_NOTFOUND -30991
int (*remove) (DB *, const char *, const char *, u_int32_t); #define DB_BADFORMAT -30500
int (*rename) (DB *, const char *, const char *, const char *, u_int32_t); #define DB_FIRST 10
int (*set_bt_compare) (DB *, #define DB_GET_BOTH 11
int (*)(DB *, const DBT *, const DBT *)); #define DB_LAST 18
int (*set_flags) (DB *, u_int32_t); #define DB_NEXT 19
int (*stat) (DB *, void *, u_int32_t); #define DB_NEXT_DUP 20
#define DB_PREV 27
struct ydb_db_internal *i; #define DB_SET 30
}; #define DB_SET_RANGE 32
enum { #define DB_RMW 1073741824
DB_DBT_MALLOC = 0x002, /* in wrap mode, top-level function txn_begin is renamed, but the field isn't renamed, so we have to hack it here.*/
DB_DBT_REALLOC = 0x010, #ifdef _TOKUDB_WRAP_H
DB_DBT_USERMEM = 0x020,
DB_DBT_DUPOK = 0x040
};
struct yobi_dbt {
void *app_private;
void *data;
u_int32_t flags;
u_int32_t size;
u_int32_t ulen;
};
struct yobi_db_txn {
int (*commit) (DB_TXN*, u_int32_t);
u_int32_t (*id) (DB_TXN *);
// internal stuff
struct yobi_db_txn_internal *i;
};
struct yobi_dbc {
int (*c_get) (DBC *, DBT *, DBT *, u_int32_t);
int (*c_close) (DBC *);
int (*c_del) (DBC *, u_int32_t);
struct yobi_dbc_internal *i;
};
struct yobi_db_env {
// Methods used by MYSQL
void (*err) (const DB_ENV *, int, const char *, ...);
int (*open) (DB_ENV *, const char *, u_int32_t, int);
int (*close) (DB_ENV *, u_int32_t);
int (*txn_checkpoint) (DB_ENV *, u_int32_t, u_int32_t, u_int32_t);
int (*log_flush) (DB_ENV *, const DB_LSN *);
void (*set_errcall) (DB_ENV *, void (*)(const char *, char *));
void (*set_errpfx) (DB_ENV *, const char *);
void (*set_noticecall) (DB_ENV *, void (*)(DB_ENV *, db_notices));
int (*set_flags) (DB_ENV *, u_int32_t, int);
int (*set_data_dir) (DB_ENV *, const char *);
int (*set_tmp_dir) (DB_ENV *, const char *);
int (*set_verbose) (DB_ENV *, u_int32_t, int);
int (*set_lg_bsize) (DB_ENV *, u_int32_t);
int (*set_lg_dir) (DB_ENV *, const char *);
int (*set_lg_max) (DB_ENV *, u_int32_t);
int (*set_cachesize) (DB_ENV *, u_int32_t, u_int32_t, int);
int (*set_lk_detect) (DB_ENV *, u_int32_t);
int (*set_lk_max) (DB_ENV *, u_int32_t);
int (*log_archive) (DB_ENV *, char **[], u_int32_t);
int (*txn_stat) (DB_ENV *, DB_TXN_STAT **, u_int32_t);
#ifdef _YDB_WRAP_H
#undef txn_begin #undef txn_begin
#endif #endif
int (*txn_begin) (DB_ENV *, DB_TXN *, DB_TXN **, u_int32_t); struct __toku_db_btree_stat {
#ifdef _YDB_WRAP_H char __toku_dummy0[12];
#define txn_begin txn_begin_ydb u_int32_t bt_nkeys; /* 32-bit offset=12 size=4, 64=bit offset=12 size=4 */
u_int32_t bt_ndata; /* 32-bit offset=16 size=4, 64=bit offset=16 size=4 */
char __toku_dummy1[60]; /* Padding at the end */
};
struct __toku_db_env {
struct __toku_db_env_internal *i;
void* __toku_dummy0[45];
char __toku_dummy1[64];
int (*close) (DB_ENV *, u_int32_t); /* 32-bit offset=248 size=4, 64=bit offset=432 size=8 */
void* __toku_dummy2[2];
void (*err) (const DB_ENV *, int, const char *, ...); /* 32-bit offset=260 size=4, 64=bit offset=456 size=8 */
void* __toku_dummy3[1];
int (*open) (DB_ENV *, const char *, u_int32_t, int); /* 32-bit offset=268 size=4, 64=bit offset=472 size=8 */
void* __toku_dummy4[1];
int (*set_data_dir) (DB_ENV *, const char *); /* 32-bit offset=276 size=4, 64=bit offset=488 size=8 */
void* __toku_dummy5[3];
void (*set_errcall) (DB_ENV *, void (*)(const char *, char *)); /* 32-bit offset=292 size=4, 64=bit offset=520 size=8 */
void* __toku_dummy6[1];
void (*set_errpfx) (DB_ENV *, const char *); /* 32-bit offset=300 size=4, 64=bit offset=536 size=8 */
void* __toku_dummy7[1];
int (*set_flags) (DB_ENV *, u_int32_t, int); /* 32-bit offset=308 size=4, 64=bit offset=552 size=8 */
void (*set_noticecall) (DB_ENV *, void (*)(DB_ENV *, db_notices)); /* 32-bit offset=312 size=4, 64=bit offset=560 size=8 */
void* __toku_dummy8[4];
int (*set_tmp_dir) (DB_ENV *, const char *); /* 32-bit offset=332 size=4, 64=bit offset=600 size=8 */
int (*set_verbose) (DB_ENV *, u_int32_t, int); /* 32-bit offset=336 size=4, 64=bit offset=608 size=8 */
void* __toku_dummy9[1];
int (*set_lg_bsize) (DB_ENV *, u_int32_t); /* 32-bit offset=344 size=4, 64=bit offset=624 size=8 */
int (*set_lg_dir) (DB_ENV *, const char *); /* 32-bit offset=348 size=4, 64=bit offset=632 size=8 */
int (*set_lg_max) (DB_ENV *, u_int32_t); /* 32-bit offset=352 size=4, 64=bit offset=640 size=8 */
void* __toku_dummy10[1];
int (*log_archive) (DB_ENV *, char **[], u_int32_t); /* 32-bit offset=360 size=4, 64=bit offset=656 size=8 */
void* __toku_dummy11[2];
int (*log_flush) (DB_ENV *, const DB_LSN *); /* 32-bit offset=372 size=4, 64=bit offset=680 size=8 */
void* __toku_dummy12[4];
int (*set_lk_detect) (DB_ENV *, u_int32_t); /* 32-bit offset=392 size=4, 64=bit offset=720 size=8 */
int (*set_lk_max) (DB_ENV *, u_int32_t); /* 32-bit offset=396 size=4, 64=bit offset=728 size=8 */
void* __toku_dummy13[15];
int (*set_cachesize) (DB_ENV *, u_int32_t, u_int32_t, int); /* 32-bit offset=460 size=4, 64=bit offset=856 size=8 */
void* __toku_dummy14[21];
int (*txn_begin) (DB_ENV *, DB_TXN *, DB_TXN **, u_int32_t); /* 32-bit offset=548 size=4, 64=bit offset=1032 size=8 */
int (*txn_checkpoint) (DB_ENV *, u_int32_t, u_int32_t, u_int32_t); /* 32-bit offset=552 size=4, 64=bit offset=1040 size=8 */
void* __toku_dummy15[2];
int (*txn_stat) (DB_ENV *, DB_TXN_STAT **, u_int32_t); /* 32-bit offset=564 size=4, 64=bit offset=1064 size=8 */
void* __toku_dummy16[2]; /* Padding at the end */
char __toku_dummy17[8]; /* Padding at the end */
};
struct __toku_db_key_range {
double less; /* 32-bit offset=0 size=8, 64=bit offset=0 size=8 */
double equal; /* 32-bit offset=8 size=8, 64=bit offset=8 size=8 */
double greater; /* 32-bit offset=16 size=8, 64=bit offset=16 size=8 */
void* __toku_dummy0[128]; /* Padding at the end */
char __toku_dummy1[48]; /* Padding at the end */
};
struct __toku_db_lsn {
char __toku_dummy0[8]; /* Padding at the end */
};
struct __toku_db {
struct __toku_db_internal *i;
void* __toku_dummy0[3];
void *app_private; /* 32-bit offset=16 size=4, 64=bit offset=32 size=8 */
void* __toku_dummy1[39];
char __toku_dummy2[96];
int (*close) (DB*, u_int32_t); /* 32-bit offset=272 size=4, 64=bit offset=448 size=8 */
int (*cursor) (DB *, DB_TXN *, DBC **, u_int32_t); /* 32-bit offset=276 size=4, 64=bit offset=456 size=8 */
int (*del) (DB *, DB_TXN *, DBT *, u_int32_t); /* 32-bit offset=280 size=4, 64=bit offset=464 size=8 */
void* __toku_dummy3[3];
int (*get) (DB *, DB_TXN *, DBT *, DBT *, u_int32_t); /* 32-bit offset=296 size=4, 64=bit offset=496 size=8 */
void* __toku_dummy4[4];
int (*key_range) (DB *, DB_TXN *, DBT *, DB_KEY_RANGE *, u_int32_t); /* 32-bit offset=316 size=4, 64=bit offset=536 size=8 */
int (*open) (DB *, DB_TXN *, const char *, const char *, DBTYPE, u_int32_t, int); /* 32-bit offset=320 size=4, 64=bit offset=544 size=8 */
int (*put) (DB *, DB_TXN *, DBT *, DBT *, u_int32_t); /* 32-bit offset=324 size=4, 64=bit offset=552 size=8 */
int (*remove) (DB *, const char *, const char *, u_int32_t); /* 32-bit offset=328 size=4, 64=bit offset=560 size=8 */
int (*rename) (DB *, const char *, const char *, const char *, u_int32_t); /* 32-bit offset=332 size=4, 64=bit offset=568 size=8 */
void* __toku_dummy5[11];
int (*set_flags) (DB *, u_int32_t); /* 32-bit offset=380 size=4, 64=bit offset=664 size=8 */
void* __toku_dummy6[3];
int (*stat) (DB *, void *, u_int32_t); /* 32-bit offset=396 size=4, 64=bit offset=696 size=8 */
void* __toku_dummy7[3];
int (*set_bt_compare) (DB *, int (*)(DB *, const DBT *, const DBT *)); /* 32-bit offset=412 size=4, 64=bit offset=728 size=8 */
void* __toku_dummy8[15]; /* Padding at the end */
char __toku_dummy9[8]; /* Padding at the end */
};
struct __toku_db_txn_active {
u_int32_t txnid; /* 32-bit offset=0 size=4, 64=bit offset=0 size=4 */
char __toku_dummy0[4];
DB_LSN lsn; /* 32-bit offset=8 size=8, 64=bit offset=8 size=8 */
};
struct __toku_db_txn {
struct __toku_db_txn_internal *i;
void* __toku_dummy0[13];
char __toku_dummy1[24];
int (*commit) (DB_TXN*, u_int32_t); /* 32-bit offset=80 size=4, 64=bit offset=136 size=8 */
void* __toku_dummy2[1];
u_int32_t (*id) (DB_TXN *); /* 32-bit offset=88 size=4, 64=bit offset=152 size=8 */
void* __toku_dummy3[3]; /* Padding at the end */
};
struct __toku_db_txn_stat {
void* __toku_dummy0[1];
char __toku_dummy1[28];
u_int32_t st_nactive; /* 32-bit offset=32 size=4, 64=bit offset=36 size=4 */
char __toku_dummy2[8];
DB_TXN_ACTIVE *st_txnarray; /* 32-bit offset=44 size=4, 64=bit offset=48 size=8 */
void* __toku_dummy3[1]; /* Padding at the end */
char __toku_dummy4[8]; /* Padding at the end */
};
struct __toku_dbc {
struct __toku_dbc_internal *i;
void* __toku_dummy0[24];
char __toku_dummy1[104];
int (*c_close) (DBC *); /* 32-bit offset=204 size=4, 64=bit offset=304 size=8 */
void* __toku_dummy2[1];
int (*c_del) (DBC *, u_int32_t); /* 32-bit offset=212 size=4, 64=bit offset=320 size=8 */
void* __toku_dummy3[1];
int (*c_get) (DBC *, DBT *, DBT *, u_int32_t); /* 32-bit offset=220 size=4, 64=bit offset=336 size=8 */
void* __toku_dummy4[11]; /* Padding at the end */
};
struct __toku_dbt {
void*data; /* 32-bit offset=0 size=4, 64=bit offset=0 size=8 */
u_int32_t size; /* 32-bit offset=4 size=4, 64=bit offset=8 size=4 */
u_int32_t ulen; /* 32-bit offset=8 size=4, 64=bit offset=12 size=4 */
char __toku_dummy0[8];
void*app_private; /* 32-bit offset=20 size=4, 64=bit offset=24 size=8 */
u_int32_t flags; /* 32-bit offset=24 size=4, 64=bit offset=32 size=4 */
/* 4 more bytes of alignment in the 64-bit case. */
};
#ifdef _TOKUDB_WRAP_H
#define txn_begin txn_begin_tokudb
#endif #endif
// Internal state
struct db_env_ydb_internal *i;
};
struct yobi_db_key_range {
double less,equal,greater;
};
struct yobi_db_btree_stat {
u_int32_t bt_ndata;
u_int32_t bt_nkeys;
};
struct yobi_db_txn_stat {
u_int32_t st_nactive;
DB_TXN_ACTIVE *st_txnarray;
};
struct yobi_db_lsn {
int hello;
};
struct yobi_db_txn_active {
DB_LSN lsn;
u_int32_t txnid;
};
#ifndef _YDB_WRAP_H
#define DB_VERSION_STRING "Yobiduck: Fractal DB (November 19, 2006)"
#else
#define DB_VERSION_STRING_ydb "Yobiduck: Fractal DB (November 19, 2006) (wrapped bdb)"
#endif
enum {
DB_ARCH_ABS = 0x001,
DB_ARCH_LOG = 0x004
};
enum {
DB_CREATE = 0x0000001,
DB_RDONLY = 0x0000010,
DB_RECOVER = 0x0000020,
DB_THREAD = 0x0000040,
DB_TXN_NOSYNC = 0x0000100,
DB_PRIVATE = 0x0100000
};
enum {
DB_LOCK_DEFAULT = 1,
DB_LOCK_OLDEST = 7,
DB_LOCK_RANDOM = 8
};
enum {
DB_DUP = 0x000002
};
enum {
DB_NOOVERWRITE = 23
};
enum {
DB_INIT_LOCK = 0x001000,
DB_INIT_LOG = 0x002000,
DB_INIT_MPOOL = 0x004000,
DB_INIT_TXN = 0x008000
};
int db_create (DB **, DB_ENV *, u_int32_t);
int db_env_create (DB_ENV **, u_int32_t);
int txn_begin (DB_ENV *, DB_TXN *, DB_TXN **, u_int32_t);
int txn_commit (DB_TXN *, u_int32_t);
int txn_abort (DB_TXN *);
int log_compare (const DB_LSN *, const DB_LSN *);
#if defined(__cplusplus) #if defined(__cplusplus)
} }
#endif #endif
......
#ifndef _YOBI_DB_H
#define _YOBI_DB_H
#include "ydb-constants.h"
#if defined(__cplusplus)
extern "C" {
#if 0
}
#endif
#endif
#include <sys/types.h>
#include <stdio.h>
typedef enum {
DB_BTREE=1,
// DB_HASH=2,
// DB_RECNO=3,
// DB_QUEUE=4,
// DB_UNKNOWN=5 /* Figure it out on open. */
} DBTYPE;
typedef enum {
DB_NOTICE_LOGFILE_CHANGED
} db_notices;
enum {
DB_VERB_CHKPOINT = 0x0001,
DB_VERB_DEADLOCK = 0x0002,
DB_VERB_RECOVERY = 0x0004
};
typedef struct yobi_db DB;
typedef struct yobi_db_btree_stat DB_BTREE_STAT;
typedef struct yobi_db_env DB_ENV;
typedef struct yobi_db_key_range DB_KEY_RANGE;
typedef struct yobi_db_lsn DB_LSN;
typedef struct yobi_db_txn DB_TXN;
typedef struct yobi_db_txn_active DB_TXN_ACTIVE;
typedef struct yobi_db_txn_stat DB_TXN_STAT;
typedef struct yobi_dbc DBC;
typedef struct yobi_dbt DBT;
struct yobi_db {
void *app_private;
int (*close) (DB *, u_int32_t);
int (*cursor) (DB *, DB_TXN *, DBC **, u_int32_t);
int (*del) (DB *, DB_TXN *, DBT *, u_int32_t);
int (*get) (DB *, DB_TXN *, DBT *, DBT *, u_int32_t);
int (*key_range) (DB *, DB_TXN *, DBT *, DB_KEY_RANGE *, u_int32_t);
int (*open) (DB *, DB_TXN *,
const char *, const char *, DBTYPE, u_int32_t, int);
int (*put) (DB *, DB_TXN *, DBT *, DBT *, u_int32_t);
int (*remove) (DB *, const char *, const char *, u_int32_t);
int (*rename) (DB *, const char *, const char *, const char *, u_int32_t);
int (*set_bt_compare) (DB *,
int (*)(DB *, const DBT *, const DBT *));
int (*set_flags) (DB *, u_int32_t);
int (*stat) (DB *, void *, u_int32_t);
struct ydb_db_internal *i;
};
enum {
DB_DBT_MALLOC = 0x002,
DB_DBT_REALLOC = 0x010,
DB_DBT_USERMEM = 0x020,
DB_DBT_DUPOK = 0x040
};
struct yobi_dbt {
void *app_private;
void *data;
u_int32_t flags;
u_int32_t size;
u_int32_t ulen;
};
struct yobi_db_txn {
int (*commit) (DB_TXN*, u_int32_t);
u_int32_t (*id) (DB_TXN *);
// internal stuff
struct yobi_db_txn_internal *i;
};
struct yobi_dbc {
int (*c_get) (DBC *, DBT *, DBT *, u_int32_t);
int (*c_close) (DBC *);
int (*c_del) (DBC *, u_int32_t);
struct yobi_dbc_internal *i;
};
struct yobi_db_env {
// Methods used by MYSQL
void (*err) (const DB_ENV *, int, const char *, ...);
int (*open) (DB_ENV *, const char *, u_int32_t, int);
int (*close) (DB_ENV *, u_int32_t);
int (*txn_checkpoint) (DB_ENV *, u_int32_t, u_int32_t, u_int32_t);
int (*log_flush) (DB_ENV *, const DB_LSN *);
void (*set_errcall) (DB_ENV *, void (*)(const char *, char *));
void (*set_errpfx) (DB_ENV *, const char *);
void (*set_noticecall) (DB_ENV *, void (*)(DB_ENV *, db_notices));
int (*set_flags) (DB_ENV *, u_int32_t, int);
int (*set_data_dir) (DB_ENV *, const char *);
int (*set_tmp_dir) (DB_ENV *, const char *);
int (*set_verbose) (DB_ENV *, u_int32_t, int);
int (*set_lg_bsize) (DB_ENV *, u_int32_t);
int (*set_lg_dir) (DB_ENV *, const char *);
int (*set_lg_max) (DB_ENV *, u_int32_t);
int (*set_cachesize) (DB_ENV *, u_int32_t, u_int32_t, int);
int (*set_lk_detect) (DB_ENV *, u_int32_t);
int (*set_lk_max) (DB_ENV *, u_int32_t);
int (*log_archive) (DB_ENV *, char **[], u_int32_t);
int (*txn_stat) (DB_ENV *, DB_TXN_STAT **, u_int32_t);
#ifdef _YDB_WRAP_H
#undef txn_begin
#endif
int (*txn_begin) (DB_ENV *, DB_TXN *, DB_TXN **, u_int32_t);
#ifdef _YDB_WRAP_H
#define txn_begin txn_begin_ydb
#endif
// Internal state
struct db_env_ydb_internal *i;
};
struct yobi_db_key_range {
double less,equal,greater;
};
struct yobi_db_btree_stat {
u_int32_t bt_ndata;
u_int32_t bt_nkeys;
};
struct yobi_db_txn_stat {
u_int32_t st_nactive;
DB_TXN_ACTIVE *st_txnarray;
};
struct yobi_db_lsn {
int hello;
};
struct yobi_db_txn_active {
DB_LSN lsn;
u_int32_t txnid;
};
#ifndef _YDB_WRAP_H
#define DB_VERSION_STRING "Yobiduck: Fractal DB (November 19, 2006)"
#else
#define DB_VERSION_STRING_ydb "Yobiduck: Fractal DB (November 19, 2006) (wrapped bdb)"
#endif
enum {
DB_ARCH_ABS = 0x001,
DB_ARCH_LOG = 0x004
};
enum {
DB_CREATE = 0x0000001,
DB_RDONLY = 0x0000010,
DB_RECOVER = 0x0000020,
DB_THREAD = 0x0000040,
DB_TXN_NOSYNC = 0x0000100,
DB_PRIVATE = 0x0100000
};
enum {
DB_LOCK_DEFAULT = 1,
DB_LOCK_OLDEST = 7,
DB_LOCK_RANDOM = 8
};
enum {
DB_DUP = 0x000002
};
enum {
DB_NOOVERWRITE = 23
};
enum {
DB_INIT_LOCK = 0x001000,
DB_INIT_LOG = 0x002000,
DB_INIT_MPOOL = 0x004000,
DB_INIT_TXN = 0x008000
};
int db_create (DB **, DB_ENV *, u_int32_t);
int db_env_create (DB_ENV **, u_int32_t);
int txn_begin (DB_ENV *, DB_TXN *, DB_TXN **, u_int32_t);
int txn_commit (DB_TXN *, u_int32_t);
int txn_abort (DB_TXN *);
int log_compare (const DB_LSN *, const DB_LSN *);
#if defined(__cplusplus)
}
#endif
#endif
#ifndef _YDB_CONSTANTS_H
#define _YDB_CONSTANTS_H
enum {
DB_KEYEMPTY = -30998,
DB_KEYEXIST = -30997,
DB_LOCK_DEADLOCK = -30996,
DB_NOTFOUND = -30991,
// Private
DB_BADFORMAT = -31000
};
enum {
//DB_AFTER = 1,
DB_FIRST = 10,
DB_GET_BOTH = 11,
DB_LAST = 18,
DB_NEXT = 19,
DB_NEXT_DUP = 20,
DB_PREV = 27,
DB_SET = 30,
DB_SET_RANGE = 32,
DB_RMW = 0x40000000
};
#endif
...@@ -57,25 +57,27 @@ check-fanout: ...@@ -57,25 +57,27 @@ check-fanout:
# pma: PROF_FLAGS=-fprofile-arcs -ftest-coverage # pma: PROF_FLAGS=-fprofile-arcs -ftest-coverage
key.o: brttypes.h key.h key.o: brttypes.h key.h
pma-test.o: pma-internal.h pma.h yerror.h memory.h ../include/ydb-constants.h pma-test.o: pma-internal.h pma.h yerror.h memory.h ../include/db.h
pma-test: pma.o memory.o key.o ybt.o pma-test: pma.o memory.o key.o ybt.o
pma.o: pma.h yerror.h pma-internal.h memory.h key.h ybt.h brttypes.h ../include/ydb-constants.h pma.o: pma.h yerror.h pma-internal.h memory.h key.h ybt.h brttypes.h ../include/db.h
ybt.o: ybt.h brttypes.h ybt.o: ybt.h brttypes.h ../include/db.h
ybt-test: ybt-test.o ybt.o memory.o ybt-test: ybt-test.o ybt.o memory.o
ybt-test.o: ybt.h ../include/db.h
cachetable.o: cachetable.h hashfun.h cachetable.o: cachetable.h hashfun.h
brt-test: ybt.o brt.o hashtable.o pma.o memory.o brt-serialize.o cachetable.o header-io.o ybt.o key.o primes.o brt-test: ybt.o brt.o hashtable.o pma.o memory.o brt-serialize.o cachetable.o header-io.o ybt.o key.o primes.o
brt-test.o brt.o: brt.h hashtable.h pma.h brttypes.h cachetable.h brt-test.o brt.o: brt.h ../include/db.h hashtable.h pma.h brttypes.h cachetable.h
brt-serialize-test.o: pma.h yerror.h brt.h memory.h hashtable.h brttypes.h brt-internal.h brt-serialize-test.o: pma.h yerror.h brt.h ../include/db.h memory.h hashtable.h brttypes.h brt-internal.h
brt.o: brt.h mdict.h pma.h brttypes.h memory.h brt-internal.h cachetable.h hashtable.h brt.o: brt.h ../include/db.h mdict.h pma.h brttypes.h memory.h brt-internal.h cachetable.h hashtable.h
mdict.o: pma.h mdict.o: pma.h
hashtable.o: hashtable.h brttypes.h memory.h key.h yerror.h ../include/ydb-constants.h hashfun.h hashtable.o: hashtable.h brttypes.h memory.h key.h yerror.h ../include/db.h hashfun.h
memory.o: memory.h memory.o: memory.h
primes.o: primes.h primes.o: primes.h
hashtest: hashtable.o memory.o primes.o hashtest: hashtable.o memory.o primes.o
brt-serialize.o: brt.h cachetable.h memory.h mdict.h pma.h brttypes.h brt-internal.h hashtable.h wbuf.h rbuf.h brt-serialize.o: brt.h ../include/db.h cachetable.h memory.h mdict.h pma.h brttypes.h brt-internal.h hashtable.h wbuf.h rbuf.h
header-io.o: brttypes.h brt-internal.h memory.h header-io.o: brttypes.h brt-internal.h brt.h ../include/db.h memory.h
mdict-test: hashtable.o pma.o memory.o mdict-test: hashtable.o pma.o memory.o
brt-bigtest: memory.o ybt.o brt.o pma.o cachetable.o key.o hashtable.o brt-serialize.o brt-bigtest: memory.o ybt.o brt.o pma.o cachetable.o key.o hashtable.o brt-serialize.o
brt-bigtest.o: brt.h ../include/db.h
log-test: log.o memory.o log-test: log.o memory.o
brt-serialize-test: brt-serialize-test.o brt-serialize.o memory.o hashtable.o pma.o key.o ybt.o brt.o cachetable.o primes.o brt-serialize-test: brt-serialize-test.o brt-serialize.o memory.o hashtable.o pma.o key.o ybt.o brt.o cachetable.o primes.o
...@@ -84,6 +86,7 @@ cachetable-test.o: cachetable.h memory.h ...@@ -84,6 +86,7 @@ cachetable-test.o: cachetable.h memory.h
cachetable-test: cachetable.o memory.o cachetable-test.o cachetable-test: cachetable.o memory.o cachetable-test.o
benchmark-test: benchmark-test.o ybt.o memory.o brt.o pma.o cachetable.o key.o hashtable.o brt-serialize.o primes.o benchmark-test: benchmark-test.o ybt.o memory.o brt.o pma.o cachetable.o key.o hashtable.o brt-serialize.o primes.o
benchmark-test.o: brt.h ../include/db.h
clean: clean:
rm -rf *.o hashtest brt-test cachetable-test randbrt randdb4 benchmark-test *.bb *.bbg *.da rm -rf *.o hashtest brt-test cachetable-test randbrt randdb4 benchmark-test *.bb *.bbg *.da
......
...@@ -2,11 +2,12 @@ ...@@ -2,11 +2,12 @@
#include "brt.h" #include "brt.h"
#include "key.h" #include "key.h"
#include "memory.h" #include "memory.h"
#include <unistd.h>
#include <stdlib.h>
#include <assert.h> #include <assert.h>
#include <sys/time.h>
#include <errno.h> #include <errno.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/time.h>
#include <unistd.h>
const char fname[]="sinsert.brt"; const char fname[]="sinsert.brt";
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
#include "brttypes.h" #include "brttypes.h"
#include "ybt.h" #include "ybt.h"
#include "../include/ydb-constants.h" #include "../include/db.h"
#include "cachetable.h" #include "cachetable.h"
typedef struct brt *BRT; typedef struct brt *BRT;
int open_brt (const char *fname, const char *dbname, int is_create, BRT *, int nodesize, CACHETABLE, int(*)(DB*,const DBT*,const DBT*)); int open_brt (const char *fname, const char *dbname, int is_create, BRT *, int nodesize, CACHETABLE, int(*)(DB*,const DBT*,const DBT*));
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
#include "hashtable.h" #include "hashtable.h"
#include "memory.h" #include "memory.h"
#include "primes.h" #include "primes.h"
#include "../include/ydb-constants.h" #include "../include/db.h"
#include <assert.h> #include <assert.h>
#include <string.h> #include <string.h>
#include <stdlib.h> #include <stdlib.h>
......
#include "../include/ydb-constants.h" #include "../include/db.h"
#include "memory.h" #include "memory.h"
#include "key.h" #include "key.h"
#include <assert.h> #include <assert.h>
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
#include "key.h" #include "key.h"
#include "memory.h" #include "memory.h"
#include "myassert.h" #include "myassert.h"
#include "../include/ydb-constants.h" #include "../include/db.h"
#include <stdio.h> #include <stdio.h>
#include <errno.h> #include <errno.h>
/* Only needed for testing. */ /* Only needed for testing. */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment