mdb: added functions for handling database trigger event data.
authorIsmo Puustinen <ismo.puustinen@intel.com>
Wed, 19 Feb 2014 12:35:16 +0000 (14:35 +0200)
committerIsmo Puustinen <ismo.puustinen@intel.com>
Fri, 21 Feb 2014 14:59:06 +0000 (16:59 +0200)
src/murphy-db/include/murphy-db/mql-result.h
src/murphy-db/mql/result.c

index 62435d4..0a6d66f 100644 (file)
@@ -95,6 +95,9 @@ int32_t          mql_result_list_get_integer(mql_result_t *, int);
 int32_t          mql_result_list_get_unsigned(mql_result_t *, int);
 double           mql_result_list_get_floating(mql_result_t *, int);
 
+mqi_event_type_t mql_result_event_get_type(mql_result_t *);
+mql_result_t    *mql_result_event_get_changed_rows(mql_result_t *);
+
 void             mql_result_free(mql_result_t *);
 
 
index 6ba152e..fe7ee51 100644 (file)
@@ -219,6 +219,36 @@ const char *mql_result_error_get_message(mql_result_t *r)
     return msg;
 }
 
+mqi_event_type_t mql_result_event_get_type(mql_result_t *r)
+{
+    result_event_t *ev;
+
+    if (!r || r->type != mql_result_event)
+        return mqi_event_unknown;
+
+    ev = (result_event_t *) r;
+
+    return ev->event;
+}
+
+mql_result_t *mql_result_event_get_changed_rows(mql_result_t *r)
+{
+    result_event_t *ev;
+    result_event_rowchg_t *rowchg_ev;
+
+    if (!r || r->type != mql_result_event)
+        return NULL;
+
+    ev = (result_event_t *) r;
+
+    if (ev->event != mqi_row_deleted && ev->event != mqi_row_inserted)
+        return NULL;
+
+    rowchg_ev = (result_event_rowchg_t *) ev;
+
+    return rowchg_ev->select;
+}
+
 mql_result_t *mql_result_event_column_change_create(mqi_handle_t        table,
                                                     int                 column,
                                                     mqi_change_value_t *value,