in statement.c [809:838]
BOOL SC_opencheck(StatementClass *self, const char *func)
{
QResultClass *res;
if (!self)
return FALSE;
if (self->status == STMT_EXECUTING)
{
SC_set_error(self, STMT_SEQUENCE_ERROR, "Statement is currently executing a transaction.", func);
return TRUE;
}
/*
* We can dispose the result of Describe-only any time.
*/
if (self->prepare && self->status == STMT_DESCRIBED)
{
MYLOG(MIN_LOG_LEVEL, "self->prepare && self->status == STMT_DESCRIBED\n");
return FALSE;
}
if (res = SC_get_Curres(self), NULL != res)
{
if (QR_command_maybe_successful(res) && res->backend_tuples)
{
SC_set_error(self, STMT_SEQUENCE_ERROR, "The cursor is open.", func);
return TRUE;
}
}
return FALSE;
}