rem: TRACE_LOG("storing into database\n");
add: DEBUG_LOG("storing into database\n");
context: static int virtual_subscription_db_add(virtual_subscription_t *vs, rl_subscription_t *s){	db_key_t cols[20];	db_val_t vals[20];	int n = -1;	int i, cnt;	vs_display_name_t *dn;	TRACE_LOG("storing into database\n");		if (rls_dbf.use_table(rls_db, vs_table) < 0) {		LOG(L_ERR, "vsub_db_add: Error in use_table\n");		return -1;	}		cols[++n] = "uri";	string_val(vals[n], vs->uri);		cols[++n] = "id";	string_val_ex(vals[n], vs->dbid, strlen(vs->dbid));		cols[++n] = "rls_id";	string_val_ex(vals[n], s->dbid, strlen(s->dbid));		/* insert new record into database */	if (rls_dbf.insert(rls_db, cols, vals, n + 1) < 0) {		LOG(L_ERR, "vsub_db_add: Error while inserting virtual subscription\n");		return -1;	}	/* store display names */	cnt = vector_size(&vs->display_names);	for (i = 0; i < cnt; i++) {		if (rls_dbf.use_table(rls_db, vs_names_table) < 0) {			LOG(L_ERR, "vsub_db_add (names): Error in use_table\n");			return -1;		}		dn = vector_get_ptr(&vs->display_names, i);		if (!dn) continue;		n = -1;				cols[++n] = "id";		string_val_ex(vals[n], vs->dbid, strlen(vs->dbid));				cols[++n] = "name";		string_val(vals[n], dn->name);				cols[++n] = "lang";		string_val(vals[n], dn->lang);			if (rls_dbf.insert(rls_db, cols, vals, n + 1) < 0) {			LOG(L_ERR, "vsub_db_add: Error while inserting name\n");			return -1;		}	}		return 0;}