48typedef uint32_t tuple_id_t;
49#define INVALID_TUPLE (tuple_id_t)-1
51typedef enum db_direction {
56#define RELATION_HAS_TUPLES(rel) ((rel)->tuple_storage >= 0)
63 struct relation *next;
65 attribute_t *primary_key;
67 attribute_id_t attribute_count;
68 tuple_id_t cardinality;
70 db_storage_id_t tuple_storage;
73 char name[RELATION_NAME_LENGTH + 1];
74 char tuple_filename[RELATION_NAME_LENGTH + 1];
77typedef struct relation relation_t;
80db_result_t relation_init(
void);
81db_result_t relation_process_remove(
void *);
82db_result_t relation_process_select(
void *);
83db_result_t relation_process_join(
void *);
84relation_t *relation_load(
char *);
85db_result_t relation_release(relation_t *);
86relation_t *relation_create(
char *, db_direction_t);
87db_result_t relation_rename(
char *,
char *);
88attribute_t *relation_attribute_add(relation_t *, db_direction_t,
char *,
90attribute_t *relation_attribute_get(relation_t *,
char *);
91db_result_t relation_get_value(relation_t *, attribute_t *,
92 unsigned char *, attribute_value_t *);
93db_result_t relation_attribute_remove(relation_t *,
char *);
94db_result_t relation_set_primary_key(relation_t *,
char *);
95db_result_t relation_remove(
char *,
int);
96db_result_t relation_insert(relation_t *, attribute_value_t *);
97db_result_t relation_select(
void *, relation_t *,
void *);
98db_result_t relation_join(
void *,
void *);
99tuple_id_t relation_cardinality(relation_t *);
Definitions for attributes.
Database configuration options.
#define LIST_STRUCT(name)
Declare a linked list inside a structure declaraction.
Linked list manipulation routines.