@@ -107,6 +107,7 @@ void processFlush(Flush_t *fl, Journal_t** journal_array, ValidationList_t* vali
107
107
}
108
108
109
109
void processForget (Forget_t * fo , Journal_t * * journal_array ,int relation_count ) {
110
+ return ;
110
111
uint32_t i ;
111
112
for (i = 0 ; i < relation_count ; i ++ ){
112
113
Journal_t * journal = journal_array [i ];
@@ -185,7 +186,32 @@ bool checkQueryHash(Journal_t** journal_array, Query_t* query, uint64_t from, ui
185
186
} else { /*Else check all the records in the range [from,to]*/
186
187
for (j = 0 , offset = first_offset ; j < record_count ; j ++ , offset ++ ){
187
188
JournalRecord_t * record = & journal -> records [offset ];
188
- if (checkConstraint (record , predicate )){
189
+ // if(checkConstraint(record, predicate)){
190
+ uint32_t column = predicate -> column ;
191
+ Op_t operator = predicate -> op ;
192
+ uint64_t value = predicate -> value ;
193
+ bool cond = false;
194
+ switch (operator ){
195
+ case Equal :
196
+ cond = (record -> column_values [column ] == value );
197
+ break ;
198
+ case NotEqual :
199
+ cond = (record -> column_values [column ] != value );
200
+ break ;
201
+ case Less :
202
+ cond = (record -> column_values [column ] < value );
203
+ break ;
204
+ case LessOrEqual :
205
+ cond = (record -> column_values [column ] <= value );
206
+ break ;
207
+ case Greater :
208
+ cond = (record -> column_values [column ] > value );
209
+ break ;
210
+ case GreaterOrEqual :
211
+ cond = (record -> column_values [column ] >= value );
212
+ break ;
213
+ }
214
+ if (cond ){
189
215
setBit (j ,predicate_bit_set );
190
216
}
191
217
}
@@ -269,7 +295,32 @@ bool checkSingleQuery(Journal_t** journal_array, Query_t* query, uint64_t from,
269
295
bool record_result = true;
270
296
for (j = 1 ; j < query -> columnCount ; j ++ ) { /* check all column constraints */
271
297
Column_t * constraint = & query -> columns [j ];
272
- bool partial_result = checkConstraint (record ,constraint );
298
+ uint32_t column = constraint -> column ;
299
+ Op_t operator = constraint -> op ;
300
+ uint64_t value = constraint -> value ;
301
+ bool cond = false;
302
+ switch (operator ){
303
+ case Equal :
304
+ cond = (record -> column_values [column ] == value );
305
+ break ;
306
+ case NotEqual :
307
+ cond = (record -> column_values [column ] != value );
308
+ break ;
309
+ case Less :
310
+ cond = (record -> column_values [column ] < value );
311
+ break ;
312
+ case LessOrEqual :
313
+ cond = (record -> column_values [column ] <= value );
314
+ break ;
315
+ case Greater :
316
+ cond = (record -> column_values [column ] > value );
317
+ break ;
318
+ case GreaterOrEqual :
319
+ cond = (record -> column_values [column ] >= value );
320
+ break ;
321
+ }
322
+ bool partial_result = cond ;
323
+
273
324
record_result = record_result && partial_result ;
274
325
if (partial_result == false){
275
326
break ;
@@ -289,7 +340,31 @@ bool checkSingleQuery(Journal_t** journal_array, Query_t* query, uint64_t from,
289
340
bool record_result = true;
290
341
for (j = 0 ; j < query -> columnCount ; j ++ ){
291
342
Column_t * constraint = & query -> columns [j ];
292
- bool partial_result = checkConstraint (record ,constraint );
343
+ uint32_t column = constraint -> column ;
344
+ Op_t operator = constraint -> op ;
345
+ uint64_t value = constraint -> value ;
346
+ bool cond = false;
347
+ switch (operator ){
348
+ case Equal :
349
+ cond = (record -> column_values [column ] == value );
350
+ break ;
351
+ case NotEqual :
352
+ cond = (record -> column_values [column ] != value );
353
+ break ;
354
+ case Less :
355
+ cond = (record -> column_values [column ] < value );
356
+ break ;
357
+ case LessOrEqual :
358
+ cond = (record -> column_values [column ] <= value );
359
+ break ;
360
+ case Greater :
361
+ cond = (record -> column_values [column ] > value );
362
+ break ;
363
+ case GreaterOrEqual :
364
+ cond = (record -> column_values [column ] >= value );
365
+ break ;
366
+ }
367
+ bool partial_result = cond ;
293
368
record_result = record_result && partial_result ;
294
369
if (partial_result == false){
295
370
break ;
0 commit comments