- record = record_create(se->nmem,
- service->num_metadata, service->num_sortkeys, cl,
- record_no);
-
- cluster = reclist_insert(se->reclist,
- service,
- record, (char *) mergekey_norm,
- &se->total_merged);
+ session_enter(se);
+ ret = ingest_to_cluster(cl, xdoc, root, record_no, mergekey_norm);
+ session_leave(se);
+
+ xmlFreeDoc(xdoc);
+
+ return ret;
+}
+
+static int ingest_to_cluster(struct client *cl,
+ xmlDoc *xdoc,
+ xmlNode *root,
+ int record_no,
+ const char *mergekey_norm)
+{
+ xmlNode *n;
+ xmlChar *type = 0;
+ xmlChar *value = 0;
+ struct session_database *sdb = client_get_database(cl);
+ struct session *se = client_get_session(cl);
+ struct conf_service *service = se->service;
+ struct record *record = record_create(se->nmem,
+ service->num_metadata,
+ service->num_sortkeys, cl,
+ record_no);
+ struct record_cluster *cluster = reclist_insert(se->reclist,
+ service,
+ record,
+ mergekey_norm,
+ &se->total_merged);