From: <svn...@op...> - 2009-04-03 22:09:06
|
Author: dgollub Date: Sat Apr 4 00:09:03 2009 New Revision: 5525 URL: http://www.opensync.org/changeset/5525 Log: Fix slow-sync issues with plugins using the SinkStateDB. The REPLACE queries and the table struct caused that only one row is left, even if a member has multiple objtype sinks active. Adapting the primary keys solves the problem. Dropped the ID column whcih was unused. Modified: trunk/opensync/helper/opensync_sink_state_db.c Modified: trunk/opensync/helper/opensync_sink_state_db.c ============================================================================== --- trunk/opensync/helper/opensync_sink_state_db.c Fri Apr 3 23:33:13 2009 (r5524) +++ trunk/opensync/helper/opensync_sink_state_db.c Sat Apr 4 00:09:03 2009 (r5525) @@ -35,7 +35,7 @@ osync_trace(TRACE_ENTRY, "%s(%p, %p)", __func__, sinkStateDB, error); /* TODO: How portable to other databes is UNIQUE? */ - query = osync_strdup("CREATE TABLE tbl_sink_states (id INTEGER PRIMARY KEY, key VARCHAR UNIQUE, value VARCHAR, objtype VARCHAR)"); + query = osync_strdup("CREATE TABLE tbl_sink_states (objtype VARCHAR, key VARCHAR, value VARCHAR, PRIMARY KEY (objtype, key) )"); if (!osync_db_query(sinkStateDB->db, query, error)) { osync_trace(TRACE_EXIT_ERROR, "%s: %s", __func__, osync_error_print(error)); |