[Shein-Feature] support auto_increment attribute for part column

This commit is contained in:
raywill
2021-07-30 11:00:12 +08:00
committed by wangzelin.wzl
parent 6ee95017b0
commit b75f46946e
9 changed files with 64 additions and 21 deletions

View File

@ -88,6 +88,7 @@ struct AutoincParam {
value_to_sync_(0),
sync_flag_(false),
is_ignore_(false),
part_value_no_order_(false),
autoinc_intervals_count_(0),
part_level_(schema::PARTITION_LEVEL_ZERO),
pkey_(),
@ -102,8 +103,13 @@ struct AutoincParam {
autoinc_increment_, "autoinc_offset", autoinc_offset_, "curr_value_count", curr_value_count_,
"global_value_to_sync", global_value_to_sync_, "value_to_sync", value_to_sync_, "sync_flag", sync_flag_,
"is_ignore", is_ignore_, "autoinc_intervals_count", autoinc_intervals_count_, "part_level", part_level_,
"paritition key", pkey_, "auto_increment_cache_size", auto_increment_cache_size_);
"paritition key", pkey_, "auto_increment_cache_size", auto_increment_cache_size_, "part_value_no_order",
part_value_no_order_);
inline bool with_order() const
{
return !part_value_no_order_;
}
// pay attention to schema changes
uint64_t tenant_id_;
uint64_t autoinc_table_id_;
@ -127,6 +133,13 @@ struct AutoincParam {
uint64_t value_to_sync_;
bool sync_flag_;
bool is_ignore_;
// in order to support partitioning with auto increment pkey,
// we have to **loose the restriction** that generated number must be
// in intra-partition ascending order.
// https://aone.alibaba-inc.com/req/34489012
// If part_value_no_order_ flag = true, we can break this ordering restriction.
// for compatibility consideration, part_value_no_order_ defaults to false
bool part_value_no_order_;
// count for cache handle allocated already
uint64_t autoinc_intervals_count_;