-/* $Id: zinfo.c,v 1.73 2006-11-22 11:13:17 adam Exp $
- Copyright (C) 1995-2006
+/* $Id: zinfo.c,v 1.78 2007-04-16 08:44:32 adam Exp $
+ Copyright (C) 1995-2007
Index Data ApS
This file is part of the Zebra server.
if (!ao)
{
ao = (zebAccessObject) nmem_malloc(zei->nmem, sizeof(*ao));
- ao->handle = NULL;
+ ao->handle = 0;
ao->sysno = 1;
ao->oid = oid;
ao->next = *op;
{
*accessInfo = (zebAccessInfo)
nmem_malloc(zei->nmem, sizeof(**accessInfo));
- (*accessInfo)->attributeSetIds = NULL;
- (*accessInfo)->schemas = NULL;
+ (*accessInfo)->attributeSetIds = 0;
+ (*accessInfo)->schemas = 0;
}
else
{
zei->updateFunc = updateFunc;
zei->dirty = 0;
zei->ordinalDatabase = 1;
- zei->curDatabaseInfo = NULL;
+ zei->curDatabaseInfo = 0;
zei->records = records;
zei->nmem = nmem;
zei->dh = dh;
data1_get_absyn (zei->dh, "explain", DATA1_XPATH_INDEXING_DISABLE);
- zei->attsets = NULL;
+ zei->attsets = 0;
zei->res = res;
zei->categoryList = (struct zebraCategoryListInfo *)
nmem_malloc(zei->nmem, sizeof(*zei->categoryList));
zei->categoryList->sysno = 0;
zei->categoryList->dirty = 0;
- zei->categoryList->data1_categoryList = NULL;
+ zei->categoryList->data1_categoryList = 0;
if ( atoi(res_get_def(res, "notimestamps", "0") )== 0)
{
#endif
node_tgtinfo = data1_search_tag(zei->dh, zei->data1_target,
"/targetInfo");
+ if (!node_tgtinfo)
+ {
+ yaz_log(YLOG_FATAL, "Node node_tgtinfo missing");
+ nmem_destroy(zei->nmem);
+ return 0;
+ }
zebraExplain_mergeAccessInfo(zei, node_tgtinfo,
&zei->accessInfo);
node_zebra = data1_search_tag(zei->dh, node_tgtinfo->child,
"zebraInfo");
+ if (!node_zebra)
+ {
+ yaz_log(YLOG_FATAL, "Node node_zebra missing");
+ nmem_destroy(zei->nmem);
+ return 0;
+ }
np = 0;
if (node_zebra)
{
}
for(; np; np = np->next)
{
- data1_node *node_name = NULL;
- data1_node *node_id = NULL;
- data1_node *node_aid = NULL;
+ data1_node *node_name = 0;
+ data1_node *node_id = 0;
+ data1_node *node_aid = 0;
data1_node *np2;
if (np->which != DATA1N_tag || strcmp(np->u.tag.tag, "database"))
continue;
nmem_malloc(zei->nmem, sizeof(**zdip));
(*zdip)->readFlag = 1;
(*zdip)->dirty = 0;
- (*zdip)->data1_database = NULL;
+ (*zdip)->data1_database = 0;
(*zdip)->recordCount = 0;
(*zdip)->recordBytes = 0;
zebraExplain_mergeAccessInfo (zei, 0, &(*zdip)->accessInfo);
node_aid->u.data.len);
(*zdip)->attributeDetails->readFlag = 1;
(*zdip)->attributeDetails->dirty = 0;
- (*zdip)->attributeDetails->SUInfo = NULL;
+ (*zdip)->attributeDetails->SUInfo = 0;
zdip = &(*zdip)->next;
}
assert (np && np->which == DATA1N_data);
zei->runNumber = atoi_zn(np->u.data.data, np->u.data.len);
yaz_log(YLOG_DEBUG, "read runnumber=" ZINT_FORMAT, zei->runNumber);
- *zdip = NULL;
+ *zdip = 0;
}
rec_free(&trec);
}
{
data1_node *node_tgtinfo;
- *zdip = NULL;
+ *zdip = 0;
if (writeFlag)
{
char *sgml_buf;
"attrlist");
for (np = node_list->child; np; np = np->next)
{
- data1_node *node_str = NULL;
- data1_node *node_ordinal = NULL;
- data1_node *node_type = NULL;
- data1_node *node_cat = NULL;
- data1_node *node_doc_occurrences = NULL;
- data1_node *node_term_occurrences = NULL;
+ data1_node *node_str = 0;
+ data1_node *node_ordinal = 0;
+ data1_node *node_type = 0;
+ data1_node *node_cat = 0;
+ data1_node *node_doc_occurrences = 0;
+ data1_node *node_term_occurrences = 0;
data1_node *np2;
if (np->which != DATA1N_tag || strcmp(np->u.tag.tag, "attr"))
node_ordinal->u.data.len);
zsuip = &(*zsuip)->next;
}
- *zsuip = NULL;
+ *zsuip = 0;
zad->readFlag = 0;
rec_free(&rec);
}
zdi->attributeDetails->readFlag = 0;
zdi->attributeDetails->sysno = 0;
zdi->attributeDetails->dirty = 1;
- zdi->attributeDetails->SUInfo = NULL;
+ zdi->attributeDetails->SUInfo = 0;
zdi->attributeDetails->data1_tree =
data1_read_sgml (zei->dh, zei->nmem,
"<explain><attributeDetails>AttributeDetails\n"
zebraExplain_initCommonInfo (zei, node_adinfo);
+ data1_mk_tag_data_text(zei->dh, node_adinfo, "name", database, zei->nmem);
+
return 0;
}
"TargetInfo",
"DatabaseInfo",
"AttributeDetails",
- NULL
+ 0
};
assert (zcl);
zad->dirty = 0;
#if ZINFO_DEBUG
yaz_log(YLOG_LOG, "zebraExplain_writeAttributeDetails");
+ data1_pr_tree(zei->dh, zad->data1_tree, stderr);
#endif
drec = createRecord (zei->records, &zad->sysno);
"/attributeDetails");
zebraExplain_updateCommonInfo (zei, node_adinfo);
- data1_mk_tag_data_text (zei->dh, node_adinfo, "name",
- databaseName, zei->nmem);
+ /* zebra info (private) .. no children yet.. so se don't index zebraInfo */
+ node_zebra = data1_mk_tag_uni (zei->dh, zei->nmem,
+ "zebraInfo", node_adinfo);
/* extract *searchable* keys from it. We do this here, because
record count, etc. is affected */
if (key_flush)
(*zei->updateFunc)(zei->updateHandle, drec, zad->data1_tree);
- /* zebra info (private) */
- node_zebra = data1_mk_tag_uni (zei->dh, zei->nmem,
- "zebraInfo", node_adinfo);
node_list = data1_mk_tag_uni (zei->dh, zei->nmem,
"attrlist", node_zebra);
for (zsui = zad->SUInfo; zsui; zsui = zsui->next)
zebraExplain_updateCommonInfo (zei, node_dbinfo);
zebraExplain_updateAccessInfo (zei, node_dbinfo, zdi->accessInfo);
- /* extract *searchable* keys from it. We do this here, because
- record count, etc. is affected */
- if (key_flush)
- (*zei->updateFunc)(zei->updateHandle, drec, zdi->data1_database);
/* record count */
node_count = data1_mk_tag_uni (zei->dh, zei->nmem,
"recordCount", node_dbinfo);
/* zebra info (private) */
node_zebra = data1_mk_tag_uni (zei->dh, zei->nmem,
"zebraInfo", node_dbinfo);
+
+ /* extract *searchable* keys from it. We do this here, because
+ record count, etc. is affected */
+ if (key_flush)
+ (*zei->updateFunc)(zei->updateHandle, drec, zdi->data1_database);
data1_mk_tag_data_zint (zei->dh, node_zebra,
"recordBytes", zdi->recordBytes, zei->nmem);
Record drec;
data1_node *node_root, *node_attinfo, *node_attributes, *node_atttype;
data1_node *node_values;
- struct oident *entp;
- struct data1_attset *attset = NULL;
-
- if ((entp = oid_getentbyoid (o->oid)))
- attset = data1_attset_search_id (zei->dh, entp->value);
+ struct data1_attset *attset = 0;
+
+ if (o->oid)
+ attset = data1_attset_search_id (zei->dh, o->oid);
#if ZINFO_DEBUG
yaz_log(YLOG_LOG, "zebraExplain_writeAttributeSet %s",
zebraExplain_updateCommonInfo (zei, node_tgtinfo);
zebraExplain_updateAccessInfo (zei, node_tgtinfo, zei->accessInfo);
+ node_zebra = data1_mk_tag_uni (zei->dh, zei->nmem,
+ "zebraInfo", node_tgtinfo);
/* convert to "SGML" and write it */
if (key_flush)
(*zei->updateFunc)(zei->updateHandle, trec, zei->data1_target);
- node_zebra = data1_mk_tag_uni (zei->dh, zei->nmem,
- "zebraInfo", node_tgtinfo);
data1_mk_tag_data_text (zei->dh, node_zebra, "version",
ZEBRAVER, zei->nmem);
node_list = data1_mk_tag (zei->dh, zei->nmem,
if (!ao)
{
ao = (zebAccessObject) nmem_malloc (zei->nmem, sizeof(*ao));
- ao->handle = NULL;
+ ao->handle = 0;
ao->sysno = 0;
ao->oid = odr_oiddup_nmem (zei->nmem, oid);
ao->next = *op;
return ao;
}
-void zebraExplain_addAttributeSet (ZebraExplainInfo zei, int set)
-{
- oident oe;
- int oid[OID_SIZE];
-
- oe.proto = PROTO_Z3950;
- oe.oclass = CLASS_ATTSET;
- oe.value = (enum oid_value) set;
-
- if (oid_ent_to_oid (&oe, oid))
- {
- zebraExplain_announceOid (zei, &zei->accessInfo->attributeSetIds, oid);
- zebraExplain_announceOid (zei, &zei->curDatabaseInfo->
- accessInfo->attributeSetIds, oid);
- }
-}
-
struct zebSUInfoB *zebraExplain_add_sui_info(ZebraExplainInfo zei,
zinfo_index_category_t cat,
int index_type)