-/* $Id: rpnsearch.c,v 1.9 2007-03-06 12:21:04 adam Exp $
+/* $Id: rpnsearch.c,v 1.11 2007-04-16 08:44:32 adam Exp $
Copyright (C) 1995-2007
Index Data ApS
*/
static int string_relation(ZebraHandle zh, Z_AttributesPlusTerm *zapt,
const char **term_sub, char *term_dict,
- oid_value attributeSet,
+ const int *attributeSet,
int reg_type, int space_split, char *term_dst,
int *error_code)
{
static ZEBRA_RES string_term(ZebraHandle zh, Z_AttributesPlusTerm *zapt,
const char **term_sub,
- oid_value attributeSet, NMEM stream,
+ const int *attributeSet, NMEM stream,
struct grep_info *grep_info,
int reg_type, int complete_flag,
int num_bases, char **basenames,
static ZEBRA_RES term_trunc(ZebraHandle zh,
Z_AttributesPlusTerm *zapt,
const char **term_sub,
- oid_value attributeSet, NMEM stream,
+ const int *attributeSet, NMEM stream,
struct grep_info *grep_info,
int reg_type, int complete_flag,
int num_bases, char **basenames,
static ZEBRA_RES string_term(ZebraHandle zh, Z_AttributesPlusTerm *zapt,
const char **term_sub,
- oid_value attributeSet, NMEM stream,
+ const int *attributeSet, NMEM stream,
struct grep_info *grep_info,
int reg_type, int complete_flag,
int num_bases, char **basenames,
static ZEBRA_RES term_list_trunc(ZebraHandle zh,
Z_AttributesPlusTerm *zapt,
const char *termz,
- oid_value attributeSet,
+ const int *attributeSet,
NMEM stream,
int reg_type, int complete_flag,
const char *rank_type,
static ZEBRA_RES rpn_search_APT_position(ZebraHandle zh,
Z_AttributesPlusTerm *zapt,
- oid_value attributeSet,
+ const int *attributeSet,
int reg_type,
int num_bases, char **basenames,
NMEM rset_nmem,
static ZEBRA_RES rpn_search_APT_phrase(ZebraHandle zh,
Z_AttributesPlusTerm *zapt,
const char *termz_org,
- oid_value attributeSet,
+ const int *attributeSet,
NMEM stream,
int reg_type, int complete_flag,
const char *rank_type,
static ZEBRA_RES rpn_search_APT_or_list(ZebraHandle zh,
Z_AttributesPlusTerm *zapt,
const char *termz_org,
- oid_value attributeSet,
+ const int *attributeSet,
NMEM stream,
int reg_type, int complete_flag,
const char *rank_type,
static ZEBRA_RES rpn_search_APT_and_list(ZebraHandle zh,
Z_AttributesPlusTerm *zapt,
const char *termz_org,
- oid_value attributeSet,
+ const int *attributeSet,
NMEM stream,
int reg_type, int complete_flag,
const char *rank_type,
static int numeric_relation(ZebraHandle zh, Z_AttributesPlusTerm *zapt,
const char **term_sub,
char *term_dict,
- oid_value attributeSet,
+ const int *attributeSet,
struct grep_info *grep_info,
int *max_pos,
int reg_type,
static ZEBRA_RES numeric_term(ZebraHandle zh, Z_AttributesPlusTerm *zapt,
const char **term_sub,
- oid_value attributeSet, NMEM stream,
+ const int *attributeSet, NMEM stream,
struct grep_info *grep_info,
int reg_type, int complete_flag,
int num_bases, char **basenames,
static ZEBRA_RES rpn_search_APT_numeric(ZebraHandle zh,
Z_AttributesPlusTerm *zapt,
const char *termz,
- oid_value attributeSet,
+ const int *attributeSet,
NMEM stream,
int reg_type, int complete_flag,
const char *rank_type,
static ZEBRA_RES rpn_search_APT_local(ZebraHandle zh,
Z_AttributesPlusTerm *zapt,
const char *termz,
- oid_value attributeSet,
+ const int *attributeSet,
NMEM stream,
const char *rank_type, NMEM rset_nmem,
RSET *rset,
}
static ZEBRA_RES rpn_sort_spec(ZebraHandle zh, Z_AttributesPlusTerm *zapt,
- oid_value attributeSet, NMEM stream,
+ const int *attributeSet, NMEM stream,
Z_SortKeySpecList *sort_sequence,
const char *rank_type,
NMEM rset_nmem,
AttrType sort_relation_type;
Z_SortKeySpec *sks;
Z_SortKey *sk;
- int oid[OID_SIZE];
- oident oe;
char termz[20];
attr_init_APT(&sort_relation_type, zapt, 7);
i = 0;
sprintf(termz, "%d", i);
- oe.proto = PROTO_Z3950;
- oe.oclass = CLASS_ATTSET;
- oe.value = attributeSet;
- if (!oid_ent_to_oid (&oe, oid))
- return ZEBRA_FAIL;
-
sks = (Z_SortKeySpec *) nmem_malloc(stream, sizeof(*sks));
sks->sortElement = (Z_SortElement *)
nmem_malloc(stream, sizeof(*sks->sortElement));
sk->u.sortAttributes = (Z_SortAttributes *)
nmem_malloc(stream, sizeof(*sk->u.sortAttributes));
- sk->u.sortAttributes->id = oid;
+ sk->u.sortAttributes->id = odr_oiddup_nmem(stream, attributeSet);
sk->u.sortAttributes->list = zapt->attributes;
sks->sortRelation = (int *)
static int rpn_check_xpath(ZebraHandle zh, Z_AttributesPlusTerm *zapt,
- oid_value attributeSet,
+ const int *attributeSet,
struct xpath_location_step *xpath, int max,
NMEM mem)
{
- oid_value curAttributeSet = attributeSet;
+ const int *curAttributeSet = attributeSet;
AttrType use;
const char *use_string = 0;
cp++;
}
}
- wrbuf_puts(wbuf, "");
rset_attr = xpath_trunc(
- zh, stream, '0', wrbuf_buf(wbuf), ZEBRA_XPATH_ATTR_NAME,
+ zh, stream, '0', wrbuf_cstr(wbuf), ZEBRA_XPATH_ATTR_NAME,
rset_nmem, kc);
- wrbuf_free(wbuf, 1);
+ wrbuf_destroy(wbuf);
}
else
{
if (!first_path)
{
- wrbuf_free(xpath_rev, 1);
+ wrbuf_destroy(xpath_rev);
continue;
}
}
- yaz_log(log_level_rpn, "xpath_rev (%d) = %.*s", level,
- wrbuf_len(xpath_rev), wrbuf_buf(xpath_rev));
+ yaz_log(log_level_rpn, "xpath_rev (%d) = %s", level,
+ wrbuf_cstr(xpath_rev));
if (wrbuf_len(xpath_rev))
{
rset_start_tag = xpath_trunc(zh, stream, '0',
- wrbuf_buf(xpath_rev),
+ wrbuf_cstr(xpath_rev),
ZEBRA_XPATH_ELM_BEGIN,
rset_nmem, kc);
if (always_matches)
else
{
rset_end_tag = xpath_trunc(zh, stream, '0',
- wrbuf_buf(xpath_rev),
+ wrbuf_cstr(xpath_rev),
ZEBRA_XPATH_ELM_END,
rset_nmem, kc);
rset_end_tag, rset_attr);
}
}
- wrbuf_free(xpath_rev, 1);
+ wrbuf_destroy(xpath_rev);
first_path = 0;
}
}
#define MAX_XPATH_STEPS 10
static ZEBRA_RES rpn_search_APT(ZebraHandle zh, Z_AttributesPlusTerm *zapt,
- oid_value attributeSet, NMEM stream,
+ const int *attributeSet, NMEM stream,
Z_SortKeySpecList *sort_sequence,
int num_bases, char **basenames,
NMEM rset_nmem,
}
static ZEBRA_RES rpn_search_structure(ZebraHandle zh, Z_RPNStructure *zs,
- oid_value attributeSet,
+ const int *attributeSet,
NMEM stream, NMEM rset_nmem,
Z_SortKeySpecList *sort_sequence,
int num_bases, char **basenames,
}
ZEBRA_RES rpn_search_top(ZebraHandle zh, Z_RPNStructure *zs,
- oid_value attributeSet,
+ const int *attributeSet,
NMEM stream, NMEM rset_nmem,
Z_SortKeySpecList *sort_sequence,
int num_bases, char **basenames,
}
ZEBRA_RES rpn_search_structure(ZebraHandle zh, Z_RPNStructure *zs,
- oid_value attributeSet,
+ const int *attributeSet,
NMEM stream, NMEM rset_nmem,
Z_SortKeySpecList *sort_sequence,
int num_bases, char **basenames,