-/* $Id: zrpn.c,v 1.136 2004-01-22 11:27:21 adam Exp $
+/* $Id: zrpn.c,v 1.138 2004-05-26 13:52:26 adam Exp $
Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003,2004
Index Data Aps
zh->errString = basenames[base_no];
return -1;
}
- if (use_value == -2) /* string attribute (assume IDXPATH/any) */
+ if (xpath_use > 0 && use_value == -2)
{
use_value = xpath_use;
attp.local_attributes = &id_xpath_attr;
}
else
{
- if ((r=att_getentbyatt (zh, &attp, curAttributeSet, use_value)))
+ if ((r=att_getentbyatt (zh, &attp, curAttributeSet, use_value,
+ use_string)))
{
logf (LOG_DEBUG, "att_getentbyatt fail. set=%d use=%d r=%d",
curAttributeSet, use_value, r);
if (r == -1)
{
/* set was found, but value wasn't defined */
- char val_str[32];
- sprintf (val_str, "%d 1", use_value);
errCode = 114;
- errString = nmem_strdup (stream, val_str);
+ if (use_string)
+ errString = nmem_strdup(stream, use_string);
+ else
+ {
+ char val_str[32];
+ sprintf (val_str, "%d", use_value);
+ errString = nmem_strdup (stream, val_str);
+ }
}
else
{
bases_ok++;
#else
char val_str[32];
- sprintf (val_str, "%d 2", use_value);
+ sprintf (val_str, "%d", use_value);
errCode = 114;
errString = nmem_strdup (stream, val_str);
#endif
}
else
{
- if ((r=att_getentbyatt (zh, &attp, curAttributeSet, use_value)))
+ if ((r=att_getentbyatt (zh, &attp, curAttributeSet, use_value,
+ use_string)))
{
logf (LOG_DEBUG, "att_getentbyatt fail. set=%d use=%d r=%d",
curAttributeSet, use_value, r);
sks->sortRelation = (int *)
nmem_malloc (stream, sizeof(*sks->sortRelation));
if (sort_relation_value == 1)
- *sks->sortRelation = Z_SortRelation_ascending;
+ *sks->sortRelation = Z_SortKeySpec_ascending;
else if (sort_relation_value == 2)
- *sks->sortRelation = Z_SortRelation_descending;
+ *sks->sortRelation = Z_SortKeySpec_descending;
else
- *sks->sortRelation = Z_SortRelation_ascending;
+ *sks->sortRelation = Z_SortKeySpec_ascending;
sks->caseSensitivity = (int *)
nmem_malloc (stream, sizeof(*sks->caseSensitivity));
return rset_create (rset_kind_null, &parms);
}
-/* pop - moved to xpath.c */
-#if 0
-
-struct xpath_predicate {
- int which;
- union {
-#define XPATH_PREDICATE_RELATION 1
- struct {
- char *name;
- char *op;
- char *value;
- } relation;
-#define XPATH_PREDICATE_BOOLEAN 2
- struct {
- const char *op;
- struct xpath_predicate *left;
- struct xpath_predicate *right;
- } boolean;
- } u;
-};
-
-struct xpath_location_step {
- char *part;
- struct xpath_predicate *predicate;
-};
-
-#endif
static int parse_xpath(ZebraHandle zh, Z_AttributesPlusTerm *zapt,
oid_value attributeSet,
char termz[IT_MAX_WORD+20];
AttrType use;
int use_value;
+ const char *use_string = 0;
struct scan_info *scan_info_array;
ZebraScanEntry *glist;
int ords[32], ord_no = 0;
pos, num, attributeset);
attr_init (&use, zapt, 1);
- use_value = attr_find (&use, &attributeset);
+ use_value = attr_find_ex (&use, &attributeset, &use_string);
if (zebra_maps_attr (zh->reg->zebra_maps, zapt, ®_id, &search_type,
rank_type, &complete_flag, &sort_flag))
attent attp;
data1_local_attribute *local_attr;
- if ((r=att_getentbyatt (zh, &attp, attributeset, use_value)))
+ if ((r=att_getentbyatt (zh, &attp, attributeset, use_value,
+ use_string)))
{
logf (LOG_DEBUG, "att_getentbyatt fail. set=%d use=%d",
attributeset, use_value);