[Shein-Feature] support auto_increment attribute for part column
This commit is contained in:
		| @ -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_; | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	 raywill
					raywill