"Bad attribute " + std::string((const char *)
attr->name));
}
- if (ccl_field.length() && cql_field.length())
+ if (cql_field.length())
fieldmap[cql_field] = ccl_field;
}
else if (!strcmp((const char *) ptr->name, "records"))
it = fieldmap.find(cn->u.st.index);
if (it == fieldmap.end())
return cn;
- cn->u.st.index = odr_strdup(odr, it->second.c_str());
+ if (it->second.length())
+ cn->u.st.index = odr_strdup(odr, it->second.c_str());
+ else
+ cn->u.st.index = 0;
}
break;
case CQL_NODE_BOOL:
int error = 0;
const char *addinfo = 0;
std::string db(sr->databaseNames[0]);
- BackendPtr b = get_backend_from_databases(db, &error, &addinfo);
+ std::string torus_db;
+ size_t db_arg_pos = db.find(',');
+ if (db_arg_pos != std::string::npos)
+ torus_db = db.substr(0, db_arg_pos);
+ else
+ torus_db = db;
+
+ BackendPtr b = get_backend_from_databases(torus_db, &error, &addinfo);
if (error)
{
apdu_res =
assert(pqf_wrbuf == 0);
int cerror, cpos;
struct ccl_rpn_node *cn;
+ yaz_log(YLOG_LOG, "CCL: %s", wrbuf_cstr(ccl_wrbuf));
cn = ccl_find_str(b->sptr->ccl_bibset, wrbuf_cstr(ccl_wrbuf),
&cerror, &cpos);
wrbuf_destroy(ccl_wrbuf);