Add STMT prefix to ASYC DESCRIBE status

pull/5078/head
Rahim Kanji 8 months ago
parent 7d5fe54230
commit 031d362aab

@ -622,7 +622,8 @@ private:
// Set end state for the fetch result to indicate that it originates from a simple query or statement execution.
ASYNC_ST fetch_result_end_st = ASYNC_QUERY_END;
inline void set_fetch_result_end_state(ASYNC_ST st) {
assert(st == ASYNC_QUERY_END || st == ASYNC_STMT_EXECUTE_END || st == ASYNC_DESCRIBE_END || st == ASYNC_STMT_PREPARE_END);
assert(st == ASYNC_QUERY_END || st == ASYNC_STMT_EXECUTE_END ||
st == ASYNC_STMT_DESCRIBE_END || st == ASYNC_STMT_PREPARE_END);
fetch_result_end_st = st;
}
// Handles the COPY OUT response from the server.

@ -125,9 +125,9 @@ enum ASYNC_ST { // MariaDB Async State Machine
ASYNC_RESET_SESSION_SUCCESSFUL,
ASYNC_RESET_SESSION_FAILED,
ASYNC_RESET_SESSION_TIMEOUT,
ASYNC_DESCRIBE_START,
ASYNC_DESCRIBE_CONT,
ASYNC_DESCRIBE_END,
ASYNC_STMT_DESCRIBE_START,
ASYNC_STMT_DESCRIBE_CONT,
ASYNC_STMT_DESCRIBE_END,
ASYNC_IDLE
};

@ -469,7 +469,7 @@ handler_again:
case ASYNC_STMT_PREPARE_END:
bytes_recv = query_result->add_parse_completion();
break;
case ASYNC_DESCRIBE_END:
case ASYNC_STMT_DESCRIBE_END:
bytes_recv = query_result->add_describe_completion(result.get(), query.extended_query_info->stmt_type);
break;
case ASYNC_STMT_EXECUTE_END:
@ -772,29 +772,29 @@ handler_again:
assert(!is_copy_out);
break;
case ASYNC_DESCRIBE_START:
case ASYNC_STMT_DESCRIBE_START:
stmt_describe_start();
if (async_exit_status) {
next_event(ASYNC_DESCRIBE_CONT);
next_event(ASYNC_STMT_DESCRIBE_CONT);
} else {
NEXT_IMMEDIATE(ASYNC_DESCRIBE_END);
NEXT_IMMEDIATE(ASYNC_STMT_DESCRIBE_END);
}
break;
case ASYNC_DESCRIBE_CONT:
case ASYNC_STMT_DESCRIBE_CONT:
if (event) {
stmt_describe_cont(event);
}
if (async_exit_status) {
next_event(ASYNC_DESCRIBE_CONT);
next_event(ASYNC_STMT_DESCRIBE_CONT);
} else {
if (is_error_present()) {
NEXT_IMMEDIATE(ASYNC_DESCRIBE_END);
NEXT_IMMEDIATE(ASYNC_STMT_DESCRIBE_END);
}
set_fetch_result_end_state(ASYNC_DESCRIBE_END);
set_fetch_result_end_state(ASYNC_STMT_DESCRIBE_END);
NEXT_IMMEDIATE(ASYNC_USE_RESULT_START);
}
break;
case ASYNC_DESCRIBE_END:
case ASYNC_STMT_DESCRIBE_END:
PROXY_TRACE2();
if (is_error_present()) {
compute_unknown_transaction_status();
@ -1317,7 +1317,7 @@ int PgSQL_Connection::async_query(short event, const char* stmt, unsigned long l
if (type == PGSQL_EXTENDED_QUERY_TYPE_PARSE) {
async_state_machine = ASYNC_STMT_PREPARE_START;
} else if (type == PGSQL_EXTENDED_QUERY_TYPE_DESCRIBE) {
async_state_machine = ASYNC_DESCRIBE_START;
async_state_machine = ASYNC_STMT_DESCRIBE_START;
} else if (type == PGSQL_EXTENDED_QUERY_TYPE_EXECUTE) {
async_state_machine = ASYNC_STMT_EXECUTE_START;
} else {
@ -1332,7 +1332,7 @@ int PgSQL_Connection::async_query(short event, const char* stmt, unsigned long l
if (async_state_machine == ASYNC_QUERY_END ||
async_state_machine == ASYNC_STMT_EXECUTE_END ||
async_state_machine == ASYNC_DESCRIBE_END ||
async_state_machine == ASYNC_STMT_DESCRIBE_END ||
async_state_machine == ASYNC_STMT_PREPARE_END) {
PROXY_TRACE2();
compute_unknown_transaction_status();

@ -2562,10 +2562,8 @@ bool PgSQL_Session::handler_minus1_HandleErrorCodes(PgSQL_Data_Stream* myds, int
myds->fd = 0;
if (retry_conn) {
myds->DSS = STATE_NOT_INITIALIZED;
//previous_status.push(PROCESSING_QUERY);
set_previous_status_mode3(false);
return true; // it will call NEXT_IMMEDIATE(CONNECTING_SERVER);
//NEXT_IMMEDIATE(CONNECTING_SERVER);
}
//handler_ret = -1;
//return handler_ret;

Loading…
Cancel
Save