projects
/
idzebra-moved-to-github.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
CQL tests and error handling
[idzebra-moved-to-github.git]
/
perl
/
zebra_api_ext.c
diff --git
a/perl/zebra_api_ext.c
b/perl/zebra_api_ext.c
index
94f65ed
..
32289e9
100644
(file)
--- a/
perl/zebra_api_ext.c
+++ b/
perl/zebra_api_ext.c
@@
-228,22
+228,22
@@
int zebra_cql2pqf (cql_transform_t ct,
const char *query, char *res, int len) {
int status;
const char *query, char *res, int len) {
int status;
- const char *addinfo;
+ const char *addinfo = "";
CQL_parser cp = cql_parser_create();
CQL_parser cp = cql_parser_create();
- if (status = cql_transform_error(ct, &addinfo)) {
- logf (LOG_WARN,"Transform error %d %s\n", status, addinfo ? addinfo : "");
+ if (status = cql_parser_string(cp, query)) {
+ cql_parser_destroy(cp);
return (status);
}
return (status);
}
- if (status = cql_parser_string(cp, query))
- return (status);
-
- if (status = cql_transform_buf(ct, cql_parser_result(cp), res, len)) {
+ if (cql_transform_buf(ct, cql_parser_result(cp), res, len)) {
+ status = cql_transform_error(ct, &addinfo);
logf (LOG_WARN,"Transform error %d %s\n", status, addinfo ? addinfo : "");
logf (LOG_WARN,"Transform error %d %s\n", status, addinfo ? addinfo : "");
+ cql_parser_destroy(cp);
return (status);
}
return (status);
}
+ cql_parser_destroy(cp);
return (0);
}
return (0);
}
@@
-311,13
+311,20
@@
void record_retrieve(RetrievalObj *ro,
(RetrievalRecordBuf *) odr_malloc(stream, sizeof(*buf));
res->errCode = ro->records[i].errCode;
(RetrievalRecordBuf *) odr_malloc(stream, sizeof(*buf));
res->errCode = ro->records[i].errCode;
- res->errString = ro->records[i].errString;
+ if (ro->records[i].errString) {
+ res->errString = odr_strdup(stream, ro->records[i].errString);
+ } else {
+ res->errString = "";
+ }
res->position = ro->records[i].position;
res->base = ro->records[i].base;
res->position = ro->records[i].position;
res->base = ro->records[i].base;
- res->format = ro->records[i].format;
+ res->format = (char *)
+ yaz_z3950_oid_value_to_str(ro->records[i].format, CLASS_RECSYN);
res->buf = buf;
res->buf->len = ro->records[i].len;
res->buf->buf = ro->records[i].buf;
res->buf = buf;
res->buf->len = ro->records[i].len;
res->buf->buf = ro->records[i].buf;
+ res->score = ro->records[i].score;
+ res->sysno = ro->records[i].sysno;
}
}
@@
-489,6
+496,7
@@
void api_records_retrieve (ZebraHandle zh, ODR stream,
recs[i].len = strlen(poset[i].term);
recs[i].buf = poset[i].term;
recs[i].base = poset[i].db;
recs[i].len = strlen(poset[i].term);
recs[i].buf = poset[i].term;
recs[i].base = poset[i].db;
+ recs[i].sysno = 0;
}
else if (poset[i].sysno)
}
else if (poset[i].sysno)
@@
-504,7
+512,9
@@
void api_records_retrieve (ZebraHandle zh, ODR stream,
&recs[i].base);
recs[i].buf = (char *) odr_malloc(stream,recs[i].len);
memcpy(recs[i].buf, b, recs[i].len);
&recs[i].base);
recs[i].buf = (char *) odr_malloc(stream,recs[i].len);
memcpy(recs[i].buf, b, recs[i].len);
- recs[i].errString = NULL;
+ recs[i].errString = 0; /* Hmmm !!! we should get this */
+ recs[i].sysno = poset[i].sysno;
+ recs[i].score = poset[i].score;
}
else
{
}
else
{