1
0
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:
Roman Nozdrin
2019-12-10 22:39:49 -06:00
parent 914fa570fa
commit 19b4702a24
2 changed files with 13 additions and 5 deletions

View File

@ -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");

View File

@ -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;