summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCharlie Brej <cbrej@cs.man.ac.uk>2010-08-08 20:37:41 +0100
committerCharlie Brej <cbrej@cs.man.ac.uk>2010-08-08 20:37:41 +0100
commitfb0a503c21837e70c368c918e9837e34e2e33803 (patch)
tree36a5aee7a8d8981576f189919cc0276f76dfbf16
parent66ac4dde6785fbebccc91ed0ca3f5bc48395d101 (diff)
Add a function that creates a query which finds records that a record replaces
-rw-r--r--src/libtidbit/tidbit-query.c17
-rw-r--r--src/libtidbit/tidbit-query.h1
2 files changed, 15 insertions, 3 deletions
diff --git a/src/libtidbit/tidbit-query.c b/src/libtidbit/tidbit-query.c
index d1bee60..4aff47c 100644
--- a/src/libtidbit/tidbit-query.c
+++ b/src/libtidbit/tidbit-query.c
@@ -105,6 +105,17 @@ gboolean tidbit_query_test_record (PtrTidbitQuery query, PtrTidbitRecord record)
return TRUE;
}
-
-
-
+PtrTidbitQuery tidbit_query_record_replaces (PtrTidbitRecord record)
+{
+ PtrTidbitQuery query = tidbit_query_new (record->table_name);
+ tidbit_query_add_exp (query, TIDBIT_RECORD_ELEMENT_KEY_USERKEY, record->user_name, TIDBIT_QUERY_EXP_TYPE_EQ);
+// tidbit_query_add_exp (query, TIDBIT_RECORD_ELEMENT_KEY_CREATED, record->start_time, TIDBIT_QUERY_EXP_TYPE_LT); FIXME needs a a numerical '<'
+
+ for (GList* elements = record->elements; elements; elements = g_list_next(elements)){
+ PtrTidbitRecordElement element = elements->data;
+ if (element->type == TIDBIT_RECORD_ELEMENT_TYPE_KEY){
+ tidbit_query_add_exp (query, element->key, element->value, TIDBIT_QUERY_EXP_TYPE_EQ);
+ }
+ }
+ return query;
+}
diff --git a/src/libtidbit/tidbit-query.h b/src/libtidbit/tidbit-query.h
index 1a59053..b680214 100644
--- a/src/libtidbit/tidbit-query.h
+++ b/src/libtidbit/tidbit-query.h
@@ -45,5 +45,6 @@ void tidbit_query_add_exp (PtrTidbitQuery query, char* key, char* value, TidbitQ
void tidbit_query_foreach_exp (PtrTidbitQuery query, TidbitQueryForeachFunc func, gpointer user_data);
gboolean tidbit_query_test_record (PtrTidbitQuery query, PtrTidbitRecord record);
+PtrTidbitQuery tidbit_query_record_replaces (PtrTidbitRecord record);
#endif