-/* $Id: zrpn.c,v 1.135 2004-01-15 13:31:31 adam Exp $
+/* $Id: zrpn.c,v 1.139 2004-06-02 12:29:03 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", 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
{
}
if (!prefix_len)
{
+#if 1
+ bases_ok++;
+#else
char val_str[32];
sprintf (val_str, "%d", use_value);
errCode = 114;
errString = nmem_strdup (stream, val_str);
+#endif
continue;
}
bases_ok++; /* this has OK attributes */
bool_parms.rset_r = rset[i];
bool_parms.key_size = sizeof(struct it_key);
bool_parms.cmp = key_compare_it;
+ bool_parms.log_item = key_logdump_txt;
result = rset_create (rset_kind_or, &bool_parms);
}
return result;
bool_parms.rset_r = rset[i];
bool_parms.key_size = sizeof(struct it_key);
bool_parms.cmp = key_compare_it;
+ bool_parms.log_item = key_logdump_txt;
result = rset_create (rset_kind_and, &bool_parms);
}
return result;
}
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);
bool_parms.rset_r = rset[i];
bool_parms.key_size = sizeof(struct it_key);
bool_parms.cmp = key_compare_it;
+ bool_parms.log_item = key_logdump_txt;
result = rset_create (rset_kind_and, &bool_parms);
}
return result;
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,
}
bool_parms.key_size = sizeof(struct it_key);
bool_parms.cmp = key_compare_it;
+ bool_parms.log_item = key_logdump_txt;
switch (zop->which)
{
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);
bool_parms.key_size = sizeof(struct it_key);
bool_parms.cmp = key_compare_it;
- bool_parms.rset_l = rset;
+ bool_parms.log_item = key_logdump_txt;
+ bool_parms.rset_l = rset;
bool_parms.rset_r = rset2;
rset = rset_create (rset_kind_or, &bool_parms);
bool_parms.key_size = sizeof(struct it_key);
bool_parms.cmp = key_compare_it;
- bool_parms.rset_l = rset;
+ bool_parms.log_item = key_logdump_txt;
+ bool_parms.rset_l = rset;
bool_parms.rset_r = rset_dup(limit_set);
rset = rset_create (rset_kind_and, &bool_parms);
bool_parms.key_size = sizeof(struct it_key);
bool_parms.cmp = key_compare_it;
- bool_parms.rset_l = rset;
+ bool_parms.log_item = key_logdump_txt;
+ bool_parms.rset_l = rset;
bool_parms.rset_r = rset2;
rset = rset_create (rset_kind_or, &bool_parms);
bool_parms.key_size = sizeof(struct it_key);
bool_parms.cmp = key_compare_it;
+ bool_parms.log_item = key_logdump_txt;
bool_parms.rset_l = rset;
bool_parms.rset_r = rset_dup(limit_set);