MXS-2490: Add direct execution support

Certain MariaDB connectors will use the direct execution for batching
COM_STMT_PREPARE and COM_STMT_EXECUTE execution without waiting for the
COM_STMT_PREPARE to complete. In these cases the COM_STMT_EXECUTE (and
other COM_STMT commands as well) will use the special ID 0xffffffff. When
this is detected, it should be substituted with the ID of the latest
statement that was prepared.
This commit is contained in:
Markus Mäkelä
2019-07-09 14:59:52 +03:00
parent 5aa9daaeea
commit 8a176d64aa
4 changed files with 41 additions and 1 deletions

View File

@ -363,7 +363,7 @@ private:
*/
bool query_type_is_read_only(uint32_t qtype) const;
void process_routing_hints(HINT* pHints, uint32_t* target);
void process_routing_hints(HINT* pHints, uint32_t* target);
uint32_t get_route_target(uint8_t command, uint32_t qtype);
MXS_SESSION* session() const
@ -415,5 +415,8 @@ private:
RouteInfo m_route_info;
bool m_trx_is_read_only;
bool m_ps_continuation;
uint32_t m_prev_ps_id = 0; /**< For direct PS execution, storest latest prepared PS ID.
* https://mariadb.com/kb/en/library/com_stmt_execute/#statement-id **/
};
}