You've already forked mariadb-columnstore-engine
mirror of
https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
synced 2025-07-29 08:21:15 +03:00
This patch fllows the change introduced in the direct_update/delete API
in 10.4.11 to fix MDEV-18973 in Spider.
This commit is contained in:
@ -338,19 +338,18 @@ int ha_mcs::update_row(const uchar* old_data, uchar* new_data)
|
|||||||
DBUG_RETURN(rc);
|
DBUG_RETURN(rc);
|
||||||
}
|
}
|
||||||
|
|
||||||
// WIP
|
|
||||||
/**
|
/**
|
||||||
@brief
|
@brief
|
||||||
Yes, update_row() does what you expect, it updates a row. old_data will have
|
Durect UPDATE/DELETE are the features that allows engine to run UPDATE
|
||||||
the previous row record in it, while new_data will have the newest data in it.
|
or DELETE on its own. There are number of limitations that dissalows
|
||||||
Keep in mind that the server can do updates based on ordering if an ORDER BY
|
the feature.
|
||||||
clause was used. Consecutive ordering is not guaranteed.
|
|
||||||
|
|
||||||
@details
|
@details
|
||||||
@code
|
@code
|
||||||
@endcode
|
@endcode
|
||||||
|
|
||||||
@see
|
@see
|
||||||
|
mysql_update()/mysql_delete
|
||||||
*/
|
*/
|
||||||
int ha_mcs::direct_update_rows_init(List<Item> *update_fields)
|
int ha_mcs::direct_update_rows_init(List<Item> *update_fields)
|
||||||
{
|
{
|
||||||
@ -365,6 +364,14 @@ int ha_mcs::direct_update_rows(ha_rows *update_rows)
|
|||||||
DBUG_RETURN(rc);
|
DBUG_RETURN(rc);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int ha_mcs::direct_update_rows(ha_rows *update_rows, ha_rows *found_rows)
|
||||||
|
{
|
||||||
|
DBUG_ENTER("ha_mcs::direct_update_rows");
|
||||||
|
int rc = ha_mcs_impl_direct_update_delete_rows(update_rows);
|
||||||
|
*found_rows = *update_rows;
|
||||||
|
DBUG_RETURN(rc);
|
||||||
|
}
|
||||||
|
|
||||||
int ha_mcs::direct_delete_rows_init()
|
int ha_mcs::direct_delete_rows_init()
|
||||||
{
|
{
|
||||||
DBUG_ENTER("ha_mcs::direct_delete_rows_init");
|
DBUG_ENTER("ha_mcs::direct_delete_rows_init");
|
||||||
|
@ -154,6 +154,7 @@ public:
|
|||||||
int update_row(const uchar* old_data, uchar* new_data);
|
int update_row(const uchar* old_data, uchar* new_data);
|
||||||
int direct_update_rows_init(List<Item> *update_fields);
|
int direct_update_rows_init(List<Item> *update_fields);
|
||||||
int direct_update_rows(ha_rows *update_rows);
|
int direct_update_rows(ha_rows *update_rows);
|
||||||
|
int direct_update_rows(ha_rows *update_rows, ha_rows *found_rows);
|
||||||
|
|
||||||
/** @brief
|
/** @brief
|
||||||
We implement this in ha_example.cc. It's not an obligatory method;
|
We implement this in ha_example.cc. It's not an obligatory method;
|
||||||
|
Reference in New Issue
Block a user