GLITE_LBU_DB_TYPE_VARCHAR, attrs[i],
GLITE_LBU_DB_TYPE_INT, indexed,
GLITE_LBU_DB_TYPE_VARCHAR, type_full) == -1) goto fail;
- free(attrid);
// silently drop
sql[sizeof(sql) - 1] = '\0';
// create table
sql[sizeof(sql) - 1] = '\0';
snprintf(sql, sizeof(sql) - 1, SQLCMD_CREATE_DATA_TABLE, attrid, type_index, type_full);
+ free(attrid);
llprintf(LOG_SQL, "creating table: '%s'\n", sql);
if ((glite_jp_db_ExecSQL(jpctx, sql, NULL)) == -1) {
glite_jpis_stack_error(ctx->jpctx, EAGAIN, "if the atribute table already exists, restart may help");
} else
trio_asprintf(&sql, "SELECT uniqueid, source, state, feedid FROM feeds WHERE (locked=0) AND (feedid IS NULL) AND ((state < " GLITE_JP_IS_STATE_ERROR_STR ") OR (expires <= %s))", t);
free(t);
+ //llprintf(LOG_SQL, "sql=%s\n", sql);
ret = glite_jp_db_ExecSQL(ctx->jpctx, sql, &stmt);
free(sql);
switch (ret) {
return ENOLCK;
}
glite_jp_db_FreeStmt(&stmt);
+ lprintf("selected feed, uniqueid=%s\n", res[0]);
*uniqueid = atol(res[0]); free(res[0]);
ps = res[1];
if (status) *status = atoi(res[2]); free(res[2]);
- lprintf("selected feed, uniqueid=%s\n", *uniqueid);
if (feedid) {
free(*feedid);
*feedid = res[3];
// XXX: test client in examples/jpis-test
// sends to this function some data for testing
puts(__FUNCTION__);
+ glite_jp_clear_error(jpctx);
ps = NULL;
// get info about the feed
/* transform soap enum queryOp to mysql quivalent */
static int get_op(const enum jptype__queryOp in, char **out)
-{
+{
char *qop;
glite_jp_queryop_t op;
puts(__FUNCTION__);
+ glite_jp_clear_error(ctx->jpctx);
memset(out, 0, sizeof(*out));
/* test whether there is any indexed attribudes in the condition */
puts(__FUNCTION__);
return SOAP_OK;
}
-
int glite_jp_db_PrepareStmt(glite_jp_context_t ctx, const char *sql, glite_lbu_Statement *stmt) {
- glite_lbu_PrepareStmt(ctx->dbhandle, sql, stmt);
+ int ret;
+
+ ret = glite_lbu_PrepareStmt(ctx->dbhandle, sql, stmt);
+ if (ret < 0) glite_jp_db_SetError(ctx, __FUNCTION__);
return glite_jp_db_SetError(ctx, __FUNCTION__);
}
int glite_jp_db_ExecPreparedStmt(glite_jp_context_t ctx, glite_lbu_Statement stmt, int n,...) {
va_list ap;
+ int ret;
va_start(ap, n);
- glite_lbu_ExecPreparedStmt_v(stmt, n, ap);
+ ret = glite_lbu_ExecPreparedStmt_v(stmt, n, ap);
va_end(ap);
- return glite_jp_db_SetError(ctx, __FUNCTION__);
+ return ret;
}