Contiki-NG
Toggle main menu visibility
Loading...
Searching...
No Matches
db-options.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2010, Swedish Institute of Computer Science
3
* All rights reserved.
4
*
5
* Redistribution and use in source and binary forms, with or without
6
* modification, are permitted provided that the following conditions
7
* are met:
8
* 1. Redistributions of source code must retain the above copyright
9
* notice, this list of conditions and the following disclaimer.
10
* 2. Redistributions in binary form must reproduce the above copyright
11
* notice, this list of conditions and the following disclaimer in the
12
* documentation and/or other materials provided with the distribution.
13
* 3. Neither the name of the Institute nor the names of its contributors
14
* may be used to endorse or promote products derived from this software
15
* without specific prior written permission.
16
*
17
* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
18
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20
* ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
21
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
23
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
24
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
26
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27
* SUCH DAMAGE.
28
*/
29
30
/**
31
* \file
32
* Database configuration options.
33
* \author
34
* Nicolas Tsiftes <nvt@sics.se>
35
*/
36
37
#ifndef DB_OPTIONS_H
38
#define DB_OPTIONS_H
39
40
#include "contiki.h"
41
#include "cfs-coffee-arch.h"
42
43
/*----------------------------------------------------------------------------*/
44
45
/* Optional Antelope features. Include only what is needed
46
in order to save space. */
47
48
/* Support join operations on relations. */
49
#ifndef DB_FEATURE_JOIN
50
#define DB_FEATURE_JOIN 1
51
#endif
/* DB_FEATURE_JOIN */
52
53
/* Support tuple removals. */
54
#ifndef DB_FEATURE_REMOVE
55
#define DB_FEATURE_REMOVE 1
56
#endif
/* DB_FEATURE_REMOVE */
57
58
/* Support floating-point values in attributes. */
59
#ifndef DB_FEATURE_FLOATS
60
#define DB_FEATURE_FLOATS 0
61
#endif
/* DB_FEATURE_FLOATS */
62
63
/* Optimize storage access for the Coffee file system. */
64
#ifndef DB_FEATURE_COFFEE
65
#define DB_FEATURE_COFFEE 1
66
#endif
/* DB_FEATURE_COFFEE */
67
68
/* Enable basic data integrity checks. */
69
#ifndef DB_FEATURE_INTEGRITY
70
#define DB_FEATURE_INTEGRITY 0
71
#endif
/* DB_FEATURE_INTEGRITY */
72
73
/*----------------------------------------------------------------------------*/
74
75
/* Configuration parameters that may be trimmed to save space. */
76
77
/* The size of the error message buffer used by the parser. */
78
#ifndef DB_ERROR_BUF_SIZE
79
#define DB_ERROR_BUF_SIZE 50
80
#endif
/* DB_ERROR_BUF_SIZE */
81
82
/* The maximum number of indexes in use by all relations loaded in memory. */
83
#ifndef DB_INDEX_POOL_SIZE
84
#define DB_INDEX_POOL_SIZE 3
85
#endif
/* DB_INDEX_POOL_SIZE */
86
87
/* The maximum number of relations loaded in memory. */
88
#ifndef DB_RELATION_POOL_SIZE
89
#define DB_RELATION_POOL_SIZE 5
90
#endif
/* DB_RELATION_POOL_SIZE */
91
92
/* The maximum number of attributes loaded in memory. */
93
#ifndef DB_ATTRIBUTE_POOL_SIZE
94
#define DB_ATTRIBUTE_POOL_SIZE 16
95
#endif
/* DB_ATTRIBUTE_POOL_SIZE */
96
97
/* The maximum number of attributes in a relation. */
98
#ifndef DB_MAX_ATTRIBUTES_PER_RELATION
99
#define DB_MAX_ATTRIBUTES_PER_RELATION 6
100
#endif
/* DB_MAX_ATTRIBUTES_PER_RELATION */
101
102
/* The maximum physical storage size on an attribute value. */
103
#ifndef DB_MAX_ELEMENT_SIZE
104
#define DB_MAX_ELEMENT_SIZE 16
105
#endif
/* DB_MAX_ELEMENT_SIZE */
106
107
108
/* The maximum size of the LVM bytecode compiled from a
109
single database query. */
110
#ifndef DB_VM_BYTECODE_SIZE
111
#define DB_VM_BYTECODE_SIZE 256
112
#endif
/* DB_VM_BYTECODE_SIZE */
113
114
/*----------------------------------------------------------------------------*/
115
116
/* Language options. */
117
118
/* The maximum length of a database query in AQL text format. */
119
#ifndef AQL_MAX_QUERY_LENGTH
120
#define AQL_MAX_QUERY_LENGTH 128
121
#endif
/* AQL_MAX_QUERY_LENGTH */
122
123
#ifndef AQL_MAX_VALUE_LENGTH
124
#define AQL_MAX_VALUE_LENGTH DB_MAX_ELEMENT_SIZE
125
#endif
/* AQL_MAX_VALUE_LENGTH */
126
127
/* The maximum number of relations used in a single query. */
128
#ifndef AQL_RELATION_LIMIT
129
#define AQL_RELATION_LIMIT 3
130
#endif
/* AQL_RELATION_LIMIT */
131
132
/* The maximum number of attributes used in a single query. */
133
#ifndef AQL_ATTRIBUTE_LIMIT
134
#define AQL_ATTRIBUTE_LIMIT 5
135
#endif
/* AQL_ATTRIBUTE_LIMIT */
136
137
/*----------------------------------------------------------------------------*/
138
139
/*
140
* Physical storage options. Changing these options might cause
141
* compatibility problems if the database files are moved between
142
* different installations of Antelope.
143
*/
144
145
/* The default relation file size to reserve when using Coffee. */
146
#ifndef DB_COFFEE_RESERVE_SIZE
147
#define DB_COFFEE_RESERVE_SIZE (COFFEE_SIZE / 8)
148
#endif
/* DB_COFFEE_RESERVE_SIZE */
149
150
/*
151
* Ensure that the default size of Coffee file reservations is suitable
152
* for the file system size.
153
*/
154
#if DB_COFFEE_RESERVE_SIZE > (COFFEE_SIZE / 2)
155
#error DB_COFFEE_RESERVE_SIZE is too large for the file system.
156
#endif
157
158
/* The maximum size of the physical storage of a tuple (labelled a "row"
159
in Antelope's terminology. */
160
#ifndef DB_MAX_CHAR_SIZE_PER_ROW
161
#define DB_MAX_CHAR_SIZE_PER_ROW 64
162
#endif
/* DB_MAX_CHAR_SIZE_PER_ROW */
163
164
/* The maximum file name length to use for creating various database file. */
165
#ifndef DB_MAX_FILENAME_LENGTH
166
#define DB_MAX_FILENAME_LENGTH 16
167
#endif
/* DB_MAX_FILENAME_LENGTH */
168
169
/* The maximum length of an attribute name. */
170
#ifndef ATTRIBUTE_NAME_LENGTH
171
#define ATTRIBUTE_NAME_LENGTH 12
172
#endif
/* ATTRIBUTE_NAME_LENGTH */
173
174
/* The maximum length on a relation name. */
175
#ifndef RELATION_NAME_LENGTH
176
#define RELATION_NAME_LENGTH 10
177
#endif
/* RELATION_NAME_LENGTH */
178
179
/* The name of the intermediate "result" relation file, which is used
180
for presenting the result of a query to a user. */
181
#ifndef RESULT_RELATION
182
#define RESULT_RELATION "db-result"
183
#endif
/* RESULT_RELATION */
184
185
/* The name of the relation used for processing a REMOVE query. */
186
#ifndef REMOVE_RELATION
187
#define REMOVE_RELATION "db-remove"
188
#endif
/* REMOVE_RELATION */
189
190
/*----------------------------------------------------------------------------*/
191
192
/* Index options. */
193
194
#ifndef DB_INDEX_COST
195
#define DB_INDEX_COST 64
196
#endif
/* DB_INDEX_COST */
197
198
/* The maximum number of hash table indexes. */
199
#ifndef DB_MEMHASH_INDEX_LIMIT
200
#define DB_MEMHASH_INDEX_LIMIT 1
201
#endif
/* DB_MEMHASH_INDEX_LIMIT */
202
203
/* The default hash table index size. */
204
#ifndef DB_MEMHASH_TABLE_SIZE
205
#define DB_MEMHASH_TABLE_SIZE 61
206
#endif
/* DB_MEMHASH_TABLE_SIZE */
207
208
/* The maximum number of Maxheap indexes. */
209
#ifndef DB_HEAP_INDEX_LIMIT
210
#define DB_HEAP_INDEX_LIMIT 1
211
#endif
/* DB_HEAP_INDEX_LIMIT */
212
213
/* The maximum number of buckets cached in the MaxHeap index. */
214
#ifndef DB_HEAP_CACHE_LIMIT
215
#define DB_HEAP_CACHE_LIMIT 1
216
#endif
/* DB_HEAP_CACHE_LIMIT */
217
218
/*----------------------------------------------------------------------------*/
219
220
/* LVM options. */
221
222
/* The maximum length of a variable in LVM. This value should preferably
223
be identical to the maximum attribute name length. */
224
#ifndef LVM_MAX_NAME_LENGTH
225
#define LVM_MAX_NAME_LENGTH ATTRIBUTE_NAME_LENGTH
226
#endif
/* LVM_MAX_NAME_LENGTH */
227
228
/* The maximum variable identifier number in the LVM. The default
229
value corresponds to the highest attribute ID. */
230
#ifndef LVM_MAX_VARIABLE_ID
231
#define LVM_MAX_VARIABLE_ID AQL_ATTRIBUTE_LIMIT - 1
232
#endif
/* LVM_MAX_VARIABLE_ID */
233
234
/* Specify whether floats should be used or not inside the LVM. */
235
#ifndef LVM_USE_FLOATS
236
#define LVM_USE_FLOATS DB_FEATURE_FLOATS
237
#endif
/* LVM_USE_FLOATS */
238
239
240
#endif
/* !DB_OPTIONS_H */
os
storage
antelope
db-options.h
Generated on
for Contiki-NG by
1.17.0