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