From: Adam Dickmeiss Date: Mon, 15 Nov 2004 21:53:45 +0000 (+0000) Subject: Fix bug #171. Change logging a bit X-Git-Tag: ZEBRA.1.3.20~28 X-Git-Url: http://sru.miketaylor.org.uk/cgi-bin?a=commitdiff_plain;h=9665071018207450aaf5013a919000762e48758e;p=idzebra-moved-to-github.git Fix bug #171. Change logging a bit --- diff --git a/index/zrpn.c b/index/zrpn.c index 7f1411f..122f50e 100644 --- a/index/zrpn.c +++ b/index/zrpn.c @@ -1,4 +1,4 @@ -/* $Id: zrpn.c,v 1.141.2.1 2004-09-16 14:07:50 adam Exp $ +/* $Id: zrpn.c,v 1.141.2.2 2004-11-15 21:53:45 adam Exp $ Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003,2004 Index Data Aps @@ -53,18 +53,18 @@ typedef struct { } AttrType; -static const char **rpn_char_map_handler (void *vp, const char **from, int len) +static const char **rpn_char_map_handler(void *vp, const char **from, int len) { struct rpn_char_map_info *p = (struct rpn_char_map_info *) vp; - const char **out = zebra_maps_input (p->zm, p->reg_type, from, len, 0); + const char **out = zebra_maps_input(p->zm, p->reg_type, from, len, 0); #if 0 if (out && *out) { const char *outp = *out; - yaz_log (LOG_LOG, "---"); + yaz_log(LOG_LOG, "---"); while (*outp) { - yaz_log (LOG_LOG, "%02X", *outp); + yaz_log(LOG_LOG, "%02X", *outp); outp++; } } @@ -72,15 +72,15 @@ static const char **rpn_char_map_handler (void *vp, const char **from, int len) return out; } -static void rpn_char_map_prepare (struct zebra_register *reg, int reg_type, +static void rpn_char_map_prepare(struct zebra_register *reg, int reg_type, struct rpn_char_map_info *map_info) { map_info->zm = reg->zebra_maps; map_info->reg_type = reg_type; - dict_grep_cmap (reg->dict, map_info, rpn_char_map_handler); + dict_grep_cmap(reg->dict, map_info, rpn_char_map_handler); } -static int attr_find_ex (AttrType *src, oid_value *attributeSetP, +static int attr_find_ex(AttrType *src, oid_value *attributeSetP, const char **string_value) { int num_attributes; @@ -101,7 +101,7 @@ static int attr_find_ex (AttrType *src, oid_value *attributeSetP, { oident *attrset; - attrset = oid_getentbyoid (element->attributeSet); + attrset = oid_getentbyoid(element->attributeSet); *attributeSetP = attrset->value; } return *element->value.numeric; @@ -113,7 +113,7 @@ static int attr_find_ex (AttrType *src, oid_value *attributeSetP, { oident *attrset; - attrset = oid_getentbyoid (element->attributeSet); + attrset = oid_getentbyoid(element->attributeSet); *attributeSetP = attrset->value; } if (element->value.complex->list[src->minor]->which == @@ -136,7 +136,7 @@ static int attr_find_ex (AttrType *src, oid_value *attributeSetP, else break; default: - assert (0); + assert(0); } } ++(src->major); @@ -144,12 +144,12 @@ static int attr_find_ex (AttrType *src, oid_value *attributeSetP, return -1; } -static int attr_find (AttrType *src, oid_value *attributeSetP) +static int attr_find(AttrType *src, oid_value *attributeSetP) { - return attr_find_ex (src, attributeSetP, 0); + return attr_find_ex(src, attributeSetP, 0); } -static void attr_init (AttrType *src, Z_AttributesPlusTerm *zapt, +static void attr_init(AttrType *src, Z_AttributesPlusTerm *zapt, int type) { src->zapt = zapt; @@ -172,13 +172,13 @@ struct grep_info { ZebraSet termset; }; -static void term_untrans (ZebraHandle zh, int reg_type, +static void term_untrans(ZebraHandle zh, int reg_type, char *dst, const char *src) { int len = 0; while (*src) { - const char *cp = zebra_maps_output (zh->reg->zebra_maps, + const char *cp = zebra_maps_output(zh->reg->zebra_maps, reg_type, &src); if (!cp && len < IT_MAX_WORD-1) dst[len++] = *src++; @@ -189,7 +189,7 @@ static void term_untrans (ZebraHandle zh, int reg_type, dst[len] = '\0'; } -static void add_isam_p (const char *name, const char *info, +static void add_isam_p(const char *name, const char *info, struct grep_info *p) { if (p->isam_p_indx == p->isam_p_size) @@ -199,30 +199,30 @@ static void add_isam_p (const char *name, const char *info, int *new_term_no; #endif p->isam_p_size = 2*p->isam_p_size + 100; - new_isam_p_buf = (ISAMS_P *) xmalloc (sizeof(*new_isam_p_buf) * + new_isam_p_buf = (ISAMS_P *) xmalloc(sizeof(*new_isam_p_buf) * p->isam_p_size); if (p->isam_p_buf) { - memcpy (new_isam_p_buf, p->isam_p_buf, + memcpy(new_isam_p_buf, p->isam_p_buf, p->isam_p_indx * sizeof(*p->isam_p_buf)); - xfree (p->isam_p_buf); + xfree(p->isam_p_buf); } p->isam_p_buf = new_isam_p_buf; #ifdef TERM_COUNT - new_term_no = (int *) xmalloc (sizeof(*new_term_no) * + new_term_no = (int *) xmalloc(sizeof(*new_term_no) * p->isam_p_size); if (p->term_no) { - memcpy (new_term_no, p->isam_p_buf, + memcpy(new_term_no, p->isam_p_buf, p->isam_p_indx * sizeof(*p->term_no)); - xfree (p->term_no); + xfree(p->term_no); } p->term_no = new_term_no; #endif } - assert (*info == sizeof(*p->isam_p_buf)); - memcpy (p->isam_p_buf + p->isam_p_indx, info+1, sizeof(*p->isam_p_buf)); + assert(*info == sizeof(*p->isam_p_buf)); + memcpy(p->isam_p_buf + p->isam_p_indx, info+1, sizeof(*p->isam_p_buf)); #if 1 if (p->termset) @@ -231,28 +231,28 @@ static void add_isam_p (const char *name, const char *info, int set, use; char term_tmp[IT_MAX_WORD]; int su_code = 0; - int len = key_SU_decode (&su_code, name); + int len = key_SU_decode(&su_code, name); - term_untrans (p->zh, p->reg_type, term_tmp, name+len+1); - logf (LOG_LOG, "grep: %d %c %s", su_code, name[len], term_tmp); - zebraExplain_lookup_ord (p->zh->reg->zei, + term_untrans(p->zh, p->reg_type, term_tmp, name+len+1); + yaz_log(LOG_LOG, "grep: %d %c %s", su_code, name[len], term_tmp); + zebraExplain_lookup_ord(p->zh->reg->zei, su_code, &db, &set, &use); - logf (LOG_LOG, "grep: set=%d use=%d db=%s", set, use, db); + yaz_log(LOG_LOG, "grep: set=%d use=%d db=%s", set, use, db); - resultSetAddTerm (p->zh, p->termset, name[len], db, + resultSetAddTerm(p->zh, p->termset, name[len], db, set, use, term_tmp); } #endif (p->isam_p_indx)++; } -static int grep_handle (char *name, const char *info, void *p) +static int grep_handle(char *name, const char *info, void *p) { - add_isam_p (name, info, (struct grep_info *) p); + add_isam_p(name, info, (struct grep_info *) p); return 0; } -static int term_pre (ZebraMaps zebra_maps, int reg_type, const char **src, +static int term_pre(ZebraMaps zebra_maps, int reg_type, const char **src, const char *ct1, const char *ct2, int first) { const char *s1, *s0 = *src; @@ -261,12 +261,12 @@ static int term_pre (ZebraMaps zebra_maps, int reg_type, const char **src, /* skip white space */ while (*s0) { - if (ct1 && strchr (ct1, *s0)) + if (ct1 && strchr(ct1, *s0)) break; - if (ct2 && strchr (ct2, *s0)) + if (ct2 && strchr(ct2, *s0)) break; s1 = s0; - map = zebra_maps_input (zebra_maps, reg_type, &s1, strlen(s1), first); + map = zebra_maps_input(zebra_maps, reg_type, &s1, strlen(s1), first); if (**map != *CHR_SPACE) break; s0 = s1; @@ -277,8 +277,8 @@ static int term_pre (ZebraMaps zebra_maps, int reg_type, const char **src, #define REGEX_CHARS " []()|.*+?!" -/* term_100: handle term, where trunc=none (no operators at all) */ -static int term_100 (ZebraMaps zebra_maps, int reg_type, +/* term_100: handle term, where trunc=none(no operators at all) */ +static int term_100(ZebraMaps zebra_maps, int reg_type, const char **src, char *dst, int space_split, char *dst_term) { @@ -290,13 +290,13 @@ static int term_100 (ZebraMaps zebra_maps, int reg_type, const char *space_start = 0; const char *space_end = 0; - if (!term_pre (zebra_maps, reg_type, src, NULL, NULL, !space_split)) + if (!term_pre(zebra_maps, reg_type, src, NULL, NULL, !space_split)) return 0; s0 = *src; while (*s0) { s1 = s0; - map = zebra_maps_input (zebra_maps, reg_type, &s0, strlen(s0), 0); + map = zebra_maps_input(zebra_maps, reg_type, &s0, strlen(s0), 0); if (space_split) { if (**map == *CHR_SPACE) @@ -314,7 +314,7 @@ static int term_100 (ZebraMaps zebra_maps, int reg_type, { /* reload last space */ while (space_start < space_end) { - if (strchr (REGEX_CHARS, *space_start)) + if (strchr(REGEX_CHARS, *space_start)) dst[i++] = '\\'; dst_term[j++] = *space_start; dst[i++] = *space_start++; @@ -339,7 +339,7 @@ static int term_100 (ZebraMaps zebra_maps, int reg_type, } /* term_101: handle term, where trunc=Process # */ -static int term_101 (ZebraMaps zebra_maps, int reg_type, +static int term_101(ZebraMaps zebra_maps, int reg_type, const char **src, char *dst, int space_split, char *dst_term) { @@ -348,7 +348,7 @@ static int term_101 (ZebraMaps zebra_maps, int reg_type, int i = 0; int j = 0; - if (!term_pre (zebra_maps, reg_type, src, "#", "#", !space_split)) + if (!term_pre(zebra_maps, reg_type, src, "#", "#", !space_split)) return 0; s0 = *src; while (*s0) @@ -362,7 +362,7 @@ static int term_101 (ZebraMaps zebra_maps, int reg_type, else { s1 = s0; - map = zebra_maps_input (zebra_maps, reg_type, &s0, strlen(s0), 0); + map = zebra_maps_input(zebra_maps, reg_type, &s0, strlen(s0), 0); if (space_split && **map == *CHR_SPACE) break; while (s1 < s0) @@ -381,7 +381,7 @@ static int term_101 (ZebraMaps zebra_maps, int reg_type, } /* term_103: handle term, where trunc=re-2 (regular expressions) */ -static int term_103 (ZebraMaps zebra_maps, int reg_type, const char **src, +static int term_103(ZebraMaps zebra_maps, int reg_type, const char **src, char *dst, int *errors, int space_split, char *dst_term) { @@ -390,11 +390,11 @@ static int term_103 (ZebraMaps zebra_maps, int reg_type, const char **src, const char *s0, *s1; const char **map; - if (!term_pre (zebra_maps, reg_type, src, "^\\()[].*+?|", "(", !space_split)) + if (!term_pre(zebra_maps, reg_type, src, "^\\()[].*+?|", "(", !space_split)) return 0; s0 = *src; if (errors && *s0 == '+' && s0[1] && s0[2] == '+' && s0[3] && - isdigit (s0[1])) + isdigit(s0[1])) { *errors = s0[1] - '0'; s0 += 3; @@ -403,7 +403,7 @@ static int term_103 (ZebraMaps zebra_maps, int reg_type, const char **src, } while (*s0) { - if (strchr ("^\\()[].*+?|-", *s0)) + if (strchr("^\\()[].*+?|-", *s0)) { dst_term[j++] = *s0; dst[i++] = *s0++; @@ -411,7 +411,7 @@ static int term_103 (ZebraMaps zebra_maps, int reg_type, const char **src, else { s1 = s0; - map = zebra_maps_input (zebra_maps, reg_type, &s0, strlen(s0), 0); + map = zebra_maps_input(zebra_maps, reg_type, &s0, strlen(s0), 0); if (**map == *CHR_SPACE) break; while (s1 < s0) @@ -433,13 +433,13 @@ static int term_103 (ZebraMaps zebra_maps, int reg_type, const char **src, static int term_102 (ZebraMaps zebra_maps, int reg_type, const char **src, char *dst, int space_split, char *dst_term) { - return term_103 (zebra_maps, reg_type, src, dst, NULL, space_split, + return term_103(zebra_maps, reg_type, src, dst, NULL, space_split, dst_term); } /* term_104: handle term, where trunc=Process # and ! */ -static int term_104 (ZebraMaps zebra_maps, int reg_type, +static int term_104(ZebraMaps zebra_maps, int reg_type, const char **src, char *dst, int space_split, char *dst_term) { @@ -448,7 +448,7 @@ static int term_104 (ZebraMaps zebra_maps, int reg_type, int i = 0; int j = 0; - if (!term_pre (zebra_maps, reg_type, src, "?*#", "?*#", !space_split)) + if (!term_pre(zebra_maps, reg_type, src, "?*#", "?*#", !space_split)) return 0; s0 = *src; while (*s0) @@ -491,7 +491,7 @@ static int term_104 (ZebraMaps zebra_maps, int reg_type, } { s1 = s0; - map = zebra_maps_input (zebra_maps, reg_type, &s0, strlen(s0), 0); + map = zebra_maps_input(zebra_maps, reg_type, &s0, strlen(s0), 0); if (space_split && **map == *CHR_SPACE) break; while (s1 < s0) @@ -519,7 +519,7 @@ static int term_105 (ZebraMaps zebra_maps, int reg_type, int i = 0; int j = 0; - if (!term_pre (zebra_maps, reg_type, src, "*!", "*!", !space_split)) + if (!term_pre(zebra_maps, reg_type, src, "*!", "*!", !space_split)) return 0; s0 = *src; while (*s0) @@ -537,7 +537,7 @@ static int term_105 (ZebraMaps zebra_maps, int reg_type, } { s1 = s0; - map = zebra_maps_input (zebra_maps, reg_type, &s0, strlen(s0), 0); + map = zebra_maps_input(zebra_maps, reg_type, &s0, strlen(s0), 0); if (space_split && **map == *CHR_SPACE) break; while (s1 < s0) @@ -566,38 +566,38 @@ static int term_105 (ZebraMaps zebra_maps, int reg_type, * val: border value (inclusive) * islt: 1 if <=; 0 if >=. */ -static void gen_regular_rel (char *dst, int val, int islt) +static void gen_regular_rel(char *dst, int val, int islt) { int dst_p; int w, d, i; int pos = 0; char numstr[20]; - logf (LOG_DEBUG, "gen_regular_rel. val=%d, islt=%d", val, islt); + yaz_log(LOG_DEBUG, "gen_regular_rel. val=%d, islt=%d", val, islt); if (val >= 0) { if (islt) - strcpy (dst, "(-[0-9]+|("); + strcpy(dst, "(-[0-9]+|("); else - strcpy (dst, "(("); + strcpy(dst, "(("); } else { if (!islt) { - strcpy (dst, "([0-9]+|-("); - dst_p = strlen (dst); + strcpy(dst, "([0-9]+|-("); + dst_p = strlen(dst); islt = 1; } else { - strcpy (dst, "(-("); + strcpy(dst, "(-("); islt = 0; } val = -val; } - dst_p = strlen (dst); - sprintf (numstr, "%d", val); + dst_p = strlen(dst); + sprintf(numstr, "%d", val); for (w = strlen(numstr); --w >= 0; pos++) { d = numstr[w]; @@ -617,7 +617,7 @@ static void gen_regular_rel (char *dst, int val, int islt) } } - strcpy (dst + dst_p, numstr); + strcpy(dst + dst_p, numstr); dst_p = strlen(dst) - pos - 1; if (islt) @@ -660,21 +660,21 @@ static void gen_regular_rel (char *dst, int val, int islt) if (islt) { /* match everything less than 10^(pos-1) */ - strcat (dst, "0*"); - for (i=1; i"); + yaz_log(LOG_DEBUG, "Relation >"); *term_tmp++ = '('; for (i = 0; term_component[i];) @@ -814,7 +814,7 @@ static int string_relation (ZebraHandle zh, Z_AttributesPlusTerm *zapt, if (!term_100 (zh->reg->zebra_maps, reg_type, term_sub, term_component, space_split, term_dst)) return 0; - logf (LOG_DEBUG, "Relation >="); + yaz_log(LOG_DEBUG, "Relation >="); *term_tmp++ = '('; for (i = 0; term_component[i];) @@ -850,7 +850,7 @@ static int string_relation (ZebraHandle zh, Z_AttributesPlusTerm *zapt, break; case 3: default: - logf (LOG_DEBUG, "Relation ="); + yaz_log(LOG_DEBUG, "Relation ="); if (!term_100 (zh->reg->zebra_maps, reg_type, term_sub, term_component, space_split, term_dst)) return 0; @@ -885,14 +885,20 @@ static RSET term_trunc (ZebraHandle zh, Z_AttributesPlusTerm *zapt, term_dst, xpath_use); if (r < 1) return 0; - logf (LOG_DEBUG, "term: %s", term_dst); + yaz_log(LOG_DEBUG, "term: %s", term_dst); return rset_trunc (zh, grep_info->isam_p_buf, grep_info->isam_p_indx, term_dst, strlen(term_dst), rank_type, 1 /* preserve pos */, zapt->term->which); } - +static char *nmem_strdup_i(NMEM nmem, int v) +{ + char val_str[64]; + sprintf (val_str, "%d", v); + return nmem_strdup (nmem, val_str); +} + static int string_term (ZebraHandle zh, Z_AttributesPlusTerm *zapt, const char **term_sub, oid_value attributeSet, NMEM stream, @@ -920,15 +926,17 @@ static int string_term (ZebraHandle zh, Z_AttributesPlusTerm *zapt, rpn_char_map_prepare (zh->reg, reg_type, &rcmi); attr_init (&use, zapt, 1); use_value = attr_find_ex (&use, &curAttributeSet, &use_string); - logf (LOG_DEBUG, "string_term, use value %d", use_value); + yaz_log(LOG_DEBUG, "string_term, use value %d", use_value); attr_init (&truncation, zapt, 5); truncation_value = attr_find (&truncation, NULL); - logf (LOG_DEBUG, "truncation value %d", truncation_value); + yaz_log(LOG_DEBUG, "truncation value %d", truncation_value); if (use_value == -1) /* no attribute - assumy "any" */ use_value = 1016; for (base_no = 0; base_no < num_bases; base_no++) { + int attr_ok = 0; + int regex_range = 0; attent attp; data1_local_attribute id_xpath_attr; data1_local_attribute *local_attr; @@ -962,7 +970,7 @@ static int string_term (ZebraHandle zh, Z_AttributesPlusTerm *zapt, if ((r=att_getentbyatt (zh, &attp, curAttributeSet, use_value, use_string))) { - logf (LOG_DEBUG, "att_getentbyatt fail. set=%d use=%d r=%d", + yaz_log(LOG_DEBUG, "att_getentbyatt fail. set=%d use=%d r=%d", curAttributeSet, use_value, r); if (r == -1) { @@ -970,12 +978,8 @@ static int string_term (ZebraHandle zh, Z_AttributesPlusTerm *zapt, errCode = 114; 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 + errString = nmem_strdup_i(stream, use_value); } else { @@ -1021,19 +1025,21 @@ static int string_term (ZebraHandle zh, Z_AttributesPlusTerm *zapt, #if 1 bases_ok++; #else - char val_str[32]; - sprintf (val_str, "%d", use_value); errCode = 114; - errString = nmem_strdup (stream, val_str); -#endif + errString = nmem_strdup_i(stream, use_value); continue; +#endif } - bases_ok++; /* this has OK attributes */ + else + { + attr_ok = 1; + bases_ok++; /* this has OK attributes */ + } term_dict[prefix_len++] = ')'; term_dict[prefix_len++] = 1; term_dict[prefix_len++] = reg_type; - logf (LOG_DEBUG, "reg_type = %d", term_dict[prefix_len-1]); + yaz_log(LOG_DEBUG, "reg_type = %d", term_dict[prefix_len-1]); term_dict[prefix_len] = '\0'; j = prefix_len; switch (truncation_value) @@ -1044,11 +1050,6 @@ static int string_term (ZebraHandle zh, Z_AttributesPlusTerm *zapt, attributeSet, reg_type, space_split, term_dst)) return 0; - logf (LOG_LOG, "dict_lookup_grep: %s", term_dict+prefix_len); - r = dict_lookup_grep (zh->reg->dict, term_dict, 0, - grep_info, &max_pos, 0, grep_handle); - if (r) - logf (LOG_WARN, "dict_lookup_grep fail %d", r); break; case 1: /* right truncation */ term_dict[j++] = '('; @@ -1056,8 +1057,6 @@ static int string_term (ZebraHandle zh, Z_AttributesPlusTerm *zapt, &termp, term_dict + j, space_split, term_dst)) return 0; strcat (term_dict, ".*)"); - dict_lookup_grep (zh->reg->dict, term_dict, 0, grep_info, - &max_pos, 0, grep_handle); break; case 2: /* keft truncation */ term_dict[j++] = '('; term_dict[j++] = '.'; term_dict[j++] = '*'; @@ -1065,8 +1064,6 @@ static int string_term (ZebraHandle zh, Z_AttributesPlusTerm *zapt, &termp, term_dict + j, space_split, term_dst)) return 0; strcat (term_dict, ")"); - dict_lookup_grep (zh->reg->dict, term_dict, 0, grep_info, - &max_pos, 0, grep_handle); break; case 3: /* left&right truncation */ term_dict[j++] = '('; term_dict[j++] = '.'; term_dict[j++] = '*'; @@ -1074,21 +1071,13 @@ static int string_term (ZebraHandle zh, Z_AttributesPlusTerm *zapt, &termp, term_dict + j, space_split, term_dst)) return 0; strcat (term_dict, ".*)"); - dict_lookup_grep (zh->reg->dict, term_dict, 0, grep_info, - &max_pos, 0, grep_handle); break; - zh->errCode = 120; - return -1; case 101: /* process # in term */ term_dict[j++] = '('; if (!term_101 (zh->reg->zebra_maps, reg_type, &termp, term_dict + j, space_split, term_dst)) return 0; strcat (term_dict, ")"); - r = dict_lookup_grep (zh->reg->dict, term_dict, 0, grep_info, - &max_pos, 0, grep_handle); - if (r) - logf (LOG_WARN, "dict_lookup_grep err, trunc=#: %d", r); break; case 102: /* Regexp-1 */ term_dict[j++] = '('; @@ -1096,12 +1085,6 @@ static int string_term (ZebraHandle zh, Z_AttributesPlusTerm *zapt, &termp, term_dict + j, space_split, term_dst)) return 0; strcat (term_dict, ")"); - logf (LOG_DEBUG, "Regexp-1 tolerance=%d", r); - r = dict_lookup_grep (zh->reg->dict, term_dict, 0, grep_info, - &max_pos, 0, grep_handle); - if (r) - logf (LOG_WARN, "dict_lookup_grep err, trunc=regular: %d", - r); break; case 103: /* Regexp-2 */ r = 1; @@ -1110,12 +1093,7 @@ static int string_term (ZebraHandle zh, Z_AttributesPlusTerm *zapt, &termp, term_dict + j, &r, space_split, term_dst)) return 0; strcat (term_dict, ")"); - logf (LOG_DEBUG, "Regexp-2 tolerance=%d", r); - r = dict_lookup_grep (zh->reg->dict, term_dict, r, grep_info, - &max_pos, 2, grep_handle); - if (r) - logf (LOG_WARN, "dict_lookup_grep err, trunc=eregular: %d", - r); + regex_range = 2; break; case 104: /* process # and ! in term */ term_dict[j++] = '('; @@ -1123,10 +1101,6 @@ static int string_term (ZebraHandle zh, Z_AttributesPlusTerm *zapt, &termp, term_dict + j, space_split, term_dst)) return 0; strcat (term_dict, ")"); - r = dict_lookup_grep (zh->reg->dict, term_dict, 0, grep_info, - &max_pos, 0, grep_handle); - if (r) - logf (LOG_WARN, "dict_lookup_grep err, trunc=#/!: %d", r); break; case 105: /* process * and ! in term */ term_dict[j++] = '('; @@ -1134,10 +1108,6 @@ static int string_term (ZebraHandle zh, Z_AttributesPlusTerm *zapt, &termp, term_dict + j, space_split, term_dst, 1)) return 0; strcat (term_dict, ")"); - r = dict_lookup_grep (zh->reg->dict, term_dict, 0, grep_info, - &max_pos, 0, grep_handle); - if (r) - logf (LOG_WARN, "dict_lookup_grep err, trunc=*/!: %d", r); break; case 106: /* process * and ! in term */ term_dict[j++] = '('; @@ -1145,12 +1115,21 @@ static int string_term (ZebraHandle zh, Z_AttributesPlusTerm *zapt, &termp, term_dict + j, space_split, term_dst, 0)) return 0; strcat (term_dict, ")"); - r = dict_lookup_grep (zh->reg->dict, term_dict, 0, grep_info, - &max_pos, 0, grep_handle); - if (r) - logf (LOG_WARN, "dict_lookup_grep err, trunc=*/!: %d", r); break; + default: + zh->errCode = 120; + zh->errString = nmem_strdup_i(stream, truncation_value); + return -1; } + if (attr_ok) + { + yaz_log(LOG_DEBUG, "dict_lookup_grep: %s", term_dict+prefix_len); + r = dict_lookup_grep (zh->reg->dict, term_dict, 0, + grep_info, &max_pos, regex_range, + grep_handle); + if (r) + yaz_log(LOG_WARN, "dict_lookup_grep fail %d", r); + } } if (!bases_ok) { @@ -1159,7 +1138,7 @@ static int string_term (ZebraHandle zh, Z_AttributesPlusTerm *zapt, return -1; } *term_sub = termp; - logf (LOG_DEBUG, "%d positions", grep_info->isam_p_indx); + yaz_log(LOG_DEBUG, "%d positions", grep_info->isam_p_indx); return 1; } @@ -1335,13 +1314,12 @@ static int grep_info_prepare (ZebraHandle zh, const char *termset_name = 0; if (termset_value_numeric != -2) { - - sprintf (resname, "%d", termset_value_numeric); + sprintf (resname, "%d", termset_value_numeric); termset_name = resname; } else termset_name = termset_value_string; - logf (LOG_LOG, "creating termset set %s", termset_name); + yaz_log(LOG_LOG, "creating termset set %s", termset_name); grep_info->termset = resultSetAdd (zh, termset_name, 1); if (!grep_info->termset) { @@ -1375,7 +1353,7 @@ static RSET rpn_search_APT_phrase (ZebraHandle zh, return 0; while (1) { - logf (LOG_DEBUG, "APT_phrase termp=%s", termp); + yaz_log(LOG_DEBUG, "APT_phrase termp=%s", termp); rset[rset_no] = term_trunc (zh, zapt, &termp, attributeSet, stream, &grep_info, reg_type, complete_flag, @@ -1439,7 +1417,7 @@ static RSET rpn_search_APT_or_list (ZebraHandle zh, return 0; while (1) { - logf (LOG_DEBUG, "APT_or_list termp=%s", termp); + yaz_log(LOG_DEBUG, "APT_or_list termp=%s", termp); rset[rset_no] = term_trunc (zh, zapt, &termp, attributeSet, stream, &grep_info, reg_type, complete_flag, @@ -1496,7 +1474,7 @@ static RSET rpn_search_APT_and_list (ZebraHandle zh, return 0; while (1) { - logf (LOG_DEBUG, "APT_and_list termp=%s", termp); + yaz_log(LOG_DEBUG, "APT_and_list termp=%s", termp); rset[rset_no] = term_trunc (zh, zapt, &termp, attributeSet, stream, &grep_info, reg_type, complete_flag, @@ -1551,7 +1529,7 @@ static int numeric_relation (ZebraHandle zh, Z_AttributesPlusTerm *zapt, attr_init (&relation, zapt, 2); relation_value = attr_find (&relation, NULL); - logf (LOG_DEBUG, "numeric relation value=%d", relation_value); + yaz_log(LOG_DEBUG, "numeric relation value=%d", relation_value); if (!term_100 (zh->reg->zebra_maps, reg_type, term_sub, term_tmp, 1, term_dst)) @@ -1560,32 +1538,32 @@ static int numeric_relation (ZebraHandle zh, Z_AttributesPlusTerm *zapt, switch (relation_value) { case 1: - logf (LOG_DEBUG, "Relation <"); + yaz_log(LOG_DEBUG, "Relation <"); gen_regular_rel (term_tmp, term_value-1, 1); break; case 2: - logf (LOG_DEBUG, "Relation <="); + yaz_log(LOG_DEBUG, "Relation <="); gen_regular_rel (term_tmp, term_value, 1); break; case 4: - logf (LOG_DEBUG, "Relation >="); + yaz_log(LOG_DEBUG, "Relation >="); gen_regular_rel (term_tmp, term_value, 0); break; case 5: - logf (LOG_DEBUG, "Relation >"); + yaz_log(LOG_DEBUG, "Relation >"); gen_regular_rel (term_tmp, term_value+1, 0); break; case 3: default: - logf (LOG_DEBUG, "Relation ="); + yaz_log(LOG_DEBUG, "Relation ="); sprintf (term_tmp, "(0*%d)", term_value); } - logf (LOG_DEBUG, "dict_lookup_grep: %s", term_tmp); + yaz_log(LOG_DEBUG, "dict_lookup_grep: %s", term_tmp); r = dict_lookup_grep (zh->reg->dict, term_dict, 0, grep_info, max_pos, 0, grep_handle); if (r) - logf (LOG_WARN, "dict_lookup_grep fail, rel=gt: %d", r); - logf (LOG_DEBUG, "%d positions", grep_info->isam_p_indx); + yaz_log(LOG_WARN, "dict_lookup_grep fail, rel=gt: %d", r); + yaz_log(LOG_DEBUG, "%d positions", grep_info->isam_p_indx); return 1; } @@ -1644,13 +1622,11 @@ static int numeric_term (ZebraHandle zh, Z_AttributesPlusTerm *zapt, if ((r=att_getentbyatt (zh, &attp, curAttributeSet, use_value, use_string))) { - logf (LOG_DEBUG, "att_getentbyatt fail. set=%d use=%d r=%d", + yaz_log(LOG_DEBUG, "att_getentbyatt fail. set=%d use=%d r=%d", curAttributeSet, use_value, r); if (r == -1) { - char val_str[32]; - sprintf (val_str, "%d", use_value); - errString = nmem_strdup (stream, val_str); + errString = nmem_strdup_i (stream, use_value); errCode = 114; } else @@ -1699,7 +1675,7 @@ static int numeric_term (ZebraHandle zh, Z_AttributesPlusTerm *zapt, term_dict[prefix_len++] = ')'; term_dict[prefix_len++] = 1; term_dict[prefix_len++] = reg_type; - logf (LOG_DEBUG, "reg_type = %d", term_dict[prefix_len-1]); + yaz_log(LOG_DEBUG, "reg_type = %d", term_dict[prefix_len-1]); term_dict[prefix_len] = '\0'; if (!numeric_relation (zh, zapt, &termp, term_dict, attributeSet, grep_info, &max_pos, reg_type, @@ -1713,7 +1689,7 @@ static int numeric_term (ZebraHandle zh, Z_AttributesPlusTerm *zapt, return -1; } *term_sub = termp; - logf (LOG_DEBUG, "%d positions", grep_info->isam_p_indx); + yaz_log(LOG_DEBUG, "%d positions", grep_info->isam_p_indx); return 1; } @@ -1736,7 +1712,7 @@ static RSET rpn_search_APT_numeric (ZebraHandle zh, return 0; while (1) { - logf (LOG_DEBUG, "APT_numeric termp=%s", termp); + yaz_log(LOG_DEBUG, "APT_numeric termp=%s", termp); grep_info.isam_p_indx = 0; r = numeric_term (zh, zapt, &termp, attributeSet, &grep_info, reg_type, complete_flag, num_bases, basenames, @@ -1744,7 +1720,7 @@ static RSET rpn_search_APT_numeric (ZebraHandle zh, stream); if (r < 1) break; - logf (LOG_DEBUG, "term: %s", term_dst); + yaz_log(LOG_DEBUG, "term: %s", term_dst); rset[rset_no] = rset_trunc (zh, grep_info.isam_p_buf, grep_info.isam_p_indx, term_dst, strlen(term_dst), rank_type, @@ -1976,8 +1952,7 @@ static RSET xpath_trunc(ZebraHandle zh, NMEM stream, grep_info.isam_p_indx = 0; r = dict_lookup_grep (zh->reg->dict, term_dict, 0, &grep_info, &max_pos, 0, grep_handle); - yaz_log (LOG_LOG, "%s %d positions", term, - grep_info.isam_p_indx); + yaz_log (LOG_LOG, "%s %d positions", term, grep_info.isam_p_indx); rset = rset_trunc (zh, grep_info.isam_p_buf, grep_info.isam_p_indx, term, strlen(term), flags, 1, term_type); @@ -1998,11 +1973,10 @@ static RSET rpn_search_xpath (ZebraHandle zh, if (xpath_len < 0) return rset; - yaz_log (LOG_LOG, "len=%d", xpath_len); + yaz_log (LOG_DEBUG, "len=%d", xpath_len); for (i = 0; ireg->zebra_maps, zapt, ®_id, &search_type, rank_type, &complete_flag, &sort_flag); - logf (LOG_DEBUG, "reg_id=%c", reg_id); - logf (LOG_DEBUG, "complete_flag=%d", complete_flag); - logf (LOG_DEBUG, "search_type=%s", search_type); - logf (LOG_DEBUG, "rank_type=%s", rank_type); + yaz_log(LOG_DEBUG, "reg_id=%c", reg_id); + yaz_log(LOG_DEBUG, "complete_flag=%d", complete_flag); + yaz_log(LOG_DEBUG, "search_type=%s", search_type); + yaz_log(LOG_DEBUG, "rank_type=%s", rank_type); if (zapt_term_to_utf8(zh, zapt, termz)) return 0; @@ -2301,14 +2275,14 @@ static RSET rpn_search_structure (ZebraHandle zh, Z_RPNStructure *zs, { if (zs->u.simple->which == Z_Operand_APT) { - logf (LOG_DEBUG, "rpn_search_APT"); + yaz_log(LOG_DEBUG, "rpn_search_APT"); r = rpn_search_APT (zh, zs->u.simple->u.attributesPlusTerm, attributeSet, stream, sort_sequence, num_bases, basenames); } else if (zs->u.simple->which == Z_Operand_resultSetId) { - logf (LOG_DEBUG, "rpn_search_ref"); + yaz_log(LOG_DEBUG, "rpn_search_ref"); r = resultSetRef (zh, zs->u.simple->u.resultSetId); if (!r) { @@ -2368,7 +2342,7 @@ RSET rpn_search (ZebraHandle zh, NMEM nmem, return 0; if (zh->errCode) - logf (LOG_DEBUG, "search error: %d", zh->errCode); + yaz_log(LOG_DEBUG, "search error: %d", zh->errCode); for (i = 0; sort_sequence->specs[i]; i++) ; @@ -2377,12 +2351,12 @@ RSET rpn_search (ZebraHandle zh, NMEM nmem, resultSetRank (zh, sset, rset); else { - logf (LOG_DEBUG, "resultSetSortSingle in rpn_search"); + yaz_log(LOG_DEBUG, "resultSetSortSingle in rpn_search"); resultSetSortSingle (zh, nmem, sset, rset, sort_sequence, &sort_status); if (zh->errCode) { - logf (LOG_DEBUG, "resultSetSortSingle status = %d", zh->errCode); + yaz_log(LOG_DEBUG, "resultSetSortSingle status = %d", zh->errCode); } } return rset; @@ -2459,7 +2433,7 @@ static void count_set (RSET r, int *count) RSFD rfd; int term_index; - logf (LOG_DEBUG, "count_set"); + yaz_log(LOG_DEBUG, "count_set"); *count = 0; rfd = rset_open (r, RSETF_READ); @@ -2473,7 +2447,7 @@ static void count_set (RSET r, int *count) kno++; } rset_close (r, rfd); - logf (LOG_DEBUG, "%d keys, %d records", kno, *count); + yaz_log(LOG_DEBUG, "%d keys, %d records", kno, *count); } void rpn_scan (ZebraHandle zh, ODR stream, Z_AttributesPlusTerm *zapt, @@ -2564,7 +2538,7 @@ void rpn_scan (ZebraHandle zh, ODR stream, Z_AttributesPlusTerm *zapt, if ((r=att_getentbyatt (zh, &attp, attributeset, use_value, use_string))) { - logf (LOG_DEBUG, "att_getentbyatt fail. set=%d use=%d", + yaz_log(LOG_DEBUG, "att_getentbyatt fail. set=%d use=%d", attributeset, use_value); if (r == -1) { @@ -2811,9 +2785,9 @@ void rpn_scan (ZebraHandle zh, ODR stream, Z_AttributesPlusTerm *zapt, } *list = glist + i; /* list is set to first 'real' entry */ - logf (LOG_DEBUG, "position = %d, num_entries = %d", + yaz_log(LOG_DEBUG, "position = %d, num_entries = %d", *position, *num_entries); if (zh->errCode) - logf (LOG_DEBUG, "scan error: %d", zh->errCode); + yaz_log(LOG_DEBUG, "scan error: %d", zh->errCode); }