projects
/
yazpp-moved-to-github.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Reliable result for connection::option() when returning a null value.
[yazpp-moved-to-github.git]
/
src
/
yaz-cql2rpn.cpp
diff --git
a/src/yaz-cql2rpn.cpp
b/src/yaz-cql2rpn.cpp
index
b012d92
..
f8ca22b
100644
(file)
--- a/
src/yaz-cql2rpn.cpp
+++ b/
src/yaz-cql2rpn.cpp
@@
-1,13
+1,13
@@
/*
/*
- * Copyright (c) 1998-2003, Index Data.
+ * Copyright (c) 1998-2004, Index Data.
* See the file LICENSE for details.
*
* See the file LICENSE for details.
*
- * $Id: yaz-cql2rpn.cpp,v 1.2 2003-12-20 22:44:30 adam Exp $
+ * $Id: yaz-cql2rpn.cpp,v 1.6 2004-12-13 20:50:54 adam Exp $
*/
#include <yaz/log.h>
#include <yaz/pquery.h>
*/
#include <yaz/log.h>
#include <yaz/pquery.h>
-#include <yaz++/proxy.h>
+#include <yaz++/cql2rpn.h>
Yaz_cql2rpn::Yaz_cql2rpn()
{
Yaz_cql2rpn::Yaz_cql2rpn()
{
@@
-27,15
+27,20
@@
void Yaz_cql2rpn::set_pqf_file(const char *fname)
}
int Yaz_cql2rpn::query_transform(const char *cql_query,
}
int Yaz_cql2rpn::query_transform(const char *cql_query,
- Z_RPNQuery **rpnquery, ODR o)
+ Z_RPNQuery **rpnquery, ODR o,
+ char **addinfop)
{
{
+ const char *addinfo = 0;
if (!m_transform)
return -3;
CQL_parser cp = cql_parser_create();
int r = cql_parser_string(cp, cql_query);
if (r)
if (!m_transform)
return -3;
CQL_parser cp = cql_parser_create();
int r = cql_parser_string(cp, cql_query);
if (r)
- yaz_log(LOG_LOG, "CQL Parse Error");
+ {
+ yaz_log(YLOG_LOG, "CQL Parse Error");
+ r = 10;
+ }
else
{
char rpn_buf[1024];
else
{
char rpn_buf[1024];
@@
-51,7
+56,7
@@
int Yaz_cql2rpn::query_transform(const char *cql_query,
size_t off;
const char *pqf_msg;
int code = yaz_pqf_error(pp, &pqf_msg, &off);
size_t off;
const char *pqf_msg;
int code = yaz_pqf_error(pp, &pqf_msg, &off);
- yaz_log(LOG_WARN, "PQF Parser Error %s (code %d)",
+ yaz_log(YLOG_WARN, "PQF Parser Error %s (code %d)",
pqf_msg, code);
r = -1;
}
pqf_msg, code);
r = -1;
}
@@
-59,13
+64,15
@@
int Yaz_cql2rpn::query_transform(const char *cql_query,
}
else
{
}
else
{
- const char *addinfo;
- cql_transform_error(m_transform, &addinfo);
- yaz_log(LOG_LOG, "CQL Transform Error %d %s", r,
+ r = cql_transform_error(m_transform, &addinfo);
+ yaz_log(YLOG_LOG, "CQL Transform Error %d %s", r,
addinfo ? addinfo : "");
addinfo ? addinfo : "");
- r = -2;
}
}
cql_parser_destroy(cp);
}
}
cql_parser_destroy(cp);
+ if (addinfo)
+ *addinfop = odr_strdup(o, addinfo);
+ else
+ *addinfop = 0;
return r;
}
return r;
}